arm-trusted-firmware/include/drivers
Varun Wadekar a02a45dfef fix(gicv3): workaround for NVIDIA erratum T241-FABRIC-4
The purpose of this patch is to address the T241 erratum T241-FABRIC-4,
which causes unexpected behavior in the GIC when multiple transactions
are received simultaneously from different sources. This hardware issue
impacts NVIDIA server platforms that use more than two T241 chips
interconnected. Each chip has support for 320 {E}SPIs.

This issue occurs when multiple packets from different GICs are
incorrectly interleaved at the target chip. The erratum text below
specifies exactly what can cause multiple transfer packets susceptible
to interleaving and GIC state corruption. GIC state corruption can
lead to a range of problems, including kernel panics, and unexpected
behavior.

Erratum documentation:
https://developer.nvidia.com/docs/t241-fabric-4/nvidia-t241-fabric-4-errata.pdf

The workaround is to ensure that MMIO accesses target the GIC on the
socket that holds the data, for example SPI ranges owned by the socket’s
GIC. This ensures that the GIC will not utilize the inter-socket AXI
Stream interface for servicing these GIC MMIO accesses.

This patch updates the functions that use the GICD_In{E} registers to
ensure that the accesses are directed to the chip that owns the SPI,
instead of using the global alias.

Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
Change-Id: I04e33ba64eb306bd5fdabb56e63cbe273d8cd632
2023-03-23 23:06:07 +00:00
..
allwinner feat(allwinner): allow to skip PMIC regulator setup 2021-12-27 15:32:22 +00:00
amlogic meson: Use generic console_t data structure 2020-02-25 09:34:38 +00:00
arm fix(gicv3): workaround for NVIDIA erratum T241-FABRIC-4 2023-03-23 23:06:07 +00:00
auth feat(mbedtls): add support for mbedtls-3.3 2023-02-21 11:09:47 +00:00
brcm Merge "driver: brcm: add USB driver" into integration 2021-04-12 16:44:11 +02:00
cadence cadence: Change logic in uart driver 2021-01-11 17:28:00 +00:00
cfi Standardise header guards across codebase 2018-11-08 10:20:19 +00:00
coreboot coreboot: Use generic base address 2020-02-25 09:34:38 +00:00
fwu feat(fwu): add a function to pass metadata structure to platforms 2022-01-27 18:09:02 +05:30
io refactor(stm32mp1): remove STM32MP_USE_STM32IMAGE 2022-11-14 14:14:48 +01:00
marvell fix(plat/marvell/a3720/uart): do external reset during initialization 2021-12-02 17:38:02 +01:00
measured_boot refactor(measured-boot): accept metadata as a function's argument 2022-11-22 10:06:56 +00:00
mentor Standardise header guards across codebase 2018-11-08 10:20:19 +00:00
nxp style: fix functions definitions 2023-03-13 12:34:40 +01:00
partition fix(partition): add U suffix for unsigned numbers 2022-12-07 14:16:48 +01:00
rambus drivers/rambus: add TRNG-IP-76 driver 2021-02-11 09:43:18 +00:00
renesas/rcar/console rcar: Use generic console_t data structure 2020-02-25 09:34:38 +00:00
rpi3 rpi3: gpio: Simplify GPIO setup 2020-03-17 12:44:09 +00:00
st refactor(st): remove unused io_mmc driver 2022-12-19 09:13:41 +01:00
synopsys drivers: synopsys: Fix synopsys MMC driver 2019-03-12 14:39:50 +08:00
ti/uart 16550: Use generic console_t data structure 2020-02-25 09:34:38 +00:00
clk.h feat(clk): add a minimal clock framework 2021-12-22 13:07:23 +01:00
console.h fix(console): correct scopes for console symbols 2023-01-10 18:59:58 +01:00
console_assertions.h Sanitise includes across codebase 2019-01-04 10:43:17 +00:00
delay_timer.h delay: correct timeout_init_us() 2019-10-08 11:13:06 +02:00
dw_ufs.h Standardise header guards across codebase 2018-11-08 10:20:19 +00:00
generic_delay_timer.h Standardise header guards across codebase 2018-11-08 10:20:19 +00:00
gpio.h refactor(plat/rockchip/rk3399/drivers/gpio): reduce code duplication 2022-01-04 15:26:43 +01:00
mmc.h feat(mmc): get boot partition size 2022-09-07 09:36:48 +02:00
nand.h feat(mtd): add platform function to allow using external buffer 2022-08-30 09:20:20 +02:00
raw_nand.h nand: raw_nand: fix timeout issue in nand_wait_ready 2020-09-24 09:32:23 +02:00
scmi-msg.h drivers: move scmi-msg out of st 2021-01-20 11:37:14 +08:00
scmi.h drivers: move scmi-msg out of st 2021-01-20 11:37:14 +08:00
spi_mem.h Add SPI-MEM framework 2020-01-20 11:32:59 +01:00
spi_nand.h Add SPI-NAND framework 2020-01-20 11:32:59 +01:00
spi_nor.h Add SPI-NOR framework 2020-01-20 11:32:59 +01:00
ufs.h feat(ufs): adds timeout and error handling 2023-03-15 09:53:12 +00:00
usb_device.h fix(drivers/usb): add a optional ops get_other_speed_config_desc 2021-11-05 11:28:59 +02:00