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