This shows you the differences between two versions of the page.
ass:laboratoare:01:tasks:02 [2023/07/10 23:09] radu.mantu |
— (current) | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ==== 01. [??p] Creating the Firmware Image Package ==== | ||
- | This package will contain **bl2**, **bl31** and **bl33**. The Secure OS (**bl32**) is outside the scope of this lab; even if we did bother to include it, it would just //be there//, doing nothing. | ||
- | |||
- | Following this exercise, we should be able to reach the first step of the booting sequence that //can// be interactive; meaning that we'll be able to interact with a shell implemented in **bl33**. | ||
- | |||
- | === [??p] Task A - bl31: the Runtime Software === | ||
- | |||
- | For this component we'll be using the [[https://github.com/nxp-imx/imx-atf|Trusted Firmware-A]] project. Although it contains reference implementations for the other bootloaders as well, we are going to use it strictly for **bl31**. The other have more complete and widely recognized alternatives available. | ||
- | |||
- | We recommend reading [[https://trustedfirmware-a.readthedocs.io/en/latest/getting_started/initial-build.html|the documentation]] moving forward. Take a close look at [[https://trustedfirmware-a.readthedocs.io/en/latest/getting_started/build-options.html|the build options]] in particular. | ||
- | |||
- | <note warning> | ||
- | Normally, we'd be using the [[https://www.trustedfirmware.org/projects/tf-a/|official TF-A]] but at the moment it seems to have a linker script bug for our platform. Reason why we use the NXP fork of TF-A. | ||
- | </note> | ||
- | |||
- | <note tip> | ||
- | * The default target platform is ARM's Fixed Virtual Platform (FVP), a simulator. That is not our platform... | ||
- | * To specify that we don't have a **bl32** for it to initialize, pass it ''SPD=none''. | ||
- | * You don't have to build everything. Just ''make ... bl31''. | ||
- | </note> |