因為工作需要,需要在S3C2440板子上移植U-boot和Linux,雖然關于S3c2440移植的文章比較多,但是畢竟全面的不多,而且都是別人的,這次自己動手,以此系列記錄全過程。
U-boot1.1.6中有支持smdk2410的代碼,而2440和2410還是比較相近的,于是在2410的基礎上來移植。
建立xinna2440代碼
我們把自己移植的u-boot叫xinna2440-u-boot,首先要建立xinna2440代碼
修改頂層Makefile
直接在vim中查找smdk2410_config,然后在下面增加xinna2440_config的定義
1 smdk2410_config : unconfig
2 @$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 NULL s3c24x0
3
4 xinna2440_config : unconfig
5 @$(MKCONFIG) $(@:_config=) arm arm920t xinna2440 NULL s3c24x0
然后拷貝代碼
cp include/configs/smdk2410.h include/configs/s3c2440.h
cp board/samsung/smdk2410/ board/xinna2440 -r
測試xinna2440代碼
make xinna2440_config
Configuring for xinna2440 board...
make
只要你安裝好了交叉編譯鏈(這里推薦3.4.5,其他版本有可能在移植Nandflash驅動的時候出現鏈接錯誤),編譯不應該出錯,在根目錄下會生成u-boot.bin文件。
搞清楚要移植的內容
U-Boot分為兩部分,第一部分是匯編部分的啟動,我們在這個階段至少要設置CPU工作模式、關閉看門狗、初始化內存(SDRAM)關閉MMU,禁中斷,設置PLL,代碼拷貝,為C語言準備運行環境(設置堆棧指針)等一些列工作。移植是個細活, 不熟悉的沒法快起來,需要很有耐心。
因為我們基于smdk2410來移植xinna2440,那么我們要搞清楚哪些地方是我們需要移植的.
SOC的區別
smdk2410用的是s3c2410的芯片,xinna2440用的是s3c2440的芯片,因此我們只要弄清楚這兩款芯片的區別,就知道針對cpu的不同而要移植哪些地方了.
1、兩款芯片的主頻不同,所以我們要修改PLL驅動
2、中斷控制器不同,我們需要禁止所有中斷
3、兩款芯片的NandFlash控制器不同。
smdk2410是帶有NORFlash的,可以從NORFlash啟動,而xinna2440是不帶NORFlash,我們只能從NandFlash啟動,所以我們必須移植好NandFlash驅動。
BOARD區別
1、第一個就是要注意GPIO的鏈接不同,這里不詳說。
2、第二要注意外圍器件不同
xinna2440沒有Norflash,所有無法從NORFlash啟動
smdk2410和xinna2440用的Nandflash芯片不同,xinna2440用的是K9F2G08U0A
smdk2410用的是CS8900網卡芯片,xinna2440用了DM9000
查找入口點
用vim打開cpu/arm920t/u-boot.lds,可以看到,U-boot的起始代碼位于cpu/arm920t/start.S中,我們可以從這里作為入手點,展開移植工作。
上一篇:U-Boot-2009-03移植筆記(從Nandflash啟動一)
下一篇:U-Boot-2009-03移植筆記(點亮第一展燈)
推薦閱讀最新更新時間:2025-03-26 16:35

設計資源 培訓 開發板 精華推薦
- AMSR-7812-NZ 7.5W DC-DC 開關穩壓器的典型應用
- ADR425 超精密、低噪聲、5V XFET 輸出電壓基準的典型應用
- LTC2258IUJ-12、12 位、65Msps 超低功耗 1.8V ADC 的典型應用電路
- LTC3538 的典型應用 - 800mA 同步降壓-升壓型 DC/DC 轉換器
- 使用 Analog Devices 的 LTP5902IPC 的參考設計
- NCP3065SOBSTGEVB,使用 NCP3065 高強度和高亮度 LED 驅動器的評估板
- 使用 Richtek Technology Corporation 的 RT9054 的參考設計
- LT3012 的典型應用 - 250mA、4V 至 80V 低壓差微功率線性穩壓器
- 用于 MC9S08SH8、8 位微控制器的 DEMO9S08SH8、S08SH 演示板
- STM32G031G8U6
- 迅為IMX6開發板OTA遠程升級-SWUpdata概述和使用
- 迅為IMX6ULL開發板NFS服務器的搭建
- 迅為IMX6開發板Buildroot文件系統4G撥號上網工具測試
- 實驗分享丨迅為IMX6ULL開發板點亮第一個led燈
- 迅為-IMX6Q開發板Buildroot文件系統nfs測試
- 進步一點點丨迅為4412開發板Linux內核開發基礎
- 每天學習一點丨借助U盤或TF卡拷貝程序到迅為IMX6ULL開發板上(二)
- iTOP4412開發板-Qt初探及Qtopia2.2.0系統開發
- 每天學習一點丨借助U盤或TF卡拷貝程序到迅為IMX6ULL開發板上(一)每天學習一點丨借助U盤
- 迅為i.MX8MM開發板ARM嵌入式Linux安卓9.0工業核心板iMX8M Mini板