U Boot如何向核心傳遞Flash的分割槽資訊

2021-07-24 02:55:18 字數 917 閱讀 2352

對於目前的u-boot而言,是的.而且, 設定了mtdparts變數之後,你可以在nand read/write/erase命令中直接使用分割槽的名字而不必指

定分割槽的偏移位置.

set 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)

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

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

mtdblock1對應第二個分割槽,以此類推.至於這個分割槽對應mtd device(nand flash)的哪一段範圍,取決於核心讀到的mtd分割槽資訊,這個

分割槽資訊可以通過:

1) 寫死在mtd層的nand controller驅動或者核心其他部分**裡

2) 通過u-boot傳遞給核心的命令列中的mtdparts=...部分解析得出,解析的規則同u-boot中mtdparts變數的賦值規則

3) 其他可以讓核心知道分割槽資訊的任何辦法

3 在u-boot中給nand分割槽後是否要對應修改kernel的**?

如果你用的是通過核心命令列給mtd層傳遞u-boot中的mtd分割槽資訊,那是不需要的,在這種情況下,核心讀取到的分割槽資訊始終和u-boot

中的保持一致(推薦的做法)

如果你用的是把分割槽資訊寫死在核心源**裡的方法,那最好保證它和u-boot中的保持一致,即同步修改核心的相關部分**

UBOOT引導Linux核心及向核心傳遞引數的方式

一直以來沒有想過有什麼好的辦法通過暫存器向核心傳遞引數,直到今天讀uboot的實現方式。在uboot中,引導核心最常用的方法是bootm命令,bootm命令可以引導 uboot格式 的核心。先花點時間了解一下什麼是 uboot格式 的核心吧 用uboot自帶的mkimage命令生成的核心稱為 ubo...

UBOOT引導Linux核心及向核心傳遞引數的方式

一直以來沒有想過有什麼好的辦法通過暫存器向核心傳遞引數,直到今天讀uboot的實現方式。在uboot中,引導核心最常用的方法是bootm命令,bootm命令可以引導 uboot格式 的核心。先花點時間了解一下什麼是 uboot格式 的核心吧 用uboot自帶的mkimage命令生成的核心稱為 ubo...

u boot向Linux核心傳遞引數tag原理分析

u boot最主要的功能是引導os,目前對linux支援的相對比較好,引導 的意義不僅僅是拷貝核心,執行核心,還要給核心kernel傳遞板子的相關引數,打個比方,u boot相當於是一名專業功底深厚的 接待員 他會先初始化好一些外圍裝置,比如說串列埠,sdram nand flash mmc等,初始...