diff options
author | Manish Pandey <manish.pandey2@arm.com> | 2020-09-22 10:55:51 +0000 |
---|---|---|
committer | TrustedFirmware Code Review <review@review.trustedfirmware.org> | 2020-09-22 10:55:51 +0000 |
commit | 73740d98d99cb740ff67e188b6a7c1db816bf9f4 (patch) | |
tree | 12e2ce85185a00f966000a3b76fe44377bfa6df4 /drivers/marvell/ccu.c | |
parent | 5c5d82848d74e68e435d9627a38b60a4764beac1 (diff) | |
parent | 5e4c97d035a92302f8bce9cec29676306af560a6 (diff) | |
download | trusted-firmware-a-73740d98d99cb740ff67e188b6a7c1db816bf9f4.tar.gz |
Merge "plat: marvell: ap807: implement workaround for errata-id 3033912" into integration
Diffstat (limited to 'drivers/marvell/ccu.c')
-rw-r--r-- | drivers/marvell/ccu.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/marvell/ccu.c b/drivers/marvell/ccu.c index c73516eae7..ecf5091b48 100644 --- a/drivers/marvell/ccu.c +++ b/drivers/marvell/ccu.c @@ -30,6 +30,9 @@ ((tgt) == DRAM_1_TID) || \ ((tgt) == RAR_TID)) ? 1 : 0) +#define CCU_RGF(win) (MVEBU_CCU_BASE(MVEBU_AP0) + \ + 0x90 + 4 * (win)) + /* For storage of CR, SCR, ALR, AHR abd GCR */ static uint32_t ccu_regs_save[MVEBU_CCU_MAX_WINS * 4 + 1]; @@ -366,3 +369,17 @@ int init_ccu(int ap_index) return 0; } + +void errata_wa_init(void) +{ + /* + * EERATA ID: RES-3033912 - Internal Address Space Init state causes + * a hang upon accesses to [0xf070_0000, 0xf07f_ffff] + * Workaround: Boot Firmware (ATF) should configure CCU_RGF_WIN(4) to + * split [0x6e_0000, 0xff_ffff] to values [0x6e_0000, 0x6f_ffff] and + * [0x80_0000, 0xff_ffff] that cause accesses to the + * segment of [0xf070_0000, 0xf07f_ffff] to act as RAZWI. + */ + mmio_write_32(CCU_RGF(4), 0x37f9b809); + mmio_write_32(CCU_RGF(5), 0x7ffa0009); +} |