U-Boot errors when trying to enable Falcon mode on BeagleBone Black

Greetings,
I have been having trouble enabling Falcon mode on the BeagleBone Black. I have a working U-Boot (v2019.04) and Linux (Debian 11.5, kernel v5.15.65-bone-rt-r30), but I have been unsuccessful thus far in enabling Falcon mode. There are several errors I have come across.
The first is when I attempt to save the environment:

=> saveenv
Saving Environment to EXT4...
** Unable to use mmc 0:1 for saveenv **
Failed (1)

The second is when I try to export the SPL. It correctly reads the uImage header:

=> spl export fdt ${loadaddr} - ${fdtaddr}
## Booting kernel from Legacy Image at 82000000 ...
   Image Name:   Linux kernel
   Created:      2022-10-26  17:38:41 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    9880064 Bytes = 9.4 MiB
   Load Address: 80008000
   Entry Point:  80008000

But then it has a checksum error and doesn’t finish the process:

   Verifying Checksum ... Bad Data CRC
ERROR: can't get kernel image!
   XIP Invalid Image ... OK
data abort

This is my full U-Boot console log:

CPU  : AM335X-GP rev 2.1
I2C:   ready
DRAM:  512 MiB
No match for driver 'omap_hsmmc'
No match for driver 'omap_hsmmc'
Some drivers were not found
Reset Source: Global external warm reset has occurred.
Reset Source: Global warm SW reset has occurred.
Reset Source: Power-on reset has occurred.
RTC 32KCLK Source: External.
MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
Loading Environment from EXT4...
** Unable to use mmc 0:1 for loading the env **
Board: BeagleBone Black
<ethaddr> not set. Validating first E-fuse MAC
BeagleBone Black:
Model: BeagleBone Black Industrial:
BeagleBone Cape EEPROM: no EEPROM at address: 0x54
BeagleBone Cape EEPROM: no EEPROM at address: 0x55
BeagleBone Cape EEPROM: no EEPROM at address: 0x56
BeagleBone Cape EEPROM: no EEPROM at address: 0x57
Net:   eth0: MII MODE
cpsw, usb_ether
Press SPACE to abort autoboot in 2 seconds
=>
=> setenv args_mmc 'setenv bootargs console=${console} ${optargs} root=/dev/mmcblk0p1 ro rootfstype=${mmcrootfstype}'
=> setenv loadfdt 'mmc read ${fdtaddr} 80 180'
=> setenv loadimage 'mmc read ${loadaddr} 900 2000'
=> setenv bootcmd 'run args_mmc; run loadfdt; run loadimage; bootm ${loadaddr} - ${fdtaddr}'
=> saveenv
Saving Environment to EXT4...
** Unable to use mmc 0:1 for saveenv **
Failed (1)
=> run args_mmc
=> run loadimage

MMC read: dev # 0, block # 2304, count 8192 ... 8192 blocks read: OK
=> run loadfdt

MMC read: dev # 0, block # 128, count 384 ... 384 blocks read: OK
=> spl export fdt ${loadaddr} - ${fdtaddr}
## Booting kernel from Legacy Image at 82000000 ...
   Image Name:   Linux kernel
   Created:      2022-10-26  17:38:41 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    9880064 Bytes = 9.4 MiB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... Bad Data CRC
ERROR: can't get kernel image!
   XIP Invalid Image ... OK
data abort
pc : [<9ff91558>]          lr : [<9ff6d2fd>]
reloc pc : [<80838558>]    lr : [<808142fd>]
sp : 9df38b88  ip : 00000000     fp : 00000006
r10: 00000003  r9 : 9df38eb8     r8 : 9df38c6c
r7 : 00000000  r6 : 9ffc0238     r5 : 00000000  r4 : 00000000
r3 : 00000020  r2 : 00000000     r1 : 00000000  r0 : 00000000
Flags: Nzcv  IRQs off  FIQs on  Mode SVC_32
Code: f7fe2000 2800fc91 e7f4d0ed 9ff9f6a8 (4a106803)
Resetting CPU ...

resetting ...

I am following this tutorial Fast Boot Linux with u-Boot Falcon Mode – Embetrix (except that I am compiling everything on an Ubuntu server and writing the SD card directly from the BeagleBone Black in Debian, so I skip the section with the five “part” commands in Yocto–hopefully that’s not a problem), so it’s possible there is an error in the tutorial or in my environment in some way. Perhaps there is a timeout issue when reading the kernel, or my device tree file is wrong? I created the uImage from a working zImage, and the uImage header is being read appropriately, so I’m not sure what the issue is. Any help would be greatly appreciated.

Hi @amyers

Sorry for the delay, not sure why your message got stuck in moderation…

We don’t use Falcon mode for BeagleBoard.org, but i’d really advice, to switch to our branch we use with Bullseye and later encase these issues have been resolved on mainline…

Regards,

1 Like

Thank you for your help. I didn’t realize BeagleBone.org doesn’t use Falcon mode, so that’s good to keep in mind.
I updated to the U-Boot source you linked, and it compiled and flashed. However, I was unable to get Falcon mode to work, so I think I will give up on it for now.
Do you have any suggestions for getting my environment variables to persist? The saveenv command gives the error

Saving Environment to EXT4...
** Unable to use mmc 0:1 for saveenv **
Failed (1)

when I try to save the environment changes I make for subsequent boots. I’m guessing it’s trying to save to partition 1 of the microSD card and failing?
Much appreciated.

