This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/DRA75: Linux/DRA75: "L3 custom error" when cold or warm reset on some custom boards

Part Number: DRA75

Tool/software: Linux

Hi Shravan,

I do not use cmem driver, and not access system diagnosis information in DSP.

Also I have checked that OPENVX_INCLUDE=no in my cfg.mk file.

I'm not sure which peripheral is used by DSP. Is there any document about hardware resource split in "ti_components"?  (in addition <VisionSDK_Linux_DevelopmentGuide.pdf>)

I have check the DSP startup process, no special peripheral is used. so any ideas?

attachment some peripheral initialization in MLO:

void enable_vip_dss_clocks(void)
{
	u32 reg;

	/* Set the LCD channel 0 clock polatiry as falling edge */
	//__raw_writel(0x80000, CTRL_CORE_SMA_SW_1);

	/* enable CORE domain transitions */
	//__raw_writel(0x2, CM_DSS_CLKSTCTRL);

	/* enable power domain transitions (sw_wkup mode) */
	__raw_writel(0x2, CM_VPE_CLKSTCTRL);

	reg = __raw_readl(CM_L3INSTR_L3_MAIN_2_CLKCTRL);
	__raw_writel((reg & ~0x00000003)|0x1, CM_L3INSTR_L3_MAIN_2_CLKCTRL);

	/* Enable IPU module peripherals */
	reg = __raw_readl(CM_CAM_VIP1_CLKCTRL);
	__raw_writel((reg & ~0x00000003)|0x1, CM_CAM_VIP1_CLKCTRL);
	reg = __raw_readl(CM_CAM_VIP2_CLKCTRL);
	__raw_writel((reg & ~0x00000003)|0x1, CM_CAM_VIP2_CLKCTRL);
	reg = __raw_readl(CM_CAM_VIP3_CLKCTRL);
	__raw_writel((reg & ~0x00000003)|0x1, CM_CAM_VIP3_CLKCTRL);
	reg = __raw_readl(CM_L3INSTR_L3_MAIN_2_CLKCTRL);
	__raw_writel((reg & ~0x00000003)|0x1, CM_L3INSTR_L3_MAIN_2_CLKCTRL);
	#if 0
	reg = __raw_readl(CM_L4PER_I2C1_CLKCTRL);
	__raw_writel((reg & ~0x00000003)|0x2, CM_L4PER_I2C1_CLKCTRL);
	reg = __raw_readl(CM_L4PER_I2C2_CLKCTRL);
	__raw_writel((reg & ~0x00000003)|0x2, CM_L4PER_I2C2_CLKCTRL);
	reg = __raw_readl(CM_L4PER_I2C3_CLKCTRL);
	__raw_writel((reg & ~0x00000003)|0x2, CM_L4PER_I2C3_CLKCTRL);
	reg = __raw_readl(CM_L4PER_I2C4_CLKCTRL);
	__raw_writel((reg & ~0x00000003)|0x2, CM_L4PER_I2C4_CLKCTRL);
	reg = __raw_readl(CM_IPU_I2C5_CLKCTRL);
	__raw_writel((reg & ~0x00000003)|0x2, CM_IPU_I2C5_CLKCTRL);
	#endif
	reg = __raw_readl(CM_VPE_VPE_CLKCTRL);
	__raw_writel((reg & ~0x00000003)|0x1, CM_VPE_VPE_CLKCTRL);

	/* enable DSS */
	#if 0
	reg = __raw_readl(CTRL_CORE_CONTROL_IO_2);
	__raw_writel((reg | 0x1), CTRL_CORE_CONTROL_IO_2);
	reg = __raw_readl(CM_DSS_DSS_CLKCTRL);
	__raw_writel(((reg & ~0x00000003) | 0x00003F00 | 0x2), CM_DSS_DSS_CLKCTRL);

	/* checking if DSS is enabled */
	while ((__raw_readl(CM_DSS_DSS_CLKCTRL) & 0x00030000) != 0);
	#endif

	return;
}

/*
 * If the remotecore binary expects any peripherals to be setup before it has
 * booted, configure them here.
 *
 * These functions are left empty by default as their operation is usecase
 * specific.
 */

u32 ipu1_config_peripherals(u32 core_id, struct rproc *cfg)
{
#if 1
    u32 reg;

    //u32 timer_reg = 0;

    /* Enable Timer 9 used as timestamp provider for IPU1 */
    reg = __raw_readl(CM_L4PER_TIMER9_CLKCTRL);
    __raw_writel((reg & ~0x0F000003) | 0x00000002, CM_L4PER_TIMER9_CLKCTRL);
#endif
    enable_vip_dss_clocks();
	return 0;
}

u32 ipu2_config_peripherals(u32 core_id, struct rproc *cfg)
{
    u32 reg;
    
	reg = __raw_readl(CM_L4PER_GPIO2_CLKCTRL);
	__raw_writel((reg & ~0x00000003)|0x1, CM_L4PER_GPIO2_CLKCTRL);
	
	reg = __raw_readl(CM_L4PER_GPIO7_CLKCTRL);
	__raw_writel((reg & ~0x00000003)|0x1, CM_L4PER_GPIO7_CLKCTRL);
	
	return 0;
}

u32 dsp1_config_peripherals(u32 core_id, struct rproc *cfg)
{
#if 1
	u32 reg;
	u32 timer_reg = 0;

	/* Enable Timer 6 used as timestamp provider for DSP1 */
	timer_reg = CM_IPU_TIMER6_CLKCTRL;
	reg = __raw_readl(timer_reg);
	__raw_writel((reg & ~0x0F000003) | 0x00000002, timer_reg);
#endif
	return 0;
}

u32 dsp2_config_peripherals(u32 core_id, struct rproc *cfg)
{
#if 1
	u32 reg;
	u32 timer_reg = 0;
	
	timer_reg = CM_IPU_TIMER5_CLKCTRL;
	reg = __raw_readl(timer_reg);
	__raw_writel((reg & ~0x0F000003) | 0x00000002, timer_reg);
#endif
	return 0;
}

late-attach peripherals in Linux

/*
 * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */
#include "dra7-evm.dts"

#define LATE_ATTACH(label) &label { ti,late-attach; ti,no-idle-on-init; ti,no-reset-on-init; }

/*
 * Restrict the linux used EDMA requests to only 32
 * Last 32 requests lines would be routed by the edma-xbar
 * to perform DMA for DSPs and IPUs
 */
&edma {
	dma-requests = <32>;
};


