summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormiod <miod@openbsd.org>2012-04-30 21:30:33 +0000
committermiod <miod@openbsd.org>2012-04-30 21:30:33 +0000
commitaf28f4c720aac14d202e3a5324936e9aaed48fb0 (patch)
treeb22b67c599273d97431b1112292688b43aa0ac44
parentCorrectly read board version information. (diff)
downloadwireguard-openbsd-af28f4c720aac14d202e3a5324936e9aaed48fb0.tar.xz
wireguard-openbsd-af28f4c720aac14d202e3a5324936e9aaed48fb0.zip
Pass the base address of the hpc to child devices, to let them be able to
figure out whether they attach to the onboard hpc or to an expansion slot (or the Challenge S IO+ mezzanine). No functional change (yet)
-rw-r--r--sys/arch/sgi/hpc/hpc.c4
-rw-r--r--sys/arch/sgi/hpc/hpcvar.h22
2 files changed, 14 insertions, 12 deletions
diff --git a/sys/arch/sgi/hpc/hpc.c b/sys/arch/sgi/hpc/hpc.c
index 62879b201cc..3dcdd2e9c2c 100644
--- a/sys/arch/sgi/hpc/hpc.c
+++ b/sys/arch/sgi/hpc/hpc.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: hpc.c,v 1.9 2012/04/17 15:22:02 miod Exp $ */
+/* $OpenBSD: hpc.c,v 1.10 2012/04/30 21:30:33 miod Exp $ */
/* $NetBSD: hpc.c,v 1.66 2011/07/01 18:53:46 dyoung Exp $ */
/* $NetBSD: ioc.c,v 1.9 2011/07/01 18:53:47 dyoung Exp $ */
@@ -613,6 +613,7 @@ hpc_attach(struct device *parent, struct device *self, void *aux)
continue;
ha.ha_name = hd->hd_name;
+ ha.ha_base = hd->hd_base;
ha.ha_devoff = hd->hd_devoff;
ha.ha_dmaoff = hd->hd_dmaoff;
/*
@@ -666,6 +667,7 @@ hpc_attach(struct device *parent, struct device *self, void *aux)
ha.ha_name = "dsclock";
ha.ha_devoff = HPC3_PBUS_BBRAM;
}
+ ha.ha_base = sc->sc_base;
ha.ha_dmaoff = 0;
ha.ha_irq = -1;
ha.ha_st = sc->sc_ct;
diff --git a/sys/arch/sgi/hpc/hpcvar.h b/sys/arch/sgi/hpc/hpcvar.h
index 9e2c988d2a8..9a1e656c6b7 100644
--- a/sys/arch/sgi/hpc/hpcvar.h
+++ b/sys/arch/sgi/hpc/hpcvar.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: hpcvar.h,v 1.6 2012/04/17 15:22:02 miod Exp $ */
+/* $OpenBSD: hpcvar.h,v 1.7 2012/04/30 21:30:33 miod Exp $ */
/* $NetBSD: hpcvar.h,v 1.12 2011/01/25 12:21:04 tsutsui Exp $ */
/*
@@ -90,22 +90,22 @@ struct hpc_values {
struct hpc_attach_args {
const char *ha_name; /* name of device */
- bus_addr_t ha_devoff; /* offset of device */
- bus_addr_t ha_dmaoff; /* offset of DMA regs */
- int ha_irq; /* interrupt line */
+ bus_addr_t ha_base; /* address of hpc device */
+ bus_addr_t ha_devoff; /* offset of device */
+ bus_addr_t ha_dmaoff; /* offset of DMA regs */
+ int ha_irq; /* interrupt line */
- bus_space_tag_t ha_st; /* HPC space tag */
- bus_space_handle_t ha_sh; /* HPC space handle XXX */
- bus_dma_tag_t ha_dmat; /* HPC DMA tag */
+ bus_space_tag_t ha_st; /* HPC space tag */
+ bus_space_handle_t ha_sh; /* HPC space handle XXX */
+ bus_dma_tag_t ha_dmat; /* HPC DMA tag */
struct hpc_values *hpc_regs; /* HPC register definitions */
- int ha_giofast; /* GIO bus speed */
+ int ha_giofast; /* GIO bus speed */
- uint8_t hpc_eeprom[256];/* HPC eeprom contents */
+ uint8_t hpc_eeprom[256];/* HPC eeprom contents */
};
-void *hpc_intr_establish(int, int, int (*)(void *),
- void *, const char *);
+void *hpc_intr_establish(int, int, int (*)(void *), void *, const char *);
int hpc_is_intr_pending(int);
void hpc_intr_disable(void *);
void hpc_intr_enable(void *);