By default, this is the first partition of the eMMC (assuming ext4), we set this default as the eMMC is the only guaranteed local storage… While TI uses a split partition (fat partition 1, and extX as partition 2), BeagleBoard.org just uses a single partition for everything.

Regards,

1 Like

It seems as though my eMMC has three partitions. Am I reading this right, and if so, is this a problem?

root@beaglebone:~# lsblk
NAME         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
mmcblk0      179:0    0  3.7G  0 disk
`-mmcblk0p1  179:1    0  3.7G  0 part
mmcblk1      179:256  0  3.6G  0 disk
`-mmcblk1p1  179:257  0  3.6G  0 part /
mmcblk1boot0 179:512  0    2M  1 disk
mmcblk1boot1 179:768  0    2M  1 disk

On the AM335x, boot0/boot1 are not used by the AM335x bootrom.

Your system is only one partition…

Regards,

1 Like

So I found a partial solution to my problem, although I have not yet figured out Falcon mode. To save environment variables I needed to change the am335x_evm_defconfig file to store them in MMC. I added this line:

CONFIG_ENV_IS_IN_MMC=y

I also needed to remove these lines regarding EXT4:

CONFIG_ENV_IS_IN_EXT4=y
CONFIG_ENV_EXT4_INTERFACE="mmc"
CONFIG_ENV_EXT4_DEVICE_AND_PART="1:1"
CONFIG_ENV_EXT4_FILE="/boot/uboot.env"

I can now save environment variables! My current U-Boot output is this:

U-Boot SPL 2022.04 (Nov 03 2022 - 11:40:28 -0400)
Trying to boot from MMC2


U-Boot 2022.04 (Nov 03 2022 - 11:40:28 -0400)

CPU : AM335X-GP rev 2.1
Model: TI AM335x BeagleBone Black
DRAM: 512 MiB
Reset Source: Power-on reset has occurred.
RTC 32KCLK Source: External.
Core: 150 devices, 14 uclasses, devicetree: separate
WDT: Started wdt@44e35000 with servicing (60s timeout)
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
Loading Environment from MMC... *** Warning - bad CRC, using default environment

Board: BeagleBone Black
<ethaddr> not set. Validating first E-fuse MAC
BeagleBone Black:
Model: BeagleBone Black Industrial:
BeagleBone Cape EEPROM: no EEPROM at address: 0x54
BeagleBone Cape EEPROM: no EEPROM at address: 0x55
BeagleBone Cape EEPROM: no EEPROM at address: 0x56
BeagleBone Cape EEPROM: no EEPROM at address: 0x57
Net: Could not get PHY for ethernet@4a100000: addr 0
eth2: ethernet@4a100000, eth3: usb_ether
Press SPACE to abort autoboot in 0 seconds
=> setenv args_mmc 'setenv bootargs console=${console} ${optargs} root=/dev/mmcblk0p1 ro rootfstype=${mmcrootfstype}'
=> setenv loadfdt 'mmc read ${fdtaddr} 80 180'
=> setenv loadimage 'mmc read ${loadaddr} 900 2000'
=> setenv bootcmd 'run args_mmc; run loadfdt; run loadimage; bootm ${loadaddr} - ${fdtaddr}'
=> saveenv
Saving Environment to MMC... Writing to redundant MMC(0)... OK
=> run args_mmc
=> run loadimage

MMC read: dev # 0, block # 2304, count 8192 ... 8192 blocks read: OK
=> run loadfdt

MMC read: dev # 0, block # 128, count 384 ... 384 blocks read: OK
=> spl export fdt ${loadaddr} - ${fdtaddr}
## Booting kernel from Legacy Image at 82000000 ...
Image Name: Linux kernel
Created: 2022-10-26 17:38:41 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 9880064 Bytes = 9.4 MiB
Load Address: 80008000
Entry Point: 80008000
Verifying Checksum ... Bad Data CRC
ERROR: can't get kernel image!
XIP Invalid Image
data abort
pc : [<9ffa9fe8>] lr : [<9ff6bfa9>]
reloc pc : [<80843fe8>] lr : [<80805fa9>]
sp : 9df30e08 ip : 00000000 fp : 00000020
r10: 00000003 r9 : 9df45eb0 r8 : 9df30f04
r7 : 00000000 r6 : 9ffe3b1c r5 : 00000000 r4 : 00000000
r3 : edfe0dd0 r2 : 00000003 r1 : 00000000 r0 : 00000000
Flags: nzCv IRQs off FIQs on Mode SVC_32 (T)
Code: bfef 0000 b510 4b24 (6801) 4602
Resetting CPU ...

resetting ...

I recognize BeagleBoard.org doesn’t officially use Falcon mode, but any insights anyone might have on the checksum error would be appreciated.

Sorry, I’ve been out of the ‘uImage’ game ever since we patched u-boot to support raw ‘zImage’ years ago…

Who generated that uImage, did you pass … LOADADDR=${ZRELADDR} … uImage’s header should be generated with u-boot mkimage… What’s weird, the date and time headers is there. Next is the “XIP” looking for the kernel to be in XIP mode???

Regards,

I created the uImage with mkimage from the zImage I have been successfully running. The LOADADDR I gave when creating the uImage is 0x80008000; it’s the address I’ve seen online, although it’s possible that’s incorrect. Perhaps I should be using 0x82000000 instead?
Yeah, I’m not sure about the date and time. That’s just part of the header mkimage generated as far as I know.
I didn’t touch XIP when compiling the kernel or U-Boot (or when making the uImage), so I’m not entirely sure about it.

