u-boot/arch/arm/mach-k3
Nitin Yadav 4d03f476a7 arm: mach-k3: Workaround errata ID i2331
Errata doc: https://www.ti.com/lit/pdf/sprz457
Errata ID i2331 CPSW: Device lockup when reading CPSW registers

Details: A device lockup can occur during the second read of any CPSW
subsystem register after any MAIN domain power on reset (POR). A MAIN
domain POR occurs using the hardware MCU_PORz signal, or via software
using CTRLMMR_RST_CTRL.SW_MAIN_POR or CTRLMMR_MCU_RST_CTRL.SW_MAIN_POR.
After these resets, the processor and internal bus structures may get
into a state which is only recoverable with full device reset using
MCU_PORz.
Due to this errata, Ethernet boot should not be used on this device.

Workaround(s): To avoid the lockup, a warm reset should be issued after
a MAIN domain POR and before any access to the CPSW registers. The warm
reset realigns internal clocks and prevents the lockup from happening.
Workaround above errata by calling do_reset() in case of cold boot in
order to trigger warm reset. This needs enabling SYSRESET driver in R5
SPL to enable TI SCI reset driver.

Signed-off-by: Nitin Yadav <n-yadav@ti.com>
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
Reviewed-by: Bryan Brattlof <bb@ti.com>
2023-05-03 09:05:24 -04:00
..
am62ax arm: mach-k3: am62a7: Enable QoS for DSS 2023-05-03 09:05:24 -04:00
am62x arm: mach-k3: am62: Introduce autogenerated SoC data 2022-06-10 13:37:32 -04:00
include/mach arm: mach-k3: am62a7: Enable QoS for DSS 2023-05-03 09:05:24 -04:00
j721e clk: ti: k3: Update driver to account for divider flags 2021-09-17 14:47:03 -04:00
j721s2 arm: K3: Add basic support for J721S2 SoC definition 2022-02-08 09:41:26 -05:00
j7200 clk: ti: k3: Update driver to account for divider flags 2021-09-17 14:47:03 -04:00
am62a7_init.c arm: mach-k3: am62a7: Enable QoS for DSS 2023-05-03 09:05:24 -04:00
am625_init.c arm: mach-k3: Move sysfw-loader.h out of mach includes 2023-04-24 13:18:48 -04:00
am642_init.c arm: mach-k3: Workaround errata ID i2331 2023-05-03 09:05:24 -04:00
am654_init.c arm: mach-k3: Remove empty sys_proto.h include 2023-04-24 13:18:48 -04:00
arm64-mmu.c arm: mach-k3: introduce basic files to support the am62a 2022-12-09 14:10:28 -05:00
cache.S arm: mach-k3: Clean non-coherent lines out of L3 cache 2020-08-11 10:18:27 +05:30
common.c arm: mach-k3: common: don't reconfigure background firewalls 2023-05-02 14:24:36 -04:00
common.h arm: mach-k3: common: don't reconfigure background firewalls 2023-05-02 14:24:36 -04:00
config.mk arm: k3: config.mk: Read software revision information from file on HS 2022-07-25 14:57:27 -04:00
config_secure.mk global: Move remaining CONFIG_SYS_* to CFG_SYS_* 2022-12-05 16:06:08 -05:00
j721e_init.c arm: mach-k3: j7200: Fix firewall warnings at boot time 2023-05-03 09:05:24 -04:00
j721s2_init.c arch: mach-k3: j721s2_init: Disable the firewalls 2023-04-25 15:31:27 -04:00
Kconfig arm: mach-k3: Add weak do_board_detect() to common file 2023-04-24 13:18:48 -04:00
lowlevel_init.S armv7r: K3: Allow SPL to run only on core 0 2018-11-26 22:52:11 -05:00
Makefile arm: mach-k3: introduce basic files to support the am62a 2022-12-09 14:10:28 -05:00
r5_mpu.c global: Move remaining CONFIG_SYS_SDRAM_* to CFG_SYS_SDRAM_* 2022-12-05 16:06:07 -05:00
security.c arm: mach-k3: Remove empty sys_proto.h include 2023-04-24 13:18:48 -04:00
sysfw-loader.c arm: mach-k3: Remove empty sys_proto.h include 2023-04-24 13:18:48 -04:00
sysfw-loader.h arm: mach-k3: Move sysfw-loader.h out of mach includes 2023-04-24 13:18:48 -04:00