/*
 * Memory reserved for IOMMU table carveout 0xbfc00000 for length 0x100000
 * Page Table Address for IPU1   0xbfc00000
 * Page Table Address for IPU2   0xbfc08000
 * Page Table Address for DSP1   0xbfc10000
 * Page Table Address for DSP2   0xbfc18000
 */
&reserved_mem {
	latea_pagetbl: late_pgtbl@bfc00000 {
		reg = <0x0 0xbfc00000 0x0 0x100000>;
		no-map;
		status = "okay";
	};
};

/* Uncomment below block to enable late attach for IPU2 */
LATE_ATTACH(ipu2);
&ipu2 {
	/delete-property/ watchdog-timers;
};

LATE_ATTACH(timer3);
LATE_ATTACH(timer4);
LATE_ATTACH(timer9);
LATE_ATTACH(mmu_ipu2);

/* Uncomment below block to enable late attach for IPU1 */
LATE_ATTACH(ipu1);
&ipu1 {
	/delete-property/ watchdog-timers;
};

LATE_ATTACH(timer11);
LATE_ATTACH(timer7);
LATE_ATTACH(timer8);
LATE_ATTACH(mmu_ipu1);


/* Uncomment below block to enable late attach for DSP1 */
LATE_ATTACH(dsp1);
&dsp1 {
	/delete-property/ watchdog-timers;
};

LATE_ATTACH(timer5);
LATE_ATTACH(timer10);
LATE_ATTACH(mmu0_dsp1);
LATE_ATTACH(mmu1_dsp1);

/* Uncomment below block to enable late attach for DSP2 */
LATE_ATTACH(dsp2);
&dsp2 {
	/delete-property/ watchdog-timers;
};

LATE_ATTACH(timer6);
LATE_ATTACH(mmu0_dsp2);
LATE_ATTACH(mmu1_dsp2);



LATE_ATTACH(timer13);
LATE_ATTACH(timer14);
LATE_ATTACH(mailbox5);
LATE_ATTACH(mailbox6);
LATE_ATTACH(mailbox7);
LATE_ATTACH(mailbox8);

#define DISABLE_PRCM(label) &label { ti,no-idle; ti,no-reset-on-init; } 
DISABLE_PRCM(gpio2);
DISABLE_PRCM(gpio7);

LATE_ATTACH(gpio2);
LATE_ATTACH(gpio7);

Regard

