Changeset View
Changeset View
Standalone View
Standalone View
head/sys/arm64/arm64/gic_v3.c
Show First 20 Lines • Show All 384 Lines • ▼ Show 20 Lines | gic_v3_read_ivar(device_t dev, device_t child, int which, uintptr_t *result) | ||||
struct gic_v3_softc *sc; | struct gic_v3_softc *sc; | ||||
sc = device_get_softc(dev); | sc = device_get_softc(dev); | ||||
switch (which) { | switch (which) { | ||||
case GICV3_IVAR_NIRQS: | case GICV3_IVAR_NIRQS: | ||||
*result = (NIRQ - sc->gic_nirqs) / sc->gic_nchildren; | *result = (NIRQ - sc->gic_nirqs) / sc->gic_nchildren; | ||||
return (0); | return (0); | ||||
case GICV3_IVAR_REDIST_VADDR: | |||||
*result = (uintptr_t)rman_get_virtual( | |||||
&sc->gic_redists.pcpu[PCPU_GET(cpuid)]->res); | |||||
return (0); | |||||
case GICV3_IVAR_REDIST: | case GICV3_IVAR_REDIST: | ||||
*result = (uintptr_t)sc->gic_redists.pcpu[PCPU_GET(cpuid)]; | *result = (uintptr_t)sc->gic_redists.pcpu[PCPU_GET(cpuid)]; | ||||
return (0); | return (0); | ||||
case GIC_IVAR_HW_REV: | case GIC_IVAR_HW_REV: | ||||
KASSERT( | KASSERT( | ||||
GICR_PIDR2_ARCH(sc->gic_pidr2) == GICR_PIDR2_ARCH_GICv3 || | GICR_PIDR2_ARCH(sc->gic_pidr2) == GICR_PIDR2_ARCH_GICv3 || | ||||
GICR_PIDR2_ARCH(sc->gic_pidr2) == GICR_PIDR2_ARCH_GICv4, | GICR_PIDR2_ARCH(sc->gic_pidr2) == GICR_PIDR2_ARCH_GICv4, | ||||
("gic_v3_read_ivar: Invalid GIC architecture: %d (%.08X)", | ("gic_v3_read_ivar: Invalid GIC architecture: %d (%.08X)", | ||||
▲ Show 20 Lines • Show All 871 Lines • Show Last 20 Lines |