0x80008000 is the correct address for omap2+ (am335x)…

Looking at:

Falcon Mode: FAT SD cards
=========================

In this case the additional file is written to the filesystem.  In this
example we assume that the uImage and device tree to be used are already on
the FAT filesystem (only the uImage MUST be for this to function
afterwards) along with a Falcon Mode aware MLO and the FAT partition has
already been created and marked bootable:

U-Boot # mmc rescan
# Load kernel and device tree into memory, perform export
U-Boot # load mmc 0:1 ${loadaddr} uImage
U-Boot # run findfdt
U-Boot # load mmc 0:1 ${fdtaddr} ${fdtfile}
U-Boot # run mmcargs
U-Boot # spl export fdt ${loadaddr} - ${fdtaddr}

This will print a number of lines and then end with something like:
   Using Device Tree in place at 80f80000, end 80f85928
   Using Device Tree in place at 80f80000, end 80f88928
So then you:

U-Boot # fatwrite mmc 0:1 0x80f80000 args 8928

wonders… how did you write the uImage/device-tree…

=> setenv loadfdt 'mmc read ${fdtaddr} 80 180'
=> setenv loadimage 'mmc read ${loadaddr} 900 2000'

I wonder about testing it as fs file reading vs direct offsets’…

Regards,

I have four files that I write to the SD card in a script:

dd if=am335x-boneblack.dtb of=/dev/mmcblk0 bs=1 seek=65536
dd if=MLO of=/dev/mmcblk0 bs=1 seek=262144
dd if=u-boot-dtb.img of=/dev/mmcblk0 bs=1 seek=393216
dd if=uImage of=/dev/mmcblk0 bs=1 seek=1179648

I’m not sure if this is right, but it’s what was written in the tutorial linked above. It follows this table:
image
I can try to test writing to a filesystem instead. Do you have any suggestions (EXT4, FAT32, etc.)?
Thank you for your help.

Just start with simple fat, i’m wondering if we have some extra bits that are messing with the crc check.

Regards,

I will try that tomorrow. Thanks.

So it turns out I had an error in this one U-Boot command, which reads 4.19MB:

setenv loadimage 'mmc read ${loadaddr} 900 2000'

Because my image is 9.65MB (and therefore much bigger than the one used in the tutorial), it should’ve been:

setenv loadimage 'mmc read ${loadaddr} 900 8000'

which reads 16.8MB, plenty of space for the kernel. Falcon mode is now functional. Thanks for your help!

I spent a bit more time on this and realized Falcon mode is actually not working. I think it might be writing to the SD card, but I’m not sure. Here is my full output log:

U-Boot SPL 2022.04 (Nov 03 2022 - 11:40:28 -0400)
Trying to boot from MMC2


U-Boot 2022.04 (Nov 03 2022 - 11:40:28 -0400)

CPU  : AM335X-GP rev 2.1
Model: TI AM335x BeagleBone Black
DRAM:  512 MiB
Reset Source: Power-on reset has occurred.
RTC 32KCLK Source: External.
Core:  150 devices, 14 uclasses, devicetree: separate
WDT:   Started wdt@44e35000 with servicing (60s timeout)
MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
Loading Environment from MMC... OK
Board: BeagleBone Black
BeagleBone Black:
Model: BeagleBone Black Industrial:
BeagleBone Cape EEPROM: no EEPROM at address: 0x54
BeagleBone Cape EEPROM: no EEPROM at address: 0x55
BeagleBone Cape EEPROM: no EEPROM at address: 0x56
BeagleBone Cape EEPROM: no EEPROM at address: 0x57
Net:   eth2: ethernet@4a100000, eth3: usb_ether
Press SPACE to abort autoboot in 0 seconds
=>     setenv args_mmc 'setenv bootargs console=${console} ${optargs} root=/dev/mmcblk0p1 ro rootfstype=${mmcrootfstype}'
=> setenv loadfdt 'mmc read ${fdtaddr} 80 180'
=>
=> setenv loadimage 'mmc read ${loadaddr} 900 8000'
=>
=> setenv bootcmd 'run args_mmc; run loadfdt; run loadimage; bootm ${loadaddr} - ${fdtaddr}'
=> saveenv
Saving Environment to MMC... Writing to redundant MMC(0)... OK
=> run args_mmc
=> run loadimage

MMC read: dev # 0, block # 2304, count 32768 ... 32768 blocks read: OK
=> run loadfdt

MMC read: dev # 0, block # 128, count 384 ... 384 blocks read: OK
=> spl export fdt ${loadaddr} - ${fdtaddr}
## Booting kernel from Legacy Image at 82000000 ...
   Image Name:   Linux kernel
   Created:      2022-10-26  17:38:41 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    9880064 Bytes = 9.4 MiB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 8ffc7000
   Booting using the fdt blob at 0x8ffc7000
   Loading Kernel Image
   Loading Device Tree to 8ffe5000, end 8fffffff ... OK
subcommand not supported
subcommand not supported
   Loading Device Tree to 8ffc7000, end 8ffe4fff ... OK
Argument image is now in RAM: 0x8ffc7000
WARN: FDT size > CMD_SPL_WRITE_SIZE
=> mmc write ${fdtaddr} 80 180

