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.

AM623: Booting from eMMC (bootpart 0:1, mmcdev 0) Kernel begins to boot from eMMC but fails with kernel panic.

Part Number: AM623
Other Parts Discussed in Thread: AM625

Hi TI Experts

Getting a kernel panic, but from u-boot the settings look correct. I think there is a problem with bootargs.

I'm not sure if this is related to using GPT partitions .vs. MBR style bootable flag.

Error:

[ 2.686019] VFS: PARTUUID= is invalid.
[ 2.686019] Expected PARTUUID=<valid-uuid-id>[/PARTNROFF=%d]
[ 2.686024] Disabling rootwait; root= is invalid.
[ 2.686650] /dev/root: Can't open blockdev
[ 2.686668] VFS: Cannot open root device "PARTUUID=" or unknown-block(0,0): error -6
[ 2.686672] P

[ 1.136841] mmc0: SDHCI controller on fa10000.mmc [fa10000.mmc] using ADMA 64-bit
[ 1.140322] debugfs: Directory 'pd:182' with parent 'pm_genpd' already present!
[ 1.141044] mmc2: CQHCI version 5.10
[ 1.141079] mmc1: CQHCI version 5.10
[ 1.143290] debugfs: Directory 'pd:186' with parent 'pm_genpd' already present!
[ 1.155788] ALSA device list:
[ 1.155799] No soundcards found.
[ 1.183234] mmc2: SDHCI controller on fa20000.mmc [fa20000.mmc] using ADMA 64-bit
[ 1.213866] mmc0: Command Queue Engine enabled
[ 1.213885] mmc0: new HS200 MMC card at address 0001
[ 1.214587] mmcblk0: mmc0:0001 S0J56X 14.8 GiB                                           <======== HARWARWE UDA partition 0 - I have two filesystem partitions
[ 1.218247] mmcblk0: p1 p2

[ 1.218988] mmcblk0boot0: mmc0:0001 S0J56X 31.5 MiB
[ 1.220275] mmcblk0boot1: mmc0:0001 S0J56X 31.5 MiB

[    1.221403] mmcblk0rpmb: mmc0:0001 S0J56X 4.00 MiB, chardev (240:0)

Preface:

=> mmc part

Partition Map for MMC device 0  --   Partition Type: EFI

Part    Start LBA       End LBA         Name
        Attributes
        Type GUID
        Partition GUID
  1     0x00000022      0x003f8021      "primary"       <== Filesystem partition   [/dev/mmcblk0p1]
        attrs:  0x0000000000000000
        type:   ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
        guid:   e7dbd504-c47a-493d-a1d4-aa34686b4b5b     <== Seems like it may be looking for this 
  2     0x003f8022      0x007f0021      "secondary"
        attrs:  0x0000000000000000
        type:   ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
        guid:   93e4c649-cb27-4c27-ab7f-eb65a9ec348c
=> ls mmc 0
<DIR>       4096 .
<DIR>       4096 ..
<DIR>      16384 lost+found
<DIR>       4096 bin
<DIR>       4096 boot                        <== Boot image is available
<DIR>       4096 dev

=> ls mmc $bootpart /boot/dtb
<DIR>       4096 .
<DIR>       4096 ..
<DIR>       4096 ti
=> ls mmc $bootpart /boot/dtb/ti <DIR> 4096 . <DIR> 4096 .. 1990 k3-am625-beagleplay-csi2-ov5640.dtbo <snip> 1636 k3-am625-sk-pwm.dtbo 2483 k3-am625-sk-rpi-hdr-ehrpwm.dtbo 59456 k3-am625-sk.dtb <== Here is the dtb


am62x.env MODS:
https://git.ti.com/cgit/ti-u-boot/ti-u-boot/tree/board/ti/am62x/am62x.env?h=09.01.00.008#n32

--- a/board/ti/am62x/am62x.env
+++ b/board/ti/am62x/am62x.env
@@ -28,8 +28,9 @@ args_all=setenv optargs ${optargs} earlycon=ns16550a,mmio32,0x02800000
run_kern=booti ${loadaddr} ${rd_spec} ${fdtaddr}

boot=mmc
-mmcdev=1
-bootpart=1:2
+mmcdev=0
+bootpart=0:1 ?? Correct mmcdev=0 (eMMC) and HWpartition=1 (boot0) ??
bootdir=/boot
rd_spec=-



STATE OF U-BOOT environment:

=> echo $mmcdev
0
=> echo $bootpart
0:1

And I have executed
=> echo $name_fdt
ti/k3-am625-sk.dtb
=> echo $fdtfile
ti/k3-am625-sk.dtb

mmc partconf 0 1 1 1 (This makes boot0 (0 1 1 1) running tiboot3.bin/tispl.bin/u-boot.img boot 1 (0 1 2 1))
HW Partition is the 3rd value, So UDA is (0 1 0 1) and RPMD is (0 1 3 0), partconf is zero indexed.
mmc bootbus 0 2 0 0 8 bit eEMMC

TO FIX THE " 2.657698] Please append a correct "root=" boot option; here are the available partitions:"
I set:
setenv root /dev/mmcblk0p1


Then
=> boot Which fails as above.

