Part 1
요약·해설
Arm Fixed Virtual Platform으로 generic Armv8-A 64-bit system을 emulation합니다. GICv3, generic timer, PL011 UART와 SMSC_91C111 Ethernet을 지원합니다.
Armv8-A AArch64
100 MHz
GICv3, PL011, Generic Timer, SMSC_91C111
Part 2
접을 수 있는 영어 원문 전체
영어 원문 전체 펼치기
EB23C42F687C2BAB7CDC4B12708C4D5EAA2E2C98C4C4DEF1973DD7F4682B10C6
.. _fvp_base_revc_2xaemv8a:
ARM BASE RevC AEMv8A Fixed Virtual Platforms
############################################
Overview
********
This board configuration will use ARM Fixed Virtual Platforms(FVP) to emulate
a generic Armv8-A 64-bit hardware platform.
This configuration provides support for a generic Armv8-A 64-bit CPU and
these devices:
* GICv3 interrupt controller
* ARM architected (Generic) timer
* PL011 UART controller
Hardware
********
Supported Features
==================
The following hardware features are supported:
+-----------------------+------------+----------------------+
| Interface | Controller | Driver/Component |
+=======================+============+======================+
| GICv3 | on-chip | interrupt controller |
+-----------------------+------------+----------------------+
| PL011 UART | on-chip | serial port |
+-----------------------+------------+----------------------+
| ARM GENERIC TIMER | on-chip | system clock |
+-----------------------+------------+----------------------+
| SMSC_91C111 | on-chip | ethernet device |
+-----------------------+------------+----------------------+
The kernel currently does not support other hardware features on this platform.
Devices
========
System Clock
------------
This board configuration uses a system clock frequency of 100 MHz.
Serial Port
-----------
This board configuration uses a single serial communication channel with the
UART0.
Known Problems or Limitations
==============================
Programming and Debugging
*************************
Environment
===========
First, set the ``ARMFVP_BIN_PATH`` environment variable before building.
Optionally, set ``ARMFVP_EXTRA_FLAGS`` to pass additional arguments to the FVP.
.. code-block:: bash
export ARMFVP_BIN_PATH=/path/to/fvp/directory
Programming
===========
Use this configuration to build basic Zephyr applications and kernel tests in the
ARM FVP emulated environment, for example, with the :zephyr:code-sample:`synchronization` sample:
.. zephyr-app-commands::
:zephyr-app: samples/synchronization
:host-os: unix
:board: fvp_base_revc_2xaemv8a
:goals: build
This will build an image with the synchronization sample app.
Then you can run it with ``west build -t run``.
Running Zephyr at EL1NS
***********************
In order to run Zephyr as EL1NS with ``CONFIG_ARMV8_A_NS``, you'll need a proper
Trusted Firmware loaded in the FVP model.
The ARM TF-A for FVP can be used to run Zephyr as preloaded BL33 payload.
Checkout and Build the TF-A:
.. code-block:: console
git clone https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git --depth 1
cd trusted-firmware-a/
make PLAT=fvp PRELOADED_BL33_BASE="0x88000000" all fip
then export the ``ARMFVP_BL1_FILE` and ``ARMFVP_FIP_FILE`` environment variables:
.. code-block:: console
export ARMFVP_BL1_FILE=<path/to/tfa-a/build/fvp/release/bl1.bin>
export ARMFVP_FIP_FILE=<path/to/tfa-a/build/fvp/release/fip.bin>
Debugging
=========
Refer to the detailed overview about :ref:`application_debugging`.
Networking
==========
References
**********
1. (ID070919) Arm® Architecture Reference Manual - Armv8, for Armv8-A architecture profile
2. AArch64 Exception and Interrupt Handling
3. https://developer.arm.com/tools-and-software/simulation-models/fixed-virtual-platforms
Part 3
한국어 전문 번역
개요
이 board configuration은 Arm FVP를 사용해 generic Armv8-A 64-bit hardware platform을 emulation합니다. generic Armv8-A CPU, GICv3 interrupt controller, Arm architected generic timer와 PL011 UART를 지원합니다.
지원 기능
| Interface | Controller | Driver/Component |
|---|---|---|
| GICv3 | on-chip | interrupt controller |
| PL011 UART | on-chip | serial port |
| Arm GENERIC TIMER | on-chip | system clock |
| SMSC_91C111 | on-chip | ethernet device |
다른 hardware 기능은 현재 kernel에서 지원하지 않습니다.
장치
System clock
system clock frequency는 100 MHz입니다.
Serial
single serial channel UART0을 사용합니다.
프로그래밍과 디버깅
Environment
build 전에 FVP binary directory를 지정합니다. 추가 argument는 ARMFVP_EXTRA_FLAGS에 넣습니다.
export ARMFVP_BIN_PATH=/path/to/fvp/directoryProgramming
west build -b fvp_base_revc_2xaemv8a samples/synchronization
west build -t run
EL1NS에서 Zephyr 실행
CONFIG_ARMV8_A_NS로 EL1NS를 실행하려면 FVP model에 적절한 Trusted Firmware를 load해야 합니다. Arm TF-A for FVP에서 Zephyr를 preloaded BL33 payload로 사용합니다.
TF-A checkout·build
git clone https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git --depth 1
cd trusted-firmware-a/
make PLAT=fvp PRELOADED_BL33_BASE="0x88000000" all fip생성된 BL1과 FIP 경로를 export합니다.
export ARMFVP_BL1_FILE=<path/to/tfa-a/build/fvp/release/bl1.bin>
export ARMFVP_FIP_FILE=<path/to/tfa-a/build/fvp/release/fip.bin>
Debug
Zephyr application debugging overview를 따릅니다.
참고 자료
- Armv8-A Architecture Reference Manual
- AArch64 Exception and Interrupt Handling
- Arm FVP
Source
출처
영어 원문에는 문단, 문서 지시문, 표, 코드, 코드 심벌, 경로를 그대로 보존했습니다.