summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorandy.hu <andy.hu@starfivetech.com>2023-08-17 11:13:21 +0300
committerandy.hu <andy.hu@starfivetech.com>2023-08-17 11:13:21 +0300
commit7f96b15e26f14df56fa9d480c0cc6f7434997360 (patch)
tree7de373571c152b1199a291033ff15045662e2fb7 /include
parent063ca7d1a799cf50fea9e0ca913c1e93cb5ff361 (diff)
parent1f262420f254129f6be776086561057bc6bfaa41 (diff)
downloadu-boot-7f96b15e26f14df56fa9d480c0cc6f7434997360.tar.xz
Merge branch 'CR_6370_nvme_sd_boot_samin.guo' into 'vf2-devel'VF2_v3.6.1
CR6370: riscv: starfive: vf2: Optimize boot logic(sd/nvme) See merge request sbc/u-boot!61
Diffstat (limited to 'include')
-rw-r--r--include/configs/starfive-visionfive2.h222
1 files changed, 116 insertions, 106 deletions
diff --git a/include/configs/starfive-visionfive2.h b/include/configs/starfive-visionfive2.h
index 969ac55a3d..8092362651 100644
--- a/include/configs/starfive-visionfive2.h
+++ b/include/configs/starfive-visionfive2.h
@@ -164,56 +164,6 @@
"run cma_ddr8g_set;" \
"fi; \0 "
-
-#define VF2_DISTRO_BOOTENV \
- "fatbootpart=1:3\0" \
- "bootdev=mmc\0" \
- "scan_boot_dev=" \
- "if test ${bootmode} = flash; then " \
- "if pci enum; then " \
- "nvme scan; " \
- "echo pci enum ...;" \
- "fi; " \
- "if nvme dev; then " \
- "setenv fatbootpart ${devnvme}:${nvmepart};" \
- "setenv devnum ${devnvme};" \
- "setenv bootdev nvme;" \
- "else " \
- "if mmc dev ${devnum}; then " \
- "echo found device ${devnum};" \
- "else " \
- "setenv devnum 0;" \
- "mmc dev 0;" \
- "fi; " \
- "fi; " \
- "fi; \0" \
- "load_distro_uenv=" \
- "fatload ${bootdev} ${devnum}:3 ${loadaddr} /${bootenv}; " \
- "setenv fatbootpart ${devnum}:3; " \
- "env import ${loadaddr} 200; \0" \
- "fdt_loaddtb=" \
- "fatload ${bootdev} ${fatbootpart} ${fdt_addr_r} /dtbs/${fdtfile}; fdt addr ${fdt_addr_r}; \0" \
- "fdt_sizecheck=" \
- "fatsize ${bootdev} ${fatbootpart} /dtbs/${fdtfile}; \0" \
- "set_fdt_distro=" \
- "if test ${chip_vision} = A; then " \
- "if test ${memory_size} = 200000000; then " \
- "run chipa_gmac_set;" \
- "run visionfive2_mem_set;" \
- "fatwrite ${bootdev} ${fatbootpart} ${fdt_addr_r} /dtbs/${fdtfile} ${filesize};" \
- "else " \
- "run chipa_gmac_set;" \
- "run visionfive2_mem_set;" \
- "fatwrite ${bootdev} ${fatbootpart} ${fdt_addr_r} /dtbs/${fdtfile} ${filesize};" \
- "fi;" \
- "else " \
- "run visionfive2_mem_set;" \
- "run cpu_vol_set;" \
- "fatwrite ${bootdev} ${fatbootpart} ${fdt_addr_r} /dtbs/${fdtfile} ${filesize};" \
- "fi; \0" \
- "bootcmd_distro=" \
- "run fdt_loaddtb; run fdt_sizecheck; run set_fdt_distro; sysboot ${bootdev} ${fatbootpart} fat ${scriptaddr} /${boot_syslinux_conf}; \0" \
-
#define PARTS_DEFAULT \
"name=loader1,start=17K,size=1M,type=${type_guid_gpt_loader1};" \
"name=loader2,size=4MB,type=${type_guid_gpt_loader2};" \
@@ -248,63 +198,124 @@
"run visionfive2_mem_set;" \
"run chipa_set;\0"
-#define CHIPA_SET_FORCE \
- "chipa_set_uboot_force=" \
- "fdt addr ${uboot_fdt_addr};" \
- "run chipa_gmac_set; \0" \
- "chipa_set_linux_force=" \
- "fdt addr ${fdt_addr_r};" \
- "run visionfive2_mem_set;" \
- "run chipa_gmac_set; \0" \
-
-#define VISIONFIVE2_BOOTENV_NVME \
- "nvmepart=3\0" \
- "devnvme=0\0" \
- "nvme_env=vf2_nvme_uEnv.txt\0" \
-
-#define VISIONFIVE2_BOOTENV \
+#define VF2_SDK_BOOTENV \
"bootenv=uEnv.txt\0" \
- "testenv=vf2_uEnv.txt\0" \
+ "bootenv_sdk=vf2_uEnv.txt\0" \
+ "boot_devs=mmc nvme\0" \
+ "emmc_devnum=0\0" \
+ "sd_devnum=1\0" \
+ "mmc_devnum_l=1 0\0" \
+ "nvme_devnum_l=0 0\0"
+
+#define JH7110_SDK_BOOTENV \
"bootdir=/boot\0" \
- "mmcpart=3\0" \
- "load_vf2_env=fatload mmc ${bootpart} ${loadaddr} ${testenv}\0" \
- "loadbootenv=fatload mmc ${bootpart} ${loadaddr} ${bootenv}\0" \
- "ext4bootenv=" \
- "ext4load mmc ${bootpart} ${loadaddr} ${bootdir}/${bootenv}\0"\
- "importbootenv=" \
- "echo Importing environment from ${devnum}/${devnvme} ...; "\
- "env import -t ${loadaddr} ${filesize}\0" \
- "scan_mmc_dev=" \
- "if test ${bootmode} = flash; then " \
- "if pci enum; then " \
- "nvme scan; " \
- "echo pci enum ...;" \
+ "bootpart=3\0" \
+ "rootpart=4\0" \
+ "load_sdk_uenv=" \
+ "fatload ${bootdev} ${devnum}:${bootpart} ${loadaddr} ${bootenv_sdk};" \
+ "env import -t ${loadaddr} ${filesize}; \0" \
+ "mmc_test_and_boot=" \
+ "if mmc dev ${devnum}; then " \
+ "echo Try booting from MMC${devnum} ...; " \
+ "setenv sdev_blk mmcblk${devnum}p${rootpart};" \
+ "run load_sdk_uenv; run boot2;" \
+ "fi;\0" \
+ "bootenv_mmc=" \
+ "setenv bootdev mmc;" \
+ "if test ${bootmode} = flash; then " \
+ "for mmc_devnum in ${mmc_devnum_l}; do " \
+ "setenv devnum ${mmc_devnum}; " \
+ "run mmc_test_and_boot;" \
+ "done;" \
"fi; " \
- "if nvme dev; then " \
- "setenv btpart ${devnvme}:${nvmepart};" \
- "setenv load_vf2_env fatload nvme ${btpart} ${loadaddr} ${nvme_env};" \
- "else " \
- "if mmc dev ${devnum}; then " \
- "echo found device ${devnum};" \
- "else " \
- "setenv devnum 0;" \
- "mmc dev 0;" \
- "fi; " \
- "if mmc rescan; then " \
- "run loadbootenv && run importbootenv; "\
- "run ext4bootenv && run importbootenv; "\
- "if test -n $uenvcmd; then " \
- "echo Running uenvcmd ...; " \
- "run uenvcmd; " \
- "fi; " \
- "fi; " \
- "fi; " \
- "fi; " \
- "echo bootmode ${bootmode} device ${devnum}/${devnvme};\0" \
- "mmcbootenv=run scan_mmc_dev; " \
- "setenv bootpart ${devnum}:${mmcpart};\0" \
+ "if test ${bootmode} = sd; then " \
+ "setenv devnum ${sd_devnum};" \
+ "run mmc_test_and_boot;" \
+ "fi; " \
+ "if test ${bootmode} = emmc; then " \
+ "setenv devnum ${emmc_devnum};"\
+ "run mmc_test_and_boot;" \
+ "fi; \0" \
+ "bootenv_nvme=" \
+ "if test ${bootmode} = flash; then " \
+ "for nvme_devnum in ${nvme_devnum_l}; do " \
+ "setenv devnum ${nvme_devnum};" \
+ "if pci enum; then " \
+ "nvme scan; " \
+ "fi; " \
+ "if nvme dev ${devnum}; then " \
+ "echo Try booting from NVME${devnum} ...; " \
+ "setenv bootdev nvme;" \
+ "setenv sdev_blk nvme${devnum}n1p${rootpart};" \
+ "run load_sdk_uenv; run boot2;" \
+ "fi; " \
+ "done; " \
+ "fi; \0" \
+ "sdk_boot_env=" \
+ "for bootdev_s in ${boot_devs}; do " \
+ "run bootenv_${bootdev_s}; " \
+ "done;\0" \
"fdtfile=" CONFIG_DEFAULT_FDT_FILE "\0"
+#define JH7110_DISTRO_BOOTENV \
+ "bootdir=/boot\0" \
+ "bootpart=3\0" \
+ "rootpart=4\0" \
+ "load_distro_uenv=" \
+ "fatload ${bootdev} ${devnum}:${bootpart} ${loadaddr} /${bootenv}; " \
+ "env import ${loadaddr} ${filesize}; \0" \
+ "fdt_loaddtb=" \
+ "fatload ${bootdev} ${devnum}:${bootpart} ${fdt_addr_r} /dtbs/${fdtfile}; fdt addr ${fdt_addr_r}; \0" \
+ "fdt_sizecheck=" \
+ "fatsize ${bootdev} ${devnum}:${bootpart} /dtbs/${fdtfile}; \0" \
+ "set_fdt_distro=" \
+ "run chipa_set_linux; run cpu_vol_set;" \
+ "fatwrite ${bootdev} ${devnum}:${bootpart} ${fdt_addr_r} /dtbs/${fdtfile} ${filesize}; \0" \
+ "bootcmd_distro=" \
+ "run load_distro_uenv; " \
+ "run fdt_loaddtb; run fdt_sizecheck; run set_fdt_distro; " \
+ "sysboot ${bootdev} ${devnum}:${bootpart} fat ${scriptaddr} /${boot_syslinux_conf}; \0" \
+ "distro_mmc_test_and_boot=" \
+ "if mmc dev ${devnum}; then " \
+ "echo Try booting from MMC${devnum} ...; " \
+ "run bootcmd_distro;" \
+ "fi;\0" \
+ "distro_bootenv_mmc=" \
+ "setenv bootdev mmc;" \
+ "if test ${bootmode} = flash; then " \
+ "for mmc_devnum in ${mmc_devnum_l}; do "\
+ "setenv devnum ${mmc_devnum}; " \
+ "run distro_mmc_test_and_boot;" \
+ "done;" \
+ "fi; " \
+ "if test ${bootmode} = sd; then " \
+ "setenv devnum ${sd_devnum};" \
+ "run distro_mmc_test_and_boot;" \
+ "fi; " \
+ "if test ${bootmode} = emmc; then " \
+ "setenv devnum ${emmc_devnum};"\
+ "run distro_mmc_test_and_boot;" \
+ "fi; \0" \
+ "distro_bootenv_nvme=" \
+ "if test ${bootmode} = flash; then " \
+ "for nvme_devnum in ${nvme_devnum_l}; do " \
+ "setenv devnum ${nvme_devnum};" \
+ "if pci enum; then " \
+ "nvme scan; " \
+ "fi; " \
+ "if nvme dev ${devnum}; then " \
+ "echo Try booting from NVME${devnum} ...; " \
+ "setenv bootdev nvme;" \
+ "run bootcmd_distro; " \
+ "fi; " \
+ "done; " \
+ "fi; \0" \
+ "distro_boot_env=" \
+ "echo Tring booting distro ...;" \
+ "for bootdev_s in ${boot_devs}; do " \
+ "run distro_bootenv_${bootdev_s}; " \
+ "done; \0"
+
#define CONFIG_EXTRA_ENV_SETTINGS \
"fdt_high=0xffffffffffffffff\0" \
"initrd_high=0xffffffffffffffff\0" \
@@ -319,9 +330,9 @@
"ramdisk_addr_r=0x46100000\0" \
"fdtoverlay_addr_r=0x4f000000\0" \
"loadaddr=0x60000000\0" \
- VF2_DISTRO_BOOTENV \
- VISIONFIVE2_BOOTENV_NVME \
- VISIONFIVE2_BOOTENV \
+ VF2_SDK_BOOTENV \
+ JH7110_SDK_BOOTENV \
+ JH7110_DISTRO_BOOTENV \
CHIPA_GMAC_SET \
CHIPA_SET \
CPU_VOL_1020_SET \
@@ -331,7 +342,6 @@
CPU_SPEED_1500_SET \
CPU_FREQ_VOL_SET \
CMA_SIZE_SET \
- CHIPA_SET_FORCE \
VISIONFIVE2_MEM_SET \
"type_guid_gpt_loader1=" TYPE_GUID_LOADER1 "\0" \
"type_guid_gpt_loader2=" TYPE_GUID_LOADER2 "\0" \