summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorLeo Dagum <dagum@engr.sgi.com>2000-04-10 21:44:30 +0000
committerLeo Dagum <dagum@engr.sgi.com>2000-04-10 21:44:30 +0000
commit652fa41942610a1c61e3a1a41e4e78bb16adbe5c (patch)
treea1f062176c8dd306a4043f0879babc817efc16e3 /arch
parent23124391de1a029f1fc110ad207dc21dfb7b68c4 (diff)
Fixed bridge_init() so it sets registers for the
calling process's bridge (not necessarily node 0), and removed call to set_cp0_status() (now in per_cpu_init()). b_wid_int_upper still points to node 0, I don't want to change this till I have a multinode system and kernel to test on.
Diffstat (limited to 'arch')
-rw-r--r--arch/mips64/sgi-ip27/ip27-irq.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/mips64/sgi-ip27/ip27-irq.c b/arch/mips64/sgi-ip27/ip27-irq.c
index db6575395..31d53c897 100644
--- a/arch/mips64/sgi-ip27/ip27-irq.c
+++ b/arch/mips64/sgi-ip27/ip27-irq.c
@@ -276,7 +276,11 @@ static unsigned int bridge_shutdown(unsigned int irq)
static void bridge_init(void)
{
- bridge_t *bridge = (bridge_t *) 0x9200000008000000;
+ bridge_t *bridge;
+ nasid_t nasid;
+
+ nasid = get_nasid();
+ bridge = (bridge_t *) NODE_SWIN_BASE(nasid, 8); /* bridge is widget 8 on origin */
/* Hmm... IRIX sets additional bits in the address which are
documented as reserved in the bridge docs ... */
@@ -292,7 +296,6 @@ static void bridge_init(void)
bridge->b_int_enable = 0;
bridge->b_widget.w_tflush; /* Flush */
- set_cp0_status(SRB_DEV0 | SRB_DEV1, SRB_DEV0 | SRB_DEV1);
}
void irq_debug(void)