uboot與kernel的flash分割槽

2021-06-26 13:58:31 字數 1029 閱讀 3003

1. 我們可以在uboot中修改flash分割槽。

2.我們也可以在kernel中修改flash分割槽,但是需要與uboot中的分割槽表一致。

3.我們可以通過uboot用引數傳給kernel分割槽資訊,這樣只需要維護uboot的分割槽表即可。

這要對bootloader對核心重新分割槽:這需要重新設定一下bootloader環境引數,就可以同步更新核心分割槽資訊

如:setenv bootargs

'noinitrd console=ttysac0 root=/dev/mtdblock3 rootfstype=jffs2

mtdparts

=nand_flash:128k(u-boot)ro,64k(u-boot envs),3m(kernel),30m(root.jffs2),30m(root.yaffs)'

核心配置時選上device drivers  ---> memory technology device (mtd) support  ---> command line partition table parsing

在設定了mtdparts變數

之後,就可以在nand read/write/erase命令中直接使用分割槽的名字而不必指定分割槽的偏移位置.而這需要核心mtd最好沒有規劃分割槽。

a 。如果你是通過uboot的核心命令列給mtd層傳遞mtd分割槽資訊,這種情況下,核心讀取到的分割槽資訊始終和u-boot中的保持一致(推薦的做法)

b 。如果你是把分割槽資訊寫在核心源**mtd裡定義好的方法,那最好保證它和u-boot中的保持一致,即同步修改uboot及核心的相關部分。 2:

核心通過bootargs找到檔案系統,bootargs中的mtdblockx即代表分割槽,block1,2,3代表哪個分割槽。

事實上,bootargs中的"root=/dev/mtdblockx"只是告訴核心,root fs從第x個(x=0,1,2...)mtd分割槽掛載,mtdblock0對應第乙個分割槽,mtdblock1對應第二個分割槽,以此類推.

uboot移植之uboot和kernel的引數傳遞

從uboot啟動核心的形式thekernel 0,machid,bd bi boot params 可以看出uboot給核心傳遞了3個引數,第1個是0,第2個是機器碼,第3個是引數列表在sdram的起始位置 剛好滿足一下呼叫核心的條件 r0 0。r1 機器型別id r2 啟動引數標記列表在ram 中...

uboot 引導kernel雜談

記錄最近除錯uboot的心得,供後續總結!總結 uboot 主要作用是用來引導kernel啟動,傳遞引數給kernel。大致分為2個階段 第一階段 主要是start.s 彙編階段,主要完成如下設定 1,設定cpu 中斷向量表 2,設定cpu速度,時鐘以及終端 3,初始化sdram 記憶體 4,將ub...

u boot到kernel的引數傳遞

在u boot 的最後提到傳遞引數給核心,呼叫如下 呼叫核心,暫存器 r0 0,r1 機器型別,r2 引數塊位址 thekernel 0,bd bi arch number,bd bi boot params 而這兩個引數是如何傳遞給 kernel 的分析如下 只涉及到非彙編部分 一 u boot ...