aboutsummaryrefslogtreecommitdiff
path: root/sys/arm64/arm64/gic_v3_var.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arm64/arm64/gic_v3_var.h')
-rw-r--r--sys/arm64/arm64/gic_v3_var.h20
1 files changed, 12 insertions, 8 deletions
diff --git a/sys/arm64/arm64/gic_v3_var.h b/sys/arm64/arm64/gic_v3_var.h
index 7722a48cb456..81526e7cc15e 100644
--- a/sys/arm64/arm64/gic_v3_var.h
+++ b/sys/arm64/arm64/gic_v3_var.h
@@ -24,8 +24,6 @@
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
- *
- * $FreeBSD$
*/
#ifndef _GIC_V3_VAR_H_
@@ -40,8 +38,9 @@ DECLARE_CLASS(gic_v3_driver);
struct gic_v3_irqsrc;
struct redist_pcpu {
- struct resource res; /* mem resource for redist */
+ struct resource *res; /* mem resource for redist */
vm_offset_t pend_base;
+ bus_size_t offset;
bool lpi_enabled; /* redist LPI configured? */
};
@@ -55,7 +54,7 @@ struct gic_redists {
/* Number of Re-Distributor regions */
u_int nregions;
/* Per-CPU Re-Distributor data */
- struct redist_pcpu *pcpu[MAXCPU];
+ struct redist_pcpu *pcpu;
};
struct gic_v3_softc {
@@ -84,11 +83,15 @@ struct gic_v3_softc {
device_t *gic_children;
struct intr_pic *gic_pic;
struct gic_v3_irqsrc *gic_irqs;
+
+ int nranges;
+ struct arm_gic_range * ranges;
};
struct gic_v3_devinfo {
int gic_domain;
int msi_xref;
+ int is_vgic;
};
#define GIC_INTR_ISRC(sc, irq) (&sc->gic_irqs[irq].gi_isrc)
@@ -133,8 +136,8 @@ void gic_r_write_8(device_t, bus_size_t, uint64_t var);
u_int cpu = PCPU_GET(cpuid); \
\
bus_read_##len( \
- &sc->gic_redists.pcpu[cpu]->res, \
- reg); \
+ (sc)->gic_redists.pcpu[cpu].res, \
+ (sc)->gic_redists.pcpu[cpu].offset + (reg)); \
})
#define gic_r_write(sc, len, reg, val) \
@@ -142,8 +145,9 @@ void gic_r_write_8(device_t, bus_size_t, uint64_t var);
u_int cpu = PCPU_GET(cpuid); \
\
bus_write_##len( \
- &sc->gic_redists.pcpu[cpu]->res, \
- reg, val); \
+ (sc)->gic_redists.pcpu[cpu].res, \
+ (sc)->gic_redists.pcpu[cpu].offset + (reg), \
+ (val)); \
})
#endif /* _GIC_V3_VAR_H_ */