http://linux-sunxi.org/Main_Pagelinux
由於使用的是外擴SD卡,所以主要參考了這部份內容;Bootable SD card
SD卡Layout以下:工具
start | sector | size | usage |
---|---|---|---|
0KB | 0 | 8KB | 未使用,主要用於存放分區表 |
8KB | 16 | 32KB | Init SPL |
40KB | 80 | - | U-Boot |
SD卡的起始地址處放的是分區表MBR(佔用512B)或者GPT(更多),爲了保證SD卡還能用於其餘目的,因此前8KB是不能用的;
8KB開始存放U-Boot-spl以及U-boot鏡像;
後續未使用區域能夠分紅FAT分區 + 其餘分區,FAT分區中存放linux kernel + DTB文件 + boot.scr,其餘分區主要存放根文件系統,或者其餘分區;
上邊這些規定都是全志內部固化的流程,芯片上電後首先運行內部一段引導程序,而後按照必定的優先級去遍歷emmc sd nand usb等看是否能引導程序,若是是SD/eMMC,則會在8KB的便宜除引導程序(uboot-spl),再引導uboot,uboot會從sd卡FAT分區內引導linux內核,解析boot.scr,獲取bootcmd,再從其餘分區加載根文件系統,至此結束。code
使用linaro工具鏈便可ip
make CROSS_COMPILE=arm-linux-gnueabihf- <board_name>_defconfig make CROSS_COMPILE=arm-linux-gnueabihf- menuconfig make CROSS_COMPILE=arm-linux-gnueabihf-
個人板子和orangepi plus相似,1GB DDR3+8GB emmc;可是不幸是ddr沒有走等長線,若是是用orangepi plus的配置,則linux會運行失敗,須要修改ddr3的頻率,下降頻率便可,或者直接使用友善之臂 nano-pi的配置。資源
mkimage -C none -A arm -T script -d boot.cmd boot.scr