uboot1 3 2移植記錄2

2021-06-07 04:12:25 字數 1693 閱讀 2179

第二階段  可啟動uboot但是沒有nand命令

在cofig_cmd_all.h中新增

#define config_cmd_nand  //nand

在config_cmd_default.h中新增

#define config_cmd_nand  //nand

下面一段**是昨天移植拷貝**時改寫的,這時候就和cmd_nand.c中**衝突了,那就改回成原來的,只是在start.s中加入nand暫存器的定義。

把my2410.h中的

#define bnand_ctl(nb)   __reg(0x4e000000 + (nb))

#define nfconf          bnand_ctl(0x00)

#define nfcmd       bnand_ctl(0x04)

#define nfaddr      bnand_ctl(0x08)

#define nfdata      bnand_ctl(0x0c)

#define nfstat      bnand_ctl(0x10)

#define nfecc       bnand_ctl(0x14)

移動到start.s中,

取消s3c2410.h和s3c24x0.h的注釋

在my2410.h中

新增#define nand_max_chips 1

#define cfg_max_nand_device 1

#define cfg_nand_base 0x33f80000

此時燒錄後可以操作nand的讀寫

但是還是不能設定環境變數

設定環境變數命令在cmd_nvedit.c中定義

然後呼叫env_nand.c中**,但是要實現這個功能必須修改my2410.h中巨集定義,預設選擇的是env_flash.c中的函式,

修改my2410.h中

//#define cfg_env_is_in_flash 1

#define cfg_env_is_in_nand 1

#define cfg_env_size  0x10000 /* total size of environment sector */

#define cfg_env_offset      (0x80000-0x4000) /* total size of environment sector */

這是環境變數寫入的位置,對於這個offset的計算還不太明白

這時命令列表讀不出來了

分析start.s,最後進入c函式start_armboot(在lib_arm/board.c)中定義

函式中的nand_init()時呼叫的drives/mtd/nand.c中的函式列印nand的大小

設定環境變數在env_common.c中env_relocate

現在只要在my2410.h中加入了

//#define cfg_env_is_in_flash 1

#define cfg_env_is_in_nand 1

#define cfg_env_size  0x10000 /* total size of environment sector */

#define cfg_env_offset      0x40000 /* total size of environment sector */

最後發現編譯器不對,開始用的3.3.2,改為4.3.2就成功了。

uboot移植記錄

首先是uboot移植記錄系列。這系列文章適合於uboot移植的初學者,這裡基於常見的開發平台s3c2410。若需要移植uboot到乙個全新開發板,則需要參考更多的資料並對uboot有更深入的了解。本人對此也有所鑽研,也有個較牛的同事專門做這這個的,呵呵 若感興趣的朋友大家可以一起 因此關於新平台ub...

UBOOT的移植分析2

uboot的移植分析2 a uboot的編譯方式2 1 原地編譯 編譯複雜專案 makefile提供2種編譯管理的方法,預設情況下編譯出來的資料夾 的.c和.o檔案是存放在這些目錄裡面的,就是預設情況下編譯出來的情況,但是我們 有些時候並不希望生成的.o檔案把整個資料夾汙染了 壞處 1 汙染了原始檔...

MPC5125 uboot移植記錄 二

6.console init f 在環境變數裡對串列埠進行註冊。7.display options 至此將顯示uboot的版本號,也是在console中顯示的第一行,根據makefile自動獲取的新版本號,所以無需修改 8.checkboard 修改硬體板卡版本號,做一些io初始化。因為乙太網efc...