Commit Graph

30 Commits

Author SHA1 Message Date
Filip Kokosinski 94428044e2 cmake: support multiple entries in board.cmake
Currently there is no way to support running a board on multiple
emulation platforms nor to choose a desired emulation platform for the
simulation to be run on. This commit introduces a new
SUPPORTED_EMU_PLATFORMS list, which defines available emulation
platforms for a given board.

Fixes #12375.

Signed-off-by: Filip Kokosinski <fkokosinski@antmicro.com>
2021-11-12 21:33:42 -05:00
Dmytro Firsov 5451674373 xenvm: switch to Xen PV console instead of PL011 SBSA
This commit removes usage of Xen emulated PL011 SBSA UART in favor of
Xen PV console minimal implementation. Now boot log and application
output can be directly taken from hypervisor domain console, instead of
virtual UART.

Also Xen VM doc was updated according to these changes.

Signed-off-by: Dmytro Firsov <dmytro_firsov@epam.com>
2021-10-29 15:23:33 +02:00
Huifeng Zhang 84d4b11301 board: arm64: refine the dts of fvp-baser-aemv8r
Pick those common node in 'fvp-baser-aemv8r.dts' to 'fvp-aemv8r.dtsi'
which reside in 'dts/arm64/fvp-aemv8r' directory.

Signed-off-by: Huifeng Zhang <Huifeng.Zhang@arm.com>
2021-10-25 19:21:20 -04:00
Siew Chin Lim a71d6f2c0c boards: arm64: Build Zephyr for Intel SoC FPGA Agilex development kit
This is the initial Zephyr support for Intel SoC FPGA Agilex support.
Agilex has quad-core 64-bit Arm Cortex*-A53.

This patch build Zephyr for Agilex development kit with 256KB SDRAM and
support hello_world sample code. The Zephyr will need to be loaded by
Intel Arm Trusted Firmware (ATF).

Agilex Zephyr boot flow:
	FSBL:ATF BL2(EL3) -> SSBL:ATF BL31(EL3) -> OS:Zephyr(EL2->EL1)

Intel ATF can be loaded from:
	https://github.com/altera-opensource/arm-trusted-firmware.git

Signed-off-by: Siew Chin Lim <elly.siew.chin.lim@intel.com>
2021-10-12 08:37:03 -04:00
Neil Armstrong 0619e96e87 boards: fvp_base_revc_2xaemv8a: reserve HEAP for GICv3 ITS tables
The ITS needs a number of table, so HEAP must be reserved for runtime
allocation (1MiB is a round and convenient value):
- Redistributor:
* 64K table for all redistributors
* 64k for each redistributors
- ITS:
* 4K collection table aligned on 4K
* 4K x 128 device table aligned on 4K

This makes 11x64K to permit all allocations to success.

Note, will need 64K HEAP_MEM per CPUs added.

This doesn't necessarily include the Interrupt Translation Table,
which are 256bytes aligned tables, for reference a 32 ITEs table
needs 256bytes.
With 14x64K HEAP, up to 116 ITT tables of 32 ITEs can be allocated.

A specific HEAP_MEM_POOL_SIZE as been added to arm64_gicv3_its test
for the fvp_base_revc_2xaemv8a board to satisfy all memory allocation
constraints for 256 ITT tables with 32 ITEs allocations.

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
2021-09-28 19:45:29 -04:00
Neil Armstrong 2385d91c56 board: fvp_base_revc_2xaemv8a: add ITS node
Add the FVP machine ITS node.

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
2021-09-28 19:45:29 -04:00
Neil Armstrong c523014983 board: fvp_base_revc_2xaemv8a: set 16bits for ITS DeviceID
By default fvp_base_revc_2xaemv8a used 17bits per DeviceID, limit it to
16bits for the PCIe MSI/MSI-C use-case and save some memory.

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
2021-09-28 19:45:29 -04:00
Neil Armstrong 538968a773 boards: fvp_base_revc_2xaemv8a: permit running Zephyr at EL1NS
It may be needed to run Zephyr at EL1NS level with `CONFIG_ARMV8_A_NS`
In order to run at EL1NS, you'll need a proper Firmware loaded in the
FVP model to run Zephyr at non-secure EL3.