MMC write: dev # 0, block # 128, count 384 ... 384 blocks written: OK
=> setenv boot_os 1
=> saveenv
Saving Environment to MMC... Writing to MMC(0)... OK

There are several problems I see, but I’m not entirely sure how to fix them. It appears SPL first tries to boot from MMC2, which I don’t think exists. Ideally it should boot from MMC1, right? Also, the save environment is MMC(0). It seems like it should be MMC(1) since as soon as I remove the SD card the environment would be gone. I get the following warning when trying to export the image:

WARN: FDT size > CMD_SPL_WRITE_SIZE

Thanks.

Warning: there is a bit of a long log in this reply. Here is what I’m attempting to accomplish:

  1. Store U-Boot environment variables in eMMC.
  2. Boot Falcon mode from eMMC.
  3. Keep my Debian version, custom kernel, and applications.

The tutorial I have been referencing (here) involves reading from and writing to the SD card containing the files (presumably to boot from the SD). The closest I have gotten to having things working was when I tried to boot from the SD; it seemed to get most of the way there, but it then gave a kernel panic error and failed to boot. These are the commands I used:

setenv args_mmc 'setenv bootargs console=${console} ${optargs} root=/dev/mmcblk0p1 ro rootfstype=${mmcrootfstype}'
setenv loadfdt 'mmc read ${fdtaddr} 80 180'
setenv loadimage 'mmc read ${loadaddr} 900 8000'
setenv bootcmd 'run args_mmc; run loadfdt; run loadimage; bootm ${loadaddr} - ${fdtaddr}'
saveenv
run args_mmc
run loadimage
run loadfdt
spl export fdt ${loadaddr} - ${fdtaddr}
mmc write ${fdtaddr} 80 180
setenv boot_os 1
saveenv
reset

I have also attempted modifying the commands to write directly to eMMC but I am not exactly sure of what I’m doing:

setenv args_mmc 'setenv bootargs console=${console} ${optargs} root=/dev/mmcblk1p1 ro rootfstype=${mmcrootfstype}'

and

mmc dev 1

Since I already have a Debian image with my own applications and a custom kernel and U-Boot installed on eMMC, I want to preserve that environment. Here is my U-Boot console log:

U-Boot SPL 2022.04 (Nov 07 2022 - 14:52:22 -0500)
Trying to boot from MMC2

U-Boot 2022.04 (Nov 07 2022 - 14:52:22 -0500)

CPU : AM335X-GP rev 2.1
Model: TI AM335x BeagleBone Black
DRAM: 512 MiB
Reset Source: Power-on reset has occurred.
RTC 32KCLK Source: External.
Core: 150 devices, 14 uclasses, devicetree: separate
WDT: Started wdt@44e35000 with servicing (60s timeout)
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
Loading Environment from MMC... *** Warning - bad CRC, using default environment

Board: BeagleBone Black
<ethaddr> not set. Validating first E-fuse MAC
BeagleBone Black:
Model: BeagleBone Black Industrial:
BeagleBone Cape EEPROM: no EEPROM at address: 0x54
BeagleBone Cape EEPROM: no EEPROM at address: 0x55
BeagleBone Cape EEPROM: no EEPROM at address: 0x56
BeagleBone Cape EEPROM: no EEPROM at address: 0x57
Net: eth2: ethernet@4a100000, eth3: usb_ether
Press SPACE to abort autoboot in 0 seconds
=> setenv args_mmc 'setenv bootargs console=${console} ${optargs} root=/dev/mmcblk0p1 ro rootfstype=${mmcrootfstype}'
=> setenv loadfdt 'mmc read ${fdtaddr} 80 180'
=> setenv loadimage 'mmc read ${loadaddr} 900 8000'
=> setenv bootcmd 'run args_mmc; run loadfdt; run loadimage; bootm ${loadaddr} - ${fdtaddr}'
=> saveenv
Saving Environment to MMC... Writing to redundant MMC(0)... OK
=> run args_mmc
=> run loadimage

MMC read: dev # 0, block # 2304, count 32768 ... 32768 blocks read: OK
=> run loadfdt

MMC read: dev # 0, block # 128, count 384 ... 384 blocks read: OK
=> spl export fdt ${loadaddr} - ${fdtaddr}
## Booting kernel from Legacy Image at 82000000 ...
Image Name: Linux-5.15.65+
Created: 2022-11-03 20:35:54 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 9880064 Bytes = 9.4 MiB
Load Address: 82000000
Entry Point: 82000000
Verifying Checksum ... OK
## Flattened Device Tree blob at 88000000
Booting using the fdt blob at 0x88000000
Loading Kernel Image
Loading Device Tree to 8ffe5000, end 8ffff28f ... OK
subcommand not supported
subcommand not supported
Loading Device Tree to 8ffc7000, end 8ffe428f ... OK
Argument image is now in RAM: 0x8ffc7000
WARN: FDT size > CMD_SPL_WRITE_SIZE
=> mmc write ${fdtaddr} 80 180

MMC write: dev # 0, block # 128, count 384 ... 384 blocks written: OK
=> setenv boot_os 1
=> saveenv
Saving Environment to MMC... Writing to MMC(0)... OK
=> reset
resetting ...

U-Boot SPL 2022.04 (Nov 07 2022 - 14:52:22 -0500)
Trying to boot from MMC2

U-Boot 2022.04 (Nov 07 2022 - 14:52:22 -0500)

