summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/arch/sgi/include/mnode.h79
-rw-r--r--sys/arch/sgi/sgi/ip27_machdep.c60
-rw-r--r--sys/arch/sgi/sgi/sginode.c35
-rw-r--r--sys/arch/sgi/xbow/hub.h76
-rw-r--r--sys/arch/sgi/xbow/xbow.c4
-rw-r--r--sys/arch/sgi/xbow/xbridge.c6
6 files changed, 118 insertions, 142 deletions
diff --git a/sys/arch/sgi/include/mnode.h b/sys/arch/sgi/include/mnode.h
index 5b832aa19e5..ec7f09e5e67 100644
--- a/sys/arch/sgi/include/mnode.h
+++ b/sys/arch/sgi/include/mnode.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: mnode.h,v 1.5 2009/05/28 18:02:41 miod Exp $ */
+/* $OpenBSD: mnode.h,v 1.6 2009/06/13 16:28:09 miod Exp $ */
/*
* Copyright (c) 2004 Opsycon AB (www.opsycon.se / www.opsycon.com)
@@ -37,24 +37,23 @@
/*
* IP27 uses XKSSEG to access the 1TB memory area.
*/
-#define IP27_CAC_BASE 0xa800000000000000 /* Cached space */
+#define IP27_CAC_BASE PHYS_TO_XKPHYS(0, CCA_CACHED)
/*
* IP27 uses XKPHYS space for accessing special objects.
* Note that IP27_UNCAC_BASE is a linear space without specials.
*/
-#define IP27_HSPEC_BASE 0x9000000000000000 /* Hub Special space */
-#define IP27_IO_BASE 0x9200000000000000 /* I/O space */
-#define IP27_MSPEC_BASE 0x9400000000000000 /* Memory Special space */
-#define IP27_UNCAC_BASE 0x9600000000000000 /* Uncached space */
+#define IP27_HSPEC_BASE PHYS_TO_XKPHYS_UNCACHED(0, SP_HUB)
+#define IP27_IO_BASE PHYS_TO_XKPHYS_UNCACHED(0, SP_IO)
+#define IP27_MSPEC_BASE PHYS_TO_XKPHYS_UNCACHED(0, SP_SPECIAL)
+#define IP27_UNCAC_BASE PHYS_TO_XKPHYS_UNCACHED(0, SP_NC)
/*
* Macros used to find the base of each nodes address space.
- * In M mode each node space is 4GB.
+ * In M mode each node space is 4GB; in N mode each node space is 2GB only.
*/
-#define IP27_NODE_BASE(space, node) (space + ((long)(node) << 32))
-#define OP27_NODE_SIZE 0x00000000100000000ULL
-#define IP27_NODE_SIZE_MASK 0x000000000ffffffffULL
+#define IP27_NODE_BASE(base, node) ((base) + ((uint64_t)(node) << kl_n_shift))
+#define IP27_NODE_SIZE_MASK ((1UL << kl_n_shift) - 1)
#define IP27_NODE_CAC_BASE(node) (IP27_NODE_BASE(IP27_CAC_BASE, node))
#define IP27_NODE_HSPEC_BASE(node) (IP27_NODE_BASE(IP27_HSPEC_BASE, node))
@@ -360,67 +359,12 @@ typedef struct kl_nmi {
uint64_t master; /* nonzero if master node */
} kl_nmi_t;
-
-/* H U B */
-/* ===== */
-/*
- * HUB access macros.
- */
-#define BWIN_SIZE_BITS 29
-#define BWIN_INDEX_BITS 3
-#define BWIN_SIZE (1ULL << BWIN_SIZE_BITS)
-#define BWIN_SIZEMASK (BWIN_SIZE - 1)
-#define BWIN_WIDGET_MASK 0x7
-
-#define LWIN_SIZE_BITS 24
-#define LWIN_SIZE (1ULL << LWIN_SIZE_BITS)
-#define LWIN_SIZEMASK (LWIN_SIZE - 1)
-#define LWIN_WIDGET_MASK 0xF
-
-#define RAW_NODE_LWIN_BASE(nasid, widget) \
- (IP27_NODE_IO_BASE(nasid) + ((uint64_t)(widget) << LWIN_SIZE_BITS))
-
-#define NODE_BWIN_BASE0(nasid) (IP27_NODE_IO_BASE(nasid) + BWIN_SIZE)
-#define NODE_BWIN_BASE(nasid, bigwin) (NODE_BWIN_BASE0(nasid) + \
- ((uint64_t)(bigwin) << BWIN_SIZE_BITS))
-
-#define NODE_LWIN_BASE(nasid, widget) \
- ((widget == 0) ? NODE_BWIN_BASE((nasid), 6) \
- : RAW_NODE_LWIN_BASE(nasid, widget))
-
-
-#define IP27_LHUB_ADDR(_x) \
- ((volatile uint64_t *)(NODE_LWIN_BASE(0, 1) + (_x)))
-#define IP27_RHUB_ADDR(_n, _x) \
- ((volatile uint64_t *)(NODE_LWIN_BASE(_n, 1) + 0x800000 + (_x)))
-#define IP27_RHUB_PI_ADDR(_n, _sn, _x) \
- ((volatile uint64_t *)(NODE_LWIN_BASE(_n, 1) + 0x800000 + (_x)))
-
-#define IP27_LHUB_L(r) *(IP27_LHUB_ADDR(r))
-#define IP27_LHUB_S(r, d) *(IP27_LHUB_ADDR(r)) = (d)
-#define IP27_RHUB_L(n, r) *(IP27_RHUB_ADDR((n), (r))
-#define IP27_RHUB_S(n, r, d) *(IP27_RHUB_ADDR((n), (r)) = (d)
-#define IP27_RHUB_PI_L(n, s, r) *(IP27_RHUB_PI_ADDR((n), (s), (r)))
-#define IP27_RHUB_PI_S(n, s, r, d) *(IP27_RHUB_PI_ADDR((n), (s), (r))) = (d)
-
-
-/* HUB I/O registers */
-#define PI_REGION_PRESENT 0x000018
-#define PI_CALIAS_SIZE 0x000028
-#define PI_CALIAS_SIZE_0 0
-
-
-/* HUB network interface */
-#define NI_STATUS_REV_ID 0x600000
-
-#define NSRI_MORENODES_MASK (1ULL << 18) /* Mnodes */
-
/*
* Functions.
*/
vaddr_t kl_get_console_base(void);
-void kl_init(void);
+void kl_init(uint64_t);
void kl_scan_config(int);
void kl_scan_done(void);
int kl_scan_node(int, uint, int (*)(lboard_t *, void *), void *);
@@ -428,6 +372,7 @@ int kl_scan_node(int, uint, int (*)(lboard_t *, void *), void *);
int kl_scan_board(lboard_t *, uint, int (*)(klinfo_t *, void *), void *);
#define KLSTRUCT_ANY ((uint)~0)
-int kl_n_mode;
+extern int kl_n_mode;
+extern u_int kl_n_shift;
#endif /* __MACHINE_MNODE_H__ */
diff --git a/sys/arch/sgi/sgi/ip27_machdep.c b/sys/arch/sgi/sgi/ip27_machdep.c
index ac8529d59ab..e41482ae7fe 100644
--- a/sys/arch/sgi/sgi/ip27_machdep.c
+++ b/sys/arch/sgi/sgi/ip27_machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ip27_machdep.c,v 1.11 2009/06/10 18:04:25 miod Exp $ */
+/* $OpenBSD: ip27_machdep.c,v 1.12 2009/06/13 16:28:11 miod Exp $ */
/*
* Copyright (c) 2008, 2009 Miodrag Vallat.
@@ -82,7 +82,7 @@ ip27_setup()
md_halt = ip27_halt;
- kl_init();
+ kl_init(ip35 ? HUBNI_IP35 : HUBNI_IP27);
if (kl_n_mode != 0)
xbow_long_shift = 28;
@@ -124,12 +124,12 @@ ip27_setup()
* Disable all hardware interrupts.
*/
- IP27_LHUB_S(HUB_CPU0_IMR0, 0);
- IP27_LHUB_S(HUB_CPU0_IMR1, 0);
- IP27_LHUB_S(HUB_CPU1_IMR0, 0);
- IP27_LHUB_S(HUB_CPU1_IMR1, 0);
- (void)IP27_LHUB_L(HUB_IR0);
- (void)IP27_LHUB_L(HUB_IR1);
+ IP27_LHUB_S(HUBPI_CPU0_IMR0, 0);
+ IP27_LHUB_S(HUBPI_CPU0_IMR1, 0);
+ IP27_LHUB_S(HUBPI_CPU1_IMR0, 0);
+ IP27_LHUB_S(HUBPI_CPU1_IMR1, 0);
+ (void)IP27_LHUB_L(HUBPI_IR0);
+ (void)IP27_LHUB_L(HUBPI_IR1);
/* XXX do the other two cpus on IP35 */
/*
@@ -144,8 +144,8 @@ ip27_setup()
/*
* Set up Node 0's HUB.
*/
- IP27_LHUB_S(PI_REGION_PRESENT, 1);
- IP27_LHUB_S(PI_CALIAS_SIZE, PI_CALIAS_SIZE_0);
+ IP27_LHUB_S(HUBPI_REGION_PRESENT, 0xffffffffffffffff);
+ IP27_LHUB_S(HUBPI_CALIAS_SIZE, PI_CALIAS_SIZE_0);
}
/*
@@ -223,13 +223,13 @@ ip27_halt(int howto)
}
if (ip35) {
- IP27_LHUB_S(HUB_NI_IP35 + HUB_NI_RESET_ENABLE, RESET_ENABLE);
- IP27_LHUB_S(HUB_NI_IP35 + HUB_NI_RESET,
- RESET_LOCAL | RESET_ACTION);
+ IP27_LHUB_S(HUBNI_IP35 + HUBNI_RESET_ENABLE, NI_RESET_ENABLE);
+ IP27_LHUB_S(HUBNI_IP35 + HUBNI_RESET,
+ NI_RESET_LOCAL | NI_RESET_ACTION);
} else {
- IP27_LHUB_S(HUB_NI_IP27 + HUB_NI_RESET_ENABLE, RESET_ENABLE);
- IP27_LHUB_S(HUB_NI_IP27 + HUB_NI_RESET,
- RESET_LOCAL | RESET_ACTION);
+ IP27_LHUB_S(HUBNI_IP27 + HUBNI_RESET_ENABLE, NI_RESET_ENABLE);
+ IP27_LHUB_S(HUBNI_IP27 + HUBNI_RESET,
+ NI_RESET_LOCAL | NI_RESET_ACTION);
}
}
@@ -303,9 +303,9 @@ ip27_hub_intr_establish(int (*func)(void *), void *arg, int intrbit,
ip27_hub_intr_makemasks();
/* XXX this assumes we run on cpu0 */
- IP27_LHUB_S(HUB_CPU0_IMR0,
- IP27_LHUB_L(HUB_CPU0_IMR0) | (1UL << intrbit));
- (void)IP27_LHUB_L(HUB_IR0);
+ IP27_LHUB_S(HUBPI_CPU0_IMR0,
+ IP27_LHUB_L(HUBPI_CPU0_IMR0) | (1UL << intrbit));
+ (void)IP27_LHUB_L(HUBPI_IR0);
return 0;
}
@@ -329,9 +329,9 @@ ip27_hub_intr_disestablish(int intrbit)
}
/* XXX this assumes we run on cpu0 */
- IP27_LHUB_S(HUB_CPU0_IMR0,
- IP27_LHUB_L(HUB_CPU0_IMR0) & ~(1UL << intrbit));
- (void)IP27_LHUB_L(HUB_IR0);
+ IP27_LHUB_S(HUBPI_CPU0_IMR0,
+ IP27_LHUB_L(HUBPI_CPU0_IMR0) & ~(1UL << intrbit));
+ (void)IP27_LHUB_L(HUBPI_IR0);
intrhand[intrbit] = NULL;
@@ -417,8 +417,8 @@ ip27_hub_intr_handler(intrmask_t hwpend, struct trap_frame *frame)
int rc;
/* XXX this assumes we run on cpu0 */
- isr = IP27_LHUB_L(HUB_IR0);
- imr = IP27_LHUB_L(HUB_CPU0_IMR0);
+ isr = IP27_LHUB_L(HUBPI_IR0);
+ imr = IP27_LHUB_L(HUBPI_CPU0_IMR0);
isr &= imr;
if (isr == 0)
@@ -427,8 +427,8 @@ ip27_hub_intr_handler(intrmask_t hwpend, struct trap_frame *frame)
/*
* Mask all pending interrupts.
*/
- IP27_LHUB_S(HUB_CPU0_IMR0, imr & ~isr);
- (void)IP27_LHUB_L(HUB_IR0);
+ IP27_LHUB_S(HUBPI_CPU0_IMR0, imr & ~isr);
+ (void)IP27_LHUB_L(HUBPI_IR0);
/*
* If interrupts are spl-masked, mark them as pending only.
@@ -474,8 +474,8 @@ ip27_hub_intr_handler(intrmask_t hwpend, struct trap_frame *frame)
/*
* Reenable interrupts which have been serviced.
*/
- IP27_LHUB_S(HUB_CPU0_IMR0, imr);
- (void)IP27_LHUB_L(HUB_IR0);
+ IP27_LHUB_S(HUBPI_CPU0_IMR0, imr);
+ (void)IP27_LHUB_L(HUBPI_IR0);
__asm__ (" .set noreorder\n");
cpl = icpl;
@@ -488,8 +488,8 @@ ip27_hub_intr_handler(intrmask_t hwpend, struct trap_frame *frame)
void
hw_setintrmask(intrmask_t m)
{
- IP27_LHUB_S(HUB_CPU0_IMR0, ip27_hub_intrmask & ~((uint64_t)m));
- (void)IP27_LHUB_L(HUB_IR0);
+ IP27_LHUB_S(HUBPI_CPU0_IMR0, ip27_hub_intrmask & ~((uint64_t)m));
+ (void)IP27_LHUB_L(HUBPI_IR0);
}
void
diff --git a/sys/arch/sgi/sgi/sginode.c b/sys/arch/sgi/sgi/sginode.c
index 3f0b36c5c0b..99737457027 100644
--- a/sys/arch/sgi/sgi/sginode.c
+++ b/sys/arch/sgi/sgi/sginode.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sginode.c,v 1.7 2009/05/27 19:00:19 miod Exp $ */
+/* $OpenBSD: sginode.c,v 1.8 2009/06/13 16:28:11 miod Exp $ */
/*
* Copyright (c) 2008, 2009 Miodrag Vallat.
*
@@ -52,11 +52,12 @@
#include <mips64/archtype.h>
#include <machine/mnode.h>
+#include <sgi/xbow/hub.h>
int nextcpu = 0;
-void kl_add_memory_ip27(int16_t *, unsigned int);
-void kl_add_memory_ip35(int16_t *, unsigned int);
+void kl_add_memory_ip27(int16_t, int16_t *, unsigned int);
+void kl_add_memory_ip35(int16_t, int16_t *, unsigned int);
int kl_first_pass_board(lboard_t *, void *);
int kl_first_pass_comp(klinfo_t *, void *);
@@ -67,8 +68,11 @@ int kl_first_pass_comp(klinfo_t *, void *);
#define DB_PRF(x)
#endif
+int kl_n_mode = 0;
+u_int kl_n_shift = 32;
+
void
-kl_init()
+kl_init(uint64_t nibase)
{
kl_config_hdr_t *cfghdr;
u_int64_t val;
@@ -82,13 +86,14 @@ kl_init()
DB_PRF(("console %p baud %d\n", cfghdr->cons_info.uart_base,
cfghdr->cons_info.baud));
- val = IP27_LHUB_L(NI_STATUS_REV_ID);
- kl_n_mode = (val & NSRI_MORENODES_MASK) != 0;
+ val = IP27_LHUB_L(nibase | HUBNI_STATUS);
+ kl_n_mode = (val & NI_MORENODES) != 0;
+ kl_n_shift = 32 - kl_n_mode;
bios_printf("Machine is in %c mode.\n", kl_n_mode + 'M');
- val = IP27_LHUB_L(PI_REGION_PRESENT);
+ val = IP27_LHUB_L(HUBPI_REGION_PRESENT);
DB_PRF(("Region present %p.\n", val));
- val = IP27_LHUB_L(PI_CALIAS_SIZE);
+ val = IP27_LHUB_L(HUBPI_CALIAS_SIZE);
DB_PRF(("Calias size %p.\n", val));
}
@@ -193,10 +198,10 @@ kl_first_pass_comp(klinfo_t *comp, void *arg)
#endif
if (sys_config.system_type == SGI_O200)
- kl_add_memory_ip27(memcomp_m->membnk_bnksz,
+ kl_add_memory_ip27(comp->nasid, memcomp_m->membnk_bnksz,
kl_n_mode ? MD_MEM_BANKS_N : MD_MEM_BANKS_M);
else
- kl_add_memory_ip35(memcomp_m->membnk_bnksz,
+ kl_add_memory_ip35(comp->nasid, memcomp_m->membnk_bnksz,
kl_n_mode ? MD_MEM_BANKS_N : MD_MEM_BANKS_M);
break;
@@ -304,9 +309,8 @@ kl_get_console_base()
*/
void
-kl_add_memory_ip27(int16_t *sizes, unsigned int cnt)
+kl_add_memory_ip27(int16_t nasid, int16_t *sizes, unsigned int cnt)
{
- int16_t nasid = 0; /* XXX */
paddr_t basepa;
uint32_t fp, lp, np;
unsigned int seg, descno, nmeg;
@@ -318,7 +322,7 @@ kl_add_memory_ip27(int16_t *sizes, unsigned int cnt)
* DIMMs of 128MB or smaller map everything in the first bank,
* though.
*/
- basepa = nasid << (32 - kl_n_mode);
+ basepa = (paddr_t)nasid << kl_n_shift;
while (cnt-- != 0) {
nmeg = *sizes++;
for (seg = 0; seg < 4; basepa += (1 << 27), seg++) {
@@ -404,9 +408,8 @@ kl_add_memory_ip27(int16_t *sizes, unsigned int cnt)
}
void
-kl_add_memory_ip35(int16_t *sizes, unsigned int cnt)
+kl_add_memory_ip35(int16_t nasid, int16_t *sizes, unsigned int cnt)
{
- int16_t nasid = 0; /* XXX */
paddr_t basepa;
uint32_t fp, lp, np;
unsigned int descno;
@@ -417,7 +420,7 @@ kl_add_memory_ip35(int16_t *sizes, unsigned int cnt)
* largest is 1GB. Memory is reported at 1GB intervals.
*/
- basepa = nasid << (32 - kl_n_mode);
+ basepa = (paddr_t)nasid << kl_n_shift;
while (cnt-- != 0) {
np = *sizes++;
if (np != 0) {
diff --git a/sys/arch/sgi/xbow/hub.h b/sys/arch/sgi/xbow/hub.h
index 6fdde4d341c..43b05e70432 100644
--- a/sys/arch/sgi/xbow/hub.h
+++ b/sys/arch/sgi/xbow/hub.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: hub.h,v 1.2 2009/05/28 18:02:43 miod Exp $ */
+/* $OpenBSD: hub.h,v 1.3 2009/06/13 16:28:11 miod Exp $ */
/*
* Copyright (c) 2009 Miodrag Vallat.
@@ -17,6 +17,29 @@
*/
/*
+ * HUB access macros.
+ */
+#define LWIN_SIZE_BITS 24
+#define LWIN_SIZE (1ULL << LWIN_SIZE_BITS)
+
+#define NODE_LWIN_BASE(nasid, widget) \
+ (IP27_NODE_IO_BASE(nasid) + ((uint64_t)(widget) << LWIN_SIZE_BITS))
+
+#define IP27_LHUB_ADDR(_x) \
+ ((volatile uint64_t *)(NODE_LWIN_BASE(0, 1) + (_x)))
+#define IP27_RHUB_ADDR(_n, _x) \
+ ((volatile uint64_t *)(NODE_LWIN_BASE(_n, 1) + 0x800000 + (_x)))
+#define IP27_RHUB_PI_ADDR(_n, _sn, _x) \
+ ((volatile uint64_t *)(NODE_LWIN_BASE(_n, 1) + 0x800000 + (_x)))
+
+#define IP27_LHUB_L(r) *(IP27_LHUB_ADDR(r))
+#define IP27_LHUB_S(r, d) *(IP27_LHUB_ADDR(r)) = (d)
+#define IP27_RHUB_L(n, r) *(IP27_RHUB_ADDR((n), (r))
+#define IP27_RHUB_S(n, r, d) *(IP27_RHUB_ADDR((n), (r)) = (d)
+#define IP27_RHUB_PI_L(n, s, r) *(IP27_RHUB_PI_ADDR((n), (s), (r)))
+#define IP27_RHUB_PI_S(n, s, r, d) *(IP27_RHUB_PI_ADDR((n), (s), (r))) = (d)
+
+/*
* IP27 specific registers
*/
@@ -28,35 +51,40 @@
* HUB PI
*/
-#define HUB_CPU_NUMBER 0x00000020
+#define HUBPI_REGION_PRESENT 0x00000018
+#define HUBPI_CPU_NUMBER 0x00000020
+#define HUBPI_CALIAS_SIZE 0x00000028
+#define PI_CALIAS_SIZE_0 0
+
-#define HUB_CPU0_PRESENT 0x00000040
-#define HUB_CPU1_PRESENT 0x00000048
-#define HUB_CPU0_ENABLED 0x00000050
-#define HUB_CPU1_ENABLED 0x00000058
+#define HUBPI_CPU0_PRESENT 0x00000040
+#define HUBPI_CPU1_PRESENT 0x00000048
+#define HUBPI_CPU0_ENABLED 0x00000050
+#define HUBPI_CPU1_ENABLED 0x00000058
-#define HUB_IR_CHANGE 0x00000090
-#define HUB_IR_SET 0x100
-#define HUB_IR_CLR 0x000
-#define HUB_IR0 0x00000098
-#define HUB_IR1 0x000000a0
-#define HUB_CPU0_IMR0 0x000000a8
-#define HUB_CPU0_IMR1 0x000000b0
-#define HUB_CPU1_IMR0 0x000000b8
-#define HUB_CPU1_IMR1 0x000000c0
+#define HUBPI_IR_CHANGE 0x00000090
+#define PI_IR_SET 0x100
+#define PI_IR_CLR 0x000
+#define HUBPI_IR0 0x00000098
+#define HUBPI_IR1 0x000000a0
+#define HUBPI_CPU0_IMR0 0x000000a8
+#define HUBPI_CPU0_IMR1 0x000000b0
+#define HUBPI_CPU1_IMR0 0x000000b8
+#define HUBPI_CPU1_IMR1 0x000000c0
/*
* HUB NI
*/
-#define HUB_NI_IP27 0x00600000
-#define HUB_NI_IP35 0x00680000
+#define HUBNI_IP27 0x00600000
+#define HUBNI_IP35 0x00680000
-#define HUB_NI_STATUS 0x00000000
-#define HUB_NI_RESET 0x00000008
-#define RESET_ACTION 0x01
-#define RESET_PORT 0x02
-#define RESET_LOCAL 0x04
-#define HUB_NI_RESET_ENABLE 0x00000010
-#define RESET_ENABLE 0x01
+#define HUBNI_STATUS 0x00000000
+#define NI_MORENODES 0x0000000000040000
+#define HUBNI_RESET 0x00000008
+#define NI_RESET_ACTION 0x01
+#define NI_RESET_PORT 0x02
+#define NI_RESET_LOCAL 0x04
+#define HUBNI_RESET_ENABLE 0x00000010
+#define NI_RESET_ENABLE 0x01
diff --git a/sys/arch/sgi/xbow/xbow.c b/sys/arch/sgi/xbow/xbow.c
index 35119ec9f16..5fbeea5c07e 100644
--- a/sys/arch/sgi/xbow/xbow.c
+++ b/sys/arch/sgi/xbow/xbow.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: xbow.c,v 1.7 2009/05/27 19:06:20 miod Exp $ */
+/* $OpenBSD: xbow.c,v 1.8 2009/06/13 16:28:11 miod Exp $ */
/*
* Copyright (c) 2008, 2009 Miodrag Vallat.
@@ -320,7 +320,7 @@ xbowattach(struct device *parent, struct device *self, void *aux)
* Default value for the interrupt register.
*/
xbow_intr_widget_register = (1UL << 47) /* XIO I/O space */ |
- ((paddr_t)IP27_RHUB_ADDR(nasid, HUB_IR_CHANGE) -
+ ((paddr_t)IP27_RHUB_ADDR(nasid, HUBPI_IR_CHANGE) -
IP27_NODE_IO_BASE(0)) /* HUB register offset */;
klcfg.cfg = &cfg;
diff --git a/sys/arch/sgi/xbow/xbridge.c b/sys/arch/sgi/xbow/xbridge.c
index f5190ff29cb..f26c3470276 100644
--- a/sys/arch/sgi/xbow/xbridge.c
+++ b/sys/arch/sgi/xbow/xbridge.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: xbridge.c,v 1.24 2009/05/28 19:20:06 miod Exp $ */
+/* $OpenBSD: xbridge.c,v 1.25 2009/06/13 16:28:11 miod Exp $ */
/*
* Copyright (c) 2008, 2009 Miodrag Vallat.
@@ -830,8 +830,8 @@ xbridge_intr_handler(void *v)
if (sys_config.system_type == SGI_OCTANE) {
/* XXX what to do there? */
} else {
- IP27_RHUB_PI_S(nasid, 0, HUB_IR_CHANGE,
- HUB_IR_SET | xi->xi_intrsrc);
+ IP27_RHUB_PI_S(nasid, 0, HUBPI_IR_CHANGE,
+ PI_IR_SET | xi->xi_intrsrc);
}
}
}