Merge patch series "vepxpress64: disable CRC32 by default and add FVP with TF-A guide"

Harrison Mutai <harrison.mutai@arm.com> says:

This patch introduces two updates to the vexpress64 project:

- Disable CRC32 by default to prevent aborts in a standard FVP setup.
- Add a guide for running FVP with TF-A, providing a clear starting point for
  users.

Link: https://lore.kernel.org/r/20250304165204.53097-1-harrison.mutai@arm.com
This commit is contained in:
Tom Rini
2025-03-18 08:12:40 -06:00
2 changed files with 53 additions and 2 deletions

View File

@@ -2,4 +2,5 @@ CONFIG_ARM=y
CONFIG_ARCH_VEXPRESS64=y CONFIG_ARCH_VEXPRESS64=y
CONFIG_DEFAULT_DEVICE_TREE="arm_fvp" CONFIG_DEFAULT_DEVICE_TREE="arm_fvp"
CONFIG_IDENT_STRING=" arm_fvp" CONFIG_IDENT_STRING=" arm_fvp"
# CONFIG_ARM64_CRC32 is not set
# CONFIG_DISPLAY_CPUINFO is not set # CONFIG_DISPLAY_CPUINFO is not set

View File

@@ -19,6 +19,11 @@ view", which gives a comprehensive model on which to build and test software.
The supported FVPs are available free of charge and can be downloaded from the The supported FVPs are available free of charge and can be downloaded from the
Arm developer site [1]_ (user registration might be required). Arm developer site [1]_ (user registration might be required).
The Architecture Envelope Models (AEM) FVPs offer virtual platforms for Armv8-A,
Armv9-A, and Armv8-R architectures, including a comprehensive set of System IP.
For general use though, the Armv8-A Base Rev C FVP, which emulates a generic 64-bit
Armv8-A hardware platform, is a suitable option.
Supported features: Supported features:
* GICv3 * GICv3
@@ -31,6 +36,50 @@ into the TF-A build: ``make PLAT=<platform> all fip BL33=u-boot.bin``
The FVPs can be debugged using Arm Development Studio [2]_. The FVPs can be debugged using Arm Development Studio [2]_.
Building U-Boot
^^^^^^^^^^^^^^^
Set the ``CROSS_COMPILE`` environment variable as usual, and run:
.. code-block:: bash
make vexpress_fvp_defconfig
make
Running U-Boot
^^^^^^^^^^^^^^
Set ``CROSS_COMPILE`` as usual and build TF-A:
.. code-block:: bash
git clone https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git
cd trusted-firmware-a
make PLAT=fvp BL33=/path/to/u-boot.bin fiptool all fip
This command generates the ROM image `bl1.bin`, and a boot image `fip.bin` in
TF-A's FIP format [5]_. It contains all images executed by TF-A, including U-Boot.
Note that TF-A outputs the built binaries into `build/fvp/release/`.
If you already have a FIP image, and are primarily interested in updating the BL33
image (i.e., U-Boot), use `fiptool` from TF-A:
.. code-block:: bash
make fiptool
tools/fiptool/fiptool update --nt-fw=/path/to/u-boot.bin /path/to/fip.bin
To run the FVP:
.. code-block:: bash
FVP_Base_RevC-2xAEMvA -C bp.flashloader0.fname=fip.bin \
-C bp.secureflashloader.fname=bl1.bin \
-C bp.vis.disable_visualisation=1
This setup relies on semi-hosting, as well as, having a kernel image (``Image``)
and ramdisk (``ramdisk.img``) in the current working directory.
Juno Juno
---- ----
@@ -62,7 +111,8 @@ tables.
References References
---------- ----------
.. [1] https://developer.arm.com/tools-and-software/simulation-models/fixed-virtual-platforms .. [1] https://developer.arm.com/Tools%20and%20Software/Fixed%20Virtual%20Platforms/Arm%20Architecture%20FVPs
.. [2] https://developer.arm.com/tools-and-software/embedded/arm-development-studio .. [2] https://developer.arm.com/tools-and-software/embedded/arm-development-studio
.. [3] https://developer.arm.com/tools-and-software/development-boards/juno-development-board .. [3] https://developer.arm.com/tools-and-software/development-boards/juno-development-board
.. [4] https://trustedfirmware-a.readthedocs.io/ .. [4] https://trustedfirmware-a.readthedocs.io/
.. [5] https://trustedfirmware-a.readthedocs.io/en/latest/getting_started/image-terminology.html#firmware-image-package-fip