# Top Level boot command
bootcmd=run distro_bootcmd;boot_android ${devtype} ${devnum};boot_fit;bootrkp;
# Calls distro_bootcmd
distro_bootcmd=for target in ${boot_targets}; do run bootcmd_${target}; done
# Boot targets
boot_targets=nvme mmc1 mmc0 mtd2 mtd1 mtd0 usb0 pxe dhcp
# Interested in the mmc1 boot target
bootcmd_nvme=pci enum;nvme scan;setenv devnum 0;run nvme_boot;
bootcmd_mmc1=setenv devnum 1; run mmc_boot
bootcmd_mmc0=setenv devnum 0; run mmc_boot
bootcmd_mtd2=setenv devnum 2; run mtd_boot
bootcmd_mtd1=setenv devnum 1; run mtd_boot
bootcmd_mtd0=setenv devnum 0; run mtd_boot
bootcmd_usb0=setenv devnum 0; run usb_boot
bootcmd_pxe=run boot_net_usb_start; run boot_net_pci_enum; dhcp; if pxe get; then pxe boot; fi
bootcmd_dhcp=run boot_net_usb_start; run boot_net_pci_enum; if dhcp ${scriptaddr} ${boot_script_dhcp}; then source ${scriptaddr}; fi;
# Calls scan_def_for_boot_part
mmc_boot=if mmc dev ${devnum}; then setenv devtype mmc; run scan_dev_for_boot_part; fi
# Calls scan_dev_for_boot
scan_dev_for_boot_part=
part list ${devtype} ${devnum} -bootable devplist;
env exists devplist || setenv devplist 1;
for distro_bootpart in ${devplist}; do
if fstype ${devtype} ${devnum}:${distro_bootpart} bootfstype; then
run scan_dev_for_boot;
fi;
done
# Interested in extlinux
scan_dev_for_boot=
echo Scanning ${devtype} ${devnum}:${distro_bootpart}...;
for prefix in ${boot_prefixes}; do
run scan_dev_for_extlinux;
run scan_dev_for_scripts;
done;
# This runs a boot_extlinux script
scan_dev_for_extlinux=
if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}extlinux/extlinux.conf; then
echo Found ${prefix}extlinux/extlinux.conf;
run boot_extlinux;
echo SCRIPT FAILED: continuing...;
fi
# Sysboot is internal to U-boot and should not return if boot is succesful.
boot_extlinux=
sysboot ${devtype} ${devnum}:${distro_bootpart} any ${scriptaddr} ${prefix}extlinux/extlinux.conf
# Remaining U-boot environment
bootdelay=2
baudrate=115200
autoload=no
arch=arm
cpu=armv8
board=evb_rk3588
board_name=evb_rk3588
vendor=rockchip
soc=rockchip
mtd_boot=if mtd_blk dev ${devnum}; then setenv devtype mtd; run scan_dev_for_boot_part; fi
scriptaddr=0x00500000
pxefile_addr_r=0x00600000
fdtoverlay_addr_r=0x0a000000
fdt_addr_r=0x0a100000
kernel_addr_r=0x00400000
kernel_addr_c=0x05480000
ramdisk_addr_r=0x0a200000
fdtfile=rockchip/rk3588-rock-5b.dtb
partitions=uuid_disk=${uuid_gpt_disk};name=uboot,start=8MB,size=4MB,uuid=${uuid_gpt_loader2};name=trust,size=4M,uuid=${uuid_gpt_atf};name=misc,size=4MB,uuid=${uuid_gpt_misc};name=resource,size=16MB,uuid=${uuid_gpt_resource};name=kernel,size=32M,uuid=${uuid_gpt_kernel};name=boot,size=32M,bootable,uuid=${uuid_gpt_boot};name=recovery,size=32M,uuid=${uuid_gpt_recovery};name=backup,size=112M,uuid=${uuid_gpt_backup};name=cache,size=512M,uuid=${uuid_gpt_cache};name=system,size=2048M,uuid=${uuid_gpt_system};name=metadata,size=16M,uuid=${uuid_gpt_metadata};name=vendor,size=32M,uuid=${uuid_gpt_vendor};name=oem,size=32M,uuid=${uuid_gpt_oem};name=frp,size=512K,uuid=${uuid_gpt_frp};name=security,size=2M,uuid=${uuid_gpt_security};name=userdata,size=-,uuid=${uuid_gpt_userdata};
stdout=serial,vidconsole
stderr=serial,vidconsole
rkimg_bootdev=if nvme dev 0; then setenv devtype nvme; setenv devnum 0; echo Boot from nvme;elif mmc dev 1 && rkimgtest mmc 1; then setenv devtype mmc; setenv devnum 1; echo Boot from SDcard;elif mmc dev 0; then setenv devtype mmc; setenv devnum 0;elif mtd_blk dev 0; then setenv devtype mtd; setenv devnum 0;elif mtd_blk dev 1; then setenv devtype mtd; setenv devnum 1;elif mtd_blk dev 2; then setenv devtype mtd; setenv devnum 2;elif rknand dev 0; then setenv devtype rknand; setenv devnum 0;elif rksfc dev 0; then setenv devtype spinand; setenv devnum 0;elif rksfc dev 1; then setenv devtype spinor; setenv devnum 1;elsesetenv devtype ramdisk; setenv devnum 0;fi;
nvme_boot=if nvme dev ${devnum}; then setenv devtype nvme; run scan_dev_for_boot_part; fi
boot_net_pci_enum=pci enum
boot_net_usb_start=usb start
usb_boot=usb start; if usb dev ${devnum}; then setenv devtype usb; run scan_dev_for_boot_part; fi
boot_scripts=boot.scr.uimg boot.scr
boot_script_dhcp=boot.scr.uimg
boot_a_script=load ${devtype} ${devnum}:${distro_bootpart} ${scriptaddr} ${prefix}${script}; source ${scriptaddr}
scan_dev_for_scripts=for script in ${boot_scripts}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${script}; then echo Found U-Boot script ${prefix}${script}; run boot_a_script; echo SCRIPT FAILED: continuing...; fi; done
# Function trace to try to find most likely boot command
## In U-boot cmd/pxe.c
do_sysboot
handle_pxe_menu
boot_unattempted_labels (probably)
label_boot
do_bootm (I think)
## In cmd/bootm.c
do_bootm
board_do_bootm (I think)
## In arch/arm/mach-rockchip/board.c (board_do_bootm)
arch/arm/lib/bootm.c (do_bootm)