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.

TDA2PXEVM: after early boot,late attach may be fail

Part Number: TDA2PXEVM

Hello,

Refer to linux user guide, we had finished to apply the patch of early boot for kernel,  and modified necessary memory address and size according to our memory configuration.We can login to the system,and then run app.out to test early boot.It  may be failed, but I'm not sure, it always print this log "SYSTEM: Attaching to ...". Could you help  to have a look.

Thank you very much!

root@dra7xx-evm:/opt/vision_sdk# ./apps.out
[HOST] OSA: MEM: 0: Mapped 0x9fc00000 to 0xb5e5b000 of size 0x00100000
[HOST] OSA: MEM: 1: Mapped 0x86203000 to 0xac35b000 of size 0x09b00000
[HOST] OSA: MEM: 2: Mapped 0x9fd00000 to 0xac29b000 of size 0x00040000
[HOST] OSA: MEM: 3: Mapped 0x9fdc0000 to 0xac2db000 of size 0x00080000
[HOST] OSA: MEM: 4: Mapped 0x00000000 to 0x00000000 of size 0x00000000
[HOST] OSA: IPU1-0 Remote Log Shared Memory @ 0x9fd00000
[HOST] OSA: HOST Remote Log Shared Memory @ 0x9fd4f140
[HOST] OSA: DSP1 Remote Log Shared Memory @ 0x9fd769e0
[HOST] OSA: DSP2 Remote Log Shared Memory @ 0x9fd9e280
[HOST] OSA: IPU2 Remote Log Shared Memory @ 0x9fe63da0
[HOST] [IPU2 ] 78.882419 s: SYSTEM: Attaching to [IPU1-0] ...
[HOST] [IPU2 ] 79.882449 s: SYSTEM: Attaching to [IPU1-0] ...
[HOST] [DSP1 ] 80.846824 s: SYSTEM: Attaching to [IPU2] ...
[HOST] [DSP2 ] 80.856829 s: SYSTEM: Attaching to [IPU2] ...
[HOST] [DSP1 ] 81.846855 s: SYSTEM: Attaching to [IPU2] ...
[HOST] [DSP2 ] 81.856859 s: SYSTEM: Attaching to [IPU2] ...
[HOST] [IPU2 ] 82.882541 s: SYSTEM: Attaching to [IPU1-0] ...
[HOST] [IPU2 ] 83.882571 s: SYSTEM: Attaching to [IPU1-0] ...
[HOST] [DSP1 ] 84.846916 s: SYSTEM: Attaching to [IPU2] ...
[HOST] [DSP2 ] 84.856920 s: SYSTEM: Attaching to [IPU2] ...
[HOST] [DSP1 ] 85.846946 s: SYSTEM: Attaching to [IPU2] ...
[HOST] [DSP2 ] 85.856951 s: SYSTEM: Attaching to [IPU2] ...
[HOST] [IPU2 ] 87.882663 s: SYSTEM: Attaching to [IPU1-0] ...
[HOST] [DSP1 ] 88.847038 s: SYSTEM: Attaching to [IPU2] ...
[HOST] [DSP2 ] 88.857042 s: SYSTEM: Attaching to [IPU2] ...
[HOST] [DSP1 ] 89.847068 s: SYSTEM: Attaching to [IPU2] ...
[HOST] [DSP2 ] 89.857073 s: SYSTEM: Attaching to [IPU2] ...
[HOST] [IPU2 ] 91.882785 s: SYSTEM: Attaching to [IPU1-0] ...
[HOST] [IPU2 ] 92.882815 s: SYSTEM: Attaching to [IPU1-0] ...

  • Hi,

    Which version of Vision-SDK are you on? Support for early-boot + late-attach on J6+ is available from Vision-SDK 3.04. I notice you're building both IPU-1 and IPU-2, this will need changes for the DTB and the early-boot-load.sh script which copies binaries to the boot partition.

    Regards
    Shravan
  • Hi Shravan,
    1.We develop product start with version 3.4 and merged the version 3.5 code later .
    2.Yes,we are building both IPU-1 and IPU-2. We tried to change early-boot-load.sh script for adding ipu-1 binary,after that it would login into shell fail. What we need to change the DTB ? Below is the dra76-evm-infoadas.dts.Could help to have a look?

    Thanks
    Terence Xia

    ==================================================================
    #include "dra76-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=ttyO9,115200n8 elevator=noop root=/dev/mmcblk0p2 rw rootwait earlyprintk=ttyO9,115200n8 fixrtc omapdrm.num_crtc=2 consoleblank=0 cma=16M rootfstype=ext4 snd.slots_reserved=1,1 loglevel=8 clk_ignore_unused init=/home/root/init-demo.sh";

    };
    };

    /* modules used by BIOS, disable from Linux */
    DISABLE_COMPLETE(vip1);
    DISABLE_COMPLETE(vip2);
    DISABLE_COMPLETE(cal);
    DISABLE_COMPLETE(i2c5);
    DISABLE_COMPLETE(wdt2);
    DISABLE_COMPLETE(vpe);
    DISABLE_COMPLETE(ocmcram1);
    DISABLE_COMPLETE(hdmi);
    DISABLE_COMPLETE(hdmi0);
    DISABLE_COMPLETE(dss);
    DISABLE_COMPLETE(dispc);
    DISABLE_COMPLETE(m_can0);
    DISABLE_COMPLETE(uart5);
    /* modules shared between BIOS and Linux, Do not reset or cutoff clks */
    DISABLE_PRCM(gpio1);
    DISABLE_PRCM(gpio2);
    DISABLE_PRCM(gpio3);
    DISABLE_PRCM(gpio4);
    DISABLE_PRCM(gpio5);
    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 0x96000000 0x0 0x2000000>;
    };

    &dsp1_cma_pool {
    reg = <0x0 0x98000000 0x0 0x1000000>;
    };

    &ipu1_cma_pool {
    reg = <0x0 0x9a000000 0x0 0x1000000>;
    };

    &dsp2_cma_pool {
    reg = <0x0 0x99000000 0x0 0x1000000>;
    };

    /* Additional memory regions required for Vision SDK
    * Keep this in sync with VSDK apps/build/tda2px/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@9e000000 {
    compatible = "shared-dma-pool";
    reg = <0x0 0x9e000000 0x0 0x1000000>;
    no-map;
    status = "okay";
    };

    vsdk_sr1_mem: vsdk_sr1_mem@86000000 {
    compatible = "shared-dma-pool";
    reg = <0x0 0x86000000 0x0 0x9E00000>;
    status = "okay";
    };

    vsdk_sr0_mem: vsdk_sr0_mem@9fb00000 {
    compatible = "shared-dma-pool";
    reg = <0x0 0x9fb00000 0x0 0x500000>;
    status = "okay";
    };

    vsdk_eve_mem: vsdk_eve_mem@84000000 {
    compatible = "shared-dma-pool";
    reg = <0x0 0x84000000 0x0 0x1000000>;
    status = "okay";
    };

    latea_pagetbl: late_pgtbl@93000000 {
    reg = <0x0 0x93000000 0x0 0x100000>;
    no-map;
    status = "okay";
    };
    };

    &ipu2 {
    /delete-property/ watchdog-timers;
    timers= <&timer9>;
    };

    &ipu1 {
    /delete-property/ watchdog-timers;
    };

    &dsp1 {
    /delete-property/ watchdog-timers;
    };

    &dsp2 {
    /delete-property/ watchdog-timers;
    };
  • Hello,
    I tried to adding dra7-ipu1-fw.lzop in boot partition.There is a problem that the system crash. We suspect the reasons may be the modified memory address of ipu1 is unmatch,but I’m not sure.
    I tried to change “ti_components/os_tools/linux/u-boot/u-boot/include/configs/ti_omap5_common.h”, it has a line “#define IPU1_LOAD_ADDR (0xb0000000)”,and I changed the line to “#define IPU1_LOAD_ADDR (0x9A000000)” for matching with IPU1_START_ADDR which defined in mem_segment_definition_linux.xs , and also match with &ipu1_cma_pool address defined in dra76-evm-infoadas.dts .But it does not work ,system still crash. Does IPU1_LOAD_ADDR is equal to IPU1_START_ADDR?

    Regards
    Terence
  • Hi Terence,

    You needn't make any modifications in u-boot. There is support in u-boot to boot-strap all remote cores. Please make sure you're on the branch infoadas-on-psdkla3.04 branch of u-boot.

    Can you please make the below change to your DTB and try.

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

    &ipu1 {
    status = "okay";
    };

    Regards
    Shravan