u-boot-2014.10移植第31天----核心啟動(一)
硬體平臺:tq2440
開發環境:Ubuntu-3.11
u-boot版本:2014.10
本文允許轉載,請註明出處:http://blog.csdn.net/fulinus
原本以為u-boot移植好了,引導linux核心啟動不是問題吧。但是卻折磨了我兩天,一直在“Starting kernel...”這裡卡住了。綜合網上的說法出現這個問題有如下原因:
1)u-boot和linux核心主頻不匹配;
2)u-boot和linux核心機器碼不匹配;
3)bootarges引數數不對;
3)核心中沒有新增串列埠相關的驅動;
實際情況是這些在我這裡都是正確的。因為我用u-boot-2010.09引導linux核心啟動是沒有問題的,換成u-boot-2014.10就不行。。。。。。
什麼資訊也沒有列印,除了:
Starting kernel...
這條資訊是u-boot列印的,安裝正常的啟動,下面是會有核心列印的:
Uncompressing Linux... done, booting the kernel.
但是沒有。我換了了很多種方式,反覆組合測試,反覆燒錄,反覆測試。。。。我簡直就要瘋了,什麼情況?!
我就這麼反覆折騰,也不知道什麼時候,我就用了go命令,出現了Uncompressing Linux... done, booting the kernel.資訊,但是還是沒有成功!j-link燒錄又一次居然可以了正常引導啟動了。
於是我再用:
tftp 30008000 zImage;go 30008000
不行,我突然想到go命令是直接設定pc地址的,不像bootm會傳入引數給linux核心,於是我就講核心中啟動引數設定成:
console=ttyS0,115200 mem=64M init=/linuxrc rw loglevel=7
再執行,OK可以了。用go命令是可以的。
前面偶然又一次機會用go命令成功,是因為我再使用它之前用了:
tftp 30008000 linuxrom-s3c2440.bin;bootm 30008000
雖然沒有成功引導,但是bootm已經解壓了核心映象,而且引數也傳入了核心(在一個特殊的地址處),如果不掉電覆位,用J-link燒錄並執行u-boot,再使用go 30008000,就在前面bootm解壓後的基礎上成功執行了linux核心。因此,問題的癥結在bootm命令有問題,我比較了u-boot-2010.04,u-boot-2014.10,和u-boot-2015.01版本的cmd_bootm.c檔案,發現都有很大的改動,估計是這裡有個沒有被開發人員發現的bug吧,後面有機會我會在找出這個bug。
相關文章
- u-boot-2014.10移植第23天----nand flash啟動(一)bootNaN
- u-boot-2014.10移植第16天----Nor flash啟動boot
- u-boot-2014.10移植第29天----nand flash的SPL啟動(一)bootNaN
- u-boot-2014.10移植第28天----nand flash啟動(六)bootNaN
- u-boot-2014.10移植第27天----nand flash啟動(五)bootNaN
- u-boot-2014.10移植第25天----nand flash啟動(三)bootNaN
- u-boot-2014.10移植第26天----nand flash啟動(四)bootNaN
- u-boot-2014.10移植第24天----nand flash啟動(二)bootNaN
- u-boot-2014.10移植第30天----nand flash的SPL啟動(二)bootNaN
- u-boot-2014.10移植第19天----新增nand flash命令支援(一)bootNaN
- u-boot-2014.10移植第15天----nor flash操作boot
- u-boot-2014.10移植第17天----新增DM9000網路卡支援(一)boot
- u-boot-2014.10移植第21天----新增nand flash命令支援(三)bootNaN
- u-boot-2014.10移植第22天----新增nand flash命令支援(四)bootNaN
- u-boot-2014.10移植第20天----新增nand flash命令支援(二)bootNaN
- u-boot-2014.10移植第18天----新增DM9000網路卡支援(二)boot
- Q學習第31天-QThreadQTthread
- Windows Phone 7 開發 31 日談——第7日:啟動器Windows
- 前端面試每日 3+1 —— 第831天前端面試
- 前端面試每日 3+1 —— 第931天前端面試
- linux3.4.2核心-LCD驅動程式的移植Linux
- ZYNQ FLASH+EMMC手動移植LINUX啟動Linux
- uboot1: 啟動流程和移植框架boot框架
- 重磅啟動!第 17 屆「中國 Linux 核心開發者大會」徵稿Linux
- 分分鐘搭建MySQL一主多從環境(r12筆記第31天)MySql筆記
- uboot如何啟動核心boot
- MySQL service啟動指令碼淺析(r12筆記第59天)MySql指令碼筆記
- 第32天:微博釋出動態
- 30天自制作業系統(一)啟動區作業系統
- liunx核心移植(三)——核心、驅動、應用程式、根檔案系統的關係
- Linux 核心啟動流程Linux
- Flutter第2天--Animation動畫+粒子運動Flutter動畫
- linux高通核心移植工具十教程Linux
- 第 0 天/第 1 天/第 2 天:雲時代的軟體生命週期
- ubuntu修改預設啟動核心Ubuntu
- linux核心啟動引數Linux
- 【全棧React】第5天: 資料驅動全棧React
- Exynos4412 核心移植(二)—— 核心編譯過程分析編譯