CPU : AM335X-GP rev 2.1
Model: TI AM335x BeagleBone Black
DRAM: 512 MiB
Reset Source: Global warm SW reset has occurred.
Reset Source: Power-on reset has occurred.
RTC 32KCLK Source: External.
Core: 150 devices, 14 uclasses, devicetree: separate
WDT: Started wdt@44e35000 with servicing (60s timeout)
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
Loading Environment from MMC... OK
Board: BeagleBone Black
BeagleBone Black:
Model: BeagleBone Black Industrial:
BeagleBone Cape EEPROM: no EEPROM at address: 0x54
BeagleBone Cape EEPROM: no EEPROM at address: 0x55
BeagleBone Cape EEPROM: no EEPROM at address: 0x56
BeagleBone Cape EEPROM: no EEPROM at address: 0x57
Net: eth2: ethernet@4a100000, eth3: usb_ether
Press SPACE to abort autoboot in 0 seconds

MMC read: dev # 0, block # 128, count 384 ... 384 blocks read: OK

MMC read: dev # 0, block # 2304, count 32768 ... 32768 blocks read: OK
## Booting kernel from Legacy Image at 82000000 ...
Image Name: Linux-5.15.65+
Created: 2022-11-03 20:35:54 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 9880064 Bytes = 9.4 MiB
Load Address: 82000000
Entry Point: 82000000
Verifying Checksum ... OK
## Flattened Device Tree blob at 8ffc7000
Booting using the fdt blob at 0x8ffc7000
Loading Kernel Image
Loading Device Tree to 8ffe5000, end 8fffffff ... OK

Starting kernel ...

