|
@@ -3,94 +3,69 @@
|
|
|
|
|
|
# Summary
|
|
|
|
|
|
-This is a port of 64-bit TianoCore EDK II firmware for the SolidRun MacchiatoBin platform based on the Marvell ARMADA 8040 SoC.
|
|
|
+This is a port of 64-bit TianoCore EDK II firmware for the [SolidRun MacchiatoBin Double Shot](https://solidrun.atlassian.net/wiki/spaces/developer/pages/286655749/MACCHIATObin+Single+Double+Shot+Quick+Start+Guide)
|
|
|
+platform based on the Marvell ARMADA 8040 SoC.
|
|
|
|
|
|
-# Building the firmware
|
|
|
+# Supported features
|
|
|
|
|
|
-## Prepare toolchain (for cross-compilation only):
|
|
|
+Features supported in EDK2:
|
|
|
|
|
|
-1. Download the toolchain:
|
|
|
+* 1x PCIE x4
|
|
|
+* Networking:
|
|
|
+ * 2x 10 GbE via SFP+ / RJ45
|
|
|
+ * 1x 2500 Base-X via SFP+
|
|
|
+ * 1x 1 GbE SGMII via RJ45
|
|
|
+* 1x USB 3.0
|
|
|
+* 2x USB 2.0
|
|
|
+* 3x SATA
|
|
|
+* 1x uSD
|
|
|
+* 1x eMMC
|
|
|
+* RTC
|
|
|
+* SPI flash & memory-mapped variable storage access
|
|
|
+* GPIO
|
|
|
|
|
|
- ```
|
|
|
- wget https://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/aarch64-linux-gnu/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz
|
|
|
- ```
|
|
|
+Hardware description:
|
|
|
|
|
|
-1. After extracting, setup the path and compiler prefix to GCC5\_AARCH64\_PREFIX variable:
|
|
|
+* ACPI (default)
|
|
|
+* Device Tree
|
|
|
|
|
|
- ```
|
|
|
- export GCC5_AARCH64_PREFIX=<toolchain_path>/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
|
|
|
- ```
|
|
|
+Others:
|
|
|
|
|
|
-## Prepare prerequisites
|
|
|
+* Signed capsule update
|
|
|
+* X64 option ROM emulator
|
|
|
|
|
|
-1. Create a new folder (directory) on your local development machine
|
|
|
- for use as your workspace. This example uses `/work/git/tianocore`, modify as
|
|
|
- appropriate for your needs.
|
|
|
+# Building the firmware
|
|
|
|
|
|
- ```
|
|
|
- $ export WORKSPACE=/work/git/tianocore
|
|
|
- $ mkdir -p $WORKSPACE
|
|
|
- $ cd $WORKSPACE
|
|
|
- ```
|
|
|
+## Prepare EDKII environment:
|
|
|
|
|
|
-1. Clone the Trusted Firmware repository:
|
|
|
+Please follow instructions from [Obtaining source code](https://github.com/tianocore/edk2-platforms#obtaining-source-code)
|
|
|
+and [Manual building](https://github.com/tianocore/edk2-platforms#manual-building) from the
|
|
|
+top level edk2-platforms [Readme.md](https://github.com/tianocore/edk2-platforms#readme).
|
|
|
|
|
|
- ```
|
|
|
- $ cd ${WORKSPACE}
|
|
|
- $ git clone https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git
|
|
|
- ```
|
|
|
-1. Clone repository for auxiliary firmware on the SoC co-processors and checkout to binaries-marvell-armada-SDK10.0.1.0:
|
|
|
+## Build EDKII:
|
|
|
|
|
|
- ```
|
|
|
- $ cd ${WORKSPACE}
|
|
|
- $ git clone https://github.com/MarvellEmbeddedProcessors/binaries-marvell.git
|
|
|
- $ cd binaries-marvell/
|
|
|
- $ git checkout -b binaries-marvell-armada-SDK10.0.1.0 origin/binaries-marvell-armada-SDK10.0.1.0
|
|
|
- ```
|
|
|
-1. Clone the DDR training code from:
|
|
|
+Use below build command:
|
|
|
|
|
|
- ```
|
|
|
- $ cd ${WORKSPACE}
|
|
|
- $ git clone https://github.com/MarvellEmbeddedProcessors/mv-ddr-marvell.git
|
|
|
- ```
|
|
|
-## Prepare EDKII environment:
|
|
|
+ ```
|
|
|
+ $ build -a AARCH64 -t GCC5 -b RELEASE -D X64EMU_ENABLE -p Platform/SolidRun/Armada80x0McBin/Armada80x0McBin.dsc
|
|
|
+ ```
|
|
|
|
|
|
-Please follow instructions from "Obtaining source code" and "Manual building" from the top level edk2-platforms [Readme.md](https://github.com/tianocore/edk2-platforms#readme).
|
|
|
+---
|
|
|
+**NOTE**
|
|
|
|
|
|
-## Build EDKII:
|
|
|
-
|
|
|
-1. Use below build command:
|
|
|
+'-D INCLUDE_TFTP_COMMAND' is optional and can be added in order to enable `tftp` command in UEFI Shell.
|
|
|
|
|
|
- ```
|
|
|
- $ cd ${WORKSPACE}
|
|
|
- $ build -a AARCH64 -t GCC5 -b RELEASE -D INCLUDE_TFTP_COMMAND -D X64EMU_ENABLE -p Platform/SolidRun/Armada80x0McBin/Armada80x0McBin.dsc
|
|
|
- ```
|
|
|
+---
|
|
|
|
|
|
## Build the final firmware image:
|
|
|
|
|
|
-1. Set BL33 variable to path to EDK II output binary:
|
|
|
-
|
|
|
- ```
|
|
|
- $ export BL33=${WORKSPACE}/Build/Armada80x0McBin-AARCH64/RELEASE_GCC5/FV/ARMADA_EFI.fd
|
|
|
- ```
|
|
|
-1. Export SCP_BL2 variable:
|
|
|
-
|
|
|
- ```
|
|
|
- $ export SCP_BL2=${WORKSKPACE}/binaries-marvell/mrvl_scp_bl2.img
|
|
|
- ```
|
|
|
-1. Export compiler variables (for cross-compilation only):
|
|
|
-
|
|
|
- ```
|
|
|
- $ export ARCH=arm64
|
|
|
- $ export CROSS_COMPILE=<toolchain_path>/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
|
|
|
- ```
|
|
|
-1. Build the image:
|
|
|
-
|
|
|
- ```
|
|
|
- $ cd ${WORKSPACE}/trusted-firmware-a/
|
|
|
- $ make LOG_LEVEL=20 MV_DDR_PATH=${WORKSPACE}/mv-ddr-marvell PLAT=a80x0_mcbin all fip mrvl_flash
|
|
|
- ```
|
|
|
-The firmware image `flash-image.bin` can be found in `build/a80x0_mcbin/release/` directory.
|
|
|
+In addition to EDKII binary, the complete firmware image comprises the TF-A and other components.
|
|
|
+A complete build instruction can be found at [wiki page](https://github.com/Semihalf/edk2-platforms/wiki/Build_firmware).
|
|
|
+
|
|
|
+## Burning the firmware
|
|
|
+
|
|
|
+Please follow instruction at [wiki page](https://github.com/Semihalf/edk2-platforms/wiki/Burning_firmware)
|
|
|
+to burn image to desired boot device.
|
|
|
|
|
|
# ARM System Ready certification.
|
|
|
|