The ARM TF-A for FVP can used to run Zephyr as preloaded BL33.

This adds the necessary cmake scripts to load the TF-A binaries and
load Zephyr as preloaded BL33 payload.

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
2021-09-06 14:11:32 -04:00
Huifeng Zhang 0eab654b13 arch: arm64: select SCHED_IPI_SUPPORTED for Armv8_R
Armv8_R supports IPI

Signed-off-by: Huifeng Zhang <Huifeng.Zhang@arm.com>
2021-07-13 09:30:29 -04:00
Huifeng Zhang 7dd3456479 boards: arm64: add fvp_baser_aemv8r_smp
Support SMP for fvp_baser_aemv8r.

Signed-off-by: Huifeng Zhang <Huifeng.Zhang@arm.com>
2021-07-13 09:30:29 -04:00
Huifeng Zhang ab758046dd boards: arm64: fvp_baser_aemv8_r: change FVP startup parameters
Eliminate GICv3 warning messages printed by FVP_BaseR_AEMv8R.
And "cluster0.NUM_CORES" depends on CONFIG_MP_NUM_CPUS now.

Signed-off-by: Huifeng Zhang <Huifeng.Zhang@arm.com>
2021-07-13 09:30:29 -04:00
Huifeng Zhang 7d3de0fca7 boards: arm64: fvp_baser_aemv8r: modifing dts for enabling SMP
Add psci and more cpu nodes into fvp_baser_aemv8r.dts. The purpose
of it is perparing to support SMP.

Signed-off-by: Huifeng Zhang <Huifeng.Zhang@arm.com>
2021-07-13 09:30:29 -04:00
Huifeng Zhang f738c15a93 boards: arm64: fvp_baser_aemv8r: select CACHE_MANAGEMENT
fvp_baser_aemv8r supports CACHE_MANAGEMENT too and CACHE_MANAGEMENT
should also be selected.

Signed-off-by: Huifeng Zhang <Huifeng.Zhang@arm.com>
2021-07-13 09:30:29 -04:00
Dmytro Firsov 60c28fa883 arm: aarch64: xenvm: fix typo in Xen VM doc
This commit fixes hotkey for exiting Xen virtual console with correct
combination.

Signed-off-by: Dmytro Firsov <dmytro_firsov@epam.com>
2021-06-25 08:53:49 -04:00
Jiafei Pan fe9b6b7651 boards: nxp_ls1046ardb: doc: fix build command
nxp_ls1046ardb board don't support command "run",
so remove it.

Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
2021-06-07 16:17:59 -05:00
Hou Zhiqiang 5f61d89233 boards: ls1046ardb: Correct the reference clock of system counter
It is 25 MHz on LS1046ARDB, so correct it.

Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
2021-05-20 13:54:54 -05:00
Qi Feng 2e104eabfc boards: fvp_baser_aemv8r: doc: debug with Arm DS
Add document about debugging with Arm Development Studio and some
description. Standardize the names.

Signed-off-by: Qi Feng <qi.feng@arm.com>
2021-04-27 13:31:42 -04:00
Qi Feng 83530473d0 boards: arm64: doc: only list index files
So that rst files located in a certain board are not listed in board
level table of contents.

Signed-off-by: Qi Feng <qi.feng@arm.com>
2021-04-27 13:31:42 -04:00
Carlo Caione 5b3d499755 board: fvp_baser_aemv8r: Fix board yaml file
To make it consistent with the yaml of the other FVP board.

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2021-04-27 13:30:07 -04:00
Carlo Caione 0427d93f4a board: arm64: Add FVP Base RevC 2xAEMv8A board
Add support for the FVP Base RevC 2xAEMv8A board to be emulated using
the same FVP. For now the virtual platform is only exposing one core and
the basic set of peripherals (GICv3, ARM arch timer, PL011, etc...).