Once I get U-boot to launch from eMMC u-boot I can update uEnv.txt.emmc to perform these steps automatically.
Note, The Ethernet version of U-boot correctly utilizes uEnv.txt.ether to boot and the flash the eMMC boot0,
erase eMMC UDA, then create partitions and load the RFS image (with kernel/dtb/ that DOES correctly boot Linux (without kernel panic).

Just really close but still not right at this time.


Regards,
RG

  • Hi RG,

    It looks like the U-Boot is not passing the correct PARTUUID to the Linux Kernel. Can you please run the following sequence of commands (modify as needed) and see if the final bootargs variable contains the expected PARTUUID

    => mmc part
    
    Partition Map for MMC device 0  --   Partition Type: DOS
    
    Part    Start Sector    Num Sectors     UUID            Type
      1     2048            262144          4ef1384e-01     0c Boot
      2     264192          30816256        4ef1384e-02     83
    => setenv mmdev 0
    => setenv bootpart 0:2
    => printenv args_mmc
    args_mmc=run finduuid;setenv bootargs console=${console} ${optargs} root=PARTUUID=${uuid} rw rootfstype=
    ${mmcrootfstype}
    => run args_mmc
    => printenv bootargs
    bootargs=console=ttyS2,115200n8 root=PARTUUID=4ef1384e-02 rw rootfstype=ext4 rootwait
    => 

    Regards,

    Prashant

  • Hi Prashant,

    => mmc part

    Partition Map for MMC device 0 -- Partition Type: EFI

    Part Start LBA End LBA Name
    Attributes
    Type GUID
    Partition GUID
    1 0x00000022 0x003f8021 "primary"
    attrs: 0x0000000000000000
    type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
    guid: e7dbd504-c47a-493d-a1d4-aa34686b4b5b
    2 0x003f8022 0x007f0021 "secondary"
    attrs: 0x0000000000000000
    type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
    guid: 93e4c649-cb27-4c27-ab7f-eb65a9ec348c
    => echo $mmdev                                                             <= Think you meant mmcdev?

    => echo $mmcdev
    0
    => echo $bootpart                                                           <= Note mmcdev (0), bootpart (0:1)
    0:1

    Looking at the rest of the variables:


    => printenv args_mmc
    args_mmc=run finduuid;setenv bootargs console=${console} ${optargs} root=PARTUUID=${uuid} rw rootfstype=${mmcrootfstype}
    => echo $console
    ttyS2,115200n8
    => echo $optargs

    => echo $uuid

    => setenv uuid e7dbd504-c47a-493d-a1d4-aa34686b4b5b     <== Believe this is correct (GPT not MBR) ?


    => echo $mmcrootfstype
    ext4 rootwait
    => echo $finduuid
    part uuid ${boot} ${bootpart} uuid
    => echo $uuid
    e7dbd504-c47a-493d-a1d4-aa34686b4b5b                            

    => run finduuid                  <== Currios if this command would change the uuid entered above. 
    => run args_mmc
    => printenv bootargs
    bootargs=console=ttyS2,115200n8 root=PARTUUID=e7dbd504-c47a-493d-a1d4-aa34686b4b5b rw rootfstype=ext4 rootwait

    Running the boot command now exits abruptly.:

    => boot

    MMC read: dev # 0, block # 13312, count 256 ... 256 blocks read: OK
    ## Error: "user_commands" not defined
    =>

  • <deleted, corrected minor command to echo env var>

    OK, booting and stopping at eMMC u-boot these steps plus your "run args_mmc" followed by "run distro_bootcommand" resulted in full BOOT!

    HOWEVER, these same commands written into uEnv.txt and flashed to eMMC fail.

    NOTES at bottom regarding this failure.

    Minimal Steps: 

    Update U-boot:

    $ git diff ../board/ti/am62x/am62x.env
    diff --git a/board/ti/am62x/am62x.env b/board/ti/am62x/am62x.env
    index e507ca276c..ea48e5ee50 100644
    --- a/board/ti/am62x/am62x.env
    +++ b/board/ti/am62x/am62x.env
    @@ -28,8 +28,9 @@ args_all=setenv optargs ${optargs} earlycon=ns16550a,mmio32,0x02800000
    run_kern=booti ${loadaddr} ${rd_spec} ${fdtaddr}

    boot=mmc
    -mmcdev=1
    -bootpart=1:2
    +# Linux partition numbers start at 1 (UDA is at mmcdev 0:0 == bootpart=0:1)
    +mmcdev=0
    +bootpart=0:1
    bootdir=/boot

    -- Then manual user commands in bold below:

    => echo $bootpart
    0:1
    => echo $mmcdev
    0
    => run args_mmc
    => printenv bootargs
    bootargs=console=ttyS2,115200n8 root=PARTUUID=e7dbd504-c47a-493d-a1d4-aa34686b4b5b rw rootfstype=ext4 rootwait
    => run distro_bootcmd


    U-Boot SPL 2023.04-gb0d717b732 (Dec 06 2023 - 15:11:45 +0000)
    SYSFW ABI: 3.1 (firmware rev 0x0009 '9.1.8--v09.01.08 (Kool Koala)')
    SPL initial stack usage: 13384 bytes
    Trying to boot from MMC1
    Authentication passed
    Authentication passed
    Authentication passed
    Authentication passed
    Authentication passed
    Starting ATF on ARM64 core...

    NOTICE: BL31: v2.9(release):v2.9.0-614-gd7a7135d32-dirty
    NOTICE: BL31: Built : 09:34:15, Aug 24 2023

    U-Boot SPL 2023.04-gb0d717b732 (Dec 06 2023 - 15:11:45 +0000)
    SYSFW ABI: 3.1 (firmware rev 0x0009 '9.1.8--v09.01.08 (Kool Koala)')
    SPL initial stack usage: 1856 bytes
    MMC: no card present
    ** Bad device specification mmc 1 **
    Couldn't find partition mmc 1:1
    Error: could not access storage.
    Trying to boot from MMC1
    Authentication passed
    Authentication passed


    U-Boot 2023.04-00001-g5239f05969-dirty (Mar 28 2024 - 16:52:57 -0600)

    SoC: AM62X SR1.0 HS-FS
    Model: Texas Instruments AM625 SK
    EEPROM not available at 80, trying to read at 81
    Board: AM62B-SKEVM-P1 rev A
    DRAM: 2 GiB
    Core: 71 devices, 31 uclasses, devicetree: separate
    MMC: mmc@fa10000: 0, mmc@fa00000: 1
    Loading Environment from nowhere... OK
    In: serial
    Out: serial
    Err: serial
    Unidentified board claims AM62B-SKEVM-P1 in eeprom header
    Net: eth0: ethernet@8000000port@1
    Hit any key to stop autoboot: 0
    =>
    =>
    => echo $bootpart
    0:1
    => echo mmcdev
    mmcdev
    => run args_mmc
    => printenv bootargs
    bootargs=console=ttyS2,115200n8 root=PARTUUID=e7dbd504-c47a-493d-a1d4-aa34686b4b5b rw rootfstype=ext4 rootwait
    => run distro_bootcmd
    ## Error: "main_cpsw0_qsgmii_phyinit" not defined
    16169472 bytes read in 103 ms (149.7 MiB/s)
    59456 bytes read in 16 ms (3.5 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
    ERROR: reserving fdt memory region failed (addr=ff700000 size=8ca000 flags=4)
    Loading Device Tree to 000000008feee000, end 000000008fffffff ... OK
    Working FDT set to 8feee000

    Starting kernel ...

    [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
    [ 0.000000] Linux version 6.1.46-rt13-gb871cdee8c (oe-user@oe-host) (aarch64-oe-linux-gcc (GCC) 11.4.0, GNU ld (GNU Binutils) 2.38.20220708) #1 SMP PREEMPT_RT Thu Dec 7 23:52:13 UTC 2023
    [ 0.000000] Machine model: Texas Instruments AM625 SK
    [ 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 0x00000000f7600000, size 128 MiB
    [ 0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
    [ 0.000000] Reserved memory: created DMA memory pool at 0x000000009c800000, size 3 MiB
    [ 0.000000] OF: reserved mem: initialized node ipc-memories@9c800000, compatible id shared-dma-pool
    [ 0.000000] Reserved memory: created DMA memory pool at 0x000000009cb00000, size 1 MiB
    [ 0.000000] OF: reserved mem: initialized node m4f-dma-memory@9cb00000, compatible id shared-dma-pool
    [ 0.000000] Reserved memory: created DMA memory pool at 0x000000009cc00000, size 14 MiB
    [ 0.000000] OF: reserved mem: initialized node m4f-memory@9cc00000, compatible id shared-dma-pool
    [ 0.000000] Reserved memory: created DMA memory pool at 0x000000009da00000, size 1 MiB
    [ 0.000000] OF: reserved mem: initialized node r5f-dma-memory@9da00000, compatible id shared-dma-pool
    [ 0.000000] Reserved memory: created DMA memory pool at 0x000000009db00000, size 12 MiB
    [ 0.000000] OF: reserved mem: initialized node r5f-memory@9db00000, compatible id shared-dma-pool
    [ 0.000000] Zone ranges:
    [ 0.000000] DMA [mem 0x0000000080000000-0x00000000ffffffff]
    [ 0.000000] DMA32 empty
    [ 0.000000] Normal empty
    [ 0.000000] Movable zone start for each node
    [ 0.000000] Early memory node ranges
    [ 0.000000] node 0: [mem 0x0000000080000000-0x000000009c7fffff]
    [ 0.000000] node 0: [mem 0x000000009c800000-0x000000009e6fffff]
    [ 0.000000] node 0: [mem 0x000000009e700000-0x000000009e77ffff]
    [ 0.000000] node 0: [mem 0x000000009e780000-0x000000009fffffff]
    [ 0.000000] node 0: [mem 0x00000000a0000000-0x00000000ff6fffff]
    [ 0.000000] node 0: [mem 0x00000000ff700000-0x00000000fffc9fff]
    [ 0.000000] node 0: [mem 0x00000000fffca000-0x00000000ffffffff]
    [ 0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000000ffffffff]
    [ 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 s44928 r8192 d28800 u81920
    [ 0.000000] Detected VIPT I-cache on CPU0
    [ 0.000000] CPU features: detected: GIC system register CPU interface
    [ 0.000000] CPU features: kernel page table isolation disabled by kernel configuration
    [ 0.000000] CPU features: detected: ARM erratum 845719
    [ 0.000000] alternatives: applying boot alternatives
    [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 516096
    [ 0.000000] Kernel command line: console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 mtdparts=spi-nand0:512k(ospi.tiboot3),2m(ospi.tispl),4m(ospi.u-boot),256k(ospi.env),256k(ospi.env.backup),98048k@32m(ospi.rootfs),256k@130816k(ospi.phypattern);omap2-nand.0:2m(NAND.tiboot3),2m(NAND.tispl),2m(NAND.tiboot3.backup),4m(NAND.u-boot),256k(NAND.u-boot-env),256k(NAND.u-boot-env.backup),-(NAND.file-system) root=PARTUUID=e7dbd504-c47a-493d-a1d4-aa34686b4b5b rw rootfstype=ext4 rootwait
    [ 0.000000] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
    [ 0.000000] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)
    [ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
    [ 0.000000] Memory: 1846412K/2097152K available (10368K kernel code, 1198K rwdata, 2328K rodata, 1792K init, 420K bss, 119668K reserved, 131072K cma-reserved)
    [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
    [ 0.000000] rcu: Preemptible hierarchical RCU implementation.
    [ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=4.
    [ 0.000000] rcu: RCU_SOFTIRQ processing moved to rcuc kthreads.
    [ 0.000000] No expedited grace period (rcu_normal_after_boot).
    [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 100 jiffies.
    [ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
    [ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
    [ 0.000000] GICv3: GIC: Using split EOI/Deactivate mode
    [ 0.000000] GICv3: 256 SPIs implemented
    [ 0.000000] GICv3: 0 Extended SPIs implemented
    [ 0.000000] Root IRQ handler: 0xffff80000840dd70
    [ 0.000000] GICv3: GICv3 features: 16 PPIs
    [ 0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000001880000
    [ 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 @80800000 (flat, esz 8, psz 64K, shr 0)
    [ 0.000000] ITS: using cache flushing for cmd queue
    [ 0.000000] GICv3: using LPI property table @0x0000000080030000
    [ 0.000000] GIC: using cache flushing for LPI property table
    [ 0.000000] GICv3: CPU0: using allocated LPI pending table @0x0000000080040000
    [ 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.000001] sched_clock: 58 bits at 200MHz, resolution 5ns, wraps every 4398046511102ns
    [ 0.000227] Console: colour dummy device 80x25
    [ 0.504849] Calibrating delay loop (skipped), value calculated using timer frequency.. 400.00 BogoMIPS (lpj=200000)
    [ 0.504860] pid_max: default: 32768 minimum: 301
    [ 0.504941] LSM: Security Framework initializing
    [ 0.505080] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
    [ 0.505102] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
    [ 0.506746] rcu: Hierarchical SRCU implementation.
    [ 0.506753] rcu: Max phase no-delay instances is 400.
    [ 0.506799] printk: bootconsole [ns16550a0] printing thread started
    [ 0.559250] Platform MSI: msi-controller@1820000 domain created
    [ 0.559473] PCI/MSI: /bus@f0000/interrupt-controller@1800000/msi-controller@1820000 domain created
    [ 0.559553] EFI services will not be available.
    [ 0.559800] smp: Bringing up secondary CPUs ...
    [ 0.560510] Detected VIPT I-cache on CPU1
    [ 0.560621] GICv3: CPU1: found redistributor 1 region 0:0x00000000018a0000
    [ 0.560637] GICv3: CPU1: using allocated LPI pending table @0x0000000080050000
    [ 0.560689] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
    [ 0.610795] Detected VIPT I-cache on CPU2
    [ 0.610883] GICv3: CPU2: found redistributor 2 region 0:0x00000000018c0000
    [ 0.610896] GICv3: CPU2: using allocated LPI pending table @0x0000000080060000
    [ 0.610930] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
    [ 0.636792] Detected VIPT I-cache on CPU3
    [ 0.636879] GICv3: CPU3: found redistributor 3 region 0:0x00000000018e0000
    [ 0.636892] GICv3: CPU3: using allocated LPI pending table @0x0000000080070000
    [ 0.636921] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
    [ 0.636980] smp: Brought up 1 node, 4 CPUs
    [ 0.636986] SMP: Total of 4 processors activated.
    [ 0.671172] CPU features: detected: 32-bit EL0 Support
    [ 0.671176] CPU features: detected: CRC32 instructions
    [ 0.671222] CPU: All CPU(s) started at EL2
    [ 0.671225] alternatives: applying system-wide alternatives
    [ 0.672649] devtmpfs: initialized
    [ 0.683229] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275000 ns
    [ 0.683256] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
    [ 0.687964] pinctrl core: initialized pinctrl subsystem
    [ 0.688568] DMI not present or invalid.
    [ 0.689117] NET: Registered PF_NETLINK/PF_ROUTE protocol family
    [ 0.728942] DMA: preallocated 256 KiB GFP_KERNEL pool for atomic allocations
    [ 0.729238] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
    [ 0.729408] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
    [ 0.729539] audit: initializing netlink subsys (disabled)
    [ 0.729701] audit: type=2000 audit(0.727:1): state=initialized audit_enabled=0 res=1
    [ 0.730298] thermal_sys: Registered thermal governor 'step_wise'
    [ 0.730510] ASID allocator initialised with 65536 entries
    [ 0.741333] platform 30200000.dss: Fixed dependency cycle(s) with /bus@f0000/i2c@20010000/sii9022@3b
    [ 0.743428] platform connector: Fixed dependency cycle(s) with /bus@f0000/i2c@20010000/sii9022@3b
    [ 0.753573] HugeTLB: registered 1.00 GiB page size, pre-allocated 0 pages
    [ 0.753584] HugeTLB: 0 KiB vmemmap can be freed for a 1.00 GiB page
    [ 0.753588] HugeTLB: registered 32.0 MiB page size, pre-allocated 0 pages
    [ 0.753590] HugeTLB: 0 KiB vmemmap can be freed for a 32.0 MiB page
    [ 0.753594] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
    [ 0.753597] HugeTLB: 0 KiB vmemmap can be freed for a 2.00 MiB page
    [ 0.753600] HugeTLB: registered 64.0 KiB page size, pre-allocated 0 pages
    [ 0.753603] HugeTLB: 0 KiB vmemmap can be freed for a 64.0 KiB page
    [ 0.758222] k3-chipinfo 43000014.chipid: Family:AM62X rev:SR1.0 JTAGID[0x0bb7e02f] Detected
    [ 0.760300] iommu: Default domain type: Translated
    [ 0.760309] iommu: DMA domain TLB invalidation policy: strict mode
    [ 0.760652] SCSI subsystem initialized
    [ 0.761005] usbcore: registered new interface driver usbfs
    [ 0.761044] usbcore: registered new interface driver hub
    [ 0.761077] usbcore: registered new device driver usb
    [ 0.761614] pps_core: LinuxPPS API ver. 1 registered
    [ 0.761618] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [ 0.761633] PTP clock support registered
    [ 0.761774] EDAC MC: Ver: 3.0.0
    [ 0.762606] omap-mailbox 29000000.mailbox: omap mailbox rev 0x66fc9100
    [ 0.762963] FPGA manager framework
    [ 0.763068] Advanced Linux Sound Architecture Driver Initialized.
    [ 0.764062] clocksource: Switched to clocksource arch_sys_counter
    [ 0.764380] VFS: Disk quotas dquot_6.6.0
    [ 0.764417] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
    [ 0.770503] NET: Registered PF_INET protocol family
    [ 0.770921] IP idents hash table entries: 32768 (order: 6, 262144 bytes, linear)
    [ 0.772713] tcp_listen_portaddr_hash hash table entries: 1024 (order: 3, 40960 bytes, linear)
    [ 0.772764] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
    [ 0.772777] TCP established hash table entries: 16384 (order: 5, 131072 bytes, linear)
    [ 0.772989] TCP bind hash table entries: 16384 (order: 8, 1310720 bytes, linear)
    [ [ 1.015824] printk: console [ttyS2] printing thread started
    0.774445] TCP: Hash tables configured (established 16384 bind 16384)
    [ 1.015842] printk: console [ttyS2] enabled
    [ 1.015846] printk: bootconsole [ns16550a0] disabled
    [ 1.028067] printk: bootconsole [ns16550a0] printing thread stopped
    [ 1.029687] davinci_mdio 8000f00.mdio: Configuring MDIO in manual mode
    [ 1.064071] davinci_mdio 8000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
    [ 1.066172] davinci_mdio 8000f00.mdio: phy[0]: device 8000f00.mdio:00, driver TI DP83867
    [ 1.066182] davinci_mdio 8000f00.mdio: phy[1]: device 8000f00.mdio:01, driver TI DP83867
    [ 1.066225] am65-cpsw-nuss 8000000.ethernet: initializing am65 cpsw nuss version 0x6BA01103, cpsw version 0x6BA81103 Ports: 3 quirks:00000006
    [ 1.066425] am65-cpsw-nuss 8000000.ethernet: initialized cpsw ale version 1.5
    [ 1.066431] am65-cpsw-nuss 8000000.ethernet: ALE Table size 512
    [ 1.066971] pps pps0: new PPS source ptp0
    [ 1.067247] am65-cpsw-nuss 8000000.ethernet: CPTS ver 0x4e8a010c, freq:500000000, add_val:1 pps:1
    [ 1.088935] am65-cpsw-nuss 8000000.ethernet: set new flow-id-base 19
    [ 1.092741] mmc0: CQHCI version 5.10
    [ 1.099150] pca953x 1-0022: supply vcc not found, using dummy regulator
    [ 1.099272] pca953x 1-0022: using AI
    [ 1.117394] spi-nor spi0.0: s28hs512t (65536 Kbytes)
    [ 1.117511] 7 fixed-partitions partitions found on MTD device fc40000.spi.0
    [ 1.117520] Creating 7 MTD partitions on "fc40000.spi.0":
    [ 1.117526] 0x000000000000-0x000000080000 : "ospi.tiboot3"
    [ 1.118949] 0x000000080000-0x000000280000 : "ospi.tispl"
    [ 1.120141] 0x000000280000-0x000000680000 : "ospi.u-boot"
    [ 1.121292] 0x000000680000-0x0000006c0000 : "ospi.env"
    [ 1.122472] 0x0000006c0000-0x000000700000 : "ospi.env.backup"
    [ 1.123608] 0x000000800000-0x000003fc0000 : "ospi.rootfs"
    [ 1.124816] 0x000003fc0000-0x000004000000 : "ospi.phypattern"
    [ 1.134242] mmc0: SDHCI controller on fa10000.mmc [fa10000.mmc] using ADMA 64-bit
    [ 1.136703] debugfs: Directory 'pd:182' with parent 'pm_genpd' already present!
    [ 1.137477] mmc2: CQHCI version 5.10
    [ 1.137500] mmc1: CQHCI version 5.10
    [ 1.139504] debugfs: Directory 'pd:186' with parent 'pm_genpd' already present!
    [ 1.151830] ALSA device list:
    [ 1.151843] No soundcards found.
    [ 1.179383] mmc2: SDHCI controller on fa20000.mmc [fa20000.mmc] using ADMA 64-bit
    [ 1.251088] mmc0: Command Queue Engine enabled
    [ 1.251112] mmc0: new HS200 MMC card at address 0001
    [ 1.251849] mmcblk0: mmc0:0001 S0J56X 14.8 GiB
    [ 1.255459] mmcblk0: p1 p2                                                                                                             <== mmc dev 0 : 1 == p1

    [ 1.256210] mmcblk0boot0: mmc0:0001 S0J56X 31.5 MiB
    [ 1.257478] mmcblk0boot1: mmc0:0001 S0J56X 31.5 MiB
    [ 1.258556] mmcblk0rpmb: mmc0:0001 S0J56X 4.00 MiB, chardev (240:0)
    [ 2.649569] sdhci-am654 fa00000.mmc: Power on failed
    [ 2.680182] mmc1: SDHCI controller on fa00000.mmc [fa00000.mmc] using ADMA 64-bit
    [ 2.708190] EXT4-fs (mmcblk0p1): recovery complete
    [ 2.709325] EXT4-fs (mmcblk0p1): mounted filesystem with ordered data mode. Quota mode: none.
    [ 2.709403] VFS: Mounted root (ext4 filesystem) on device 179:1.
    [ 2.709814] devtmpfs: mounted
    [ 2.711062] Freeing unused kernel memory: 1792K
    [ 2.711180] Run /sbin/init as init process
    [ 2.786898] systemd[1]: System time before build time, advancing clock.
    [ 2.808620] NET: Registered PF_INET6 protocol family
    [ 2.809979] Segment Routing with IPv6
    [ 2.810014] In-situ OAM (IOAM) with IPv6
    [ 2.822247] systemd[1]: systemd 250.5+ running in system mode (+PAM -AUDIT -SELINUX -APPARMOR +IMA -SMACK +SECCOMP -GCRYPT -GNUTLS -OPENSSL +ACL +BLKID -CURL -ELFUTILS -FIDO2 -IDN2 -IDN -IPTC +KMOD -LIBCRYPTSETUP +LIBFDISK -PCRE2 -PWQUALITY -P11KIT -QRENCODE -BZIP2 -LZ4 -XZ -ZLIB +ZSTD -BPF_FRAMEWORK +XKBCOMMON +UTMP +SYSVINIT default-hierarchy=hybrid)

    Welcome to Arago 2023.10!

    [ 2.822823] systemd[1]: Detected architecture arm64.
    [ 2.863614] systemd[1]: Hostname set to <am62xx-evm>.
    [ 3.194668] systemd[1]: /etc/systemd/system/sync-clocks.service:11: Standard output type syslog is obsolete, automatically updating to journal. Please update your unit file, and consider removing the setting altogether.
    [ 3.241266] systemd[1]: Queued start job for default target Multi-User System.
    [ OK ] Created slice Slice /system/getty 3.244177] systemd[1]: Created slice Slice /system/getty.
    0m.
    [ OK ] Created slice Slice /system/modprob[ 3.264376] systemd[1]: Created slice Slice /system/modprobe.
    e.
    [ OK ] Created slice Slice /system/serial-[ 3.279230] systemd[1]: Created slice Slice /system/serial-getty.
    getty.
    [ OK ] Created slice User and Session Slic[ 3.294746] systemd[1]: Created slice User and Session Slice.
    e.
    [ OK ] Started Dispatch Password …ts to [ 3.309582] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
    Console Directory Watch.
    [ OK ] Started Forward Password R…uests [ 3.327461] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
    to Wall Directory Watch.
    [ OK ] Reached target Path Units.
    [ 3.346521] systemd[1]: Reached target Path Units.
    [ 3.356955] systemd[1]: Reached target Remote File Systems.
    [ OK ] Reached target Remote File Systems.
    [ OK ] Reached target Slice Units.
    [ 3.371205] systemd[1]: Reached target Slice Units.
    [ OK ] Reached target Swaps.
    [ 3.381752] systemd[1]: Reached target Swaps.
    [ OK ] Listening on Process Core Dump Sock[ 3.399522] systemd[1]: Listening on Process Core Dump Socket.
    et.
    [ OK ] Listening on initctl Compatibility [ 3.414629] systemd[1]: Listening on initctl Compatibility Named Pipe.
    Named Pipe.
    [ OK ] Listening on Journal Audit Socket 3.430117] systemd[1]: Listening on Journal Audit Socket.
    0m.
    [ OK ] Listening on Journal Socket (/dev/l[ 3.444829] systemd[1]: Listening on Journal Socket (/dev/log).
    og).
    [ OK ] Listening on Journal Socket.[ 3.459878] systemd[1]: Listening on Journal Socket.

    [ 3.474020] systemd[1]: Listening on Network Service Netlink Socket.
    [ OK ] Listening on Network Service Netlink Socket.
    [ OK ] Listening on udev Control Socket 3.492471] systemd[1]: Listening on udev Control Socket.
    m.
    [ OK ] Listening on udev Kernel Socket[ 3.506792] systemd[1]: Listening on udev Kernel Socket.
    .
    [ OK ] Listening on User Database Manager [ 3.520836] systemd[1]: Listening on User Database Manager Socket.
    Socket.
    Mounting Huge Pages File System...
    [ 3.561623] systemd[1]: Mounting Huge Pages File System...
    [ 3.575843] systemd[1]: Mounting POSIX Message Queue File System...
    Mounting POSIX Message Queue File System...
    Mounting Kernel Debug File System...
    [ 3.594558] systemd[1]: Mounting Kernel Debug File System...
    [ 3.606452] systemd[1]: Kernel Trace File System was skipped because of a failed condition check (ConditionPathExists=/sys/kernel/tracing).
    Mounting Temporary Directory /tmp...
    [ 3.610424] systemd[1]: Mounting Temporary Directory /tmp...
    [ 3.631367] systemd[1]: Create List of Static Device Nodes was skipped because of a failed condition check (ConditionFileNotEmpty=/lib/modules/6.1.46-rt13-gb871cdee8c/modules.devname).
    [ 3.657964] systemd[1]: Starting Load Kernel Module configfs...
    Starting Load Kernel Module configfs...
    [ 3.673994] systemd[1]: Starting Load Kernel Module drm...
    Starting Load Kernel Module drm...
    Starting Load Kernel Module fuse...[ 3.690200] systemd[1]: Starting Load Kernel Module fuse...

    [ 3.704459] systemd[1]: File System Check on Root Device was skipped because of a failed condition check (ConditionPathIsReadWrite=!/).
    [ 3.705424] systemd[1]: systemd-journald.service: unit configures an IP firewall, but the local system does not support BPF/cgroup firewalling.
    [ 3.705440] systemd[1]: (This warning is only shown for the first unit using IP firewalling.)
    [ 3.747945] systemd[1]: Starting Journal Service...
    Starting Journal Service...
    [ 3.762630] systemd[1]: Load Kernel Modules was skipped because all trigger condition checks failed.
    Starting Generate network …ts from Kernel co[ 3.766281] systemd[1]: Starting Generate network units from Kernel command line...
    mmand line...
    [ 3.792900] systemd[1]: Starting Remount Root and Kernel File Systems...
    Starting Remount Root and Kernel File Systems...
    [ 3.817832] systemd[1]: Starting Apply Kernel Variables...
    [ 3.822782] EXT4-fs (mmcblk0p1): re-mounted. Quota mode: none.
    Starting Apply Kernel Variables...
    Starting Coldplug All udev Devices...
    [ 3.850261] systemd[1]: Starting Coldplug All udev Devices...
    [ OK ] Started Journal Service.
    [ 3.870658] systemd[1]: Started Journal Service.
    [ OK ] Mounted Huge Pages File System.
    [ OK ] Mounted POSIX Message Queue File System.
    [ OK ] Mounted Kernel Debug File System.
    [ OK ] Mounted Temporary Directory /tmp.
    [ OK ] Finished Load Kernel Module configfs.
    [ OK ] Finished Load Kernel Module drm.
    [ OK ] Finished Load Kernel Module fuse.
    [ OK ] Finished Generate network units from Kernel command line.
    [ OK ] Finished Remount Root and Kernel File Systems.
    [ OK ] Finished Apply Kernel Variables.
    [ OK ] Reached target Preparation for Network.
    Mounting Kernel Configuration File System...
    Starting Flush Journal to Persistent Storage...
    [ 4.053423] systemd-journald[184]: Received client request to flush runtime journal.
    Starting Create Static Device Nodes in /dev...
    [ OK ] Mounted Kernel Configuration File System.
    [ OK ] Finished Flush Journal to Persistent Storage.
    [ OK ] Finished Create Static Device Nodes in /dev.
    [ OK ] Reached target Preparation for Local File Systems.
    Mounting /media/ram...
    Mounting /var/volatile...
    Starting Rule-based Manage…for Device Events and Files...
    [ OK ] Mounted /media/ram.
    [ OK ] Mounted /var/volatile.
    Starting Load/Save Random Seed...
    [ OK ] Reached target Local File Systems.
    Starting Create Volatile Files and Directories...
    [ OK ] Started Rule-based Manager for Device Events and Files.
    Starting Network Configuration...
    [ OK ] Finished Create Volatile Files and Directories.
    Starting Network Time Synchronization...
    Starting Record System Boot/Shutdown in UTMP...
    [ OK ] Finished Coldplug All udev Devices.
    [ OK ] Finished Record System Boot/Shutdown in UTMP.
    [ 4.521142] random: crng init done
    [ OK ] Finished Load/Save Random Seed.
    [ OK ] Found device /dev/ttyS2.
    [ OK ] Started Network Configuration.
    Starting Network Name Resolution...
    [ 4.732320] am65-cpsw-nuss 8000000.ethernet eth1: PHY [8000f00.mdio:01] driver [TI DP83867] (irq=POLL)
    [ 4.732354] am65-cpsw-nuss 8000000.ethernet eth1: configuring for phy/rgmii-rxid link mode
    [ 4.811196] am65-cpsw-nuss 8000000.ethernet eth0: PHY [8000f00.mdio:00] driver [TI DP83867] (irq=POLL)
    [ 4.811230] am65-cpsw-nuss 8000000.ethernet eth0: configuring for phy/rgmii-rxid link mode
    [ OK ] Started Network Time Synchronization.
    [ OK ] Started Network Name Resolution.
    [ OK ] Reached target Network.
    [ OK ] Reached target Host and Network Name Lookups.
    [ OK ] Reached target System Initialization.
    [ OK ] Started Daily Cleanup of Temporary Directories.
    [ OK ] Reached target System Time Set.
    [ OK ] Reached target Timer Units.
    [ OK ] Listening on D-Bus System Message Bus Socket.
    [ OK ] Reached target Socket Units.
    [ OK ] Reached target Basic System.
    Starting D-Bus System Message Bus...
    Starting User Login Management...
    Starting Permit User Sessions...
    [ OK ] Finished Permit User Sessions.
    [ OK ] Started D-Bus System Message Bus.
    [ OK ] Started Getty on tty1.
    [ OK ] Started Serial Getty on ttyS2.
    [ OK ] Reached target Login Prompts.
    Starting Synchronize System and HW clocks...
    [FAILED] Failed to start Synchronize System and HW clocks.
    See 'systemctl status sync-clocks.service' for details.
    [ OK ] Started User Login Management.
    [ OK ] Reached target Multi-User System.
    Starting Record Runlevel Change in UTMP...
    [ OK ] Finished Record Runlevel Change in UTMP.

    _____ _____ _ _
    | _ |___ ___ ___ ___ | _ |___ ___ |_|___ ___| |_
    | | _| .'| . | . | | __| _| . | | | -_| _| _|
    |__|__|_| |__,|_ |___| |__| |_| |___|_| |___|___|_|
    |___| |___|

    Arago Project am62xx-evm -

    FAILURE using uEnv.txt to execute boot commands:

    U-Boot 2023.04-dirty (Apr 01 2024 - 15:36:03 -0600)

    SoC: AM62X SR1.0 HS-FS
    Model: Texas Instruments AM625 SK
    EEPROM not available at 80, trying to read at 81
    Board: AM62B-SKEVM-P1 rev A
    DRAM: 2 GiB
    Core: 72 devices, 32 uclasses, devicetree: separate
    MMC: mmc@fa10000: 0, mmc@fa00000: 1
    Loading Environment from nowhere... OK
    In: serial
    Out: serial
    Err: serial
    Net: eth0: ethernet@8000000port@1
    Hit any key to stop autoboot: 0
    switch to partitions #1, OK
    mmc0(part 1) is current device

    MMC read: dev # 0, block # 13312, count 1486 ... 1486 blocks read: OK
    Executing uEnv.txt.emmc command list
    switch to partitions #0, OK
    mmc0(part 0) is current device

    Partition Map for MMC device 0 -- Partition Type: EFI

    Part Start LBA End LBA Name
    Attributes
    Type GUID
    Partition GUID
    1 0x00000022 0x003f8021 "primary"
    attrs: 0x0000000000000000
    type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
    guid: e7dbd504-c47a-493d-a1d4-aa34686b4b5b
    2 0x003f8022 0x007f0021 "secondary"
    attrs: 0x0000000000000000
    type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
    guid: 93e4c649-cb27-4c27-ab7f-eb65a9ec348c
    <DIR> 4096 .
    <DIR> 4096 ..
    <DIR> 4096 EFI
    <SYM> 29 Image
    16169472 Image-6.1.46-rt13-gb871cdee8c
    <DIR> 4096 dtb
    <SYM> 32 fitImage
    6911566 fitImage-6.1.46-rt13-gb871cdee8c
    Prepping to launch emmc image
    Unknown command 'finduuid' - try 'help'
    Unknown command 'args_mmc' - try 'help'
    ## Error: "bootargs" not defined
    Unknown command 'bootcmd_ti_mmc' - try 'help'
    => run finduuid                                         <== Yet manual entry works to boot.
    => run args_mmc
    => run bootcmd_ti_mmc
    ## Error: "main_cpsw0_qsgmii_phyinit" not defined
    16169472 bytes read in 103 ms (149.7 MiB/s)
    59456 bytes read in 16 ms (3.5 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
    ERROR: reserving fdt memory region failed (addr=ff700000 size=8ca000 flags=4)
    Loading Device Tree to 000000008feee000, end 000000008fffffff ... OK
    Working FDT set to 8feee000

    Starting kernel ...

    [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
    [ 0.000000] Linux version 6.1.46-rt13-gb871cdee8c (oe-user@oe-host) (aarch64-oe-linux-gcc (GCC) 11.4.0, GNU ld (GNU Binutils) 2.38.20220708) #1 SMP PREEMPT_RT Thu Dec 7 23:52:13 UTC 2023

    Note, I'm trying to use the uEnv.txt for flexibility in setting up different command line arguments to support items like NFS development. 

    Here it is just booting the loaded RFS in the 1st partition. 

    Updating the eMMC u-boot.img.emmc CONFIG_BOOTCOMMAND

    # environment file.
    CONFIG_BOOTCOMMAND="mmc dev 0 1;mmc read ${loadaddr} 0x3400 0x5ce; env import -t ${loadaddr} 0x5ce; run user_commands;"
    cmd_[8,9,10,11] fail for some reason. I don't think this is TI domain specific so perhaps others may have seen this. 

    # Entry point from am62x_evm_a53_defconfig:
    user_commands=echo "Executing uEnv.txt.emmc command list"; run command_list;
    
    # These are set by am62x.env
    #cmd_1=setenv mmcdev 0
    cmd_1=echo ${mmcdev}
    #cmd_2=setenv bootpart 0:1
    cmd_2=echo ${bootpart}
    
    # These (2) are executed earlier by Etherent Flash of eMMC image - only needed
    once (affects ROM coder)
    #cmd_21=mmc partconf 0 1 1 1
    #cmd_21a=mmc bootbus 0 2 0 0
    cmd_3=mmc dev 0 0
    cmd_4=mmc part
    cmd_5=ls mmc 0:1 /boot
    
    cmd_6=echo "Prepping to launch emmc image"
    #cmd_7=envboot
    
    # boot env had some trailing data that was breaking run args_mmc (think fixed now)
    cmd_7=setenv boot mmc
    cmd_8=finduuid
    cmd_9=args_mmc
    cmd_10=print bootargs
    cmd_11=bootcmd_ti_mmc
    
    command_list=run cmd_3; run cmd_4; run cmd_5; run cmd_6; run cmd_7; run cmd_8; run cmd_9; run cmd_10; run cmd_11
    

    Corrected commands (NOTE the $ to expand the referenced script) :

    cmd_6=echo "Prepping to launch emmc image"
    cmd_6a=sleep 5
    # boot env had some trailing data that was breaking run args_mmc (think fixed now)
    cmd_7=setenv boot mmc

    cmd_8=finduuid

    cmd_9=args_mmc

    cmd_10=printenv bootargs

    cmd_11=bootcmd_ti_mmc

    command_list=run cmd_3; run cmd_4; run cmd_5; run cmd_6; run cmd_6a; run cmd_7; run cmd_8; run $cmd_9; run cmd_10; run $cmd_11