build.sh
#!/bin/sh
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
export LOADADDR=0X8000
make -j4 zImage
test $? || exit 1
make dtbs
test $? || exit 1
# 对于附加dtb到内核上去,可以用cat *.dtb >> zImage,生成的zImage可以直接用bootz启动
# 类似的,uImage+dtb则不行,要先生成附加了dtb的zImage->make uImage->uImage才可用
#uImage+dtb可搜FIT-uImage
cat arch/arm/boot/dts/socfpga_arria5_socdk.dtb >> arch/arm/boot/zImage
make uImage
cp -v arch/arm/boot/uImage ~/ftp/
uboot 临时加载内核uImage并用nfs启动
必要条件:先开启tftp服务器,nfs服务器
setenv serverip 192.168.200.52
setenv nfsroot "/dev/nfs"
setenv nfsip "192.168.200.52"
setenv nfsdir "/mnt/nfsroot,nfsvers=3"
setenv loadaddr 0x01000000
setenv fdtaddr 0x02000000
setenv bootimage uImage
setenv fdtimage socfpga_arria5_socdk.dtb
setenv nfsipopt "192.168.200.166::::::off"
setenv nfsload "tftp ${loadaddr} ${bootimage};tftp ${fdtaddr} ${fdtimage}"
setenv nfsboot "setenv bootargs console=ttyS0,115200 noinitrd rdinit=/linuxrc root=${nfsroot} rw nfsroot=${nfsip}:${nfsdir} ip=${nfsipopt};bootm ${loadaddr} - ${fdtaddr}"
setenv bootcmd "run nfsload; run nfsboot"
boot
不需要fdtaddr时,修改bootm命令,如果是启动Image格式的内核需要使用 booti ${loadaddr} - ${fdtaddr}