[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 5.15.65+ (root@bell-markQt) (arm-linux-gnueabihf-gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #3 PREEMPT Tue Oct 25 16:49:28 EDT 2022
[ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=50c5387d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] OF: fdt: Machine model: TI AM335x BeagleBone Black
[ 0.000000] Memory policy: Data cache writeback
[ 0.000000] efi: UEFI not found.
[ 0.000000] cma: Reserved 48 MiB at 0x9c800000
[ 0.000000] Zone ranges:
[ 0.000000] Normal [mem 0x0000000080000000-0x000000009fefffff]
[ 0.000000] HighMem empty
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000080000000-0x000000009fefffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x000000009fefffff]
[ 0.000000] CPU: All CPU(s) started in SVC mode.
[ 0.000000] AM335X ES2.1 (sgx neon)
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 129666
[ 0.000000] Kernel command line: console=ttyS0,115200n8 root=/dev/mmcblk0p1 ro rootfstype=ext4 rootwait
[ 0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
[ 0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes, linear)
[ 0.000000] mem auto-init: stack:off, heap alloc:on, heap free:off
[ 0.000000] Memory: 450260K/523264K available (10240K kernel code, 1650K rwdata, 3820K rodata, 1024K init, 343K bss, 23852K reserved, 49152K cma-reserved, 0K highmem)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] ftrace: allocating 47335 entries in 139 pages
[ 0.000000] ftrace: allocated 139 pages with 4 groups
[ 0.000000] trace event string verifier disabled
[ 0.000000] rcu: Preemptible hierarchical RCU implementation.
[ 0.000000] Trampoline variant of Tasks RCU enabled.
[ 0.000000] Rude 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] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[ 0.000000] IRQ: Found an INTC at 0x(ptrval) (revision 5.0) with 128 interrupts
[ 0.000000] TI gptimer clocksource: always-on /ocp/interconnect@44c00000/segment@200000/target-module@31000
[ 0.000002] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[ 0.000023] clocksource: dmtimer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[ 0.000368] TI gptimer clockevent: 24000000 Hz at /ocp/interconnect@48000000/segment@0/target-module@40000
[ 0.001721] Console: colour dummy device 80x30
[ 0.001811] Calibrating delay loop... 995.32 BogoMIPS (lpj=1990656)
[ 0.020455] pid_max: default: 32768 minimum: 301
[ 0.020922] LSM: Security Framework initializing
[ 0.021069] Yama: becoming mindful.
[ 0.021355] AppArmor: AppArmor initialized
[ 0.021375] TOMOYO Linux initialized
[ 0.021576] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.021600] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.023172] CPU: Testing write buffer coherency: ok
[ 0.023251] CPU0: Spectre v2: using BPIALL workaround
[ 0.024904] Setting up static identity map for 0x80100000 - 0x80100054
[ 0.025133] rcu: Hierarchical SRCU implementation.
[ 0.026279] EFI services will not be available.
[ 0.027083] devtmpfs: initialized
[ 0.043856] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
[ 0.044280] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[ 0.044315] futex hash table entries: 256 (order: -1, 3072 bytes, linear)
[ 0.049491] pinctrl core: initialized pinctrl subsystem
[ 0.051325] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[ 0.059825] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.060398] audit: initializing netlink subsys (disabled)
[ 0.061565] thermal_sys: Registered thermal governor 'fair_share'
[ 0.061582] thermal_sys: Registered thermal governor 'bang_bang'
[ 0.061595] thermal_sys: Registered thermal governor 'step_wise'
[ 0.062046] cpuidle: using governor menu
[ 0.068490] audit: type=2000 audit(0.060:1): state=initialized audit_enabled=0 res=1
[ 0.078381] hw-breakpoint: debug architecture 0x4 unsupported.
[ 0.097478] raid6: skip pq benchmark and using algorithm neonx8
[ 0.097518] raid6: using neon recovery algorithm
[ 0.098991] iommu: Default domain type: Translated
[ 0.099017] iommu: DMA domain TLB invalidation policy: strict mode
[ 0.100860] SCSI subsystem initialized
[ 0.101250] usbcore: registered new interface driver usbfs
[ 0.101304] usbcore: registered new interface driver hub
[ 0.101359] usbcore: registered new device driver usb
[ 0.101797] pps_core: LinuxPPS API ver. 1 registered
[ 0.101811] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 0.101837] PTP clock support registered
[ 0.102685] Advanced Linux Sound Architecture Driver Initialized.
[ 0.103569] NetLabel: Initializing
[ 0.103587] NetLabel: domain hash size = 128
[ 0.103596] NetLabel: protocols = UNLABELED CIPSOv4 CALIPSO
[ 0.103683] NetLabel: unlabeled traffic allowed by default
[ 0.104940] clocksource: Switched to clocksource dmtimer
[ 0.209614] VFS: Disk quotas dquot_6.6.0
[ 0.209748] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[ 0.210689] AppArmor: AppArmor Filesystem Enabled
[ 0.230825] NET: Registered PF_INET protocol family
[ 0.231101] IP idents hash table entries: 8192 (order: 4, 65536 bytes, linear)
[ 0.237591] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)
[ 0.237818] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[ 0.237849] TCP established hash table entries: 4096 (order: 2, 16384 bytes, linear)
[ 0.237905] TCP bind hash table entries: 4096 (order: 2, 16384 bytes, linear)
[ 0.237948] TCP: Hash tables configured (established 4096 bind 4096)
[ 0.238207] MPTCP token hash table entries: 512 (order: 0, 6144 bytes, linear)
[ 0.238320] UDP hash table entries: 256 (order: 0, 4096 bytes, linear)
[ 0.238349] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes, linear)
[ 0.238630] NET: Registered PF_UNIX/PF_LOCAL protocol family
[ 0.245365] RPC: Registered named UNIX socket transport module.
[ 0.245391] RPC: Registered udp transport module.
[ 0.245401] RPC: Registered tcp transport module.
[ 0.245409] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.245424] NET: Registered PF_XDP protocol family
[ 1.258657] Initialise system trusted keyrings
[ 1.259082] workingset: timestamp_bits=14 max_order=17 bucket_order=3
[ 1.265746] zbud: loaded
[ 1.269046] NFS: Registering the id_resolver key type
[ 1.269123] Key type id_resolver registered
[ 1.269134] Key type id_legacy registered
[ 1.269294] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[ 1.269312] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[ 1.269606] fuse: init (API version 7.34)
[ 1.365103] xor: automatically using best checksumming function neon
[ 1.365140] Key type asymmetric registered
[ 1.365150] Asymmetric key parser 'x509' registered
[ 1.365287] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245)
[ 1.365566] io scheduler mq-deadline registered
[ 1.369410] Serial: 8250/16550 driver, 6 ports, IRQ sharing disabled
[ 1.376661] CAN device driver interface
[ 1.377733] usbcore: registered new interface driver uas
[ 1.377861] usbcore: registered new interface driver usb-storage
[ 1.377901] usbcore: registered new interface driver ums-alauda
[ 1.377935] usbcore: registered new interface driver ums-cypress
[ 1.377968] usbcore: registered new interface driver ums-datafab
[ 1.378002] usbcore: registered new interface driver ums_eneub6250
[ 1.378035] usbcore: registered new interface driver ums-freecom
[ 1.378069] usbcore: registered new interface driver ums-isd200
[ 1.378101] usbcore: registered new interface driver ums-jumpshot
[ 1.378134] usbcore: registered new interface driver ums-karma
[ 1.378166] usbcore: registered new interface driver ums-onetouch
[ 1.378233] usbcore: registered new interface driver ums-realtek
[ 1.378272] usbcore: registered new interface driver ums-sddr09
[ 1.378307] usbcore: registered new interface driver ums-sddr55
[ 1.378340] usbcore: registered new interface driver ums-usbat
[ 1.380077] i2c_dev: i2c /dev entries driver
[ 1.380226] Driver for 1-wire Dallas network protocol.
[ 1.381325] softdog: initialized. soft_noboot=0 soft_margin=60 sec soft_panic=0 (nowayout=0)
[ 1.381350] softdog: soft_reboot_cmd=<not set> soft_active_on_boot=0
[ 1.382246] cpuidle: enable-method property 'ti,am3352' found operations
[ 1.382773] sdhci: Secure Digital Host Controller Interface driver
[ 1.382789] sdhci: Copyright(c) Pierre Ossman
[ 1.382923] sdhci-pltfm: SDHCI platform and OF driver helper
[ 1.383154] ledtrig-cpu: registered to indicate activity on CPUs
[ 1.383797] hid: raw HID events driver (C) Jiri Kosina
[ 1.384048] usbcore: registered new interface driver usbhid
[ 1.384061] usbhid: USB HID core driver
[ 1.385691] drop_monitor: Initializing network drop monitor service
[ 1.386725] NET: Registered PF_INET6 protocol family
[ 1.391325] Segment Routing with IPv6
[ 1.391461] In-situ OAM (IOAM) with IPv6
[ 1.391589] mip6: Mobile IPv6
[ 1.391607] NET: Registered PF_PACKET protocol family
[ 1.391636] can: controller area network core
[ 1.391728] NET: Registered PF_CAN protocol family
[ 1.392134] Key type dns_resolver registered
[ 1.392154] mpls_gso: MPLS GSO support
[ 1.392327] ThumbEE CPU extension supported.
[ 1.392347] Registering SWP/SWPB emulation handler
[ 1.392359] omap_voltage_late_init: Voltage driver support not added
[ 1.392662] PM: Cannot get wkup_m3_ipc handle
[ 1.393555] registered taskstats version 1
[ 1.393588] Loading compiled-in X.509 certificates
[ 1.393966] zswap: loaded using pool lzo/zbud
[ 1.394689] Key type ._fscrypt registered
[ 1.394713] Key type .fscrypt registered
[ 1.394721] Key type fscrypt-provisioning registered
[ 1.402229] Btrfs loaded, crc32c=crc32c-generic, zoned=yes, fsverity=yes
[ 1.402407] AppArmor: AppArmor sha1 policy hashing enabled
[ 1.423615] remoteproc remoteproc0: wkup_m3 is available
[ 1.434364] pinctrl-single 44e10800.pinmux: 142 pins, size 568
[ 1.438188] ti-sysc: probe of 44e31000.target-module failed with error -16
[ 1.441347] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
[ 1.444376] omap_rtc 44e3e000.rtc: registered as rtc0
[ 1.444441] omap_rtc 44e3e000.rtc: setting system clock to 2000-01-01T00:00:00 UTC (946684800)
[ 1.452842] ti-sysc: probe of 48040000.target-module failed with error -16
[ 1.463355] OMAP GPIO hardware version 0.1
[ 1.468442] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
[ 1.473595] at24 2-0054: supply vcc not found, using dummy regulator
[ 1.504435] at24 2-0055: supply vcc not found, using dummy regulator
[ 1.531422] at24 2-0056: supply vcc not found, using dummy regulator
[ 1.560302] at24 2-0057: supply vcc not found, using dummy regulator
[ 1.587062] omap_i2c 4819c000.i2c: bus 2 rev0.11 at 100 kHz
[ 1.597968] sdhci-omap 481d8000.mmc: supply vqmmc not found, using dummy regulator
[ 1.609270] omap_rng 48310000.rng: Random Number Generator ver. 20
[ 1.609746] random: crng init done
[ 1.652974] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6, bus freq 1000000
[ 1.654919] davinci_mdio 4a101000.mdio: phy[0]: device 4a101000.mdio:00, driver SMSC LAN8710/LAN8720
[ 1.655324] cpsw-switch 4a100000.switch: initialized cpsw ale version 1.4
[ 1.655350] cpsw-switch 4a100000.switch: ALE Table size 1024
[ 1.655444] cpsw-switch 4a100000.switch: cpts: overflow check period 1250 (jiffies)
[ 1.655464] cpsw-switch 4a100000.switch: CPTS: ref_clk_freq:250000000 calc_mult:2147483648 calc_shift:29 error:0 nsec/sec
[ 1.655573] cpsw-switch 4a100000.switch: Detected MACID = 64:33:db:68:d1:e9
[ 1.656831] cpsw-switch 4a100000.switch: initialized (regs 0x4a100000, pool size 256) hw_ver:0019010C 1.12 (0)
[ 1.670854] debugfs: Directory '49000000.dma' with parent 'dmaengine' already present!
[ 1.670905] edma 49000000.dma: TI EDMA DMA engine driver
[ 1.676532] am335x-phy-driver 47401300.usb-phy: supply vcc not found, using dummy regulator
[ 1.676835] am335x-phy-driver 47401300.usb-phy: dummy supplies not allowed for exclusive requests
[ 1.683407] am335x-phy-driver 47401b00.usb-phy: supply vcc not found, using dummy regulator
[ 1.683698] am335x-phy-driver 47401b00.usb-phy: dummy supplies not allowed for exclusive requests
[ 1.703534] omap-sham 53100000.sham: hw accel on OMAP rev 4.3
[ 1.703839] omap-sham 53100000.sham: will run requests pump with realtime priority
[ 1.706998] omap-aes 53500000.aes: OMAP AES hw accel rev: 3.2
[ 1.707372] omap-aes 53500000.aes: will run requests pump with realtime priority
[ 1.712415] hw perfevents: enabled with armv7_cortex_a8 PMU driver, 5 counters available
[ 1.717561] l3-aon-clkctrl:0000:0: failed to disable
[ 1.720806] PM: Cannot get wkup_m3_ipc handle
[ 1.723343] printk: console [ttyS0] disabled
[ 1.723460] 44e09000.serial: ttyS0 at MMIO 0x44e09000 (irq = 18, base_baud = 3000000) is a 8250
[ 2.958811] printk: console [ttyS0] enabled
[ 2.989524] tps65217-pmic: Failed to locate of_node [id: -1]
[ 3.004292] tps65217-bl: Failed to locate of_node [id: -1]
[ 3.012808] tps65217 0-0024: TPS65217 ID 0xe version 1.2
[ 3.018722] at24 0-0050: supply vcc not found, using dummy regulator
[ 3.025789] at24 0-0050: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
[ 3.033053] i2c 0-0070: Fixing up cyclic dependency with 4830e000.lcdc
[ 3.159452] tda998x 0-0070: found TDA19988
[ 3.166407] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
[ 3.174462] omap_gpio 44e07000.gpio: Could not set line 6 debounce to 200000 microseconds (-22)
[ 3.185028] tilcdc 4830e000.lcdc: bound 0-0070 (ops 0xc0ba1bb4)
[ 3.191069] remoteproc remoteproc0: powering up wkup_m3
[ 3.197424] sdhci-omap 481d8000.mmc: supply vqmmc not found, using dummy regulator
[ 3.205138] remoteproc remoteproc0: Booting fw image am335x-pm-firmware.elf, size 217148
[ 3.213500] sdhci-omap 48060000.mmc: Got CD GPIO
[ 3.219627] [drm] Initialized tilcdc 1.0.0 20121205 for 4830e000.lcdc on minor 0
[ 3.228254] sdhci-omap 48060000.mmc: supply vqmmc not found, using dummy regulator
[ 3.236218] remoteproc remoteproc0: remote processor wkup_m3 is now up
[ 3.242789] wkup_m3_ipc 44e11324.wkup_m3_ipc: CM3 Firmware Version = 0x192
[ 3.250248] tilcdc 4830e000.lcdc: [drm] Cannot find any crtc or sizes
[ 3.261073] mmc1: SDHCI controller on 481d8000.mmc [481d8000.mmc] using External DMA
[ 3.277747] musb-hdrc musb-hdrc.1: MUSB HDRC host driver
[ 3.283517] musb-hdrc musb-hdrc.1: new USB bus registered, assigned bus number 1
[ 3.291138] mmc0: SDHCI controller on 48060000.mmc [48060000.mmc] using External DMA
[ 3.299580] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.15
[ 3.308061] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 3.315380] usb usb1: Product: MUSB HDRC host driver
[ 3.320420] usb usb1: Manufacturer: Linux 5.15.65+ musb-hcd
[ 3.326066] usb usb1: SerialNumber: musb-hdrc.1
[ 3.331591] hub 1-0:1.0: USB hub found
[ 3.335570] hub 1-0:1.0: 1 port detected
[ 3.348922] PM: bootloader does not support rtc-only!
[ 3.355066] tps6521x_pwrbutton tps65217-pwrbutton: DMA mask not set
[ 3.362509] input: tps65217_pwr_but as /devices/platform/ocp/44c00000.interconnect/44c00000.interconnect:segment@200000/44e0b000.target-module/44e0b000.i2c/i2c-0/0-0024/tps65217-pwrbutton/input/input0
[ 3.384668] ALSA device list:
[ 3.387936] No soundcards found.
[ 3.391780] mmc1: new high speed MMC card at address 0001
[ 3.397603] Waiting for root device /dev/mmcblk0p1...
[ 3.404043] mmcblk1: mmc1:0001 M62704 3.56 GiB
[ 3.411554] mmcblk1: p1
[ 3.415382] mmcblk1boot0: mmc1:0001 M62704 2.00 MiB
[ 3.423241] mmcblk1boot1: mmc1:0001 M62704 2.00 MiB
[ 3.430334] mmcblk1rpmb: mmc1:0001 M62704 512 KiB, chardev (242:0)
[ 3.440314] mmc0: new high speed SDHC card at address e624
[ 3.446941] mmcblk0: mmc0:e624 SU04G 3.69 GiB
[ 3.454797] mmcblk0: p1
[ 3.470553] List of all partitions:
[ 3.474216] b300 3735552 mmcblk1
[ 3.474228] driver: mmcblk
[ 3.481119] b301 3731456 mmcblk1p1 f3e36a6c-01
[ 3.481129]
[ 3.488019] 0b3:00300 3872256 mmcblk0
[ 3.488028] driver: mmcblk
[ 3.494877] 0b3:00301 3871232 mmcblk0p1 b8797ad6-01
[ 3.494886]
[ 3.501733] No filesystem could mount root, tried:
[ 3.501738] ext4
[ 3.506652]
[ 3.510087] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,769)
[ 3.518739] CPU: 0 PID: 1 Comm: swapper Not tainted 5.15.65+ #3
[ 3.524689] Hardware name: Generic AM33XX (Flattened Device Tree)
[ 3.530820] [<c010bb45>] (unwind_backtrace) from [<c0109715>] (show_stack+0x11/0x14)
[ 3.538624] [<c0109715>] (show_stack) from [<c0a83857>] (panic+0xbf/0x238)
[ 3.545552] [<c0a83857>] (panic) from [<c10014fb>] (mount_block_root+0x16b/0x170)
[ 3.553079] [<c10014fb>] (mount_block_root) from [<c1001669>] (mount_root+0x169/0x186)
[ 3.561037] [<c1001669>] (mount_root) from [<c100176d>] (prepare_namespace+0xe7/0x11e)
[ 3.568994] [<c100176d>] (prepare_namespace) from [<c1001149>] (kernel_init_freeable+0x1a3/0x1b6)
[ 3.577926] [<c1001149>] (kernel_init_freeable) from [<c0a90fa7>] (kernel_init+0x13/0xf8)
[ 3.586149] [<c0a90fa7>] (kernel_init) from [<c0100139>] (ret_from_fork+0x11/0x38)
[ 3.593758] Exception stack(0xc1991fb0 to 0xc1991ff8)
[ 3.598836] 1fa0: 00000000 00000000 00000000 00000000
[ 3.607052] 1fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 3.615268] 1fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[ 3.621926] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,769) ]---

Any help would be greatly appreciated!