Jaye

  • Hi Jaye,

    Can you try to halt the MLO for about 10-15s before jumping to kernel. Idea is I want to make sure the DSP doesn't crash before the kernel init. Please add the below line of code to u-boot and rebuild -- this will add a 10s sleep.

    --- a/common/spl/spl.c

    +++ b/common/spl/spl.c

    @@ -584,7 +584,7 @@ void board_init_r(gd_t *dummy1, ulong dummy2)

                   defined(CONFIG_ARM)

           cleanup_before_linux();

    #endif

    -

    +  mdelay(1000*10);

           switch (spl_image.os) {

           case IH_OS_U_BOOT:

                   debug("Jumping to U-Boot\n");


    Its also recommended you add a print in the DSP to print a message indicating core state every second. Please make the following change in VSDK binary.

    --- a/links_fw/src/rtos/bios_app_common/tda2xx/dsp1/src/main_common_c6xdsp1.c
    +++ b/links_fw/src/rtos/bios_app_common/tda2xx/dsp1/src/main_common_c6xdsp1.c
    @@ -139,10 +139,14 @@ Void C6XDSP_main(UArg arg0, UArg arg1)
         UInt32 coreId = System_getSelfProcId();
     
         Utils_dspCacheInit();
    +    uint32_t counter = 0;
     
         while (1)
         {
             BspOsal_sleep(100U);
    +        if(!(counter % 10))
    +          Vps_printf("Alive\n");
    +        counter++;
             Utils_getAppInitState(coreId, &state);
             if (state == CORE_APP_INITSTATUS_DO_EXIT)
             {

    --- a/links_fw/src/rtos/bios_app_common/tda2xx/dsp2/src/main_common_c6xdsp2.c
    +++ b/links_fw/src/rtos/bios_app_common/tda2xx/dsp2/src/main_common_c6xdsp2.c
    @@ -139,10 +139,14 @@ Void C6XDSP_main(UArg arg0, UArg arg1)
         UInt32 coreId = System_getSelfProcId();
     
         Utils_dspCacheInit();
    +    uint32_t counter = 0;
     
         while (1)
         {
             BspOsal_sleep(100U);
    +        if(!(counter % 10))
    +          Vps_printf("Alive\n");
    +        counter++;
             Utils_getAppInitState(coreId, &state);
             if (state == CORE_APP_INITSTATUS_DO_EXIT)
             {

     


    This will ensure the DSP prints a message every second. If the prints cease after kernel init, we can step through the kernel to figure out the issue. If the prints cease even before kernel init, its a case of a peripheral not clocked which is being accessed by the DSP. In this case, you would need to step through your DSP code using CCS. In either case, please send the logs of the apps.out command.

    Also any reason why VIP and ocmcram aren't disabled from Linux?


    Regards

    Shravan

  • Hi Shravan,

    My colleague delete VIP node from dra7x.dtsi, it is hard code. And how to disable ocmcram from kernel?  is it "LATE_ATTACH(ocmcram1)"  or "/delete-node/ &ocmcram1;" ?

    I have verified your idea.

    When I add "mdelay(1000*10);" before jumping to kernel, the kernel will crash every time boot. I can not collect the log.

    Then I do not jump to kernel, just print the log which storage at  "REMOTE_LOG_MEM" memory segment.

    The DSP1 startup process is OK, no halt  occur. As you say, it is the case "prints cease after kernel init". So how can I step through the kernel debug this issue?

    the log attachment:

    U-Boot SPL 2016.05-svn35254 (Oct 26 2018 - 13:51:04)
    Foot at board/ti/dra7xx/lateattach.c:1937/spl_remote_log_client()
    [IPU1-0]      0.337827 s: 
    [IPU1-0]  EVE1 Image Load Completed 
    [DSP1  ]      0.277679 s:  ***** DSP1 Firmware build time 13:02:12 Oct 26 2018
    [DSP2  ]      0.282346 s: ***** DSP2 Firmware build time 13:02:19 Oct 26 2018
    [IPU2  ]      0.267797 s:  ***** IPU2 Firmware build time 13:03:01 Oct 26 2018
    [IPU1-0]      0.337949 s: 
    [IPU1-0]  EVE MMU configuration completed 
    [DSP1  ]      0.277740 s:  *** SYSTEM: CPU Frequency <ORG = 600000000 Hz>, <NEW = 700000000 Hz>
    [DSP2  ]      0.282437 s:  *** SYSTEM: CPU Frequency <ORG = 600000000 Hz>, <NEW = 700000000 Hz>
    [IPU2  ]      0.267980 s:  *** SYSTEM: CPU Frequency <ORG = 212800000 Hz>, <NEW = 212800000 Hz>
    [IPU1-0]      0.338010 s:  ***** IPU1_0 Firmware build time 13:02:28 Oct 26 2018 
    [DSP1  ]      0.277984 s: BOIS_start() now !!!
    [DSP2  ]      0.282681 s:  SYSTEM: System Common Init in progress !!!
    [IPU2  ]      0.268102 s: sizeof : poolSize: 4236, timersSize: 0, eXchangeSize: 17456 [4718592]!!!
    [IPU1-0]      0.338162 s:  *** SYSTEM: CPU Frequency <ORG = 212800000 Hz>, <NEW = 212800000 Hz>
    [DSP1  ]      0.278045 s:  SYSTEM: System Common Init in progress !!!
    [DSP2  ]      0.282864 s:  SYSTEM: IPC init in progress !!!
    [IPU2  ]      0.268346 s: rxQue[0] IN 63 DONE !!!
    [IPU1-0]      0.341151 s:  SYSTEM: System Common Init in progress !!!
    [DSP1  ]      0.278198 s:  SYSTEM: IPC init in progress !!!
    [DSP2  ]      0.282895 s:  SYSTEM: Attaching to [IPU1-0] ... 
    [IPU2  ]      0.268529 s: txQue[0] IN 63 DONE !!!
    [IPU1-0]      0.360306 s:  SYSTEM: IPC init in progress !!!
    [DSP1  ]      0.278228 s:  SYSTEM: Attaching to [IPU1-0] ... 
    [DSP2  ]      0.369883 s:  SYSTEM: Attaching to [IPU1-0] ... SUCCESS !!!
    [IPU2  ]      0.268712 s: rxQue[1] IN 63 DONE !!!
    [IPU1-0]      0.360428 s:  SYSTEM: Attaching to [IPU2] ... 
    [DSP1  ]      0.366894 s:  SYSTEM: Attaching to [IPU1-0] ... SUCCESS !!!
    [DSP2  ]      0.377813 s:  SYSTEM: Attaching to [IPU2] ... SUCCESS !!!
    [IPU2  ]      0.268864 s: txQue[1] IN 63 DONE !!!
    [IPU1-0]      0.364454 s:  SYSTEM: Attaching to [IPU2] ... SUCCESS !!!
    [DSP1  ]      0.371805 s:  SYSTEM: Attaching to [IPU2] ... SUCCESS !!!
    [DSP2  ]      0.379796 s:  SYSTEM: Attaching to [DSP1] ... SUCCESS !!!
    [IPU2  ]      0.269047 s: rxQue[2] IN 63 DONE !!!
    [IPU1-0]      0.366894 s:  SYSTEM: Attaching to [DSP1] ... SUCCESS !!!
    [DSP1  ]      0.379796 s:  SYSTEM: Attaching to [DSP2] ... SUCCESS !!!
    [DSP2  ]      0.415024 s:  SYSTEM: Attaching to [EVE1] ... SUCCESS !!!
    [IPU2  ]      0.269230 s: txQue[2] IN 63 DONE !!!
    [IPU1-0]      0.369883 s:  SYSTEM: Attaching to [DSP2] ... SUCCESS !!!
    [DSP1  ]      0.405020 s:  SYSTEM: Attaching to [EVE1] ... SUCCESS !!!
    [DSP2  ]      0.415055 s:  SYSTEM: Notify register to [IPU1-0] line 0, event 15... 
    [IPU2  ]      0.269383 s: rxQue[3] IN 63 DONE !!!
    [IPU1-0]      0.385438 s:  SYSTEM: Attaching to [EVE1] ... SUCCESS !!!
    [DSP1  ]      0.405050 s:  SYSTEM: Notify register to [IPU1-0] line 0, event 15... 
    [DSP2  ]      0.415116 s:  SYSTEM: Notify register to [IPU2] line 0, event 15... 
    [IPU2  ]      0.269566 s: txQue[3] IN 63 DONE !!!
    [IPU1-0]      0.385560 s:  SYSTEM: Notify register to [IPU2] line 0, event 15... 
    [DSP1  ]      0.405111 s:  SYSTEM: Notify register to [IPU2] line 0, event 15... 
    [DSP2  ]      0.415146 s:  SYSTEM: Notify register to [DSP1] line 0, event 15... 
    [IPU2  ]      0.269627 s: Dcan_taskCreate in progress !!!
    [IPU1-0]      0.385682 s:  SYSTEM: Notify register to [DSP1] line 0, event 15... 
    [DSP1  ]      0.405142 s:  SYSTEM: Notify register to [DSP2] line 0, event 15... 
    [DSP2  ]      0.415207 s:  SYSTEM: Notify register to [EVE1] line 0, event 15... 
    [IPU2  ]      0.282224 s: Dcan_taskCreate DONE !!!
    [IPU1-0]      0.385804 s:  SYSTEM: Notify register to [DSP2] line 0, event 15... 
    [DSP1  ]      0.405203 s:  SYSTEM: Notify register to [EVE1] line 0, event 15... 
    [DSP2  ]      0.415238 s:  SYSTEM: Notify init done !!!
    [IPU2  ]      0.282498 s:  DCAN: init receive queue in progress !!!
    [IPU1-0]      0.385926 s:  SYSTEM: Notify register to [EVE1] line 0, event 15... 
    [DSP1  ]      0.405233 s:  SYSTEM: Notify init done !!!
    [DSP2  ]      0.415421 s:  SYSTEM: MsgQ init done !!!
    [IPU2  ]      0.282620 s:  DCAN: init receive queue DONE !!!
    [IPU1-0]      0.386018 s:  SYSTEM: Notify init done !!!
    [DSP1  ]      0.405416 s:  SYSTEM: MsgQ init done !!!
    [DSP2  ]      0.415512 s: RpmsgInit in progress...
    [IPU2  ]      0.282681 s:  DCAN: init re-start clock DONE !!!
    [IPU1-0]      0.387756 s:  SYSTEM: MsgQ init done !!!
    [DSP1  ]      0.405508 s: RpmsgInit in progress...
    [DSP2  ]      0.415543 s:  SYSTEM: IPC init DONE !!!
    [IPU2  ]      0.282773 s:  DCAN: DCAN0 INTERRUPT: HWI Create for INT28 !!!
    [IPU1-0]      0.388702 s: RpmsgInit in progress...
    [DSP1  ]      0.405538 s:  SYSTEM: IPC init DONE !!!
    [DSP2  ]      0.416214 s:  SYSTEM: System Common Init Done !!!
    [IPU2  ]      0.283230 s:  CAN: Initialize DONE !!!
    [IPU1-0]      0.388793 s:  SYSTEM: IPC init DONE !!!
    [DSP1  ]      0.406209 s:  SYSTEM: System Common Init Done !!!
    [DSP2  ]      0.416244 s:  SYSTEM: System DSP Init in progress !!!
    [IPU2  ]      0.283444 s:  CAN: Stat start
    [IPU1-0]      0.395382 s:  SYSTEM: System Common Init Done !!!
    [DSP1  ]      0.406270 s:  SYSTEM: System DSP Init in progress !!!
    [DSP2  ]      0.594979 s: 
    [DSP2  ]  pg:0xb3100258[0] 
    [IPU2  ]      0.283657 s:  DCAN: init receive queue in progress !!!
    [IPU1-0]      0.395504 s:  SYSTEM: System Init in progress !!!
    [DSP1  ]      0.594888 s: 
    [DSP1  ]  pg:0xb3000258[0] 
    [DSP2  ]      0.595010 s: libtrace_create success,group[dsp_platform] size:30876
    [IPU2  ]      0.283749 s:  DCAN: init receive queue DONE !!!
    [IPU1-0]      0.395595 s:  SYSTEM: BSP Common Init in progress !!!
    [DSP1  ]      0.594918 s: libtrace_create success,group[dsp_platform] size:30876
    [DSP2  ]      0.595071 s: dsptrace_init success!prm:0xb3100200
    [IPU2  ]      0.283840 s:  DCAN: init re-start clock DONE !!!
    [IPU1-0]      0.395656 s:  SYSTEM: BSP Common Init Done !!!
    [DSP1  ]      0.594949 s: dsptrace_init success!prm:0xb3000200
    [DSP2  ]      0.595101 s:  SYSTEM: SW Message Box Msg Pool, Free Msg Count = 1024 
    [IPU2  ]      0.283901 s:  DCAN: DCAN1 INTERRUPT: HWI Create for INT29 !!!
    [IPU1-0]      0.395717 s:  SYSTEM: BSP Platform Init in progress !!!
    [DSP1  ]      0.595010 s:  SYSTEM: SW Message Box Msg Pool, Free Msg Count = 1024 
    [IPU2  ]      0.284115 s:  CAN: Initialize DONE !!!
    [IPU1-0]      0.395809 s:  SYSTEM: BSP Platform Init Done !!!
    [DSP2  ]      0.595132 s:  SYSTEM: Heap = LOCAL_L2             @ 0x00800000, Total size = 128960 B (125 KB), Free size = 128960 B (125 KB)
    [IPU2  ]      0.284176 s: SYSTEM: Radar ACC Init in progress
    [IPU1-0]      0.395870 s:  SYSTEM: FVID2 Init in progress !!!
    [DSP1  ]      0.595010 s:  SYSTEM: Heap = LOCAL_L2             @ 0x00800000, Total size = 128960 B (125 KB), Free size = 128960 B (125 KB)
    [IPU2  ]      0.285731 s:  procTask: 99c59bd0
    [IPU1-0]      0.396022 s:  SYSTEM: FVID2 Init Done !!!
    [DSP2  ]      0.595162 s:  SYSTEM: Heap = LOCAL_DDR            @ 0x00000000, Total size = 524288 B (512 KB), Free size = 518736 B (506 KB)
    [IPU2  ]      0.287317 s:  sendTask: 99c59c24
    [IPU1-0]      0.396083 s:  SYSTEM: VPS Init in progress !!!
    [DSP1  ]      0.595071 s:  SYSTEM: Heap = LOCAL_DDR            @ 0x00000000, Total size = 524288 B (512 KB), Free size = 518736 B (506 KB)
    [IPU2  ]      0.287439 s: SYSTEM: Radar ACC Init DONE
    [IPU1-0]      0.396144 s:  SYSTEM: VPDMA Descriptor Memory Address translation ENABLED [0x80000000 -> 0x80000000]
    [DSP2  ]      0.595223 s:  SYSTEM: Initializing Links !!! 
    [IPU2  ]      0.290062 s:  SYSTEM: System Common Init in progress !!!
    [IPU1-0]      0.399103 s: *** VPDMA Firmware Loading... ***
    [DSP1  ]      0.595101 s:  SYSTEM: Initializing Links !!! 
    [IPU2  ]      0.290489 s:  SYSTEM: IPC init in progress !!!
    [DSP2  ]      0.606264 s:  SYSTEM: Initializing Links ... DONE !!! 
    [IPU2  ]      0.290550 s:  SYSTEM: Attaching to [IPU1-0] ... 
    [IPU1-0]      0.399225 s: VPDMA Firmware Address = 0xa035ba40
    [DSP1  ]      0.606295 s:  SYSTEM: Initializing Links ... DONE !!! 
    [IPU2  ]      0.309918 s: can0: entered error warning state
    [DSP2  ]      0.606600 s:  SYSTEM: System DSP Init Done !!!
    [IPU2  ]      0.310162 s: can0: entered error passive state
    [IPU1-0]      0.399316 s: VPDMA Load Address     = 0x4897d004
    [DSP1  ]      0.607027 s:  SYSTEM: System DSP Init Done !!!
    [DSP2  ]      0.881717 s:  SYSTEM: CACHE: L1P = 32 KB, L1D = 32 KB, L2 = 32 KB ... after boot !!!
    [IPU2  ]      0.364454 s:  SYSTEM: Attaching to [IPU1-0] ... SUCCESS !!!
    [DSP1  ]      0.879704 s:  SYSTEM: CACHE: L1P = 32 KB, L1D = 32 KB, L2 = 32 KB ... after boot !!!
    [DSP2  ]      0.881748 s:  SYSTEM: CACHE: L1P = 32 KB, L1D = 32 KB, L2 = 128 KB ... after update by APP !!!
    [IPU2  ]      0.371835 s:  SYSTEM: Attaching to [DSP1] ... SUCCESS !!!
    [IPU1-0]      0.399408 s: VPDMA Firmware Version = 0x4d0001b8
    [DSP1  ]      0.879765 s:  SYSTEM: CACHE: L1P = 32 KB, L1D = 32 KB, L2 = 128 KB ... after update by APP !!!
    [DSP2  ]      1.881717 s: libtrace group[dsp_platform] LIBTRACE_ADD:0xa4280000
    [IPU2  ]      0.377844 s:  SYSTEM: Attaching to [DSP2] ... SUCCESS !!!
    [DSP1  ]      1.879735 s: libtrace group[dsp_platform] LIBTRACE_ADD:0xa4280000
    [DSP2  ]      1.881748 s: [point] line enter_no exit_no  fun_name 
    [IPU2  ]      0.395107 s:  SYSTEM: Attaching to [EVE1] ... SUCCESS !!!
    [IPU1-0]      0.399560 s: VPDMA List Busy Status = 0x00000000
    [DSP1  ]      1.879765 s: [point] line enter_no exit_no  fun_name 
    [DSP2  ]      1.881809 s: 
    [IPU2  ]      0.395260 s:  SYSTEM: Notify register to [IPU1-0] line 0, event 15... 
    [DSP1  ]      1.879796 s: 
    [DSP2  ]      1.881809 s: 
    [IPU2  ]      0.395687 s:  SYSTEM: Notify register to [DSP1] line 0, event 15... 
    [IPU1-0]      0.399621 s: *** VPDMA Firmware Load Success ***
    [DSP1  ]      1.879796 s: 
    [DSP2  ]      1.881809 s:  Alive !
    [IPU2  ]      0.395992 s:  SYSTEM: Notify register to [DSP2] line 0, event 15... 
    [DSP1  ]      1.879826 s:  Alive !
    [DSP2  ]      2.881748 s: libtrace group[dsp_platform] LIBTRACE_ADD:0xa4280000
    [IPU2  ]      0.396236 s:  SYSTEM: Notify register to [EVE1] line 0, event 15... 
    [DSP1  ]      2.879765 s: libtrace group[dsp_platform] LIBTRACE_ADD:0xa4280000
    [DSP2  ]      2.881778 s: [point] line enter_no exit_no  fun_name 
    [IPU2  ]      0.396602 s:  SYSTEM: Notify init done !!!
    [DSP1  ]      2.879796 s: [point] line enter_no exit_no  fun_name 
    [DSP2  ]      2.881809 s: 
    [IPU2  ]      0.401756 s:  SYSTEM: MsgQ init done !!!
    [IPU1-0]      0.399957 s: *** VPDMA Firmware Loading... ***
    [DSP1  ]      2.879826 s: 
    [DSP2  ]      2.881809 s: 
    [IPU2  ]      0.404349 s: RpmsgInit in progress...
    [DSP1  ]      2.879826 s: 
    [DSP2  ]      3.881778 s: libtrace group[dsp_platform] LIBTRACE_ADD:0xa4280000
    [IPU2  ]      0.404715 s:  SYSTEM: IPC init DONE !!!
    [IPU1-0]      0.400048 s: VPDMA Firmware Address = 0xa035ba40
    [DSP1  ]      3.879765 s: libtrace group[dsp_platform] LIBTRACE_ADD:0xa4280000
    [DSP2  ]      3.881809 s: [point] line enter_no exit_no  fun_name 
    [IPU2  ]      0.420057 s:  SYSTEM: System Common Init Done !!!
    [DSP1  ]      3.879796 s: [point] line enter_no exit_no  fun_name 
    [DSP2  ]      3.881839 s: 
    [IPU2  ]      0.420209 s:  SYSTEM: System IPU2 Init in progress !!!
    [IPU1-0]      0.400109 s: VPDMA Load Address     = 0x4899d004
    [DSP1  ]      3.879826 s: 
    [DSP2  ]      3.881839 s: 
    [IPU2  ]      0.422985 s:  UTILS: DMA: HWI Create for INT25 !!!
    [DSP1  ]      3.879857 s: 
    [DSP2  ]      3.881870 s:  Alive !
    [IPU2  ]      0.423259 s:  SYSTEM: SW Message Box Msg Pool, Free Msg Count = 1024 
    [IPU1-0]      0.400231 s: VPDMA Firmware Version = 0x4d0001b8
    [DSP1  ]      3.879857 s:  Alive !
    [DSP2  ]      4.881809 s: libtrace group[dsp_platform] LIBTRACE_ADD:0xa4280000
    [DSP1  ]      4.879796 s: libtrace group[dsp_platform] LIBTRACE_ADD:0xa4280000
    [DSP2  ]      4.881839 s: [point] line enter_no exit_no  fun_name 
    [IPU2  ]      0.423412 s:  SYSTEM: Heap = LOCAL_DDR            @ 0x00000000, Total size = 262144 B (256 KB), Free size = 256152 B (250 KB)
    [IPU1-0]      0.400292 s: VPDMA List Busy Status = 0x00000000
    [DSP1  ]      4.879826 s: [point] line enter_no exit_no  fun_name 
    [DSP2  ]      4.881870 s: 
    [DSP1  ]      4.879857 s: 
    [DSP2  ]      4.881870 s: 
    [IPU2  ]      0.423747 s:  SYSTEM: Initializing Links !!! 
    [IPU1-0]      0.400384 s: *** VPDMA Firmware Load Success ***
    [DSP1  ]      4.879887 s: 
    [DSP2  ]      5.881839 s: libtrace group[dsp_platform] LIBTRACE_ADD:0xa4280000
    [DSP1  ]      5.879826 s: libtrace group[dsp_platform] LIBTRACE_ADD:0xa4280000
    [DSP2  ]      5.881870 s: [point] line enter_no exit_no  fun_name 
    [IPU2  ]      0.803452 s:  UTILS: PRF: ##### Cannot allocate Object for SYNC3 ####
    [DSP1  ]      5.879857 s: [point] line enter_no exit_no  fun_name 
    [DSP2  ]      5.881900 s: 
    [IPU2  ]      0.812358 s:  UTILS: PRF: ##### Cannot allocate Object for ALGORITHM0 ####
    [DSP1  ]      5.879887 s: 
    [DSP2  ]      5.881900 s: 
    [IPU2  ]      0.821234 s:  UTILS: PRF: ##### Cannot allocate Object for ALGORITHM1 ####
    [IPU1-0]      0.400719 s: *** VPDMA Firmware Loading... ***
    [DSP1  ]      5.879918 s: 
    [DSP2  ]      5.881931 s:  Alive !
    [IPU2  ]      0.830445 s:  UTILS: PRF: ##### Cannot allocate Object for ALGORITHM2 ####
    [DSP1  ]      5.879918 s:  Alive !
    [DSP2  ]      6.881870 s: libtrace group[dsp_platform] LIBTRACE_ADD:0xa4280000
    [IPU2  ]      0.839260 s:  UTILS: PRF: ##### Cannot allocate Object for ALGORITHM3 ####
    [IPU1-0]      0.400811 s: VPDMA Firmware Address = 0xa035ba40
    [DSP1  ]      6.879857 s: libtrace group[dsp_platform] LIBTRACE_ADD:0xa4280000
    [DSP2  ]      6.881900 s: [point] line enter_no exit_no  fun_name 
    [IPU2  ]      0.848227 s:  UTILS: PRF: ##### Cannot allocate Object for ALGORITHM4 ####
    [DSP1  ]      6.879887 s: [point] line enter_no exit_no  fun_name 
    [DSP2  ]      6.881931 s: 
    [IPU2  ]      0.857439 s:  UTILS: PRF: ##### Cannot allocate Object for ALGORITHM5 ####
    [IPU1-0]      0.400902 s: VPDMA Load Address     = 0x489bd004
    [DSP1  ]      6.879918 s: 
    [DSP2  ]      6.881931 s: 
    [IPU2  ]      0.866467 s:  UTILS: PRF: ##### Cannot allocate Object for ALGORITHM6 ####
    [DSP1  ]      6.879918 s: 
    [DSP2  ]      7.881900 s: libtrace group[dsp_platform] LIBTRACE_ADD:0xa4280000
    [IPU2  ]      0.876044 s:  UTILS: PRF: ##### Cannot allocate Object for ALGORITHM7 ####
    [IPU1-0]      0.400994 s: VPDMA Firmware Version = 0x4d0001b8
    [DSP1  ]      7.879887 s: libtrace group[dsp_platform] LIBTRACE_ADD:0xa4280000
    [DSP2  ]      7.881900 s: [point] line enter_no exit_no  fun_name 
    [IPU2  ]      0.876227 s:  SYSTEM: Initializing Links ... DONE !!! 
    [DSP1  ]      7.879918 s: [point] line enter_no exit_no  fun_name 
    [DSP2  ]      7.881931 s: 
    [IPU1-0]      0.401085 s: VPDMA List Busy Status = 0x00000000
    [DSP1  ]      7.879948 s: 
    [DSP2  ]      7.881961 s: 
    [IPU2  ]      0.876380 s:  SYSTEM: System IPU2 Init Done !!!
    [DSP1  ]      7.879948 s: 
    [DSP2  ]      7.881961 s:  Alive !
    [IPU2  ]      0.995607 s:  Alive !
    [IPU1-0]      0.401177 s: *** VPDMA Firmware Load Success ***
    [DSP1  ]      7.879979 s:  Alive !
    [DSP2  ]      8.881900 s: libtrace group[dsp_platform] LIBTRACE_ADD:0xa4280000
    [IPU2  ]      2.995668 s:  Alive !
    [DSP1  ]      8.879918 s: libtrace group[dsp_platform] LIBTRACE_ADD:0xa4280000
    [DSP2  ]      8.881931 s: [point] line enter_no exit_no  fun_name 
    [IPU2  ]      4.995668 s:  Alive !
    [DSP1  ]      8.879948 s: [point] line enter_no exit_no  fun_name 
    [DSP2  ]      8.881961 s: 
    [IPU2  ]      6.995790 s:  Alive !
    [DSP1  ]      8.879979 s: 
    [DSP2  ]      8.881992 s: 
    [IPU2  ]      8.995821 s:  Alive !
    [IPU1-0]      0.401512 s: *** VPDMA Firmware Loading... ***
    [DSP1  ]      8.879979 s: 
    [DSP2  ]      9.881931 s: libtrace group[dsp_platform] LIBTRACE_ADD:0xa4280000
    [DSP1  ]      9.879948 s: libtrace group[dsp_platform] LIBTRACE_ADD:0xa4280000
    [DSP2  ]      9.881961 s: [point] line enter_no exit_no  fun_name 
    [IPU1-0]      0.401604 s: VPDMA Firmware Address = 0xa035ba40
    [DSP1  ]      9.879979 s: [point] line enter_no exit_no  fun_name 
    [DSP2  ]      9.881992 s: 
    [DSP1  ]      9.880009 s: 
    [DSP2  ]      9.882022 s: 
    [IPU1-0]      0.401695 s: VPDMA Load Address     = 0x489dd004
    [DSP1  ]      9.880009 s: 
    [DSP2  ]      9.882022 s:  Alive !
    [DSP1  ]      9.880040 s:  Alive !
    [IPU1-0]      0.401787 s: VPDMA Firmware Version = 0x4d0001b8
    [IPU1-0]      0.401878 s: VPDMA List Busy Status = 0x00000000
    [IPU1-0]      0.401939 s: *** VPDMA Firmware Load Success ***
    [IPU1-0]      0.460745 s:  SYSTEM: VPS Init Done !!!
    [IPU1-0]      0.461629 s:  UTILS: DMA: HWI Create for INT34 !!!
    [IPU1-0]      0.461873 s:  SYSTEM: SW Message Box Msg Pool, Free Msg Count = 1023 
    [IPU1-0]      0.461965 s:  SYSTEM: Heap = LOCAL_DDR            @ 0x00000000, Total size = 262144 B (256 KB), Free size = 256376 B (250 KB)
    [IPU1-0]      0.462148 s:  SYSTEM: Heap = SR2_OCMC             @ 0x00000000, Total size = 0 B (0 KB), Free size = 0 B (0 KB)
    [IPU1-0]      0.462270 s:  SYSTEM: Heap = SR1_DDR_CACHED       @ 0x84203000, Total size = 346030080 B (330 MB), Free size = 346030080 B (330 MB)
    [IPU1-0]      0.462514 s:  SYSTEM: Heap = SR0_DDR_NON_CACHED   @ 0xa0100000, Total size = 1046656 B (0 MB), Free size = 954496 B (0 MB)
    [IPU1-0]      0.462666 s:  SYSTEM: Heap = SR3_NON_CACHED       @ 0xb3000000, Total size = 218103680 B (207 MB), Free size = 218103680 B (207 MB)
    [IPU1-0]      0.462849 s:  SYSTEM: Initializing Links !!! 
    [IPU1-0]      0.743244 s:  SYSTEM: Initializing Links ... DONE !!! 
    [IPU1-0]      0.895595 s:  CHAINS: Application Started !!!
    [IPU1-0]      0.997529 s:  Alive !
    [IPU1-0]      2.997559 s:  Alive !
    [IPU1-0]      4.997620 s:  Alive !
    [IPU1-0]      6.997681 s:  Alive !
    [IPU1-0]      8.997712 s:  Alive !
    

    Regards

    Jaye

  • Hi Jaye,

    It looks to me from the logs, there's some peripheral which is being reset by the kernel which causes the DSP to crash. I've attached the sample DTB file, please compare the LATE_ATTACH, DISABLE_PRCM and DISABLE_COMPLETE entries against your device-tree (you can ignore the DISABLE_COMPLETE(dss) and DISABLE_COMPLETE(dispc) calls).

    I notice you don't have any DISABLE_COMPLETE calls in your device tree. You need to call the DISABLE_COMPLETE calls from the device tree and not the delete-node call.

    To debug the kernel, please add the following change to your kernel. This will halt the kernel at init, and then step through the code using CCS.

    --- a/init/main.c

    +++ b/init/main.c

    @@ -511,6 +511,10 @@ asmlinkage __visible void __init start_kernel(void)

           u32 start_time_pmu;

           u32 setup_arch_time_pmu;

           u32 setup_arch_time_32k;

    +  volatile int debugger_wait=1;

    +

    +  while(debugger_wait)

    +      asm("NOP");

    Regards

    Shravan

    /*
     * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/
     *
     * This program is free software; you can redistribute it and/or modify
     * it under the terms of the GNU General Public License version 2 as
     * published by the Free Software Foundation.
     */
    #include "dra7-evm.dts"
    
    #define DISABLE_PRCM(label) &label { ti,no-idle; ti,no-reset-on-init; }
    #define DISABLE_COMPLETE(label) &label { status = "disabled"; ti,no-idle; ti,no-reset-on-init; }
    #define LATE_ATTACH(label) &label { ti,late-attach; ti,no-idle; ti,no-reset-on-init; }
    
    / {
    	chosen {
    		bootargs = "console=ttyO0,115200n8 elevator=noop root=/dev/mmcblk1p2 rw rootwait earlyprintk fixrtc omapdrm.num_crtc=2 consoleblank=0 cma=64M rootfstype=ext4 snd.slots_reserved=1,1 loglevel=0 init=/home/root/init-demo.sh clk_ignore_unused";
    	};
    };
    
    /* modules used by BIOS, disable from Linux */
    DISABLE_COMPLETE(vip1);
    DISABLE_COMPLETE(vip2);
    DISABLE_COMPLETE(vip3);
    DISABLE_COMPLETE(i2c2);
    DISABLE_COMPLETE(wdt2);
    DISABLE_COMPLETE(vpe);
    DISABLE_COMPLETE(ocmcram1);
    DISABLE_COMPLETE(hdmi);
    DISABLE_COMPLETE(hdmi0);
    DISABLE_COMPLETE(dss);
    DISABLE_COMPLETE(dispc);
    
    /* modules shared between BIOS and Linux, Do not reset or cutoff clks */
    DISABLE_PRCM(gpio1);
    DISABLE_PRCM(gpio2);
    DISABLE_PRCM(gpio4);
    DISABLE_PRCM(gpio6);
    
    /* Remote cores loaded by bootloader */
    LATE_ATTACH(ipu1);
    LATE_ATTACH(mmu_ipu1);
    LATE_ATTACH(ipu2);
    LATE_ATTACH(mmu_ipu2);
    LATE_ATTACH(dsp1);
    LATE_ATTACH(mmu0_dsp1);
    LATE_ATTACH(mmu1_dsp1);
    LATE_ATTACH(dsp2);
    LATE_ATTACH(mmu0_dsp2);
    LATE_ATTACH(mmu1_dsp2);
    
    /* timers used by the remote cores */
    LATE_ATTACH(timer3);
    LATE_ATTACH(timer4);
    LATE_ATTACH(timer5);
    LATE_ATTACH(timer6);
    LATE_ATTACH(timer7);
    LATE_ATTACH(timer9);
    LATE_ATTACH(timer11);
    LATE_ATTACH(timer13);
    LATE_ATTACH(timer14);
    LATE_ATTACH(mailbox5);
    LATE_ATTACH(mailbox6);
    LATE_ATTACH(mailbox7);
    
    /* Linux uses first 32 channels, BIOS uses last 32 */
    &edma {
    	dma-requests = <32>;
    };
    
    /* Update the CMA regions for Vision SDK binaries */
    &ipu2_cma_pool {
    	reg = <0x0 0x99000000 0x0 0x5000000>;
    };
    
    &dsp1_cma_pool {
    	reg = <0x0 0xa1000000 0x0 0x2000000>;
    };
    
    &ipu1_cma_pool {
    	reg = <0x0 0x9e000000 0x0 0x2000000>;
    };
    
    &dsp2_cma_pool {
    	reg = <0x0 0xa3000000 0x0 0x2000000>;
    };
    
    
    /* Additional memory regions required for Vision SDK
     * Keep this in sync with VSDK apps/build/tda2xx/mem_segment_definition_linux.xs
     */
    &reserved_mem {
    	cmem_ocmc: cmem@40300000 {
    		compatible = "shared-dma-pool";
    		reg = <0x0 0x40300000 0x0 0x300000>;
    		sram = <&ocmcram1>;
    		no-map;
    		status = "okay";
    	};
    
    	cmem_pool: cmem@A9000000 {
    		compatible = "shared-dma-pool";
    		reg = <0x0 0xA9000000 0x0 0x2000000>;
    		no-map;
    		status = "okay";
    	};
    
    	vsdk_sr1_mem: vsdk_sr1_mem@84000000 {
    		compatible = "shared-dma-pool";
    		reg = <0x0 0x84000000 0x0 0x13000000>;
    		status = "okay";
    	};
    
    	vsdk_sr0_mem: vsdk_sr0_mem@A0000000 {
    		compatible = "shared-dma-pool";
    		reg = <0x0 0xA0000000 0x0 0x1000000>;
    		status = "okay";
    	};
    
    	vsdk_eve_mem: vsdk_eve_mem@A5000000 {
    		compatible = "shared-dma-pool";
    		reg = <0x0 0xA5000000 0x0 0x4000000>;
    		status = "okay";
    	};
    
    	/* Memory reserved for IOMMU table carveout in u-boot */
    	latea_pagetbl: late_pgtbl@bfc00000 {
    		reg = <0x0 0xbfc00000 0x0 0x100000>;
    		no-map;
    		status = "okay";
    	};
    };
    
    &ipu1 {
    	status= "disabled";
    	/delete-property/ watchdog-timers;
    };
    
    &ipu2 {
    	/delete-property/ watchdog-timers;
      timers= <&timer9> , <&timer11>;
    };
    
    &dsp1 {
    	/delete-property/ watchdog-timers;
    };
    
    &dsp2 {
    	/delete-property/ watchdog-timers;
    };
    

  • Hi, Shravan

    I used the devices-tree you uploaded. modify some code, depend on my custom board. The issue still remains.

    /*
     * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/
     *
     * This program is free software; you can redistribute it and/or modify
     * it under the terms of the GNU General Public License version 2 as
     * published by the Free Software Foundation.
     */
    #include "dra7-evm.dts"
    
    #define DISABLE_PRCM(label) &label { ti,no-idle; ti,no-reset-on-init; }
    #define DISABLE_COMPLETE(label) &label { status = "disabled"; ti,no-idle; ti,no-reset-on-init; }
    #define LATE_ATTACH(label) &label { ti,late-attach; ti,no-idle-on-init; ti,no-reset-on-init; }
    //#define LATE_ATTACH(label) &label { ti,late-attach; ti,no-idle; ti,no-reset-on-init; }
    
    /*
     * Restrict the linux used EDMA requests to only 32
     * Last 32 requests lines would be routed by the edma-xbar
     * to perform DMA for DSPs and IPUs
     */
    &edma {
    	dma-requests = <32>;
    };
    
    /* modules used by BIOS, disable from Linux */
    //DISABLE_COMPLETE(vip1);
    //DISABLE_COMPLETE(vip2);
    //DISABLE_COMPLETE(vip3);
    DISABLE_COMPLETE(i2c2);
    DISABLE_COMPLETE(wdt2);
    DISABLE_COMPLETE(ocmcram1);
    DISABLE_COMPLETE(hdmi);
    DISABLE_COMPLETE(hdmi0);
    
    /* modules shared between BIOS and Linux, Do not reset or cutoff clks */
    DISABLE_PRCM(gpio1);
    DISABLE_PRCM(gpio2);
    DISABLE_PRCM(gpio4);
    DISABLE_PRCM(gpio6);
    
    /* Remote cores loaded by bootloader */
    LATE_ATTACH(ipu1);
    LATE_ATTACH(mmu_ipu1);
    LATE_ATTACH(ipu2);
    LATE_ATTACH(mmu_ipu2);
    LATE_ATTACH(dsp1);
    LATE_ATTACH(mmu0_dsp1);
    LATE_ATTACH(mmu1_dsp1);
    LATE_ATTACH(dsp2);
    LATE_ATTACH(mmu0_dsp2);
    LATE_ATTACH(mmu1_dsp2);
    
    /* timers used by the remote cores */
    LATE_ATTACH(timer3);
    LATE_ATTACH(timer4);
    LATE_ATTACH(timer5);
    LATE_ATTACH(timer6);
    LATE_ATTACH(timer7);
    LATE_ATTACH(timer9);
    LATE_ATTACH(timer11);
    LATE_ATTACH(timer13);
    LATE_ATTACH(timer14);
    LATE_ATTACH(mailbox5);
    LATE_ATTACH(mailbox6);
    LATE_ATTACH(mailbox7);
    
    
    
    &reserved_mem {
    	cmem_ocmc: cmem@40300000 {
    		compatible = "shared-dma-pool";
    		reg = <0x0 0x40300000 0x0 0x300000>;
    		sram = <&ocmcram1>;
    		no-map;
    		status = "okay";
    	};
    	
    	vsdk_sr1_mem: vsdk_sr1_mem@84000000 {
    		compatible = "shared-dma-pool";
    		reg = <0x0 0x84000000 0x0 0x15000000>;
    		status = "okay";
    	};
    
    	vsdk_sr0_mem: vsdk_sr0_mem@A0000000 {
    		compatible = "shared-dma-pool";
    		reg = <0x0 0xA0000000 0x0 0x1000000>;
    		status = "okay";
    	};
    
    	vsdk_eve_mem: vsdk_eve_mem@A5000000 {
    		compatible = "shared-dma-pool";
    		reg = <0x0 0xA5000000 0x0 0x4000000>;
    		status = "okay";
    	};
    	
    	vsdk_sr3_mem: vsdk_sr3_mem@B3000000 {
    		compatible = "shared-dma-pool";
    		reg = <0x0 0xB3000000 0x0 0x0D000000>;
    		status = "okay";
    	};
    	
    	/* Memory reserved for IOMMU table carveout in u-boot */
    	latea_pagetbl: late_pgtbl@bfc00000 {
    		reg = <0x0 0xbfc00000 0x0 0x100000>;
    		no-map;
    		status = "okay";
    	};
    };
    
    &ipu1 {
    	/delete-property/ watchdog-timers;
    };
    
    &ipu2 {
    	/delete-property/ watchdog-timers;
    };
    
    &dsp1 {
    	/delete-property/ watchdog-timers;
    };
    
    &dsp2 {
    	/delete-property/ watchdog-timers;
    };
    
    

       I comment vip1/vip2/vip3, remove vpe dss dispc nodes. and enable ipu1, delete timers attr of ipu2, also add sr3 memory.

        I'm sorry our custom boards have removed the JTAG pins. I can't step  through the code using CCS.

    Regards

    Jaye

  • Hi Jaye,

    Are you using both IPU-1 and IPU-2-? If not disable the core you aren't using.
    You also need to specify the timers being used. So to your device tree add the below attribute (assume you're using ipu2).

    &ipu2
    {
    timers= <&timer9>, <&timer11>;
    };

    It is still recommended to use a debugger to root-cause the exact location of the crash. If its not feassible, I would recommend adding "nosmp" attribute to the kernel bootargs, and also set the "loglevel=8". Both these attributes need to be added to the kernel device tree being used in the 'chosen' node. This will ensure the kernel executes in a sequential manner and will help narrow down where the kernel caused the DSP crah (atleast narrows down to a 1s time window of where the kernel crashed). You may want to add some debug prints to the functions:

    omap_hwmod_build_ti_hwmod_list and _enable functions in arch/arm/mach_omap2/omap_hwmod.c file in kernel.

    Regards
    Shravan
  • Hi, Shravan:

    Customer is running Vision SDK 03.02 (DRA750). All the four cores are being used in their project.

    1. IPU1 is running vision sdk tasks
    2. IPU2 is runing CAN Stack
    3. DSP1 and DSP2 are running algorithms

    to enable CAN stack processing as early as possible, customer likes to use fastboot/late-attach these four cores.

    Would you please kindly help us summary the timer assignment for each core?

    Thanks.

  • Hi Peter,

    If VSDK is being used, timer 9, timer 11 are used by IPU1 and IPU2. Similarly timer 5 and timer 6 are used by dsp1 and dsp2. Since you're using all 4 cores, you needn't add the timer entries explicitly.

    Regards
    Shravan
  • Hi Shravan,

    When I remove EVE from VSDK, and with a clean make the DSP1 not crash! But I still don't know why.

    My team will do some stress test to confirm this issue. I will give feedback to the news.

    Regards
    Jaye