|
3 | 3 |
|
4 | 4 | # Summary |
5 | 5 |
|
6 | | -This is a port of 64-bit TianoCore EDK II firmware for the SolidRun MacchiatoBin platform based on the Marvell ARMADA 8040 SoC. |
| 6 | +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) |
| 7 | +platform based on the Marvell ARMADA 8040 SoC. |
7 | 8 |
|
8 | | -# Building the firmware |
| 9 | +# Supported features |
9 | 10 |
|
10 | | -## Prepare toolchain (for cross-compilation only): |
| 11 | +Features supported in EDK2: |
11 | 12 |
|
12 | | -1. Download the toolchain: |
| 13 | +* 1x PCIE x4 |
| 14 | +* Networking: |
| 15 | + * 2x 10 GbE via SFP+ / RJ45 |
| 16 | + * 1x 2500 Base-X via SFP+ |
| 17 | + * 1x 1 GbE SGMII via RJ45 |
| 18 | +* 1x USB 3.0 |
| 19 | +* 2x USB 2.0 |
| 20 | +* 3x SATA |
| 21 | +* 1x uSD |
| 22 | +* 1x eMMC |
| 23 | +* RTC |
| 24 | +* SPI flash & memory-mapped variable storage access |
| 25 | +* GPIO |
13 | 26 |
|
14 | | - ``` |
15 | | - 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 |
16 | | - ``` |
| 27 | +Hardware description: |
17 | 28 |
|
18 | | -1. After extracting, setup the path and compiler prefix to GCC5\_AARCH64\_PREFIX variable: |
| 29 | +* ACPI (default) |
| 30 | +* Device Tree |
19 | 31 |
|
20 | | - ``` |
21 | | - export GCC5_AARCH64_PREFIX=<toolchain_path>/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- |
22 | | - ``` |
| 32 | +Others: |
23 | 33 |
|
24 | | -## Prepare prerequisites |
| 34 | +* Signed capsule update |
| 35 | +* X64 option ROM emulator |
25 | 36 |
|
26 | | -1. Create a new folder (directory) on your local development machine |
27 | | - for use as your workspace. This example uses `/work/git/tianocore`, modify as |
28 | | - appropriate for your needs. |
| 37 | +# Building the firmware |
29 | 38 |
|
30 | | - ``` |
31 | | - $ export WORKSPACE=/work/git/tianocore |
32 | | - $ mkdir -p $WORKSPACE |
33 | | - $ cd $WORKSPACE |
34 | | - ``` |
| 39 | +## Prepare EDKII environment: |
35 | 40 |
|
36 | | -1. Clone the Trusted Firmware repository: |
| 41 | +Please follow instructions from [Obtaining source code](https://github.com/tianocore/edk2-platforms#obtaining-source-code) |
| 42 | +and [Manual building](https://github.com/tianocore/edk2-platforms#manual-building) from the |
| 43 | +top level edk2-platforms [Readme.md](https://github.com/tianocore/edk2-platforms#readme). |
37 | 44 |
|
38 | | - ``` |
39 | | - $ cd ${WORKSPACE} |
40 | | - $ git clone https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git |
41 | | - ``` |
42 | | -1. Clone repository for auxiliary firmware on the SoC co-processors and checkout to binaries-marvell-armada-SDK10.0.1.0: |
| 45 | +## Build EDKII: |
43 | 46 |
|
44 | | - ``` |
45 | | - $ cd ${WORKSPACE} |
46 | | - $ git clone https://github.com/MarvellEmbeddedProcessors/binaries-marvell.git |
47 | | - $ cd binaries-marvell/ |
48 | | - $ git checkout -b binaries-marvell-armada-SDK10.0.1.0 origin/binaries-marvell-armada-SDK10.0.1.0 |
49 | | - ``` |
50 | | -1. Clone the DDR training code from: |
| 47 | +Use below build command: |
51 | 48 |
|
52 | | - ``` |
53 | | - $ cd ${WORKSPACE} |
54 | | - $ git clone https://github.com/MarvellEmbeddedProcessors/mv-ddr-marvell.git |
55 | | - ``` |
56 | | -## Prepare EDKII environment: |
| 49 | + ``` |
| 50 | + $ build -a AARCH64 -t GCC5 -b RELEASE -D X64EMU_ENABLE -p Platform/SolidRun/Armada80x0McBin/Armada80x0McBin.dsc |
| 51 | + ``` |
57 | 52 |
|
58 | | -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). |
| 53 | +--- |
| 54 | +**NOTE** |
59 | 55 |
|
60 | | -## Build EDKII: |
61 | | - |
62 | | -1. Use below build command: |
| 56 | +'-D INCLUDE_TFTP_COMMAND' is optional and can be added in order to enable `tftp` command in UEFI Shell. |
63 | 57 |
|
64 | | - ``` |
65 | | - $ cd ${WORKSPACE} |
66 | | - $ build -a AARCH64 -t GCC5 -b RELEASE -D INCLUDE_TFTP_COMMAND -D X64EMU_ENABLE -p Platform/SolidRun/Armada80x0McBin/Armada80x0McBin.dsc |
67 | | - ``` |
| 58 | +--- |
68 | 59 |
|
69 | 60 | ## Build the final firmware image: |
70 | 61 |
|
71 | | -1. Set BL33 variable to path to EDK II output binary: |
72 | | - |
73 | | - ``` |
74 | | - $ export BL33=${WORKSPACE}/Build/Armada80x0McBin-AARCH64/RELEASE_GCC5/FV/ARMADA_EFI.fd |
75 | | - ``` |
76 | | -1. Export SCP_BL2 variable: |
77 | | - |
78 | | - ``` |
79 | | - $ export SCP_BL2=${WORKSKPACE}/binaries-marvell/mrvl_scp_bl2.img |
80 | | - ``` |
81 | | -1. Export compiler variables (for cross-compilation only): |
82 | | - |
83 | | - ``` |
84 | | - $ export ARCH=arm64 |
85 | | - $ export CROSS_COMPILE=<toolchain_path>/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- |
86 | | - ``` |
87 | | -1. Build the image: |
88 | | - |
89 | | - ``` |
90 | | - $ cd ${WORKSPACE}/trusted-firmware-a/ |
91 | | - $ make LOG_LEVEL=20 MV_DDR_PATH=${WORKSPACE}/mv-ddr-marvell PLAT=a80x0_mcbin all fip mrvl_flash |
92 | | - ``` |
93 | | -The firmware image `flash-image.bin` can be found in `build/a80x0_mcbin/release/` directory. |
| 62 | +In addition to EDKII binary, the complete firmware image comprises the TF-A and other components. |
| 63 | +A complete build instruction can be found at [wiki page](https://github.com/Semihalf/edk2-platforms/wiki/Build_firmware). |
| 64 | + |
| 65 | +## Burning the firmware |
| 66 | + |
| 67 | +Please follow instruction at [wiki page](https://github.com/Semihalf/edk2-platforms/wiki/Burning_firmware) |
| 68 | +to burn image to desired boot device. |
94 | 69 |
|
95 | 70 | # ARM System Ready certification. |
96 | 71 |
|
|
0 commit comments