d2d954f691
Summary: Adding virtual evaluate platform FVP. This FVP board configuration will be used to emulate generic ARM64v8-R (Cotex-R82)series hardware platform and provide support for these devices: - GICv3 interrupt controllers for ARMv8-r - PL011 UART controller(FVP) Note: 1. ostest is PASSED at fvp ( single core and SMP) 2. the FVP tools can be download from ARM site, please check FVP board readme.txt TODO: merge PL011 UART driver to common place Signed-off-by: qinwei1 <qinwei1@xiaomi.com>
96 lines
3.2 KiB
Plaintext
96 lines
3.2 KiB
Plaintext
README.txt
|
||
==========
|
||
|
||
This board configuration will use FVP_BaseR_AEMv8R to emulate
|
||
generic ARM64v8-R (Cotex-R82) series hardware platform and
|
||
provides support for these devices:
|
||
|
||
- GICv3 interrupt controllers for ARMv8-r
|
||
- PL011 UART controller(FVP)
|
||
|
||
Contents
|
||
========
|
||
- Getting Started
|
||
- Status
|
||
- Platform Features
|
||
- References
|
||
|
||
Getting Started
|
||
===============
|
||
|
||
1. Compile Toolchain
|
||
The FVP platform using same Compiler like qemu, read the following
|
||
file for How to get the Tool:
|
||
https://github.com/apache/nuttx/tree/master/boards/arm64/qemu/qemu-armv8a
|
||
|
||
Note:
|
||
1. My host environment is Ubuntu 22.04.1 LTS, Ubuntu 18.04 will work too
|
||
2. The newest GNU toolchain is 12.2, available from:
|
||
https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads
|
||
|
||
|
||
2. Getting Armv8-R AEM FVP
|
||
The Armv8-R AEM FVP is a free of charge Armv8-R Fixed Virtual Platform.
|
||
It supports the latest Armv8-R feature set. we can get it from:
|
||
https://developer.arm.com/downloads/-/arm-ecosystem-models
|
||
|
||
Please select to download Armv8-R AEM FVP product, extract the tool package
|
||
the FVP tool is locate at:
|
||
AEMv8R_FVP/AEMv8R_base_pkg/models/Linux64_GCC-9.3/FVP_BaseR_AEMv8R
|
||
|
||
3. Configuring and building
|
||
3.1 Single Core
|
||
Configuring NuttX and compile:
|
||
$ ./tools/configure.sh -l fvp-armv8r:nsh
|
||
$ make
|
||
|
||
3.2 SMP
|
||
Configuring NuttX and compile:
|
||
$ ./tools/configure.sh -l fvp-armv8r:nsh_smp
|
||
$ make
|
||
|
||
3. Running
|
||
Single Core
|
||
$ AEMv8R_FVP/AEMv8R_base_pkg/models/Linux64_GCC-9.3/FVP_BaseR_AEMv8R \
|
||
-f boards/arm64/fvp-v8r/fvp-armv8r/scripts/fvp_cfg.txt \
|
||
-a ./nuttx
|
||
SMP
|
||
$ AEMv8R_FVP/AEMv8R_base_pkg/models/Linux64_GCC-9.3/FVP_BaseR_AEMv8R \
|
||
-f boards/arm64/fvp-v8r/fvp-armv8r/scripts/fvp_cfg_smp.txt \
|
||
-a ./nuttx
|
||
|
||
Status
|
||
======
|
||
|
||
2023-2-18:
|
||
1. Release the frist version for ARMv8-R, Single Core and SMP is supported
|
||
OS test is passed.
|
||
|
||
Platform Features
|
||
=================
|
||
|
||
The following hardware features are supported:
|
||
+--------------+------------+----------------------+
|
||
| Interface | Controller | Driver/Component |
|
||
+==============+============+======================+
|
||
| GICv3 | on-chip | interrupt controller |
|
||
+--------------+------------+----------------------+
|
||
| PL011 UART | on-chip | serial port |
|
||
+--------------+------------+----------------------+
|
||
| ARM TIMER | on-chip | system clock |
|
||
+--------------+------------+----------------------+
|
||
|
||
References
|
||
===========
|
||
|
||
1. (ID050815) ARM® Cortex®-A Series - Programmer’s Guide for ARMv8-A
|
||
2. (ID020222) Arm® Architecture Reference Manual - for A profile architecture
|
||
3. (ARM062-948681440-3280) Armv8-A Instruction Set Architecture
|
||
4. AArch64 Exception and Interrupt Handling
|
||
5. AArch64 Programmer's Guides Generic Timer
|
||
6. Arm Generic Interrupt Controller v3 and v4 Overview
|
||
7. Arm® Generic Interrupt Controller Architecture Specification GIC architecture version 3 and version 4
|
||
8. (DEN0022D.b) Arm Power State Coordination Interface Platform Design Document
|
||
9. Arm® Architecture Reference Manual Supplement, Armv8, for R-profile AArch64 architecture,
|
||
ARM DDI 0600B.a (ID062922)
|
||
10.Arm® Cortex®-R82 Processor Technical Reference Manual, Revision: r0p2 |