要開發(fā)對應(yīng)nanopi M4的u-boot陪白,首先去RK3399的wiki查看資料http://opensource.rock-chips.com/wiki_RK3399
在wiki里給出了u-boot開發(fā)的資料
打開鏈接窍株,看到官方提供里準(zhǔn)備好的U-boot煮落,我們下載這個(gè)U-boot,從這里入手進(jìn)行分析
對了儡陨,開發(fā)環(huán)境可不是用nanopi量淌,我用的是淘汰的筆記本當(dāng)作linux開發(fā)機(jī)嫌褪,也可以使用虛擬機(jī)進(jìn)行開發(fā)呀枢。下載速度很慢笼痛,要等挺久的。在下載的同時(shí)安裝開發(fā)環(huán)境缨伊。nanopi M4使用的RK3399芯片帶有雙核A72、4核A53枷恕,都是ARMv8架構(gòu)谭胚,64位芯片未玻,所以官方推薦的是使用ARM64編譯器進(jìn)行編譯開發(fā)胡控,同樣下載下來。
下載完成后打開文件夾庇绽,找到make.sh橙困。make.sh是Rockchip提供的u-boot簡易編譯工具。要使用make.sh還需要下載rkbin纷宇,并和u-boot文件放在同一個(gè)文件夾下。https://github.com/rockchip-linux/rkbin
執(zhí)行make.sh,可以看到提示如下
按照提示輸入命令 ./make.sh firefly-rk3399上陕,可以看到make.sh腳本自動(dòng)從configs文件夾下讀取了firfly-rk3399的默認(rèn)編譯配置拓春,并開始u-boot的編譯。
可以看到硼莽,編譯完成后產(chǎn)生了這些文件,可以看到u-boot編譯后并不只是產(chǎn)生了一個(gè)結(jié)果文件,而是多個(gè).bin .img文件懂鸵,這是因?yàn)镽K3399使用二級load的加載方式〈夜猓可以參考官方的引導(dǎo)啟動(dòng)文檔http://opensource.rock-chips.com/wiki_Boot_option
RK3399使用兩機(jī)Loader模式載入u-boot终息,第一段載入ddr配置文件,第二段載入uboot文件和ARM可信固件(arm-trusted-firmware)對應(yīng)的編譯后文件分別為rk3399_loader_v1.17.115.bin周崭、uboot.img、trust.img美澳。這里我使用瑞芯微提供的Linux下載工具將這幾個(gè)文件下載帶eMMC中。下載工具從github獲取rkdeveloptool的源代碼? git clone https://github.com/rockchip-linux/rkdeveloptool.git (參考http://opensource.rock-chips.com/wiki_Rkdeveloptool)
然后安裝環(huán)境libusb:sudo apt-get install libudev-dev libusb-1.0-0-dev dh-autoreconf? 還有sudo?apt-get?install?pkg-config?libusb-1.0?
手動(dòng)編譯rkdeveloptool:命令如下
autoreconf -i
./configure
make
make install
完成編譯后人柿,將rkdeveloptool和要燒入的文件放在同一個(gè)文件夾下
連接開發(fā)板的串口和USB線到電腦凫岖,主要,在上電的時(shí)候不要插上eMMC哥放,上電之后在插上。
使用下列的命令燒入
sudo ./rkdeveloptool db rk3399_loader_v1.17.115.bin
sudo ./rkdeveloptool wl 0x4000 uboot.img
sudo ./rkdeveloptool wl 0x6000 trust.img
第一條指令將ddr啟動(dòng)文件燒入踩身,燒入之后可以在串口接收界面看到DDR的配置數(shù)據(jù)
然后燒入uboot和trust文件社露。斷開電源然后重新上電,可以看到uboot啟動(dòng)了峭弟。