一、如何設定環境變數
bootargs=noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttysac0 mem=64m
bootcmd=nand read.jffs2 0x30007fc0 kernel; bootm 0x30007fc0
bootdelay=3
baudrate=115200
ethaddr=1a:2b:3c:4d:5e:6f
ipaddr=192.168.88.124
serverip=192.168.88.123
netmask=255.255.255.0
ethact=dm9000
mtdids=nand0=nandflash0
mtdparts=mtdparts=nandflash0:1m@(bootloader),128k(params),4m(kernel),-(root)
filesize=2dc98
stdin=serial
stdout=serial
stderr=serial
partition=nand0,0
mtddevnum=0
mtddevname=bootloader
對於環境變數的修改可以用在bootloader啟動後利用setenv [變數名] [引數] 例如:setenv bootdelay 6 ,但是如果是bootcmd這個引數有分號,的設定應該是
二、啟動uimage和zimage核心映象
u-boot-2010.06預設能啟動uimage, uimage的頭部包含載入位址和入口位址 uimage中的linux核心載入位址是0x30008000,
如果環境變數bootcmd中設定的位址是0x30008000,則linux實際的入口位址就是0x30008004(64個位元組是uimage頭部),入口位址不等於載入位址所以要把核心移到0x300080000,
如果環境變數bootcmd中設定的位址是0x30007fc0,則核心入口位址正好等於載入位址不需要移動核心就可以直接引導linux核心。(這和**要被執行必須要在它的鏈結位址乙個道理)
如果是zimage核心映象必須要在uboot加入的**boot-zimage.c中的**
…………………………………………………………
if (bootdelay >= 0 && s && !abortboot (bootdelay)) {
# ifdef config_autoboot_keyed
int prev = disable_ctrlc(1);/* disable control c checking */
# endif
…………………………………………………………………………
關於U boot的移植(一)
參考文章 s3c6410移植u boot 2010.3 1 成功編譯的開始 s3c6410移植u boot 2010.3 2 基本的啟動資訊修改 s3c6410移植u boot 2010.3 3 正常化配置 s3c6410移植u boot 2010.3 4 uboot的dnw功能新增 s3c6410...
uboot移植(一) 移植前的準備工作
一 uboot的 uboot的獲取途徑一般有三種,一種是uboot官方提供的這uboot,這裡面是針對多種開發板和晶元的uboot 是全球各地上傳,然後由uboot官方提供的,因為它裡面包含了很多種開發板的uboot,所以檔案比較大 第二種是晶元廠商提供的uboot,一般來講,晶元廠商 三星 會針對...
uboot移植(四) uboot啟動第一階段
1 bl0 bl1 bl2分別是什麼 1 bl0 s5pv210的irom中固化的 作用 初始化系統時鐘,設定看門狗,初始化棧,載入bl1 2 bl1 從外部啟動介質 nand sd卡 中載入的uboot.bin的前16k 作用 初始化ram,關閉cache,初始化ddr,設定棧,載入bl2 3 b...