Xilinx FSBL+PMUFW+app project

本篇主要紀錄使用Xilinx去建立具備可修改FSBL、PMUFW、SWDT app的整合性project

  • 系統環境: win10

  • Xilinx版本: 2021.2

  • FPGA: ultra96v2(zynq ultraScale+)

目標

  • 我們的目標是在以下cpu core建立程序

    • A53_0 : fsbl

    • A53_1: wdt polling test standalone

    • R5_0: rtos process

    • PMU: PMUFW

  • MPSOC的開機順序是

    • FSBL

    • PMUFW

    • stand alone APP(或RTOS)


流程

1.Vivado

在建立本專案目標時要先確認FPGA ps side的設定

2.FSBL

  • 首先用standalone建立一個platform,並須注意fsbl一定只能在A53_0(或R5_0)

  • 修改A53_0的standalone psu BSP,(STD IN/OUT 改UART1就不寫了)

  • BSP zynqmp_fsbl_bsp 要設true,後續編譯才不會出現錯誤

  • 打勾或是表格內容基本上就是參考zynqmp_fsbl

  • platform build up後,create application,選在A53_0,取名建議為A53_fsbl

  • templates選擇zynq mp fsbl

  • 建議找到XFsbl_Printf(DEBUG_PRINT_ALWAYS,"Zynq MP First Stage Boot Loader\n\r");這行稍微小改一下以便後續確認A53_fsbl.elf確定有取代原本的bootloader

3. SWDT app

  • 在原本的platform建立一個新的domain,這裡主要是方便測試用的

  • 在a53_1,找wdt example,

4.PMUFW

  • 在原本的platform建立一個新的pmu domain

  • Create pmu app,process選pmu_0,以及相關模板

  • PMU有跑成功,執行板子上電看console,不會有一個錯誤提示訊息,還蠻明顯的,所以這邊就不放console照片

小結

完成以上步驟之後,就可以直接在vitis project修改 PMUFW以及FSBL


BOOTIMAGE

當你修改好上面那些,並且要建立一個image開機時,要進到vitis -> Create boot image -> zynq and zynq ultraScale,會出現以下視窗。

找到紅色框框add,或edit去新增,修改bootimage設定

修改File path,找到剛剛project編譯好的FSBL.elf,PMUFW.elf

由於我們這次是用R5 app,因此在打包image的時候要記的CPU選R5

加好以後結果如下:

Last updated