Bringup // Booting linux from QSPI 1024Mb // JTAG+tftp+sf篇


㈠ 過程預覽

⑴ 生成QSPI Flash啟動方式所需要的文件

① 生成preloader;

② 生成uboot;

③ 生成dtb;

④ 生成kernel;

⑤ 生成rootfs;

 

⑵ 上電燒寫文件到QSPI Flash

① 設置BSEL/CSEL pin使用QSPI Flash啟動;

② JTAG燒寫preloader到QSPI Flash;

③ JTAG燒寫uboot到QSPI Flash;

④ 配置HPS RGMII網口;

⑤ tftp下載並燒寫dtb到QSPI Flash;

⑥ tftp下載並燒寫kernel到QSPI Flash;

⑦ tftp下載並燒寫rootfs文件QSPI Flash;

⑧ tftp下載並燒寫fpga文件QSPI Flash;

 

⑶ 配置uboot環境變量

 

⑷ QSPI Flash booting log

 

㈡ 注意事項

⑴ TAG燒寫Flash工具quartus_hps.exe要求文件名擴展名必須為*.bin,否則將會出錯。

quartus_hps -c 1 -o PV -a 0x60000 u-boot.img.bin

Image(5)[4]

 

quartus_hps -c 1 -o PV -a 0x60000 u-boot.img

Image(6)[4]

其它文件同理,故都需要增加擴展名為bin。

 

⑵ 由於JTAG理論速度是8Mbps,實際中往往達不到,對於14M字節左右的rootfs,燒寫比較費時間。為節省時間也可以使用tftp通過RGMII口來sf命令燒寫QSPI FLash。

㈢ 步驟細述


⑴ 生成QSPI Flash啟動方式所需要的文件

① 生成preloader;

命令:bsp-editor.exe

Image(7)[4]

 

C:\altera\13.1\embedded\examples\hardware\cv_soc_devkit_ghrd\hps_isw_handoff\soc_system_hps_0

Image(8)[4]

 

修改BOOT_FROM_QSPI

Image(9)[4]

 

命令:make

Image(10)[4]

 

② 生成uboot;

命令:make

Image(11)[4]



③ 生成dtb;

對於QSPI Flash大小:32MByte,每個分區的起始地址、大小及其功能,如下:

Image(12)[4]

 

故修改soc_system_qspi_flash_booting.dts如下:

Image(13)[4]

修改之后的dts文件:

soc_system_qspi_flash_booting.dts

 

命令:

dtc -I dts -O dtb -o soc_system_qspi_flash_booting.dtb soc_system_qspi_flash_booting.dts

Image(14)[4]

生成的dtb:

soc_system_qspi_flash_booting.dtb

 

④ 生成kernel;

步驟⑤同時會生成kernel:

Image(21)[4]

 

⑤ 生成rootfs;

A)下載鏈接:

http://releases.rocketboards.org/release/2013.11/gsrd/src/linux-socfpga-gsrd-13.1-src.bsx

B)生成過程:

Image(22)[4]

 

C)生成后位置:

Image(23)[4]

 

⑵ 上電燒寫文件到QSPI Flash

① 設置BSEL/CSEL pin使用QSPI Flash啟動;

Image(15)[4]

Image(16)[4]

 

② JTAG燒寫preloader到QSPI Flash;

命令:

quartus_hps -c 1 -o PV -a 0x0000 preloader-mkpimage.bin

Image(17)[4]

 

③ JTAG燒寫uboot到QSPI Flash;

命令:

quartus_hps -c 1 -o PV -a 0x60000 u-boot.img.bin

Image(18)[4]

 

④ 配置HPS RGMII網口;

命令:

set ethaddr 01:11:22:33:44:55

setenv serverip 192.168.1.66

setenv ipaddr 192.168.1.55

saveenv

Image(32)[4]

 

ping $serverip

Image(33)[4]

 

⑤ tftp下載並燒寫dtb到QSPI Flash;

A)tftp Server配置

Image(34)[4]

 

B)命令:

tftp 0x1000000 soc_system_qspi_flash_booting.dtb

Image(35)[4]

 

C)命令:

sf erase 0x50000 0x10000

sf write 0x1000000 0x50000 0x10000

Image(36)[4]

 

⑥ tftp下載並燒寫kernel到QSPI Flash;

命令:

tftp 0x1000000 zImage

Image(37)[4]

 

擦除+燒寫QSPI Flash命令:

sf update 0x1000000 0xa0000 0x310000

Image(38)[4]

 

⑦ tftp下載並燒寫rootfs文件QSPI Flash;

命令:

tftp 0x1000000 altera-image-minimal-socfpga_cyclone5.jffs2

Image(39)[4]

 

擦除+燒寫QSPI Flash命令:

sf update 0x1000000 0x800000 0xb40000

Image(40)[4]

 

⑧ tftp下載並燒寫fpga文件QSPI Flash;

命令:

tftp 0x1000000 output_file.rbf

Image(41)[4]

 

擦除+燒寫QSPI Flash命令:

sf update 0x1000000 0x1800000 0x6b0000

Image(42)[4]

 

⑶ 配置uboot環境變量

命令:

setenv qspifpgaaddr 0x1800000
setenv qspifpga  sf probe $\{qspiloadcs\}\; sf read $\{fpgadata\} $\{qspifpgaaddr\} $\{fpgadatasize\}\; fpga load $\{qspiloadcs\} $\{fpgadata\} $\{filesize\};
setenv bootcmd run qspifpga\; run bridge_enable_handoff\; run qspiload\; run qspiboot
saveenv

Image(43)[4]

 

⑷ QSPI Flash booting log

QSPI_Flash_booting_linux_RGMII.rar


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM