一.linux系统启动原理
Bootrom是出厂固化在里面的,查看启动模式,是SD卡启动还是SPIflash启动等,或者其他启动方式,查找Boot.BIN 或者.mcs文件。将FSBL拷贝到DDR中执行,并加载uboot到ddr。
uboot看成是一个小的操作系统,用来引到linux系统的内核 ,通常由设备树文件dts.中bootargs参数进行传递参数,uboot将内核文件加载到指定位置。
.二.SD卡启动
SD-image文件夹下有4个必备文件:
1.BOOT.BIN -包含uboot的elf启动文件或者裸跑的.elf、fsbl.elf、.bit用户文件:
fsbl.elf:初始化一些外设以及重定位
system.bit:裸机工程产生的bit文件主要包括PL信息以及PS的配置信息。
2.devicetree.dtb -设备树文件
3.ramdisk8m.image.gz -根文件系统
4.zimage -编译好的内核文件(或者uimage)
可以在BOOT.mcs中添加位置信息:
[bootloader]./zynq-fsbl.elf
./system.bit
./u-boot.elf
[offset=0x80000]./zimage
[offset=0xc0000]./devicetree.dtb
[ofsset=0xc1000]./ramdisk8M.image.gz
三。SPI flash启动
在uboot中:
sfread 0x8000 0x10000 0x2c0000
0x8000:内存地址(DDR)
0x10000:SPIflash的地址(与boot.mcs中的offset偏移地址相对应)
0x2c0000: 从SPI flash中读取的长度到内存中。