點擊文章下方閱讀原文可訪問文中超鏈接
最近公司項目用到了xilinx的zynq7000 soc,開發(fā)方式有所不同,驅(qū)動的數(shù)據(jù)都是通過設(shè)備樹來提供,以前沒接觸過,所以想系統(tǒng)的學習一下相關(guān)的內(nèi)容,但是手頭只有一塊三星的s5pv210開發(fā)板,使用的u-boot和linux系統(tǒng)不支持設(shè)備樹,只好自己移植,以此記錄一下移植過程,加深理解與記憶,如果你也剛好有需要,歡迎參考與指正,我主要以u-boot本身為主,對于硬件相關(guān)的不會怎么涉及。
我使用的虛擬機是ubuntu1804,選的u-boot版本是最新的2020.04(u-boot下載鏈接),由于三星提供的交叉編譯工具鏈版本太低了,編譯不了這個版本的u-boot,所以還得重新下載一個交叉編譯器(交叉編譯工具鏈下載鏈接),這種下載方式可能很慢,你也可以直接在ubuntu中通過apt下載,使用國內(nèi)的源,下載比較快,這樣下載的直接就是最新版本,命令如下:
sudo apt install gcc-arm-linux-gnueabi
注意工具鏈的名字,不要下載錯了。
上面這些準備好后,就可以嘗試編譯u-boot了,在編譯u-boot之前,需要先配置使用的哪塊單板,但在u-boot源文件configs目錄下找不到V210這塊板子的默認配置文件,只好看看有沒有與V210最接近的板子,根據(jù)s5pv210的手冊可以得知,V210,C110與C111這三塊芯片非常相似,用的手冊都是一樣的(見圖1),通過搜索關(guān)鍵字發(fā)現(xiàn)s5p-goni這塊板子里面有C110相關(guān)的內(nèi)容,所以決定以這塊板子為基礎(chǔ)進行移植,我沒有另外的添加新的單板,所以后面移植全部都是直接在s5p-goni相關(guān)的源文件中修改。
先執(zhí)行如下命令生成配置文件.config:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- s5p_goni_defconfig
我這里沒有修改Makefile,所以需要手動指定交叉編譯器和體系架構(gòu)類型,正確執(zhí)行結(jié)果如下(圖2):
然后執(zhí)行如下命令編譯u-boot:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-
正確執(zhí)行結(jié)果如下(圖3):
到這里,編譯u-boot就完成了,后面就可以進行移植了。
下面是我的公眾號二維碼,歡迎關(guān)注。