BeagleV-Ahead automatic SD card boot

One more question to everyone reading this: Could you please allow me to post here right away without “waiting for allowance to post”?!? This is super annoying, thanks!

@jkridner can we get this fixed?

just a thought, did you pull any u-boot config changes form the yocto u-boot build?

interesting,

seems you’re running an older Ubuntu than I, which shouldn’t make any difference, but …
you’re also using a different gcc than yocto, again it shouldn’t make any difference, but …

sdcard u-boot
U-Boot 2020.01-00038-gbbf3994802 (Aug 08 2023 - 14:12:23 +0200)

riscv64-linux-gnu-gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
GNU ld (GNU Binutils for Ubuntu) 2.38

emmc u-boot
C910 Light# version
U-Boot 2020.01 (Jul 27 2023 - 19:45:18 +0000)

riscv64-linux-gcc (Xuantie-900 linux-5.10.4 glibc gcc Toolchain V2.2.8 B-2022120
GNU ld (GNU Binutils) 2.35

something else, the u-boot built outside of yocto does not support fastboot upgrade
yotcto build has support for dwc3_gadget, so we need that enabled

i’ll look more at this tomorrow,

So I guess those are the different outputs, when printing version information from the uboot console? Great, so now at least we can be pretty confident, that what I did actually resulted in some working bootable uboot on an SD card! :smiley: Thanks for your work @amf99 ! The next two days I don’t have much time. I will try support afterwards again, especially when I hopefully have a working uart-usb interface again, somewhat in the middle of next week.

Best regards,
Kilian

Good news, u-boot boot from sdcard resolved, 
Thanks to @Kilian for putting us on the right track
using seek in the dd command, was the issue, don't use it
no changes to u-boot defconfig are required, 

fresh clone of 
https://github.com/beagleboard/beaglev-ahead-u-boot.git
make light_beagle_defconfig
make CROSS_COMPILE=riscv64-linux-gnu- -j16
sudo dd if=/dev/zero of=/dev/disk/by-id/<my-sd-card> bs=1M count=5
sync
sudo dd if=u-boot-with-spl.bin of=/dev/disk/by-id/<my-sd-card> 

sdcard
C910 Light# version                                                             
U-Boot 2020.01-00038-gbbf3994802 (Aug 13 2023 - 07:13:12 -0500)                 
                                                                                
riscv64-linux-gnu-gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0                     
GNU ld (GNU Binutils for Ubuntu) 2.38 

sdcard, yocto build
C910 Light# version                                                             
U-Boot 2020.01 (Jul 27 2023 - 19:45:18 +0000)                                   
                                                                                
riscv64-linux-gcc (Xuantie-900 linux-5.10.4 glibc gcc Toolchain V2.2.8 B-2022120
GNU ld (GNU Binutils) 2.35

emmc yocto build
C910 Light# version                                                             
U-Boot 2020.01 (Jul 27 2023 - 19:45:18 +0000)                                   
                                                                                
riscv64-linux-gcc (Xuantie-900 linux-5.10.4 glibc gcc Toolchain V2.2.8 B-2022120
GNU ld (GNU Binutils) 2.35 

@RobertCNelson now that we got the SD card boot working, may I ask again about the patch from Sipeeed, which may allow to scan for extlinux.conf boot/scanning of sd card? Could this be a possibility to boot uboot from SD card without having to press the button? Do you have a link to the patch? And is there something I could help with to get the patch ported to the BeagleV-Ahead?

Best regards,
Kilian

Great, thanks a lot @amf99 for figuring out what was the problem and finally allowing everyone to boot uboot from SD card! As soon as I have a working uart adapter again, I will test it :slight_smile:

1 Like

ya still working the sdcard thing? the slow response to beagleboard posts, grr.
i’m getting constant reboots with the sdcard inserted and booting from emmc
sdcard is formatted like the emmc, no u-boot or anything else installed on sdcard.
not sure if this posts on beagleboard site, but
one other thing i have seen is system rebooting when doing “git clone” of some sites.

@Kilian @RobertCNelson what happened to the patch from Sipeeed??
is this patch in public domain ??

merged… Commits · beaglev-v2020.01-1.1.2-ubuntu · BeagleV-Ahead / beaglev-ahead-u-boot · GitLab

1 Like

looks like there is more work to do,
i had zero’d emmc, so it looks like the .bin files are being loaded from emmc.

U-Boot 2020.01 (Oct 27 2023 - 12:27:40 -0500)

CPU: rv64imafdcvsu
Model: T-HEAD c910 light
DRAM: 4 GiB
C910 CPU FREQ: 750MHz
AHB2_CPUSYS_HCLK FREQ: 250MHz
AHB3_CPUSYS_PCLK FREQ: 125MHz
PERISYS_AHB_HCLK FREQ: 250MHz
PERISYS_APB_PCLK FREQ: 62MHz
GMAC PLL POSTDIV FREQ: 1000MHZ
DPU0 PLL POSTDIV FREQ: 1188MHZ
DPU1 PLL POSTDIV FREQ: 1188MHZ
MMC: sdhci@ffe7080000: 0, sd@ffe7090000: 1
Loading Environment from MMC… *** Warning - bad CRC, using default environment

Error reading output register
Warning: cannot get lcd-en GPIO
LCD panel cannot be found : -121
splash screen startup cost 16 ms
In: serial
Out: serial
Err: serial
loading aon…
** No partition table - mmc 0 **
cp - memory copy

Usage:
cp [.b, .w, .l, .q] source target count
loading audio…
** No partition table - mmc 0 **
cp - memory copy

Usage:
cp [.b, .w, .l, .q] source target count
loading opensbi…
** No partition table - mmc 0 **
bootslave…Net:
Warning: ethernet@ffe7070000 (eth0) using random MAC address - aa:83:ad:65:5d:a3
eth0: ethernet@ffe7070000ethernet@ffe7070000:0 is connected to ethernet@ffe70700

Warning: ethernet@ffe7060000 (eth1) using random MAC address - 56:b7:8c:b0:0c:42
, eth1: ethernet@ffe7060000
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc1 is current device
Scanning mmc 1:2…
switch to partitions #0, OK
mmc0(part 0) is current device
** No partition table - mmc 0 **

or make sure the eMMC has a decent enough version installed…

Regards,

Hi I managed to boot of the SD card, the only thing using the emmc partition was the uboot part - some sd cards work and some don’t as was posted above. I can share the details if you’re interested. I had to modify the board/thead/light-c910/light.c mentioned in the patch above as well.

NAME         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
mmcblk1      179:0    0  3.7G  0 disk
├─mmcblk1p1  179:1    0  200M  0 part
├─mmcblk1p2  179:2    0  200M  0 part
└─mmcblk1p3  179:3    0  3.3G  0 part /
mmcblk0      179:256  0 14.6G  0 disk
├─mmcblk0p1  179:257  0    2M  0 part
├─mmcblk0p2  179:258  0  200M  0 part
└─mmcblk0p3  179:259  0 14.4G  0 part
mmcblk0boot0 179:512  0    4M  1 disk
mmcblk0boot1 179:768  0    4M  1 disk

Hi @m.zakrzewski you can grab the daily build of the 1.1.2 branch here: Artifacts · BeagleV-Ahead / xuantie-ubuntu · GitLab

Just edit the the “fastboot*” script like so to only update the eMMC partition:

#!/bin/bash

if ! id | grep -q root; then
	echo "./fastboot_emmc.sh must be run as root:"
	echo "sudo ./fastboot_emmc.sh"
	exit
fi

if [ -f boot.ext4.xz ] ; then
	unxz -v boot.ext4.xz
fi

if [ -f root.ext4.xz ] ; then
	unxz -v root.ext4.xz
fi

fastboot flash ram ./u-boot-with-spl.bin
fastboot reboot
sleep 10
fastboot oem format
fastboot flash uboot ./u-boot-with-spl.bin
fastboot flash boot ./boot.ext4
#fastboot flash root ./root.ext4
fastboot reboot

@RobertCNelson yes I used this repo to build the modified u-boot-with-spl.bin. Ill try if it works with the new kernels and boot/root fs tomorrow with another sd card. I wiped my emmc partition 1 so it looks like using fastboot is limited to uboot in my case anyway

This is the procedure that I used:

Note: the modified uboot always expects the sd card to hold the firmware files

1. Clone the repo

git clone https://github.com/beagleboard/xuantie-ubuntu

cd xuantie-ubuntu

2. Look for the newest CI job’s (e.g. build (#16662) · Jobs · BeagleV-Ahead / xuantie-ubuntu · GitLab) revision to check out

Checking out fd009801 as detached HEAD (ref is beaglev-1.1.2)…

git checkout fd009801

3. Build the images

./01_git_sync.sh

./02_build_opensbi.sh

4. Modify the file:

vim u-boot/board/thead/light-c910/light.c

2260 static void do_firmware_load(void)                                              
2261 {                                                                               
2262         printf("loading aon...\n");                                             
2263         run_command("if test -e mmc 1:2 light_aon_fpga.bin; then load mmc 1:2 0x10000000 light_aon_fpga.bin; fi; cp.b 0x10000000 0xffffef8000 $filesize", 0);
2264         printf("loading audio...\n");                                           
2265         run_command("if test -e mmc 1:2 light_c906_audio.bin; then load mmc 1:2 0x10000000 light_c906_audio.bin; fi; cp.b 0x10000000 0xffc0000000 $filesize", 0);
2266         printf("loading opensbi...\n");                                         
2267         run_command("if test -e mmc 1:2 fw_dynamic.bin; then load mmc 1:2 0x0 fw_dynamic.bin; fi;", 0);
2268         printf("bootslave..");                                                  
2269         run_command("bootslave", 0);                                            
2270 }

The change is from emmc (mmc 0) to sd (mmc 1)

5. Continue building

./03_build_uboot.sh

./04_build_linux.sh

6. Modify the 05_generate_boot.sh file to use sd instead of emmc:

 echo "label Linux eMMC" > ./ignore/.boot/extlinux/extlinux.conf
 echo "    kernel /Image" >> ./ignore/.boot/extlinux/extlinux.conf
-echo "    append root=/dev/mmcblk0p3 ro rootfstype=ext4 rootwait console=ttyS0,115200 earlycon clk_ignore_unused net.ifnames=0" >> ./ignore/.boot/extlinux/extlinux.conf
+echo "    append root=/dev/mmcblk1p3 rw rootfstype=ext4 rootwait console=ttyS0,115200 earlycon clk_ignore_unused net.ifnames=0" >> ./ignore/.boot/extlinux/extlinux.conf
 echo "    fdtdir /" >> ./ignore/.boot/extlinux/extlinux.conf
 echo "    #fdtoverlays /overlays/<file>.dtbo" >> ./ignore/.boot/extlinux/extlinux.conf
sudo ./05_generate_boot.sh

sudo ./06_generate_ubuntu_console_root.sh

7. Write the built uboot:

sudo fastboot flash ram ./u-boot-with-spl.bin
< waiting for any device >
Warning: skip copying ram image avb footer (ram partition size: 0, ram image size: 963464).
Sending 'ram' (940 KB)                             OKAY [  0.250s]
Writing 'ram'                                      OKAY [  0.002s]
Finished. Total time: 0.263s

sudo fastboot reboot
sudo fastboot flash uboot ./u-boot-with-spl.bin

(vertify if the uboot version and build time are new by running the board)

8. Prepare the sd card partitions

sudo fdisk /dev/<sdcard>

press g for new GPT table

n for new partition

p for main partition

make 3 partitions in total, the second one is 200M or more and third e.g. 16G

9. Populate the partitions

cd deploy

sudo mount -o loop,rw boot.ext4 /mnt/temp2
sudo mount /dev/sdc2 /mnt/temp
sudo cp -avr /mnt/temp2/* /mnt/temp

verify if thigs look like this:

sudo vim /mnt/temp/extlinux/extlinux.conf


label Linux eMMC
    kernel /Image
    append root=/dev/mmcblk1p3 rw rootfstype=ext4 rootwait console=ttyS0,115200 earlycon clk_ignore_unused net.ifnames=0
    fdtdir /
    fdt /th1520-beaglev-ahead.dtb
sudo umount /mnt/temp
sudo umount /mnt/temp2
sync

sudo mount -o loop,rw root.ext4 /mnt/temp2
sudo mount /dev/sdc3 /mnt/temp
sudo cp -avr /mnt/temp2/* /mnt/temp
sudo umount /mnt/temp
sudo umount /mnt/temp2
sync

Alternatively: (not sure if this does not corrupt the fs on the sd card)
sudo dd if=boot.ext4 of=/dev/sdc2 status=progress
sudo dd if=root.ext4 of=/dev/sdc3 status=progress

sync

sudo eject /dev/sdc

  1. Insert the sd card into beaglev ahead and reset/power on

Also edit /etc/fstab to use mmcblk1 - I think it’s ok to do it on the beaglev itself

Could someone reproduce please?

2 Likes

@m.zakrzewski
I tried to follow your instructions, here’s a few comments

what is partition #1 size ?
“p for main partition”, p prints, not sure what you want
partition #2 and 3 need to be formated, mkfs.ext4
run ‘sync’ before ‘umount’ of mounted devices

extlinux.conf is missing,
fdt /th1520-beaglev-ahead.dtb

7. Write the built uboot:
should this be done after the sdcard has been inserted into the board ??

the following is after reboot (the time stamp looks correct)
U-Boot SPL 2020.01-g85565d54-dirty (Oct 28 2023 - 09:32:07 -0500)
FM[1] lpddr4x singlerank freq=3733 64bit dbi_off=n sdram init
ddr initialized, jump to uboot
image has no header

U-Boot 2020.01-g85565d54-dirty (Oct 28 2023 - 09:32:07 -0500)

CPU: rv64imafdcvsu
Model: T-HEAD c910 light
DRAM: 4 GiB
C910 CPU FREQ: 750MHz
AHB2_CPUSYS_HCLK FREQ: 250MHz
AHB3_CPUSYS_PCLK FREQ: 125MHz
PERISYS_AHB_HCLK FREQ: 250MHz
PERISYS_APB_PCLK FREQ: 62MHz
GMAC PLL POSTDIV FREQ: 1000MHZ
DPU0 PLL POSTDIV FREQ: 1188MHZ
DPU1 PLL POSTDIV FREQ: 1188MHZ
MMC: sdhci@ffe7080000: 0, sd@ffe7090000: 1
Loading Environment from MMC… OK
Error reading output register
Warning: cannot get lcd-en GPIO
LCD panel cannot be found : -121
splash screen startup cost 16 ms
In: serial
Out: serial
Err: serial
loading aon…
50340 bytes read in 2 ms (24 MiB/s)
loading audio…
15748 bytes read in 2 ms (7.5 MiB/s)
loading opensbi…
114512 bytes read in 3 ms (36.4 MiB/s)
bootslave…Net:
Warning: ethernet@ffe7070000 (eth0) using random MAC address - 3e:00:38:30:41:cd
eth0: ethernet@ffe7070000ethernet@ffe7070000:0 is connected to ethernet@ffe70700

Warning: ethernet@ffe7060000 (eth1) using random MAC address - e6:50:88:64:d0:6b
, eth1: ethernet@ffe7060000
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc1 is current device
mmc fail to send stop cmd
*** ERROR: Can’t read GPT Entries ***
GPT: Failed to allocate memory for PTE
find_valid_gpt: *** ERROR: Invalid GPT ***
*** ERROR: Can’t read GPT header ***
find_valid_gpt: *** ERROR: Invalid Backup GPT ***

Hi @amf99 thank you for the remarks, here is the amended procedure, tested with the original yocto, original ubuntu, and the ubuntu console and ubuntu xfce rootfs images:

Note: the modified uboot always expects the sd card to hold the firmware files

1. Clone the repo

git clone https://github.com/beagleboard/xuantie-ubuntu

cd xuantie-ubuntu

2. Look for the newest CI job’s (e.g. build (#16662) · Jobs · BeagleV-Ahead / xuantie-ubuntu · GitLab) revision to check out

Checking out fd009801 as detached HEAD (ref is beaglev-1.1.2)…

git checkout fd009801

3. Build the images

./01_git_sync.sh

./02_build_opensbi.sh

4. Modify the file:

vim u-boot/board/thead/light-c910/light.c

2260 static void do_firmware_load(void)                                              
2261 {                                                                               
2262         printf("loading aon...\n");                                             
2263         run_command("if test -e mmc 1:2 light_aon_fpga.bin; then load mmc 1:2 0x10000000 light_aon_fpga.bin; fi; cp.b 0x10000000 0xffffef8000 $filesize", 0);
2264         printf("loading audio...\n");                                           
2265         run_command("if test -e mmc 1:2 light_c906_audio.bin; then load mmc 1:2 0x10000000 light_c906_audio.bin; fi; cp.b 0x10000000 0xffc0000000 $filesize", 0);
2266         printf("loading opensbi...\n");                                         
2267         run_command("if test -e mmc 1:2 fw_dynamic.bin; then load mmc 1:2 0x0 fw_dynamic.bin; fi;", 0);
2268         printf("bootslave..");                                                  
2269         run_command("bootslave", 0);                                            
2270 }

The change is from emmc (mmc 0) to sd (mmc 1)

5. Continue building

./03_build_uboot.sh

./04_build_linux.sh

6. Modify the 05_generate_boot.sh file to use sd instead of emmc:

 echo "label Linux eMMC" > ./ignore/.boot/extlinux/extlinux.conf
 echo "    kernel /Image" >> ./ignore/.boot/extlinux/extlinux.conf
-echo "    append root=/dev/mmcblk0p3 ro rootfstype=ext4 rootwait console=ttyS0,115200 earlycon clk_ignore_unused net.ifnames=0" >> ./ignore/.boot/extlinux/extlinux.conf
+echo "    append root=/dev/mmcblk1p3 rw rootfstype=ext4 rootwait console=ttyS0,115200 earlycon clk_ignore_unused net.ifnames=0" >> ./ignore/.boot/extlinux/extlinux.conf
 echo "    fdtdir /" >> ./ignore/.boot/extlinux/extlinux.conf
 echo "    #fdtoverlays /overlays/<file>.dtbo" >> ./ignore/.boot/extlinux/extlinux.conf
sudo ./05_generate_boot.sh

sudo ./06_generate_ubuntu_console_root.sh

7. Write the built uboot:

Warning: the sd card should not be inserted during uboot writing, and it is safer to power down the device before inserting the sd card, because of some repartitioning done to mmc apparently, maybe by the uboot put into RAM

sudo fastboot flash ram ./u-boot-with-spl.bin
< waiting for any device >
Warning: skip copying ram image avb footer (ram partition size: 0, ram image size: 963464).
Sending 'ram' (940 KB)                             OKAY [  0.250s]
Writing 'ram'                                      OKAY [  0.002s]
Finished. Total time: 0.263s

sudo fastboot reboot
sudo fastboot flash uboot ./u-boot-with-spl.bin

(vertify if the uboot version and build time are new by running the board)

8. Prepare the sd card partitions

sudo fdisk /dev/<sdcard>

press g for new GPT table

n for new partition
1 for first partition etc.

make 3 partitions in total, the first can be any size, second one is 200M (boot partition) or more and third e.g. 16G or the rest of card’s capacity (root partition)

/dev/<sdcardp1>      2048     22527     20480     10M Linux - system plików
/dev/<sdcardp2>     22528    636927    614400    300M Linux - system plików
/dev/<sdcardp3>    636928 489060351 488423424  232,9G Linux - system plików

Partition types should be 20 Linux filesystem 0FC63DAF-8483-4772-8E79-3D69D8477DE4
which is the default in fdisk

Create the ext4 filesystem on those partitions:

sudo mkfs.ext4 /dev/<sdcardp1>
sudo mkfs.ext4 /dev/<sdcardp2>
sudo mkfs.ext4 /dev/<sdcardp3>

9. Populate the partitions

cd deploy

sudo mount -o loop,rw boot.ext4 /mnt/temp2
sudo mount /dev/<sdcardp2> /mnt/temp
sudo cp -avr /mnt/temp2/* /mnt/temp

verify if thigs look like this:

sudo vim /mnt/temp/extlinux/extlinux.conf

label Linux eMMC
    kernel /Image
    append root=/dev/mmcblk1p3 rw rootfstype=ext4 rootwait console=ttyS0,115200 earlycon clk_ignore_unused net.ifnames=0
    fdtdir /
    fdt /th1520-beaglev-ahead.dtb
sync
sudo umount /mnt/temp
sudo umount /mnt/temp2
sync
sudo mount -o loop,rw root.ext4 /mnt/temp2
sudo mount /dev/<sdcardp3> /mnt/temp
sudo cp -avr /mnt/temp2/* /mnt/temp
sync
sudo umount /mnt/temp
sudo umount /mnt/temp2
sync

Alternatively: (not sure if this does not corrupt the fs on the sd card)
sudo dd if=boot.ext4 of=/dev/sdc2 status=progress
sudo dd if=root.ext4 of=/dev/sdc3 status=progress

sync

sudo eject /dev/sdc

Note: Due to the writing to sd card which was inserted multiple times sometimes has no effect, be sure to check if the writing indeed occured, see: image - DD claiming to write to SD card, not doing anything - Raspberry Pi Stack Exchange

I had the same problem. In addition, I found out that removing the old partitions on the SD card using fdisk did not do anything either, which is a quicker test than trying dd again. I was able to create a file using touch this_is_partX in the root of each mounted partition on the SD card, which is useful to check 1) if the SD card is still functional and writeable, and 2) if a subsequent reinstall of the pi image actually worked and overwrote these files. The fix turned out to reboot the linux pc used for installing the image to the SD card. After the reboot, the dd command took about twice the time, and really wrote a fresh image on the SD card.

10. Insert the sd card into beaglev ahead and reset/power on

Also edit /etc/fstab to use mmcblk1 - I think it’s ok to do it on the beaglev itself

Still not working,
the u-boot is the correct one, being it was built this morning.
also zero’d out the emmc, just to make sure.
not sure what i’m missing,

sudo fdisk -l /dev/sdd
Disk /dev/sdd: 14.88 GiB, 15978201088 bytes, 31207424 sectors
Disk model: Storage Device
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: DBF7CD43-BCD2-5D44-A2E6-ADAA34CC6C70

Device Start End Sectors Size Type
/dev/sdd1 2048 22527 20480 10M Linux filesystem
/dev/sdd2 22528 636927 614400 300M Linux filesystem
/dev/sdd3 636928 31207390 30570463 14.6G Linux filesystem

from sdcard:
cat /media/amf/5d17b5d2-af91-4dec-bb46-24727fa044d9/extlinux/extlinux.conf
label Linux eMMC
kernel /Image
append root=/dev/mmcblk1p3 rw rootfstype=ext4 rootwait console=ttyS0,115200 earlycon clk_ignore_unused net.ifnames=0
fdtdir /
#fdtoverlays /overlays/.dtbo

git branch
beaglev-1.1.2
beaglev-1.2.1

  • fd009801
    master

also double check that light.c has the changes you requested, being the files got loaded, this is verified.

brom_ver 8
[APP][E] protocol_connect failed, exit.

U-Boot SPL 2020.01-g85565d54-dirty (Oct 30 2023 - 06:35:14 -0500)
FM[1] lpddr4x singlerank freq=3733 64bit dbi_off=n sdram init
ddr initialized, jump to uboot
image has no header

U-Boot 2020.01-g85565d54-dirty (Oct 30 2023 - 06:35:14 -0500)

CPU: rv64imafdcvsu
Model: T-HEAD c910 light
DRAM: 4 GiB
C910 CPU FREQ: 750MHz
AHB2_CPUSYS_HCLK FREQ: 250MHz
AHB3_CPUSYS_PCLK FREQ: 125MHz
PERISYS_AHB_HCLK FREQ: 250MHz
PERISYS_APB_PCLK FREQ: 62MHz
GMAC PLL POSTDIV FREQ: 1000MHZ
DPU0 PLL POSTDIV FREQ: 1188MHZ
DPU1 PLL POSTDIV FREQ: 1188MHZ
MMC: sdhci@ffe7080000: 0, sd@ffe7090000: 1
Loading Environment from MMC… OK
Error reading output register
Warning: cannot get lcd-en GPIO
LCD panel cannot be found : -121
splash screen startup cost 16 ms
In: serial
Out: serial
Err: serial
loading aon…
50340 bytes read in 2 ms (24 MiB/s)
loading audio…
15748 bytes read in 1 ms (15 MiB/s)
loading opensbi…
114512 bytes read in 3 ms (36.4 MiB/s)
bootslave…Net:
Warning: ethernet@ffe7070000 (eth0) using random MAC address - 1a:53:c0:ea:3e:05
eth0: ethernet@ffe7070000ethernet@ffe7070000:0 is connected to ethernet@ffe7070000. Reconnecting to ethernet@ffe7060000

Warning: ethernet@ffe7060000 (eth1) using random MAC address - a2:e4:34:c4:ff:63
, eth1: ethernet@ffe7060000
Hit any key to stop autoboot: 2  1  0
switch to partitions #0, OK
mmc1 is current device
Scanning mmc 1:2…
Found /extlinux/extlinux.conf
Retrieving file: /extlinux/extlinux.conf
208 bytes read in 2 ms (101.6 KiB/s)
1: Linux eMMC
Retrieving file: /Image
mmc fail to send stop cmd
** fs_devread read error - block
Skipping Linux eMMC for failure retrieving kernel
SCRIPT FAILED: continuing…
** No partition table - mmc 1 **
** No partition table - mmc 1 **
** No partition table - mmc 1 **
** No partition table - mmc 1 **
** No partition table - mmc 1 **
switch to partitions #0, OK
mmc0(part 0) is current device
Scanning mmc 0:2…
C910 Light#

Looks like sd card problem. Did you try on a different sd card? Also did you verify that writing the sdcard was 100% finished before you took it out the pc?

For better reproducing your conditions I also zeroed my emmc but it still works.

Ubuntu 23.04 BeagleV ttyS0

BeagleBoard.org Ubuntu 23.04 Xfce Image 2023-10-29
Support: https://bbb.io/debian
default username:password is [beagle:temppwd]

Web console: https://BeagleV.localdomain:9090/

BeagleV login: beagle
Password: 
Last login: Mon Oct 30 13:10:50 UTC 2023 on ttyS0
beagle@BeagleV:~$ lsblk
NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
mmcblk0      179:0    0  14.6G  0 disk 
mmcblk0boot0 179:256  0     4M  1 disk 
mmcblk0boot1 179:512  0     4M  1 disk 
mmcblk1      179:768  0 233.2G  0 disk 
├─mmcblk1p1  179:769  0    10M  0 part 
├─mmcblk1p2  179:770  0   300M  0 part /boot/firmware
└─mmcblk1p3  179:771  0 232.9G  0 part /
beagle@BeagleV:~$ 

This is the successful bootup in my case until the kernel takes over:

[ 1303.412227] reboot: Restarting system                                                                                                                                                      
brom_ver 8                                                                                     
[APP][E] protocol_connect failed, exit.                                                                                                                                                       
                                                                                                                                                                                              
U-Boot SPL 2020.01-g85565d54-dirty (Oct 27 2023 - 19:34:46 +0200)                                                                                                                             
FM[1] lpddr4x singlerank freq=3733 64bit dbi_off=n sdram init                                                                                                                                 
ddr initialized, jump to uboot                                                                                                                                                                
image has no header                                                                                                                                                                           
                                                                                                                                                                                              
                                                                                               
U-Boot 2020.01-g85565d54-dirty (Oct 27 2023 - 19:34:46 +0200)                                                                                                                                 
                                                                                                                                                                                              
CPU:   rv64imafdcvsu                                                                           
Model: T-HEAD c910 light                                                                       
DRAM:  4 GiB                                                                                                                                                                                  
C910 CPU FREQ: 750MHz                                                                                                                                                                         
AHB2_CPUSYS_HCLK FREQ: 250MHz                                                                                                                                                                 
AHB3_CPUSYS_PCLK FREQ: 125MHz                                                                                                                                                                 
PERISYS_AHB_HCLK FREQ: 250MHz                                                                  
PERISYS_APB_PCLK FREQ: 62MHz                                                                                                                                                                  
GMAC PLL POSTDIV FREQ: 1000MHZ                                                                                                                                                                
DPU0 PLL POSTDIV FREQ: 1188MHZ                                                                                                                                                                
DPU1 PLL POSTDIV FREQ: 1188MHZ                                                                 
MMC:   sdhci@ffe7080000: 0, sd@ffe7090000: 1                                                                                                                                                  
Loading Environment from MMC... *** Warning - bad CRC, using default environment                                                                                                              
                                                                                                                                                                                              
Error reading output register                                                                  
Warning: cannot get lcd-en GPIO                                                                                                                                                               
LCD panel cannot be found : -121                                                               
splash screen startup cost 15 ms                                                                                                                                                              
In:    serial                                                                                  
Out:   serial                                                                                  
Err:   serial 
loading aon...                                                                                                                                                                                
50340 bytes read in 1 ms (48 MiB/s)                                                                                                                                                           
loading audio...                                                                                                                                                                              
15748 bytes read in 1 ms (15 MiB/s)                                                                                                                                                           
loading opensbi...                                                                                                                                                                            
114512 bytes read in 3 ms (36.4 MiB/s)                                                                                                                                                        
bootslave..Net:                                
Warning: ethernet@ffe7070000 (eth0) using random MAC address - 7a:6a:40:d1:ed:d0
eth0: ethernet@ffe7070000ethernet@ffe7070000:0 is connected to ethernet@ffe7070000.  Reconnecting to ethernet@ffe7060000

Warning: ethernet@ffe7060000 (eth1) using random MAC address - 8a:c9:f1:11:d8:1e
, eth1: ethernet@ffe7060000
Hit any key to stop autoboot:  0 
switch to partitions #0, OK
mmc1 is current device                         
Scanning mmc 1:2...                            
Found /extlinux/extlinux.conf
Retrieving file: /extlinux/extlinux.conf
208 bytes read in 1 ms (203.1 KiB/s)
1:      Linux eMMC                             
Retrieving file: /Image                        
33837056 bytes read in 1098 ms (29.4 MiB/s)
append: root=/dev/mmcblk1p3 rw rootfstype=ext4 rootwait console=ttyS0,115200 earlycon clk_ignore_unused net.ifnames=0
Retrieving file: /light-beagle.dtb
170735 bytes read in 8 ms (20.4 MiB/s)
## Flattened Device Tree blob at 46000000
   Booting using the fdt blob at 0x46000000
   Using Device Tree in place at 0000000046000000, end 000000004602caee
Starting kernel ...                            


OpenSBI v0.9                                   
   ____                    _____ ____ _____
  / __ \                  / ____|  _ \_   _|
 | |  | |_ __   ___ _ __ | (___ | |_) || |
 | |  | | '_ \ / _ \ '_ \ \___ \|  _ < | |
 | |__| | |_) |  __/ | | |____) | |_) || |_
  \____/| .__/ \___|_| |_|_____/|____/_____|
        | |                                    
        |_|                                    

Platform Name             : BeagleBoard.org BeagleV-Ahead
Platform Features         : mfdeleg
Platform HART Count       : 4
Platform IPI Device       : clint
Platform Timer Device     : clint
Platform Console Device   : uart8250
Platform HSM Device       : ---
Platform SysReset Device  : thead_reset
Firmware Base             : 0x0
Firmware Size             : 160 KB
Runtime SBI Version       : 0.3

Domain0 Name              : root
Domain0 Boot HART         : 0
Domain0 HARTs             : 0*,1*,2*,3*
Domain0 Region00          : 0x000000ffdc000000-0x000000ffdc00ffff (I)
Domain0 Region01          : 0x0000000000000000-0x000000000003ffff ()
Domain0 Region02          : 0x0000000000000000-0xffffffffffffffff (R,W,X)
Domain0 Next Address      : 0x0000000040200000
Domain0 Next Arg1         : 0x0000000046000000
Domain0 Next Mode         : S-mode
Domain0 SysReset          : yes

Boot HART ID              : 0
Boot HART Domain          : root
Boot HART ISA             : rv64imafdcvsux
Boot HART Features        : scounteren,mcounteren,time
Boot HART PMP Count       : 0
Boot HART PMP Granularity : 0
Boot HART PMP Address Bits: 0
Boot HART MHPM Count      : 16
Boot HART MHPM Count      : 16
Boot HART MIDELEG         : 0x0000000000000222
Boot HART MEDELEG         : 0x000000000000b109
[    0.000000] Linux version 5.10.113-20231028+ (misiek@devmach) (riscv64-linux-gcc (GCC) 13.2.0, GNU ld (GNU Binutils) 2.41) #1 SMP PREEMPT Sat Oct 28 09:32:23 CEST 202

At this point I am quite convinced that it works, especially after zeroing the whole emmc, so maybe try with other sd cards and be strict about making sure that the sd card writing went 100% ok.