intel-stratix10.rst 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. Intel Stratix 10 SoCFPGA
  2. ========================
  3. Stratix 10 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 Stratix 10 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=s10
  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=stratix10
  28. BL33=PEI.ROM
  29. Install Procedure
  30. ~~~~~~~~~~~~~~~~~
  31. - dd fip.bin to a A2 partition on the MMC drive to be booted in Stratix 10
  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. INFO: Init HPS NOC's DDR Scheduler.
  46. NOTICE: BL2: v2.0(debug):v2.0-809-g7f8474a-dirty
  47. NOTICE: BL2: Built : 17:38:19, Feb 18 2019
  48. INFO: BL2: Doing platform setup
  49. INFO: BL2: Loading image id 3
  50. INFO: Loading image id=3 at address 0xffe1c000
  51. INFO: Image id=3 loaded: 0xffe1c000 - 0xffe24034
  52. INFO: BL2: Loading image id 5
  53. INFO: Loading image id=5 at address 0x50000
  54. INFO: Image id=5 loaded: 0x50000 - 0x550000
  55. NOTICE: BL2: Booting BL31
  56. INFO: Entry point address = 0xffe1c000
  57. INFO: SPSR = 0x3cd
  58. NOTICE: BL31: v2.0(debug):v2.0-810-g788c436-dirty
  59. NOTICE: BL31: Built : 15:17:16, Feb 20 2019
  60. INFO: ARM GICv2 driver initialized
  61. INFO: BL31: Initializing runtime services
  62. WARNING: BL31: cortex_a53: CPU workaround for 855873 was missing!
  63. INFO: BL31: Preparing for EL3 exit to normal world
  64. INFO: Entry point address = 0x50000
  65. INFO: SPSR = 0x3c9
  66. UEFI firmware (version 1.0 built at 11:26:18 on Nov 7 2018)