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.

PROCESSOR-SDK-J7200: Boot failure with custom R5F-Firmware

Part Number: PROCESSOR-SDK-J7200

Tool/software:

Hi TI,

I have a J7200 evaluation board and I want to boot Linux in parallel with a custom firmware running on a MAIN-R5F Core throw U-Boot.
We are using Linux and U-Boot with the SPL from the J7200-Linux-SDK, version 10.01.08.01.
The firmware for the MAIN-R5F Core is developed with the PROCESSOR-SDK-RTOS-J7200, version 10.01.00.04.

To start the firmware via RemoteProc, I have placed it in the root file system under /usr/lib/firmware/customFwDir/ and created a sym-link "j7200-main-r5f0_1-fw".

The problem I'm facing seams to be:
 * U-Boot is trying to start the Kernel but the root-filesystem could not be mounted from the sd-card.

See the following log file:

[    2.978830] 7 fixed-partitions partitions found on MTD device 47040000.spi.0
[    2.978835] Creating 7 MTD partitions on "47040000.spi.0":
[    2.978839] 0x000000000000-0x000000100000 : "ospi.tiboot3"
[    2.979633] 0x000000100000-0x000000300000 : "ospi.tispl"
[    2.980363] 0x000000300000-0x000000700000 : "ospi.u-boot"
[    2.981026] 0x000000700000-0x000000740000 : "ospi.env"
[    2.981679] 0x000000740000-0x000000780000 : "ospi.env.backup"
[    2.982334] 0x000000800000-0x000003fc0000 : "ospi.rootfs"
[    2.982974] 0x000003fc0000-0x000004000000 : "ospi.phypattern"
[    2.988181] davinci_mdio 46000f00.mdio: Configuring MDIO in manual mode
[    3.022230] davinci_mdio 46000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
[    3.024718] davinci_mdio 46000f00.mdio: phy[0]: device 46000f00.mdio:00, driver TI DP83867
[    3.024740] am65-cpsw-nuss 46000000.ethernet: initializing am65 cpsw nuss version 0x6BA02102, cpsw version 0x6BA82102 Ports: 2 quirks:00000000
[    3.024855] am65-cpsw-nuss 46000000.ethernet: initialized cpsw ale version 1.4
[    3.024858] am65-cpsw-nuss 46000000.ethernet: ALE Table size 64
[    3.025115] pps pps0: new PPS source ptp1
[    3.025283] am65-cpsw-nuss 46000000.ethernet: CPTS ver 0x4e8a010b, freq:500000000, add_val:1 pps:1
[    3.188142] am65-cpsw-nuss 46000000.ethernet: set new flow-id-base 48
[    3.192909] debugfs: Directory 'pd:49' with parent 'pm_genpd' already present!
[    3.194502] debugfs: Directory 'pd:35' with parent 'pm_genpd' already present!
[    3.194938] clk: Disabling unused clocks
[    3.208629] ALSA device list:
[    3.208634]   No soundcards found.
[    3.238092] Waiting for root device PARTUUID=cb854782-02...
[   13.282548] platform 4fb0000.mmc: deferred probe pending
[   33.250244] vdd_mmc1: disabling


Comparing to a normal boot without a custom firmware on the MAIN-R5F Core:

[    3.059535] 7 fixed-partitions partitions found on MTD device 47040000.spi.0
[    3.059541] Creating 7 MTD partitions on "47040000.spi.0":
[    3.059545] 0x000000000000-0x000000100000 : "ospi.tiboot3"
[    3.060323] 0x000000100000-0x000000300000 : "ospi.tispl"
[    3.060972] 0x000000300000-0x000000700000 : "ospi.u-boot"
[    3.061679] 0x000000700000-0x000000740000 : "ospi.env"
[    3.062331] 0x000000740000-0x000000780000 : "ospi.env.backup"
[    3.062970] 0x000000800000-0x000003fc0000 : "ospi.rootfs"
[    3.063607] 0x000003fc0000-0x000004000000 : "ospi.phypattern"
[    3.068827] davinci_mdio 46000f00.mdio: Configuring MDIO in manual mode
[    3.102920] davinci_mdio 46000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
[    3.105450] davinci_mdio 46000f00.mdio: phy[0]: device 46000f00.mdio:00, driver TI DP83867
[    3.105472] am65-cpsw-nuss 46000000.ethernet: initializing am65 cpsw nuss version 0x6BA02102, cpsw version 0x6BA82102 Ports: 2 quirks:00000000
[    3.105588] am65-cpsw-nuss 46000000.ethernet: initialized cpsw ale version 1.4
[    3.105592] am65-cpsw-nuss 46000000.ethernet: ALE Table size 64
[    3.106018] pps pps0: new PPS source ptp1
[    3.106179] am65-cpsw-nuss 46000000.ethernet: CPTS ver 0x4e8a010b, freq:500000000, add_val:1 pps:1
[    3.268920] am65-cpsw-nuss 46000000.ethernet: set new flow-id-base 48
[    3.273990] debugfs: Directory 'pd:49' with parent 'pm_genpd' already present!
[    3.275522] debugfs: Directory 'pd:35' with parent 'pm_genpd' already present!
[    3.276378] mmc1: CQHCI version 5.10
[    3.276796] clk: Disabling unused clocks
[    3.290469] ALSA device list:
[    3.290474]   No soundcards found.
[    3.317836] mmc1: SDHCI controller on 4fb0000.mmc [4fb0000.mmc] using ADMA 64-bit
[    3.329898] Waiting for root device PARTUUID=cb854782-02...
[    3.369330] mmc1: new ultra high speed SDR104 SDHC card at address aaaa
[    3.369760] mmcblk1: mmc1:aaaa SK32G 29.7 GiB
[    3.371705]  mmcblk1: p1 p2
[    3.657833] EXT4-fs (mmcblk1p2): recovery complete
[    3.659975] EXT4-fs (mmcblk1p2): mounted filesystem ed7a60d3-4216-44b9-b4b1-3944e6c1f045 r/w with ordered data mode. Quota mode: none.
[    3.660018] VFS: Mounted root (ext4 filesystem) on device 179:98.
[    3.660679] devtmpfs: mounted
[    3.662050] Freeing unused kernel memory: 2048K
[    3.662115] Run /sbin/init as init process


