123456789101112131415161718192021222324252627282930313233343536373839404142 |
- /*
- * Copyright 2021 NXP
- *
- * SPDX-License-Identifier: BSD-3-Clause
- *
- */
- #include <cci.h>
- #include <common/debug.h>
- #include <ls_interconnect.h>
- #include <mmio.h>
- #include <platform_def.h>
- void erratum_a008850_early(void)
- {
- /* part 1 of 2 */
- uintptr_t cci_base = NXP_CCI_ADDR;
- uint32_t val = mmio_read_32(cci_base + CTRL_OVERRIDE_REG);
- /* enabling forced barrier termination on CCI400 */
- mmio_write_32(cci_base + CTRL_OVERRIDE_REG,
- (val | CCI_TERMINATE_BARRIER_TX));
- }
- void erratum_a008850_post(void)
- {
- /* part 2 of 2 */
- uintptr_t cci_base = NXP_CCI_ADDR;
- uint32_t val = mmio_read_32(cci_base + CTRL_OVERRIDE_REG);
- /* Clear the BARRIER_TX bit */
- val = val & ~(CCI_TERMINATE_BARRIER_TX);
- /*
- * Disable barrier termination on CCI400, allowing
- * barriers to propagate across CCI
- */
- mmio_write_32(cci_base + CTRL_OVERRIDE_REG, val);
- INFO("SoC workaround for Errata A008850 Post-Phase was applied\n");
- }
|