pl310_softc
platform_pl310_init(struct pl310_softc *sc)
platform_pl310_write_ctrl(struct pl310_softc *sc, uint32_t val)
platform_pl310_write_debug(struct pl310_softc *sc, uint32_t val)
pl310_print_config(struct pl310_softc *sc)
pl310_set_ram_latency(struct pl310_softc *sc, uint32_t which_reg,
struct pl310_softc *sc = arg;
while (pl310_read4(pl310_softc, off) & mask)
if ((pl310_softc == NULL) || !pl310_softc->sc_enabled)
if (pl310_softc->sc_io_coherent)
if (pl310_softc->sc_rtl_revision == CACHE_ID_RELEASE_r3p0)
pl310_write4(pl310_softc, 0x740, 0xffffffff);
pl310_write4(pl310_softc, PL310_CACHE_SYNC, 0xffffffff);
if ((pl310_softc == NULL) || !pl310_softc->sc_enabled)
PL310_LOCK(pl310_softc);
if (pl310_softc->sc_rtl_revision == CACHE_ID_RELEASE_r2p0) {
pl310_write4(pl310_softc,
PL310_UNLOCK(pl310_softc);
if (pl310_softc->sc_rtl_revision == CACHE_ID_RELEASE_r3p0)
platform_pl310_write_debug(pl310_softc, 3);
pl310_write4(pl310_softc, PL310_CLEAN_INV_WAY, g_l2cache_way_mask);
if (pl310_softc->sc_rtl_revision == CACHE_ID_RELEASE_r3p0)
platform_pl310_write_debug(pl310_softc, 0);
PL310_UNLOCK(pl310_softc);
if ((pl310_softc == NULL) || !pl310_softc->sc_enabled)
PL310_LOCK(pl310_softc);
if (pl310_softc->sc_rtl_revision >= CACHE_ID_RELEASE_r2p0 &&
pl310_softc->sc_rtl_revision < CACHE_ID_RELEASE_r3p1)
platform_pl310_write_debug(pl310_softc, 3);
if (pl310_softc->sc_rtl_revision <= CACHE_ID_RELEASE_r1p0) {
pl310_write4(pl310_softc, PL310_CLEAN_LINE_PA, start);
pl310_write4(pl310_softc, PL310_INV_LINE_PA, start);
pl310_write4(pl310_softc, PL310_CLEAN_INV_LINE_PA,
if (pl310_softc->sc_rtl_revision >= CACHE_ID_RELEASE_r2p0 &&
pl310_softc->sc_rtl_revision < CACHE_ID_RELEASE_r3p1)
platform_pl310_write_debug(pl310_softc, 0);
PL310_UNLOCK(pl310_softc);
if ((pl310_softc == NULL) || !pl310_softc->sc_enabled)
PL310_LOCK(pl310_softc);
pl310_write4(pl310_softc, PL310_CLEAN_LINE_PA, start);
PL310_UNLOCK(pl310_softc);
if ((pl310_softc == NULL) || !pl310_softc->sc_enabled)
PL310_LOCK(pl310_softc);
pl310_write4(pl310_softc, PL310_INV_LINE_PA, start);
PL310_UNLOCK(pl310_softc);
if ((pl310_softc == NULL) || !pl310_softc->sc_enabled)
PL310_LOCK(pl310_softc);
PL310_UNLOCK(pl310_softc);
pl310_set_way_sizes(struct pl310_softc *sc)
struct pl310_softc * sc;
struct pl310_softc *sc = device_get_softc(dev);
pl310_softc = sc;
pl310_write4(pl310_softc, PL310_INV_WAY, 0xffff);
sizeof(struct pl310_softc),
static struct pl310_softc *pl310_softc;
struct pl310_softc;
void imx6_pl310_init(platform_t, struct pl310_softc *);
imx6_pl310_init(platform_t plat, struct pl310_softc *sc)
pl310_read4(struct pl310_softc *sc, bus_size_t off)
pl310_write4(struct pl310_softc *sc, bus_size_t off, uint32_t val)
void pl310_set_ram_latency(struct pl310_softc *sc, uint32_t which_reg,
void platform_pl310_init(struct pl310_softc *);
void platform_pl310_write_ctrl(struct pl310_softc *, uint32_t);
void platform_pl310_write_debug(struct pl310_softc *, uint32_t);
mv_a38x_platform_pl310_init(platform_t plat, struct pl310_softc *sc)
mv_a38x_platform_pl310_write_ctrl(platform_t plat, struct pl310_softc *sc, uint32_t val)
mv_a38x_platform_pl310_write_debug(platform_t plat, struct pl310_softc *sc, uint32_t val)
void mv_a38x_platform_pl310_init(platform_t plat, struct pl310_softc *sc);
void mv_a38x_platform_pl310_write_ctrl(platform_t plat, struct pl310_softc *sc, uint32_t val);
void mv_a38x_platform_pl310_write_debug(platform_t plat, struct pl310_softc *sc, uint32_t val);
zynq7_pl310_init(platform_t plat, struct pl310_softc *softc)
struct pl310_softc;
void zynq7_pl310_init(platform_t, struct pl310_softc *);