3. u-boot 啟動內容及基礎指令使用介紹
3.1 u-boot 啟動內容解譯
U-Boot 1.1.4 (Sep 23 2008 - 10:58:00)
//u-boot 本版資訊及編譯時間
U-Boot code: 30700000 -> 3071B11C BSS: -> 3071F5C4
//存放u-boot 資料和程式碼的位址
IRQ Stack: 306daf74
FIQ Stack: 306dbf74
//中斷Stack 位址,u-boot 可不需要使用中斷
RAM Configuration:
Bank #0: 30000000 32 MB
//32MB 的SDRAM 位址起始位址為 30000000
Flash: 2 MB
//2MB 的Norflash 位址,其實位址為20000000
NAND: 64 MB
//64MB 的Nandflash
*** Warning - bad CRC, using default environment
//由于是第一次燒寫,flash 中還沒有儲存環境變數,因此使用預設換機變數
In: serial
Out: serial
Err: serial
//匯入匯出串列方式
Set the MAC successful!
//成功配置網路
Hit any key to stop autoboot: 0
//延時几秒后自動執行
SEP4020=>
//主控台,用戶可匯入指令
3.2 print 指令——檢視u-boot 環境變數
由于是第一次燒寫,此時的環境變數為預設值。
3.3 u-boot 環境參數解譯
SEP4020=>print
bootargs=
//這個參加將會傳遞給Linux 作業系統,現在空着,以后詳解
bootcmd=bootm 20000 f0000
//啟動指令,將在啟動延時后執行的指令
bootdelay=5 //啟動延時,建議修改為1
baudrate=115200 //鮑率 115200
ethaddr=00:50:c2:1e:af:fb //網卡的mac 位址
ipaddr=172.17.22.189 //開發板的ip 位址
serverip=172.17.22.183 //伺服器(PC 機)的ip 位址
gatewayip=172.17.22.1 //閘道位址(直連可以不填)
netmask=255.255.255.0 //網路遮罩
bootfile="B2-rootfs/usr/B2-zImage.u-boot" //無用,可移除
stdin=serial
stdout=serial
stderr=serial
Environment size: 261/16380 bytes //環境變數容量
SEP4020=>
SEP4020=>print
bootargs=
bootcmd=bootm 20000 f0000
bootdelay=5
baudrate=115200
ethaddr=00:50:c2:1e:af:fb
ipaddr=172.17.22.189
serverip=172.17.22.183
gatewayip=172.17.22.1
netmask=255.255.255.0
bootfile="B2-rootfs/usr/B2-zImage.u-boot"
stdin=serial
stdout=serial
stderr=serial
Environment size: 261/16380 bytes
SEP4020=>
3.4 set 指令——設定環境變數
使用方法如下:
如果一個參數帶有多條指令,需要如下設定:
用 print 檢視察看效果:
3.5 save 指令——儲存環境變數
設定完環境變數后需要使用 save 指令來儲存環境變數,這樣開機后就不會環境變數錯
誤的察看警告了。
3.6 修改適合SEP4020 開發板的環境變數
為了方便交流和測試,開發時希望能夠統一 ip 位址,設定如下:
主機: 192.168.0.1
開發板:192.168.0.2
虛擬機:192.168.0.3
SEP4020=>save
Saving Environment to Flash...
Un-Protected 1 sectors
Erasing Flash...
done
Erased 1 sectors
Writing to Flash... done
Protected 1 sectors
SEP4020=>
SEP4020=>print
bootdelay=1
bootcmd=tftp vmlinux.img 30007fc0;bootm 30007fc0
… …
set [參數] [內容]\; [參數] [內容]
兩條指令用“\;”隔開
例如:
SEP4020=>set bootcmd tftp vmlinux.img 30007fc0\; bootm 30007fc0
set [參數] [內容]
例如:
SEP4020=>set bootdelay 1
其中bootargs 和bootcmd 參數需要其餘說明:
1)bootargs 參數
bootargs 參數是啟動時傳遞給Linux 作業系統的資訊,其配置敘述為:
set bootargs root=/dev/mtdblock2 console=ttyS0,115200 rootfstype=cramfs mem=32mb
root:/dev/mtdblock2 表示從nand 的第三個割區啟動檔案系統,Linux 啟動后會自動搜
索nand 割區資訊。
console:表示Linux 作業系統使用的主控台,我們使用第一個序列埠,因此是ttyS0,后
面跟的115200 表示序列埠使用的鮑率。
rootfstype:表示檔案系統的格式,我們燒錄在nand 中的檔案系統使用cramfs,所以在
這裡要填寫cramfs,否則linux 會嘗試自動掛載,可能會出錯。
mem:表示Linux 作業系統的記憶體容量,目前開發板板載32MB 記憶體,因此填32mb。
2)bootcmd 參數
bootcmd 參數表示開發板上電,bootdelay 結束后執行的指令。這裡填寫內容的含義是用
tftp 這條指令,將主機上的vmlinux.img(即Linux 核心)加載到記憶體的30007fc0 這個位址,
然后從30007fc0 啟動核心。如果將Linux 核心燒錄到nandflash 上,則指令又有不同,下面
hui1 詳細介紹。
3.7 ping 指令——測試網路指令
功能很簡單,比 pc 上的弱很多,如下:
SEP4020=>ping 192.168.0.1
host 192.168.0.1 is alive
留言列表