arm-trusted-firmware/plat/arm/board/fvp
Andre Przywara 1ae75529bc feat(fvp): emulate trapped RNDR
When a platform decides to use FEAT_RNG_TRAP, every RNDR or RNDRSS read
will trap into EL3. The platform can then emulate those instructions, by
either executing the real CPU instructions, potentially conditioning the
results, or use rate-limiting or filtering to protect the hardware
entropy pool. Another possiblitiy would be to use some platform specific
TRNG device to get entropy and returning this.

To demonstrate platform specific usage, add a demo implementation for the
FVP: It will execute the actual CPU instruction and just return the
result. This should serve as reference code to implement platform specific
policies.

We change the definition of read_rndr() and read_rndrrs() to use the
alternative sysreg encoding, so that all assemblers can handle that.

Add documentation about the new platform specific RNG handler function.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Change-Id: Ibce817b3b06ad20129d15531b81402e3cc3e9a9e
2022-12-21 12:59:36 +00:00
..
aarch32 fvp: pwrc: Move to drivers/ folder 2019-01-25 16:04:11 +00:00
aarch64 FVP: Remove GIC initialisation from secondary core cold boot 2019-06-05 17:46:50 +01:00
fconf fix: libc: use long for 64-bit types on aarch64 2021-11-08 14:41:17 +00:00
fdts feat(fvp/tsp_manifest): add example manifest for TSP 2022-08-21 23:33:58 +01:00
include feat(drtm): add platform functions for DRTM 2022-10-05 15:25:28 +01:00
sp_min feat(fvp): update HW_CONFIG DT loading mechanism 2022-04-28 07:06:59 +01:00
trp feat(rme): add Test Realm Payload (TRP) 2021-10-05 18:41:07 +02:00
tsp fvp: pwrc: Move to drivers/ folder 2019-01-25 16:04:11 +00:00
fvp_bl1_measured_boot.c feat(plat/arm/fvp): enable RSS backend based measured boot 2022-05-11 15:47:32 +02:00
fvp_bl1_setup.c refactor(measured_boot): remove passing of BL2 hash via device tree 2021-10-12 17:53:47 +01:00
fvp_bl2_el3_setup.c plat/arm: Sanitise includes 2019-01-25 16:04:10 +00:00
fvp_bl2_measured_boot.c refactor(fvp): pass platform metadata as a function's argument 2022-11-22 10:06:56 +00:00
fvp_bl2_setup.c fix(fvp): fix NULL pointer dereference issue 2022-05-05 11:33:40 +01:00
fvp_bl2u_setup.c FVP: Add Delay Timer driver to BL1 and BL31 2019-08-16 14:15:59 +01:00
fvp_bl31_setup.c feat(fvp): update HW_CONFIG DT loading mechanism 2022-04-28 07:06:59 +01:00
fvp_common.c fix(rmmd): add missing padding to RMM Boot Manifest and initialize it 2022-12-07 18:54:28 +00:00
fvp_common_measured_boot.c refactor(fvp): pass platform metadata as a function's argument 2022-11-22 10:06:56 +00:00
fvp_console.c Don't return error information from console_flush 2020-10-09 10:21:50 -05:00
fvp_def.h plat/arm: fvp: Protect GICR frames for fused/unused cores 2021-02-09 15:55:26 +00:00
fvp_drtm_addr.c feat(fvp): add plat API to validate that passed region is non-secure 2022-10-05 15:25:28 +01:00
fvp_drtm_dma_prot.c feat(drtm): add platform functions for DRTM 2022-10-05 15:25:28 +01:00
fvp_drtm_err.c feat(fvp): add plat API to set and get the DRTM error 2022-10-05 15:25:28 +01:00
fvp_drtm_measurement.c feat(drtm): add platform functions for DRTM 2022-10-05 15:25:28 +01:00
fvp_drtm_stub.c feat(drtm): add platform functions for DRTM 2022-10-05 15:25:28 +01:00
fvp_el3_spmc.c feat(fvp): add plat hook for memory transactions 2022-05-19 15:02:47 +01:00
fvp_el3_spmc_logical_sp.c test(plat/fvp/lsp): add example logical partition 2022-05-05 09:46:39 +01:00
fvp_err.c feat(fvp): add plat API to set and get the DRTM error 2022-10-05 15:25:28 +01:00
fvp_gicv3.c refactor(libc): clean up dependencies in libc 2022-09-22 13:23:49 +02:00
fvp_io_storage.c fix(plat/fvp): provide boot files via semihosting 2021-07-28 14:16:55 +03:00
fvp_plat_attest_token.c fix(rme): update FVP platform token 2022-09-29 15:35:18 +02:00
fvp_pm.c fix(fvp): fix fvp_cpu_standby() function 2021-10-05 12:21:45 +02:00
fvp_private.h FVP: Add Delay Timer driver to BL1 and BL31 2019-08-16 14:15:59 +01:00
fvp_realm_attest_key.c feat(rmmd): add support for RMM Boot interface 2022-07-04 18:45:58 +01:00
fvp_security.c fix(fvp): extend memory map to include all DRAM memory regions 2022-02-16 20:22:16 +01:00
fvp_stack_protector.c Sanitise includes across codebase 2019-01-04 10:43:17 +00:00
fvp_sync_traps.c feat(fvp): emulate trapped RNDR 2022-12-21 12:59:36 +00:00
fvp_topology.c plat/arm/fvp: populate pwr domain descriptor dynamically 2020-03-11 19:27:02 -05:00
fvp_trusted_boot.c plat/arm: Get the base address of nv-counters from device tree 2020-08-28 09:50:36 +00:00
jmptbl.i fix(arm): fix fvp and juno build with USE_ROMLIB option 2022-04-28 14:55:25 +01:00
platform.mk feat(fvp): emulate trapped RNDR 2022-12-21 12:59:36 +00:00