uboot2010 06移植中一點感想

2021-07-05 20:43:10 字數 1360 閱讀 5546

一、如何設定環境變數

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...