intel-agilex.rst 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. Intel Agilex SoCFPGA
  2. ========================
  3. Agilex SoCFPGA is a FPGA with integrated quad-core 64-bit Arm Cortex A53 processor.
  4. Upon boot, Boot ROM loads bl2 into OCRAM. Bl2 subsequently initializes
  5. the hardware, then loads bl31 and bl33 (UEFI) into DDR and boots to bl33.
  6. ::
  7. Boot ROM --> Trusted Firmware-A --> UEFI
  8. How to build
  9. ------------
  10. Code Locations
  11. ~~~~~~~~~~~~~~
  12. - Trusted Firmware-A:
  13. `link <https://github.com/ARM-software/arm-trusted-firmware>`__
  14. - UEFI (to be updated with new upstreamed UEFI):
  15. `link <https://github.com/altera-opensource/uefi-socfpga>`__
  16. Build Procedure
  17. ~~~~~~~~~~~~~~~
  18. - Fetch all the above 2 repositories into local host.
  19. Make all the repositories in the same ${BUILD\_PATH}.
  20. - Prepare the AARCH64 toolchain.
  21. - Build UEFI using Agilex platform as configuration
  22. This will be updated to use an updated UEFI using the latest EDK2 source
  23. .. code:: bash
  24. make CROSS_COMPILE=aarch64-linux-gnu- device=agx
  25. - Build atf providing the previously generated UEFI as the BL33 image
  26. .. code:: bash
  27. make CROSS_COMPILE=aarch64-linux-gnu- bl2 fip PLAT=agilex
  28. BL33=PEI.ROM
  29. Install Procedure
  30. ~~~~~~~~~~~~~~~~~
  31. - dd fip.bin to a A2 partition on the MMC drive to be booted in Agilex
  32. board.
  33. - Generate a SOF containing bl2
  34. .. code:: bash
  35. aarch64-linux-gnu-objcopy -I binary -O ihex --change-addresses 0xffe00000 bl2.bin bl2.hex
  36. quartus_cpf --bootloader bl2.hex <quartus_generated_sof> <output_sof_with_bl2>
  37. - Configure SOF to board
  38. .. code:: bash
  39. nios2-configure-sof <output_sof_with_bl2>
  40. Boot trace
  41. ----------
  42. ::
  43. INFO: DDR: DRAM calibration success.
  44. INFO: ECC is disabled.
  45. NOTICE: BL2: v2.1(debug)
  46. NOTICE: BL2: Built
  47. INFO: BL2: Doing platform setup
  48. NOTICE: BL2: Booting BL31
  49. INFO: Entry point address = 0xffe1c000
  50. INFO: SPSR = 0x3cd
  51. NOTICE: BL31: v2.1(debug)
  52. NOTICE: BL31: Built
  53. INFO: ARM GICv2 driver initialized
  54. INFO: BL31: Initializing runtime services
  55. WARNING: BL31: cortex_a53
  56. INFO: BL31: Preparing for EL3 exit to normal world
  57. INFO: Entry point address = 0x50000
  58. INFO: SPSR = 0x3c9