Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
104 changes: 38 additions & 66 deletions Platform/Marvell/Cn913xDb/Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,93 +5,65 @@

This is a port of 64-bit TianoCore EDK II firmware for the Marvell CN913x Development Board.

# Building the firmware

## Prepare toolchain (for cross-compilation only):

1. Download the toolchain:

```
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
```
# Supported features

1. After extracting, setup the path and compiler prefix to GCC5\_AARCH64\_PREFIX variable:
Features supported in EDK2:

```
export GCC5_AARCH64_PREFIX=<toolchain_path>/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
```
* 1x PCIE root complex
* Networking:
* 3x 10 GbE via SFP+
* 2x 1 GbE RGMII via RJ45
* 5x USB 2.0/3.0
* 3x SATA
* 2x uSD
* 1x eMMC
* RTC
* SPI flash & memory-mapped variable storage access
* I2C
* GPIO

## Prepare prerequisites
Hardware description:

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.
* ACPI (default)
* Device Tree

```
$ export WORKSPACE=/work/git/tianocore
$ mkdir -p $WORKSPACE
$ cd $WORKSPACE
```
Others:

1. Clone the Trusted Firmware repository:
* Signed capsule update
* X64 option ROM emulator

```
$ 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:

```
$ 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:
# Building the firmware

```
$ cd ${WORKSPACE}
$ git clone https://github.com/MarvellEmbeddedProcessors/mv-ddr-marvell.git
```
## Prepare EDKII environment:

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).
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).

## Build EDKII:

1. Use below build command:
Use below build command:

```
$ cd ${WORKSPACE}
$ build -a AARCH64 -t GCC5 -b RELEASE -D CN9132 -D INCLUDE_TFTP_COMMAND -D CAPSULE_ENABLE -p Platform/Marvell/Cn913xDb/Cn913xDbA.dsc
```
```
$ build -a AARCH64 -t GCC5 -b RELEASE -D CN9132 -D CAPSULE_ENABLE -D X64EMU_ENABLE -p Platform/Marvell/Cn913xDb/Cn913xDbA.dsc
```

## Build the final firmware image:
---
**NOTE**

1. Set BL33 variable to path to EDK II output binary:
'-D INCLUDE_TFTP_COMMAND' is optional and can be added in order to enable `tftp` command in UEFI Shell.

```
$ export BL33=${WORKSPACE}/Build/Cn9132DbA-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):
## Build the final firmware image:

```
$ 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:
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).

```
$ cd ${WORKSPACE}/trusted-firmware-a/
$ make LOG_LEVEL=20 MV_DDR_PATH=${WORKSPACE}/mv-ddr-marvell CP_NUM=3 PLAT=t9130 all fip mrvl_flash
## Burning the firmware

```
The firmware image `flash-image.bin` can be found in `build/t9130/release/` directory.
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.

Expand Down
113 changes: 44 additions & 69 deletions Platform/SolidRun/Armada80x0McBin/Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down
Loading