| Intel Agilex SoCFPGA |
| ======================== |
| |
| Agilex SoCFPGA is a FPGA with integrated quad-core 64-bit Arm Cortex A53 processor. |
| |
| Upon boot, Boot ROM loads bl2 into OCRAM. Bl2 subsequently initializes |
| the hardware, then loads bl31 and bl33 (UEFI) into DDR and boots to bl33. |
| |
| :: |
| |
| Boot ROM --> Trusted Firmware-A --> UEFI |
| |
| How to build |
| ------------ |
| |
| Code Locations |
| ~~~~~~~~~~~~~~ |
| |
| - Trusted Firmware-A: |
| `link <https://github.com/ARM-software/arm-trusted-firmware>`__ |
| |
| - UEFI (to be updated with new upstreamed UEFI): |
| `link <https://github.com/altera-opensource/uefi-socfpga>`__ |
| |
| Build Procedure |
| ~~~~~~~~~~~~~~~ |
| |
| - Fetch all the above 2 repositories into local host. |
| Make all the repositories in the same ${BUILD\_PATH}. |
| |
| - Prepare the AARCH64 toolchain. |
| |
| - Build UEFI using Agilex platform as configuration |
| This will be updated to use an updated UEFI using the latest EDK2 source |
| |
| .. code:: bash |
| |
| make CROSS_COMPILE=aarch64-linux-gnu- device=agx |
| |
| - Build atf providing the previously generated UEFI as the BL33 image |
| |
| .. code:: bash |
| |
| make CROSS_COMPILE=aarch64-linux-gnu- bl2 fip PLAT=agilex |
| BL33=PEI.ROM |
| |
| Install Procedure |
| ~~~~~~~~~~~~~~~~~ |
| |
| - dd fip.bin to a A2 partition on the MMC drive to be booted in Agilex |
| board. |
| |
| - Generate a SOF containing bl2 |
| |
| .. code:: bash |
| |
| aarch64-linux-gnu-objcopy -I binary -O ihex --change-addresses 0xffe00000 bl2.bin bl2.hex |
| quartus_cpf --bootloader bl2.hex <quartus_generated_sof> <output_sof_with_bl2> |
| |
| - Configure SOF to board |
| |
| .. code:: bash |
| |
| nios2-configure-sof <output_sof_with_bl2> |
| |
| Boot trace |
| ---------- |
| |
| :: |
| INFO: DDR: DRAM calibration success. |
| INFO: ECC is disabled. |
| NOTICE: BL2: v2.1(debug) |
| NOTICE: BL2: Built |
| INFO: BL2: Doing platform setup |
| NOTICE: BL2: Booting BL31 |
| INFO: Entry point address = 0xffe1c000 |
| INFO: SPSR = 0x3cd |
| NOTICE: BL31: v2.1(debug) |
| NOTICE: BL31: Built |
| INFO: ARM GICv2 driver initialized |
| INFO: BL31: Initializing runtime services |
| WARNING: BL31: cortex_a53 |
| INFO: BL31: Preparing for EL3 exit to normal world |
| INFO: Entry point address = 0x50000 |
| INFO: SPSR = 0x3c9 |