INFO    - Total complete:  256/ 256  100%  skipped:  933, failed:    0

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2021-04-27 13:30:07 -04:00
Jiafei Pan 6f46a92849 board: nxp_ls1046ardb: add 2 cores smp for running in Jailhouse
1. add a seperate 2 cores SMP board configuration to run in Jailhouse
   inmate Cell, root Cell Linux will use Core0 and Core1, Zephyr will
   run on Core2 and Core3.
2. Refine the code of dts, move SoC common dts nodes into dtsi fiel in
   dts/arm64/nxp/ directory.
3. Add myself to be code owner of directory dts/arm64/nxp/.

Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
2021-04-22 11:29:54 +02:00
Carlo Caione 26a65d8584 arm64: fvp_baser_aemv8r: Cleanup defconfig
Remove useless options.

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2021-04-15 12:58:22 +02:00
Carlo Caione 04df0ddc88 arm64: Set AARCH64_IMAGE_HEADER and BUILD_OUTPUT_BIN to y
It doesn't hurt always having the image header and generating the binary
output. I find myself constantly setting those to 'y', so make it
definitive.

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2021-04-15 12:58:22 +02:00
Carlo Caione 66b78162ce arm64: qemu_cortex_a53: Cleanup defconfigs
Remove useless entries and add some missing options.

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2021-04-15 12:58:22 +02:00
Carlo Caione a57a69b61a dts: virt: Move sram node to DT board files
Currently the SRAM location is fixed for all the boards derived from
qemu_cortex_a53. While this is acceptable when the image is directly
loaded in SRAM by QEMU, in some cases Zephyr can be loaded in RAM by
another piece of software or by semihosting at a different address
before jumping into it.

When for example TF-A is used and Zephyr is run as BL33 payload using
QEMU, in this case the default location in RAM is at a different
address (when preloaded BL33 base address is not used).

To address these cases, move the SRAM location into the board-specific
DTS so that it can be adjusted on a board by board basis.

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2021-04-14 14:20:00 -05:00
Jiafei Pan 8499b7962d board: arm64: add SMP support for NXP ls1046a RDB board
Enable SMP on ls1046a RDB board with new board name
"nxp_ls1046ardb_smp".

Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
2021-04-13 15:09:23 -04:00
Jaxson Han 985b03340d board: arm64: Add FVP BaseR AEMv8R board
Add essential files to create a new board. Enable arch timer, uart,
multi-threading. Set memory map for flash and sram. The new board name
is fvp_baser_aemv8r with the fvp_aemv8r_aarch64 soc.

Signed-off-by: Jaxson Han <jaxson.han@arm.com>
2021-04-13 07:47:44 -04:00
Jiafei Pan 58dfd2d151 board: arm64: add nxp ls1046a RDB board support
Enabled ARM A72 Core, MMU, GIC and UART.

Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
2021-04-09 13:25:15 +02:00
Carlo Caione a43f3bade8 arm/arm64: Fix misc and trivials for ARM/ARM64 split
Fix the header guards, comments, github labeler, CODEOWNERS and
MAINTAINERS files.

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2021-03-31 10:34:33 -05:00
Carlo Caione 3539c2fbb3 arm/arm64: Make ARM64 a standalone architecture
Split ARM and ARM64 architectures.

Details:

- CONFIG_ARM64 is decoupled from CONFIG_ARM (not a subset anymore)
- Arch and include AArch64 files are in a dedicated directory
  (arch/arm64 and include/arch/arm64)
- AArch64 boards and SoC are moved to soc/arm64 and boards/arm64
- AArch64-specific DTS files are moved to dts/arm64
- The A72 support for the bcm_vk/viper board is moved in the
  boards/bcm_vk/viper directory

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2021-03-31 10:34:33 -05:00