浏览代码

conf: add nvme boot command

add nvme boot command

Signed-off-by: shanlong.li <shanlong.li@starfivetech.com>
shanlong.li 1 年之前
父节点
当前提交
8b7a21b808
共有 2 个文件被更改,包括 34 次插入1 次删除
  1. 2 1
      Makefile
  2. 32 0
      conf/vf2_nvme_uEnv.txt

+ 2 - 1
Makefile

@@ -419,7 +419,7 @@ VFAT_END    = 614399
 VFAT_SIZE   = $(shell expr $(VFAT_END) - $(VFAT_START) + 1)
 ROOT_START  = 614400
 
-$(vfat_image): $(fit) $(confdir)/jh7110_uEnv.txt $(confdir)/vf2_uEnv.txt
+$(vfat_image): $(fit) $(confdir)/jh7110_uEnv.txt $(confdir)/vf2_uEnv.txt $(confdir)/vf2_nvme_uEnv.txt
 	@if [ `du --apparent-size --block-size=512 $(uboot) | cut -f 1` -ge $(UBOOT_SIZE) ]; then \
 		echo "Uboot is too large for partition!!\nReduce uboot or increase partition size"; \
 		 exit 1; fi
@@ -428,6 +428,7 @@ $(vfat_image): $(fit) $(confdir)/jh7110_uEnv.txt $(confdir)/vf2_uEnv.txt
 	PATH=$(RVPATH) MTOOLS_SKIP_CHECK=1 mcopy -i $(vfat_image) $(fit) ::starfiveu.fit
 	PATH=$(RVPATH) MTOOLS_SKIP_CHECK=1 mcopy -i $(vfat_image) $(confdir)/jh7110_uEnv.txt ::jh7110_uEnv.txt
 	PATH=$(RVPATH) MTOOLS_SKIP_CHECK=1 mcopy -i $(vfat_image) $(confdir)/vf2_uEnv.txt ::vf2_uEnv.txt
+	PATH=$(RVPATH) MTOOLS_SKIP_CHECK=1 mcopy -i $(vfat_image) $(confdir)/vf2_nvme_uEnv.txt ::vf2_nvme_uEnv.txt
 
 .PHONY: format-boot-loader
 format-boot-loader: $(sbi_bin) $(uboot) $(fit) $(vfat_image) $(spl_bin_normal_out)

+ 32 - 0
conf/vf2_nvme_uEnv.txt

@@ -0,0 +1,32 @@
+# This is the sample jh7110_uEnv.txt file for starfive visionfive U-boot
+# The current convention (SUBJECT TO CHANGE) is that this file
+# will be loaded from the third partition on the
+# NVME ssd.
+#devnvm=0
+partnum=3
+
+# The FIT file to boot from
+fitfile=starfiveu.fit
+
+# for debugging boot
+bootargs_ext=if test ${devnvme} = 0; then setenv bootargs "earlyprintk console=tty1 console=ttyS0,115200 debug rootwait earlycon=sbi root=/dev/nvme0n1p4"; else setenv bootargs "earlyprintk console=tty1 console=ttyS0,115200 debug rootwait earlycon=sbi root=/dev/nvme1n1p4"; fi;
+#bootargs=earlyprintk console=ttyS0,115200 debug rootwait earlycon=sbi root=/dev/nvme0n1p4
+
+# for addr info
+fileaddr=0xa0000000
+fdtaddr=0x46000000
+# boot Linux flat or compressed 'Image' stored at 'kernel_addr_r'
+kernel_addr_r=0x40200000
+irdaddr=46100000
+irdsize=5f00000
+
+# Use the FDT in the FIT image..
+setupfdt1=fdt addr ${fdtaddr}; fdt resize;
+
+setupird=setexpr irdend ${irdaddr} + ${irdsize}; fdt set /chosen linux,initrd-start <0x0 0x${irdaddr}>; fdt set /chosen linux,initrd-end <0x0 0x${irdend}>
+
+setupfdt2=fdt set /chosen bootargs "${bootargs}";
+
+bootwait=setenv _delay ${bootdelay}; echo ${_delay}; while test ${_delay} > 0; do sleep 1; setexpr _delay ${_delay} - 1; echo ${_delay}; done
+
+boot2=run bootargs_ext; nvme dev ${devnvme}; fatload nvme ${devnvme}:${partnum} ${fileaddr} ${fitfile}; bootm start ${fileaddr}; run setupfdt1;run setupird;run setupfdt2; bootm loados ${fileaddr}; run chipa_set_linux; run cpu_vol_set; echo "Booting kernel in"; booti ${kernel_addr_r} ${irdaddr}:${filesize} ${fdtaddr}