Could you provide me some hints, where my fault could be located?

  • Hello,

    I have couple of queries before i could comment

    1) Did you create the SD card with default firmware images ? ,during that have you faced this issue ? Now after creating custom firmware you are seeing this ?

    2) In boot partition of SD card you will have doprocboot=1 which means the remote cores will be loaded during uboot stage. If you want to do it in parallel to linux then doprocboot must be set to 0

    3) You mentioned you changes link for MCU2_1 core and facing the issue , have you changed for other cores and faced the issue ?

    Please share your inputs on above questions so i could answer better.

    Regards

    Tarun Mukesh

  • Hello,

    regarding your questions:
    1) We are not using a custom firmware images, but I have reproduced the behavior also with the prebuild image tisdk-default-image.

    2) The behavior could be recognised bit doprocboot=1 and doprocboot=0

    3) Yes. I have compile my custom R5F Firmware also for the other main-r5f core 0 (where normally the Ethernet Firmware is running) and changed the link that this firmware should be loaded, but I see the same behavior.

  • Hello,

    I suspect MCU2_0 is running in lock step mode, this disables availability of MCU2_1 core.

    Can you please share me the full log from beginning ? which boot flow are you using SPL or SBL ?

    Regards

    Tarun Mukesh

  • Hello,

    I dont think that MCU2_0 is running in lock step mode, because on this core the ti-eth-fw is currently executed and if I execute the provided example ipc_echo_test_mcu2_1_release_strip.xer5f on MCU2_1, it is working.

    We are using the U-Boot SPL.

    This is the log from the beginning:

    U-Boot SPL 2024.04-ti-gfda88f8bcea3 (Jul 26 2024 - 11:00:12 +0000)
    SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)')
    Trying to boot from MMC2
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    Loading Environment from nowhere... OK
    Starting ATF on ARM64 core...
    
    NOTICE:  BL31: v2.10.0(release):v2.10.0-367-g00f1ec6b87-dirty
    NOTICE:  BL31: Built : 16:09:05, Feb  9 2024
    I/TC: 
    I/TC: OP-TEE version: 4.2.0-dev (gcc version 13.3.0 (GCC)) #1 Fri Apr 12 09:51:21 UTC 2024 aarch64
    I/TC: WARNING: This OP-TEE configuration might be insecure!
    I/TC: WARNING: Please check https://optee.readthedocs.io/en/latest/architecture/porting_guidelines.html
    I/TC: Primary CPU initializing
    I/TC: GIC redistributor base address not provided
    I/TC: Assuming default GIC group status and modifier
    I/TC: SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)')
    I/TC: HUK Initialized
    I/TC: Activated SA2UL device
    I/TC: Fixing SA2UL firewall owner for GP device
    I/TC: Enabled firewalls for SA2UL TRNG device
    I/TC: SA2UL TRNG initialized
    I/TC: SA2UL Drivers initialized
    I/TC: Primary CPU switching to normal world boot
    
    U-Boot SPL 2024.04-ti-gfda88f8bcea3 (Jul 26 2024 - 11:00:12 +0000)
    SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)')
    Detected: J7X-BASE-CPB rev A
    Detected: J7X-GESI-EXP rev A
    Detected: J7X-VSC8514-ETH rev E2
    Trying to boot from MMC2
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    
    
    U-Boot 2024.04-ti-gfda88f8bcea3 (Jul 26 2024 - 11:00:12 +0000)
    
    SoC:   J7200 SR2.0 GP
    Model: Texas Instruments J7200 EVM
    Board: J7200X-PM2-SOM rev E8
    DRAM:  2 GiB (effective 4 GiB)
    Core:  103 devices, 32 uclasses, devicetree: separate
    Flash: 0 Bytes
    MMC:   mmc@4f80000: 0, mmc@4fb0000: 1
    Loading Environment from nowhere... OK
    In:    serial@2800000
    Out:   serial@2800000
    Err:   serial@2800000
    am65_cpsw_nuss ethernet@46000000: K3 CPSW: nuss_ver: 0x6BA02102 cpsw_ver: 0x6BA82102 ale_ver: 0x00293904 Ports:1
    Detected: J7X-BASE-CPB rev A
    Detected: J7X-GESI-EXP rev A
    Detected: J7X-VSC8514-ETH rev E2
    Net:   eth0: ethernet@46000000port@1
    Hit any key to stop autoboot:  2  1  0 
    switch to partitions #0, OK
    mmc1 is current device
    SD/MMC found on device 1
    574 bytes read in 10 ms (55.7 KiB/s)
    Loaded env from uEnv.txt
    Importing environment from mmc1 ...
    gpio: pin gpio@22_17 (gpio 126) value is 1
    gpio: pin gpio@22_16 (gpio 125) value is 0
    k3_r5f_rproc r5f@41000000: Core 1 is already in use. No rproc commands work
    k3_r5f_rproc r5f@41400000: Core 2 is already in use. No rproc commands work
    880124 bytes read in 23 ms (36.5 MiB/s)
    Load Remote Processor 2 with data@addr=0x82000000 880124 bytes: Success!
    1164204 bytes read in 26 ms (42.7 MiB/s)
    Load Remote Processor 3 with data@addr=0x82000000 1164204 bytes: Success!
    20285952 bytes read in 237 ms (81.6 MiB/s)
    79882 bytes read in 12 ms (6.3 MiB/s)
    Working FDT set to 88000000
    ## Flattened Device Tree blob at 88000000
       Booting using the fdt blob at 0x88000000
    Working FDT set to 88000000
       Loading Device Tree to 000000008fee9000, end 000000008fffffff ... OK
    Working FDT set to 8fee9000
    
    Starting kernel ...
    
    [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x411fd080]
    [    0.000000] Linux version 6.6.32-ti-g6de6e418c80e-dirty (oe-user@oe-host) (aarch64-oe-linux-gcc (GCC) 13.3.0, GNU ld (GNU Binutils) 2.42.0.20240716) #1 SMP PREEMPT Fri Jul 26 14:32:20 UTC 2024
    [    0.000000] KASLR disabled due to lack of seed
    [    0.000000] Machine model: Texas Instruments J7200 EVM
    [    0.000000] earlycon: ns16550a0 at MMIO32 0x0000000002800000 (options '')
    [    0.000000] printk: bootconsole [ns16550a0] enabled
    [    0.000000] efi: UEFI not found.
    [    0.000000] OF: reserved mem: 0x000000009e800000..0x000000009fffffff (24576 KiB) nomap non-reusable optee@9e800000
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a0000000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-dma-memory@a0000000, compatible id shared-dma-pool
    [    0.000000] OF: reserved mem: 0x00000000a0000000..0x00000000a00fffff (1024 KiB) nomap non-reusable r5f-dma-memory@a0000000
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a0100000, size 15 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-memory@a0100000, compatible id shared-dma-pool
    [    0.000000] OF: reserved mem: 0x00000000a0100000..0x00000000a0ffffff (15360 KiB) nomap non-reusable r5f-memory@a0100000
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a1000000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-dma-memory@a1000000, compatible id shared-dma-pool
    [    0.000000] OF: reserved mem: 0x00000000a1000000..0x00000000a10fffff (1024 KiB) nomap non-reusable r5f-dma-memory@a1000000
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a1100000, size 15 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-memory@a1100000, compatible id shared-dma-pool
    [    0.000000] OF: reserved mem: 0x00000000a1100000..0x00000000a1ffffff (15360 KiB) nomap non-reusable r5f-memory@a1100000
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a2000000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-dma-memory@a2000000, compatible id shared-dma-pool
    [    0.000000] OF: reserved mem: 0x00000000a2000000..0x00000000a20fffff (1024 KiB) nomap non-reusable r5f-dma-memory@a2000000
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a2100000, size 15 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-memory@a2100000, compatible id shared-dma-pool
    [    0.000000] OF: reserved mem: 0x00000000a2100000..0x00000000a2ffffff (15360 KiB) nomap non-reusable r5f-memory@a2100000
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a3000000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-dma-memory@a3000000, compatible id shared-dma-pool
    [    0.000000] OF: reserved mem: 0x00000000a3000000..0x00000000a30fffff (1024 KiB) nomap non-reusable r5f-dma-memory@a3000000
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a3100000, size 15 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-memory@a3100000, compatible id shared-dma-pool
    [    0.000000] OF: reserved mem: 0x00000000a3100000..0x00000000a3ffffff (15360 KiB) nomap non-reusable r5f-memory@a3100000
    [    0.000000] OF: reserved mem: 0x00000000a4000000..0x00000000a47fffff (8192 KiB) nomap non-reusable ipc-memories@a4000000
    [    0.000000] Zone ranges:
    [    0.000000]   DMA      [mem 0x0000000080000000-0x00000000ffffffff]
    [    0.000000]   DMA32    empty
    [    0.000000]   Normal   [mem 0x0000000100000000-0x00000008ffffffff]
    [    0.000000] Movable zone start for each node
    [    0.000000] Early memory node ranges
    [    0.000000]   node   0: [mem 0x0000000080000000-0x000000009e7fffff]
    [    0.000000]   node   0: [mem 0x000000009e800000-0x00000000a47fffff]
    [    0.000000]   node   0: [mem 0x00000000a4800000-0x00000000ffffffff]
    [    0.000000]   node   0: [mem 0x0000000880000000-0x00000008ffffffff]
    [    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000008ffffffff]
    [    0.000000] cma: Reserved 32 MiB at 0x00000000fe000000 on node -1
    [    0.000000] psci: probing for conduit method from DT.
    [    0.000000] psci: PSCIv1.1 detected in firmware.
    [    0.000000] psci: Using standard PSCI v0.2 function IDs
    [    0.000000] psci: Trusted OS migration not required
    [    0.000000] psci: SMC Calling Convention v1.4
    [    0.000000] percpu: Embedded 20 pages/cpu s42920 r8192 d30808 u81920
    [    0.000000] Detected PIPT I-cache on CPU0
    [    0.000000] CPU features: detected: GIC system register CPU interface
    [    0.000000] CPU features: detected: Spectre-v3a
    [    0.000000] CPU features: detected: Spectre-BHB
    [    0.000000] CPU features: detected: ARM erratum 1742098
    [    0.000000] CPU features: detected: ARM errata 1165522, 1319367, or 1530923
    [    0.000000] alternatives: applying boot alternatives
    [    0.000000] Kernel command line: console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 root=PARTUUID=cb854782-02 rw rootfstype=ext4 rootwait
    [    0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
    [    0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
    [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 1032192
    [    0.000000] mem auto-init: stack:all(zero), heap alloc:off, heap free:off
    [    0.000000] software IO TLB: area num 2.
    [    0.000000] software IO TLB: mapped [mem 0x00000000fa000000-0x00000000fe000000] (64MB)
    [    0.000000] Memory: 3896268K/4194304K available (11968K kernel code, 1250K rwdata, 4036K rodata, 2432K init, 502K bss, 265268K reserved, 32768K cma-reserved)
    [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
    [    0.000000] rcu: Preemptible hierarchical RCU implementation.
    [    0.000000] rcu: 	RCU event tracing is enabled.
    [    0.000000] rcu: 	RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=2.
    [    0.000000] 	Trampoline variant of Tasks RCU enabled.
    [    0.000000] 	Tracing variant of Tasks RCU enabled.
    [    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
    [    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
    [    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
    [    0.000000] GICv3: GIC: Using split EOI/Deactivate mode
    [    0.000000] GICv3: 960 SPIs implemented
    [    0.000000] GICv3: 0 Extended SPIs implemented
    [    0.000000] Root IRQ handler: gic_handle_irq
    [    0.000000] GICv3: GICv3 features: 16 PPIs
    [    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000001900000
    [    0.000000] ITS [mem 0x01820000-0x0182ffff]
    [    0.000000] GIC: enabling workaround for ITS: Socionext Synquacer pre-ITS
    [    0.000000] ITS@0x0000000001820000: Devices Table too large, reduce ids 20->19
    [    0.000000] ITS@0x0000000001820000: allocated 524288 Devices @880800000 (flat, esz 8, psz 64K, shr 0)
    [    0.000000] ITS: using cache flushing for cmd queue
    [    0.000000] GICv3: using LPI property table @0x0000000880040000
    [    0.000000] GIC: using cache flushing for LPI property table
    [    0.000000] GICv3: CPU0: using allocated LPI pending table @0x0000000880050000
    [    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
    [    0.000000] arch_timer: cp15 timer(s) running at 200.00MHz (phys).
    [    0.000000] clocksource: arch_sys_counter: mask: 0x3ffffffffffffff max_cycles: 0x2e2049d3e8, max_idle_ns: 440795210634 ns
    [    0.000000] sched_clock: 58 bits at 200MHz, resolution 5ns, wraps every 4398046511102ns
    [    0.008372] Console: colour dummy device 80x25
    [    0.012939] Calibrating delay loop (skipped), value calculated using timer frequency.. 400.00 BogoMIPS (lpj=800000)
    [    0.023612] pid_max: default: 32768 minimum: 301
    [    0.028366] LSM: initializing lsm=capability,integrity
    [    0.033674] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
    [    0.041251] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
    [    0.050138] RCU Tasks: Setting shift to 1 and lim to 1 rcu_task_cb_adjust=1.
    [    0.057404] RCU Tasks Trace: Setting shift to 1 and lim to 1 rcu_task_cb_adjust=1.
    [    0.065266] rcu: Hierarchical SRCU implementation.
    [    0.070165] rcu: 	Max phase no-delay instances is 1000.
    [    0.075688] Platform MSI: msi-controller@1820000 domain created
    [    0.081866] PCI/MSI: /bus@100000/interrupt-controller@1800000/msi-controller@1820000 domain created
    [    0.091251] EFI services will not be available.
    [    0.095993] smp: Bringing up secondary CPUs ...
    I/TC: Secondary CPU 1 initializing
    I/TC: Secondary CPU 1 switching to normal world boot
    [    0.109165] Detected PIPT I-cache on CPU1
    [    0.109213] GICv3: CPU1: found redistributor 1 region 0:0x0000000001920000
    [    0.109228] GICv3: CPU1: using allocated LPI pending table @0x0000000880060000
    [    0.109260] CPU1: Booted secondary processor 0x0000000001 [0x411fd080]
    [    0.109318] smp: Brought up 1 node, 2 CPUs
    [    0.138668] SMP: Total of 2 processors activated.
    [    0.143473] CPU features: detected: 32-bit EL0 Support
    [    0.148726] CPU features: detected: CRC32 instructions
    [    0.154003] CPU: All CPU(s) started at EL2
    [    0.158185] alternatives: applying system-wide alternatives
    [    0.164764] devtmpfs: initialized
    [    0.173071] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
    [    0.183049] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
    [    0.190613] pinctrl core: initialized pinctrl subsystem
    [    0.196207] DMI not present or invalid.
    [    0.200662] NET: Registered PF_NETLINK/PF_ROUTE protocol family
    [    0.207148] DMA: preallocated 512 KiB GFP_KERNEL pool for atomic allocations
    [    0.214457] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
    [    0.222496] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
    [    0.230617] audit: initializing netlink subsys (disabled)
    [    0.236239] audit: type=2000 audit(0.152:1): state=initialized audit_enabled=0 res=1
    [    0.236441] thermal_sys: Registered thermal governor 'step_wise'
    [    0.244163] thermal_sys: Registered thermal governor 'power_allocator'
    [    0.250319] cpuidle: using governor menu
    [    0.261059] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
    [    0.268022] ASID allocator initialised with 65536 entries
    [    0.282067] platform a40000.pinctrl: Fixed dependency cycle(s) with /bus@100000/pinctrl@a40000/mcu-cpsw-cpts
    [    0.293094] Modules: 27680 pages in range for non-PLT usage
    [    0.293098] Modules: 519200 pages in range for PLT usage
    [    0.299245] HugeTLB: registered 1.00 GiB page size, pre-allocated 0 pages
    [    0.311619] HugeTLB: 0 KiB vmemmap can be freed for a 1.00 GiB page
    [    0.318022] HugeTLB: registered 32.0 MiB page size, pre-allocated 0 pages
    [    0.324956] HugeTLB: 0 KiB vmemmap can be freed for a 32.0 MiB page
    [    0.331359] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
    [    0.338293] HugeTLB: 0 KiB vmemmap can be freed for a 2.00 MiB page
    [    0.344694] HugeTLB: registered 64.0 KiB page size, pre-allocated 0 pages
    [    0.351628] HugeTLB: 0 KiB vmemmap can be freed for a 64.0 KiB page
    [    0.358828] k3-chipinfo 43000014.chipid: Family:J7200 rev:SR2.0 JTAGID[0x1bb6d02f] Detected
    [    0.368152] iommu: Default domain type: Translated
    [    0.373070] iommu: DMA domain TLB invalidation policy: strict mode
    [    0.379518] SCSI subsystem initialized
    [    0.383521] usbcore: registered new interface driver usbfs
    [    0.389147] usbcore: registered new interface driver hub
    [    0.394586] usbcore: registered new device driver usb
    [    0.399982] pps_core: LinuxPPS API ver. 1 registered
    [    0.405055] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    0.414393] PTP clock support registered
    [    0.418497] EDAC MC: Ver: 3.0.0
    [    0.421948] scmi_core: SCMI protocol bus registered
    [    0.427088] FPGA manager framework
    [    0.430602] Advanced Linux Sound Architecture Driver Initialized.
    [    0.437259] vgaarb: loaded
    [    0.440193] clocksource: Switched to clocksource arch_sys_counter
    [    0.446574] VFS: Disk quotas dquot_6.6.0
    [    0.450601] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
    [    0.460877] NET: Registered PF_INET protocol family
    [    0.466177] IP idents hash table entries: 65536 (order: 7, 524288 bytes, linear)
    [    0.475202] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes, linear)
    [    0.483980] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
    [    0.491908] TCP established hash table entries: 32768 (order: 6, 262144 bytes, linear)
    [    0.500138] TCP bind hash table entries: 32768 (order: 8, 1048576 bytes, linear)
    [    0.508899] TCP: Hash tables configured (established 32768 bind 32768)
    [    0.515740] UDP hash table entries: 2048 (order: 4, 65536 bytes, linear)
    [    0.522675] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes, linear)
    [    0.530104] NET: Registered PF_UNIX/PF_LOCAL protocol family
    [    0.536229] RPC: Registered named UNIX socket transport module.
    [    0.542288] RPC: Registered udp transport module.
    [    0.547092] RPC: Registered tcp transport module.
    [    0.551895] RPC: Registered tcp-with-tls transport module.
    [    0.557503] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    0.564086] NET: Registered PF_XDP protocol family
    [    0.568992] PCI: CLS 0 bytes, default 64
    [    0.573674] Initialise system trusted keyrings
    [    0.578343] workingset: timestamp_bits=46 max_order=20 bucket_order=0
    [    0.585129] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [    0.591262] NFS: Registering the id_resolver key type
    [    0.596459] Key type id_resolver registered
    [    0.600734] Key type id_legacy registered
    [    0.604837] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
    [    0.611686] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
    [    0.632898] Key type asymmetric registered
    [    0.637088] Asymmetric key parser 'x509' registered
    [    0.642098] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 244)
    [    0.649658] io scheduler mq-deadline registered
    [    0.654285] io scheduler kyber registered
    [    0.658399] io scheduler bfq registered
    [    0.664142] pinctrl-single 4301c000.pinctrl: 13 pins, size 52
    [    0.670156] pinctrl-single 4301c038.pinctrl: 2 pins, size 8
    [    0.675952] pinctrl-single 4301c068.pinctrl: 59 pins, size 236
    [    0.682151] pinctrl-single 4301c174.pinctrl: 8 pins, size 32
    [    0.688075] pinctrl-single 104200.pinctrl: 20 pins, size 80
    [    0.693834] pinctrl-single 104280.pinctrl: 8 pins, size 32
    [    0.699542] pinctrl-single 11c000.pinctrl: 67 pins, size 268
    [    0.705575] pinctrl-single 11c11c.pinctrl: 3 pins, size 12
    [    0.711575] pinctrl-single a40000.pinctrl: 512 pins, size 2048
    [    0.721038] Serial: 8250/16550 driver, 12 ports, IRQ sharing enabled
    [    0.732713] loop: module loaded
    [    0.736520] megasas: 07.725.01.00-rc1
    [    0.742123] tun: Universal TUN/TAP device driver, 1.6
    [    0.747863] VFIO - User Level meta-driver version: 0.3
    [    0.753721] usbcore: registered new interface driver usb-storage
    [    0.760176] i2c_dev: i2c /dev entries driver
    [    0.765175] sdhci: Secure Digital Host Controller Interface driver
    [    0.771503] sdhci: Copyright(c) Pierre Ossman
    [    0.776075] sdhci-pltfm: SDHCI platform and OF driver helper
    [    0.782177] ledtrig-cpu: registered to indicate activity on CPUs
    [    0.788479] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
    [    0.795469] usbcore: registered new interface driver usbhid
    [    0.801172] usbhid: USB HID core driver
    [    0.805896] hw perfevents: enabled with armv8_cortex_a72 PMU driver, 7 counters available
    [    0.814522] optee: probing for conduit method.
    I/TC: Reserved shared memory is enabled
    I/TC: Dynamic shared memory is enabled
    I/TC: Normal World virtualization support is disabled
    I/TC: Asynchronous notifications are disabled
    [    0.819077] optee: revision 4.2 (12d7c4ee)
    [    0.835514] optee: dynamic shared memory is enabled
    [    0.845124] random: crng init done
    [    0.848665] optee: initialized driver
    [    0.853628] NET: Registered PF_PACKET protocol family
    [    0.858846] Key type dns_resolver registered
    [    0.866689] registered taskstats version 1
    [    0.871094] Loading compiled-in X.509 certificates
    [    0.883502] ti-sci 44083000.system-controller: ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)')
    [    0.958634] omap_i2c 42120000.i2c: bus 0 rev0.12 at 400 kHz
    [    0.965130] pca953x 1-0021: supply vcc not found, using dummy regulator
    [    0.971965] pca953x 1-0021: using no AI
    [    0.996634] pca953x 1-0020: supply vcc not found, using dummy regulator
    [    1.003461] pca953x 1-0020: using no AI
    [    1.008039] pca953x 1-0022: supply vcc not found, using dummy regulator
    [    1.014865] pca953x 1-0022: using AI
    [    1.019161] omap_i2c 2000000.i2c: bus 1 rev0.12 at 400 kHz
    [    1.025332] pca953x 2-0020: supply vcc not found, using dummy regulator
    [    1.032153] pca953x 2-0020: using no AI
    [    1.048513] omap_i2c 2010000.i2c: bus 2 rev0.12 at 400 kHz
    [    1.054509] ti-sci-intr 42200000.interrupt-controller: Interrupt Router 137 domain created
    [    1.063100] ti-sci-intr bus@100000:interrupt-controller@a00000: Interrupt Router 131 domain created
    [    1.072450] ti-sci-intr 310e0000.interrupt-controller: Interrupt Router 213 domain created
    [    1.081069] ti-sci-inta 33d00000.msi-controller: Interrupt Aggregator domain 209 created
    [    1.091069] k3-ringacc 2b800000.ringacc: Ring Accelerator probed rings:286, gp-rings[96,32] sci-dev-id:235
    [    1.100958] k3-ringacc 2b800000.ringacc: dma-ring-reset-quirk: disabled
    [    1.107722] k3-ringacc 2b800000.ringacc: RA Proxy rev. 66349100, num_proxies:64
    [    1.118210] k3-ringacc 3c000000.ringacc: Ring Accelerator probed rings:1024, gp-rings[120,200] sci-dev-id:211
    [    1.128366] k3-ringacc 3c000000.ringacc: dma-ring-reset-quirk: disabled
    [    1.135125] k3-ringacc 3c000000.ringacc: RA Proxy rev. 66349100, num_proxies:64
    [    1.143284] 40a00000.serial: ttyS1 at MMIO 0x40a00000 (irq = 268, base_baud = 6000000) is a 8250
    [    1.152928] 2800000.serial: ttyS2 at MMIO 0x2800000 (irq = 269, base_baud = 3000000) is a 8250
    [    1.161819] printk: console [ttyS2] enabled
    [    1.161819] printk: console [ttyS2] enabled
    [    1.170296] printk: bootconsole [ns16550a0] disabled
    [    1.170296] printk: bootconsole [ns16550a0] disabled
    [    1.184866] 2810000.serial: ttyS3 at MMIO 0x2810000 (irq = 270, base_baud = 3000000) is a 8250
    [    1.194055] 2830000.serial: ttyS5 at MMIO 0x2830000 (irq = 271, base_baud = 3000000) is a 8250
    [    1.203889] davinci_mdio 46000f00.mdio: Configuring MDIO in manual mode
    [    1.248198] davinci_mdio 46000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
    [    1.258162] davinci_mdio 46000f00.mdio: phy[0]: device 46000f00.mdio:00, driver TI DP83867
    [    1.266439] am65-cpsw-nuss 46000000.ethernet: initializing am65 cpsw nuss version 0x6BA02102, cpsw version 0x6BA82102 Ports: 2 quirks:00000000
    [    1.279292] am65-cpsw-nuss 46000000.ethernet: initialized cpsw ale version 1.4
    [    1.286502] am65-cpsw-nuss 46000000.ethernet: ALE Table size 64
    [    1.292707] pps pps0: new PPS source ptp0
    [    1.296866] am65-cpsw-nuss 46000000.ethernet: CPTS ver 0x4e8a010b, freq:500000000, add_val:1 pps:1
    [    1.307303] am65-cpts 310d0000.cpts: CPTS ver 0x4e8a010b, freq:200000000, add_val:4 pps:0
    [    1.316100] omap-mailbox 31f80000.mailbox: omap mailbox rev 0x66fc8900
    [    1.316375] mmc0: CQHCI version 5.10
    [    1.326212] omap-mailbox 31f81000.mailbox: omap mailbox rev 0x66fc8900
    [    1.335160] davinci_gpio 600000.gpio: error -ENXIO: IRQ index 2 not found
    [    1.372236] mmc0: SDHCI controller on 4f80000.mmc [4f80000.mmc] using ADMA 64-bit
    [    1.462381] mmc0: Command Queue Engine enabled
    [    1.466840] mmc0: new HS400 MMC card at address 0001
    [    1.472160] mmcblk0: mmc0:0001 G1M15L 29.6 GiB
    [    1.477611]  mmcblk0: p1 p2
    [    1.480752] mmcblk0boot0: mmc0:0001 G1M15L 31.5 MiB
    [    1.486369] mmcblk0boot1: mmc0:0001 G1M15L 31.5 MiB
    [    1.491936] mmcblk0rpmb: mmc0:0001 G1M15L 4.00 MiB, chardev (239:0)
    [    1.624137] tps6594-rtc tps6594-rtc.4.auto: registered as rtc0
    [    1.630108] tps6594-rtc tps6594-rtc.4.auto: hctosys: unable to read the hardware clock
    [    1.667870] vdd_core_0v85: Bringing 800000uV into 850000-850000uV
    [    1.785056] j721e-pcie 2910000.pcie: host bridge /bus@100000/pcie@2910000 ranges:
    [    1.792560] j721e-pcie 2910000.pcie:       IO 0x0018001000..0x0018010fff -> 0x0018001000
    [    1.800647] j721e-pcie 2910000.pcie:      MEM 0x0018011000..0x001fffffff -> 0x0018011000
    [    1.808729] j721e-pcie 2910000.pcie:   IB MEM 0x0000000000..0xffffffffffff -> 0x0000000000
    [    2.824811] j721e-pcie 2910000.pcie: PCI host bridge to bus 0000:00
    [    2.831093] pci_bus 0000:00: root bus resource [bus 00-ff]
    [    2.836571] pci_bus 0000:00: root bus resource [io  0x0000-0xffff] (bus address [0x18001000-0x18010fff])
    [    2.846031] pci_bus 0000:00: root bus resource [mem 0x18011000-0x1fffffff]
    [    2.852910] pci 0000:00:00.0: [104c:b00f] type 01 class 0x060400
    [    2.859003] pci 0000:00:00.0: supports D1
    [    2.863003] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
    [    2.868754] pci 0000:00:00.0: reg 0x224: [mem 0x00000000-0x003fffff 64bit]
    [    2.875615] pci 0000:00:00.0: VF(n) BAR0 space: [mem 0x00000000-0x00ffffff 64bit] (contains BAR0 for 4 VFs)
    [    2.886708] pci 0000:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
    [    2.894814] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
    [    2.901429] pci 0000:00:00.0: BAR 7: assigned [mem 0x18400000-0x193fffff 64bit]
    [    2.908726] pci 0000:00:00.0: PCI bridge to [bus 01]
    [    2.913757] pcieport 0000:00:00.0: of_irq_parse_pci: failed with rc=-22
    [    2.920534] pcieport 0000:00:00.0: PME: Signaling with IRQ 545
    [    2.926534] pcieport 0000:00:00.0: AER: enabled with IRQ 545
    [    2.933055] ti-udma 285c0000.dma-controller: Channels: 26 (tchan: 13, rchan: 13, gp-rflow: 8)
    [    2.943242] ti-udma 31150000.dma-controller: Channels: 50 (tchan: 25, rchan: 25, gp-rflow: 8)
    [    2.955780] spi-nor spi0.0: s28hs512t (65536 Kbytes)
    [    2.960802] 7 fixed-partitions partitions found on MTD device 47040000.spi.0
    [    2.967840] Creating 7 MTD partitions on "47040000.spi.0":
    [    2.973315] 0x000000000000-0x000000100000 : "ospi.tiboot3"
    [    2.979391] 0x000000100000-0x000000300000 : "ospi.tispl"
    [    2.985215] 0x000000300000-0x000000700000 : "ospi.u-boot"
    [    2.991064] 0x000000700000-0x000000740000 : "ospi.env"
    [    2.996697] 0x000000740000-0x000000780000 : "ospi.env.backup"
    [    3.002902] 0x000000800000-0x000003fc0000 : "ospi.rootfs"
    [    3.008756] 0x000003fc0000-0x000004000000 : "ospi.phypattern"
    [    3.018990] davinci_mdio 46000f00.mdio: Configuring MDIO in manual mode
    [    3.064198] davinci_mdio 46000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
    [    3.074169] davinci_mdio 46000f00.mdio: phy[0]: device 46000f00.mdio:00, driver TI DP83867
    [    3.082450] am65-cpsw-nuss 46000000.ethernet: initializing am65 cpsw nuss version 0x6BA02102, cpsw version 0x6BA82102 Ports: 2 quirks:00000000
    [    3.095316] am65-cpsw-nuss 46000000.ethernet: initialized cpsw ale version 1.4
    [    3.102526] am65-cpsw-nuss 46000000.ethernet: ALE Table size 64
    [    3.108695] pps pps0: new PPS source ptp1
    [    3.112849] am65-cpsw-nuss 46000000.ethernet: CPTS ver 0x4e8a010b, freq:500000000, add_val:1 pps:1
    [    3.129042] am65-cpsw-nuss 46000000.ethernet: set new flow-id-base 48
    [    3.139975] debugfs: Directory 'pd:49' with parent 'pm_genpd' already present!
    [    3.148527] debugfs: Directory 'pd:35' with parent 'pm_genpd' already present!
    [    3.156237] clk: Disabling unused clocks
    [    3.172529] ALSA device list:
    [    3.175487]   No soundcards found.
    [    3.179078] Waiting for root device PARTUUID=cb854782-02...
    [   13.184480] platform gpio-regulator-TLV71033: deferred probe pending
    [   33.920211] vdd_mmc1: disabling
    

    With best regards,
    Frank

  • Hello Frank,

    I dont think that MCU2_0 is running in lock step mode, because on this core the ti-eth-fw is currently executed and if I execute the provided example ipc_echo_test_mcu2_1_release_strip.xer5f on MCU2_1, it is working.

    okay, What is your custom firmware then ? Is the custom firmware memory map matching with memory map in linux ?

    As i said earlier if dorprocboot is 1 , at uboot stage itself all remote procs are loaded.  

    Later linux will load.

    To start the firmware via RemoteProc, I have placed it in the root file system under /usr/lib/firmware/customFwDir/ and created a sym-link "j7200-main-r5f0_1-fw".

    After booting, give "ls -l /lib/firmware" command this tells whether your core is soft linked correctly or not.

    Regards

    Tarun mukesh

  • Hello,

    The custom firmware currently initializes the IPC Driver and waits for Linux VDev is ready by checking Ipc_isRemoteReady(IPC_MPU1_0).
    Much further the firmware is not running because of the boot issue of Linux.

    The memory map of the custom firmware is the same as in the ti example ipc_rtos_echo_test for MCU2_1 and should match with the memory map of linux.

    As i said earlier if dorprocboot is 1 , at uboot stage itself all remote procs are loaded.  

    I have checked in uboot and the variable dorprocboot is not defined. And the situation does not change if i define the variable to 1 or 0 before boot.

    After booting, give "ls -l /lib/firmware" command this tells whether your core is soft linked correctly or not.

    Here my linkage of the firmware images:

    lrwxrwxrwx 1 root root      69 Mär  9  2018 j7200-main-r5f0_0-fw -> /usr/lib/firmware/ti-eth/j7200/app_remoteswitchcfg_server_strip.xer5f
    lrwxrwxrwx 1 root root      76 Mär  9  2018 j7200-main-r5f0_0-fw-sec -> /usr/lib/firmware/ti-eth/j7200/app_remoteswitchcfg_server_strip.xer5f.signed
    lrwxrwxrwx 1 root root      41 Jun 23 08:45 j7200-main-r5f0_1-fw -> /usr/lib/firmware/j7200/main-r5f-fw.xer5f
    lrwxrwxrwx 1 root root      71 Mär  9  2018 j7200-main-r5f0_1-fw__ -> /usr/lib/firmware/ti-ipc/j7200/ipc_echo_test_mcu2_1_release_strip.xer5f
    lrwxrwxrwx 1 root root      78 Mär  9  2018 j7200-main-r5f0_1-fw-sec__ -> /usr/lib/firmware/ti-ipc/j7200/ipc_echo_test_mcu2_1_release_strip.xer5f.signed
    lrwxrwxrwx 1 root root      71 Mär  9  2018 j7200-mcu-r5f0_1-fw -> /usr/lib/firmware/ti-ipc/j7200/ipc_echo_test_mcu1_1_release_strip.xer5f
    lrwxrwxrwx 1 root root      78 Mär  9  2018 j7200-mcu-r5f0_1-fw-sec -> /usr/lib/firmware/ti-ipc/j7200/ipc_echo_test_mcu1_1_release_strip.xer5f.signed
    drwxr-xr-x 2 root root    4096 Jun 23 08:43 j7200
    drwxr-xr-x 3 root root    4096 Mär  9  2018 ti-eth
    drwxr-xr-x 3 root root    4096 Mär  9  2018 ti-ipc

    My custom firmware loaded and started correctly, because I can attach my debugger and see that it is waiting in the above mentioned waiting loop.

    Regards
    Frank

  • Hello,

    To start the firmware via RemoteProc, I have placed it in the root file system under /usr/lib/firmware/customFwDir/ and created a sym-link "j7200-main-r5f0_1-fw".

    j7200-main-r5f0_1-fw -> /usr/lib/firmware/j7200/main-r5f-fw.xer5f 

    This deviates from whatever you said before. The path of custom Fw Dir is not seen here. 

    j7200-main-r5f0_1-fw__ -> /usr/lib/firmware/ti-ipc/j7200/ipc_echo_test_mcu2_1_release_strip.xer5f

    This redundant is not needed if you are using cust firmware.

    I have checked in uboot and the variable dorprocboot is not defined. And the situation does not change if i define the variable to 1 or 0 before boot.

    You can stop at uboot stage and give "printenv dorprocboot"

    You can further go ahead and set it "setenv dorprocboot 0" to boot at linux stage.

    Regards

    Tarun mukesh

  • Thank you very much.
    Setting doprocboot=0 solved the issue.

    Can you explain, why booting my custom firmware is only possible at linux stage and results in the above shown error?

  • Hello,

    I will be on leave till Monday. Please expect delay in response.

    Regards 

    Tarun Mukesh 

  • Hello,

    It could be in uboot stage the folder you kept the firmware is not detected, otherwise it should have happened. Even if linux loads the remote cores it shouldn't be a problem.

    Regards

    Tarun Mukesh