由于沒有設定uboot參數的分區,隻能在uboot源碼中修改預設參數以使uboot正常工作。 boot/u-boot/include/configs/smdk2440a.h: #define __gen_cmd(n, a, f, ec, cc, el) \ #n "=tftp 0x80060000 ${dir}" #f "&&" \ #ec " " #a " " #el "&&" \ #cc " $fileaddr " #a " $filesize\0" */ #define __gen_cmd(n, a, f, ec, cc, el) \ #n "=tftp 0x80060000 " #f "&&" \ #ec " " #a " " #el "&&" \ #cc " $fileaddr " #a " $filesize\0" 将${dir}去掉,因為在下載下傳時一般用不帶路徑的檔案名。
//# define ATH_U_FILE tuboot.bin # define ATH_U_FILE tuboot-router.bin uboot檔案名
//# define ATH_F_FILE ${bc}-jffs2 # define ATH_F_FILE ap123-router-jffs2 jffs2檔案系統檔案名
//# define ATH_K_FILE vmlinux_${bc}.lzma.uImage # define ATH_K_FILE vmlinux-router.lzma.uImage kernel img檔案名
//# define ATH_K_ADDR 0x9f300000 # define ATH_K_ADDR 0x9fdd0000 kernel img分區位址
//# define MTDPARTS_DEFAULT "mtdparts=ath-nor0:64k(u-boot),6016k(rootfs),2048k(uImage),6016k(spare_rootfs),2048k(spare_uImage),64k(log),64k(mib0),64k(caldata)" # define MTDPARTS_DEFAULT "mtdparts=ath-nor0:64k(u-boot),14080k(rootfs),2048k(uImage),64k(log),64k(mib0),64k(caldata)" 分區及其位址的修改
//# define ATH_U_CMD gen_cmd(lu, 0x9f000000, ATH_U_FILE) # define ATH_U_CMD gen_cmd_el(lu, 0x9f000000, ATH_U_FILE, 0x10000)
//# define ATH_F_CMD gen_cmd_el(lf, ATH_F_ADDR, ATH_F_FILE, ATH_F_LEN) # define ATH_F_CMD gen_cmd_el(lf, ATH_F_ADDR, ATH_F_FILE, 0xdc0000)
//# define ATH_K_CMD gen_cmd(lk, ATH_K_ADDR, ATH_K_FILE) # define ATH_K_CMD gen_cmd_el(lk, ATH_K_ADDR, ATH_K_FILE, 0x200000) 確定燒寫檔案到flash之前,erase分區的全部位址。如果隻erase filesize,可能會出錯。
//#define CONFIG_BOOTARGS "console=ttyS0,115200 root=" ATH_ROOT_DEV " rootfstype=squashfs init=/sbin/init " MTDPARTS_DEFAULT #define CONFIG_BOOTARGS "console=ttyS0,115200 root=" ATH_ROOT_DEV " rootfstype=jffs2 init=/sbin/init " MTDPARTS_DEFAULT 檔案系統改為jffs2
//# define CONFIG_BOOTCOMMAND "bootm 0x9f5f0000" # define CONFIG_BOOTCOMMAND "bootm 0x9fdd0000" kernel啟動位址和kernel img分區起始位址一緻
//#define CONFIG_IPADDR 192.168.1.1 //#define CONFIG_SERVERIP 192.168.1.10 #define CONFIG_IPADDR 192.168.2.167 #define CONFIG_SERVERIP 192.168.2.165 闆子位址和tftp server位址
boot/u-boot/include/configs/ ar7100.h: boot/u-boot/include/configs/ ar7240.h: //#define CONFIG_BOOTDELAY 4 #define CONFIG_BOOTDELAY 2 改了兩個檔案,但是肯定隻有一個檔案起作用,不過沒必要去深究哪個。 縮短了啟動時間
修改後的uboot參數如下: