Hello TI,
We are trying to boot Linux from MMC on our custom hardware, and having issues. We have built the image using SDK: ti-processor-sdk-linux-adas-j784s4-evm-09_01_00_06 and a custom k3-j784s4-evm.dtb file
We have been debugging with the XDS110 probe and the kernel is hanging early in the boot process during mem_init() where it is allocating memory for the TLB.
We thought it may be due to memory differences because our board only has one DDR that is 2GB
Can you please help us debug this to get the kernel running. I have included the boot log and our DTS file below.
U-Boot SPL 2023.04-g9d6c1f49 (Dec 15 2023 - 21:36:01 +0000) SYSFW ABI: 3.1 (firmware rev 0x0009 '9.0.6--v09.00.06 (Kool Koala)') SPL initial stack usage: 13424 bytes Trying to boot from SPI cadence_spi spi@47040000: spi_find_chip_select: plat=41c66da4, cs=0 jedec_spi_nor flash@0: Software reset enable failed: -524 _spi_get_bus_and_cs: bus=41c66c98, slave=81ec06b0 Loading Environment from nowhere... OK Starting ATF on ARM64 core... NOTICE: BL31: v2.9(release):v2.9.0 NOTICE: BL31: Built : 21:36:33, Dec 15 2023 I/TC: I/TC: OP-TEE version: 3.20.0 (gcc version 11.3.1 20220712 (Arm GNU Toolchain 11.3.Rel1)) #1 Fri Dec 15 21:37:02 UTC 2023 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: SYSFW ABI: 3.1 (firmware rev 0x0009 '9.0.6--v09.00.06 (Kool Koala)') 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 2023.04-g9d6c1f49 (Dec 15 2023 - 21:37:37 +0000) SYSFW ABI: 3.1 (firmware rev 0x0009 '9.0.6--v09.00.06 (Kool Koala)') Trying to boot from SPI cadence_spi spi@47040000: spi_find_chip_select: plat=80479478, cs=0 jedec_spi_nor flash@0: Software reset enable failed: -524 k3-navss-ringacc ringacc@2b800000: Ring Accelerator probed rings:286, gp-rings[96,20] sci-dev-id:328 k3-navss-ringacc ringacc@2b800000: dma-ring-reset-quirk: disabled _spi_get_bus_and_cs: bus=804792b0, slave=81c007f0 U-Boot 2023.04-g9d6c1f49 (Dec 15 2023 - 21:37:37 +0000) SoC: J784S4 SR1.0 GP Model: Texas Instruments J784S4 EVM DRAM: 2 GiB (effective 4 GiB) drivers/mux/mmio.c:90- idle-statesCore: 89 devices, 30 uclasses, devicetree: separate Flash: 0 Bytes MMC: mmc@4f80000: 0 Loading Environment from nowhere... OK In: serial@2800000 Out: serial@2800000 Err: serial@2800000 Failed to probe am65_cpsw_nuss driver Net: No ethernet found. => setenv mmcdev 0 => setenv bootpart 0:0 => setenv boot_targets ti_mmc mmc0 => setenv args_all 'setenv optargs ${optargs} earlycon=ns16550a,mmio32,0x02800000 ${mtdparts}' => boot switch to partitions #0, OK mmc0(part 0) is current device SD/MMC found on device 0 fs/fs.c:804- Failed to load 'boot.scr' fs/fs.c:767- Can't set block device ** Bad partition specification mmc 0:0 ** GPIO: 'gpio@22_17' not found Command 'gpio' failed: Error -22 GPIO: 'gpio@22_16' not found Command 'gpio' failed: Error -22 drivers/remoteproc/ti_k3_r5f_rproc.c:865- k3_r5f_rproc r5f@41000000: Core 1 is already in use. No rproc commands work fs/fs.c:804- Failed to load '/lib/firmware/j784s4-mcu-r5f0_1-fw' fs/fs.c:804- Failed to load '/lib/firmware/j784s4-main-r5f0_0-fw' fs/fs.c:804- Failed to load '/lib/firmware/j784s4-main-r5f0_1-fw' fs/fs.c:804- Failed to load '/lib/firmware/j784s4-main-r5f1_0-fw' fs/fs.c:804- Failed to load '/lib/firmware/j784s4-main-r5f1_1-fw' fs/fs.c:804- Failed to load '/lib/firmware/j784s4-main-r5f2_0-fw' fs/fs.c:804- Failed to load '/lib/firmware/j784s4-main-r5f2_1-fw' fs/fs.c:804- Failed to load '/lib/firmware/j784s4-c71_0-fw' fs/fs.c:804- Failed to load '/lib/firmware/j784s4-c71_1-fw' fs/fs.c:804- Failed to load '/lib/firmware/j784s4-c71_2-fw' fs/fs.c:804- Failed to load '/lib/firmware/j784s4-c71_3-fw' 26057216 bytes read in 123 ms (202 MiB/s) 97457 bytes read in 22 ms (4.2 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 000000008fee5000, end 000000008fffffff ... OK Working FDT set to 8fee5000 Starting kernel ... [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x411fd080] [ 0.000000] Linux version 6.1.46+ (dev@certapp-dev) (aarch64-oe-linux-gcc (GCC) 11.4.0, GNU ld (GNU Binutils) 2.38.20220708) #2 SMP PREEMPT_DYNAMIC Thu Dec 21 12:55:16 CST 2023 [ 0.000000] Machine model: Texas Instruments J784S4 EVM [ 0.000000] earlycon: ns16550a0 at MMIO32 0x0000000002800000 (options '') [ 0.000000] printk: bootconsole [ns16550a0] enabled [ 0.000000] efi: UEFI not found. [ 0.000000] Reserved memory: created CMA memory pool at 0x00000008c7e00000, size 896 MiB [ 0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool [ 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] 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] 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] 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] 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] 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] 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] 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] Reserved memory: created DMA memory pool at 0x00000000a4000000, size 1 MiB [ 0.000000] OF: reserved mem: initialized node r5f-dma-memory@a4000000, compatible id shared-dma-pool [ 0.000000] Reserved memory: created DMA memory pool at 0x00000000a4100000, size 15 MiB [ 0.000000] OF: reserved mem: initialized node r5f-memory@a4100000, compatible id shared-dma-pool [ 0.000000] Reserved memory: created DMA memory pool at 0x00000000a5000000, size 1 MiB [ 0.000000] OF: reserved mem: initialized node r5f-dma-memory@a5000000, compatible id shared-dma-pool [ 0.000000] Reserved memory: created DMA memory pool at 0x00000000a5100000, size 15 MiB [ 0.000000] OF: reserved mem: initialized node r5f-memory@a5100000, compatible id shared-dma-pool [ 0.000000] Reserved memory: created DMA memory pool at 0x00000000a6000000, size 1 MiB [ 0.000000] OF: reserved mem: initialized node r5f-dma-memory@a6000000, compatible id shared-dma-pool [ 0.000000] Reserved memory: created DMA memory pool at 0x00000000a6100000, size 15 MiB [ 0.000000] OF: reserved mem: initialized node r5f-memory@a6100000, compatible id shared-dma-pool [ 0.000000] Reserved memory: created DMA memory pool at 0x00000000a7000000, size 1 MiB [ 0.000000] OF: reserved mem: initialized node r5f-dma-memory@a7000000, compatible id shared-dma-pool [ 0.000000] Reserved memory: created DMA memory pool at 0x00000000a7100000, size 15 MiB [ 0.000000] OF: reserved mem: initialized node r5f-memory@a7100000, compatible id shared-dma-pool [ 0.000000] Reserved memory: created DMA memory pool at 0x00000000a8000000, size 1 MiB [ 0.000000] OF: reserved mem: initialized node c71-dma-memory@a8000000, compatible id shared-dma-pool [ 0.000000] Reserved memory: created DMA memory pool at 0x00000000a8100000, size 15 MiB [ 0.000000] OF: reserved mem: initialized node c71-memory@a8100000, compatible id shared-dma-pool [ 0.000000] Reserved memory: created DMA memory pool at 0x00000000a9000000, size 1 MiB [ 0.000000] OF: reserved mem: initialized node c71-dma-memory@a9000000, compatible id shared-dma-pool [ 0.000000] Reserved memory: created DMA memory pool at 0x00000000a9100000, size 15 MiB [ 0.000000] OF: reserved mem: initialized node c71-memory@a9100000, compatible id shared-dma-pool [ 0.000000] Reserved memory: created DMA memory pool at 0x00000000aa000000, size 1 MiB [ 0.000000] OF: reserved mem: initialized node c71-dma-memory@aa000000, compatible id shared-dma-pool [ 0.000000] Reserved memory: created DMA memory pool at 0x00000000aa100000, size 15 MiB [ 0.000000] OF: reserved mem: initialized node c71-memory@aa100000, compatible id shared-dma-pool [ 0.000000] Reserved memory: created DMA memory pool at 0x00000000ab000000, size 1 MiB [ 0.000000] OF: reserved mem: initialized node c71-dma-memory@ab000000, compatible id shared-dma-pool [ 0.000000] Reserved memory: created DMA memory pool at 0x00000000ab100000, size 15 MiB [ 0.000000] OF: reserved mem: initialized node c71-memory@ab100000, compatible id shared-dma-pool [ 0.000000] NUMA: No NUMA configuration found [ 0.000000] NUMA: Faking a node at [mem 0x0000000080000000-0x00000008ffffefff] [ 0.000000] NUMA: NODE_DATA [mem 0x8c76d3a40-0x8c76fdfff] [ 0.000000] Zone ranges: [ 0.000000] DMA [mem 0x0000000080000000-0x00000000ffffffff] [ 0.000000] DMA32 empty [ 0.000000] Normal [mem 0x0000000100000000-0x00000008ffffefff] [ 0.000000] Device empty [ 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-0x00000000abffffff] [ 0.000000] node 0: [mem 0x00000000ac000000-0x00000000ffffefff] [ 0.000000] node 0: [mem 0x0000000880000000-0x00000008ffffefff] [ 0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000008ffffefff] [ 0.000000] On node 0, zone Normal: 1 pages in unavailable ranges [ 0.000000] On node 0, zone Normal: 1 pages in unavailable ranges [ 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.2 [ 0.000000] percpu: Embedded 29 pages/cpu s79976 r8192 d30616 u118784 [ 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] Fallback order for Node 0: 0 [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 1032190 [ 0.000000] Policy zone: Normal [ 0.000000] Kernel command line: console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 swiotlb=256 47040000.spi.0:512k(qspi.tiboot3),2m(qspi.tispl),4m(qspi.u-boot),256k(qspi.env),256k(qspi.env.backup),57088k@8m(qspi.rootfs),256k(qspi.phypattern);spi-nand0:512k(qspi_nand.tiboot3),2m(qspi_nand.tispl),4m(qspi_nand.u-boot),256k(qspi_nand.env),256k(qspi_nand.env.backup),98048k@32m(qspi_nand.rootfs),256k@130816k(qspi_nand.phypattern) root=PARTUUID= 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] mem auto-init: stack:off, heap alloc:on, heap free:off [ 0.000000] software IO TLB: area num 8.