summaryrefslogtreecommitdiff
path: root/sys/arch/hppa
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2006-12-18 18:57:27 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2006-12-18 18:57:27 +0000
commit2bd43f170ebf0d2fbcb211e68b251c1b9306de0f (patch)
tree9b0c383ce6411dcceb06035deaddd4bc872c150d /sys/arch/hppa
parentafbcf4b579c020e7a5a38e3eb274436d588a498b (diff)
Change sti attachment to pass an array of base addresses for the sti regions,
instead of using the rom mapping for region #0 and the device mapping for region #1. This will allow sti devices on which regions may be relative to different origins to attach (to be used very soon). ok mickey@
Diffstat (limited to 'sys/arch/hppa')
-rw-r--r--sys/arch/hppa/dev/sti_sgc.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/sys/arch/hppa/dev/sti_sgc.c b/sys/arch/hppa/dev/sti_sgc.c
index ed70920aa16..4729b8e9e1f 100644
--- a/sys/arch/hppa/dev/sti_sgc.c
+++ b/sys/arch/hppa/dev/sti_sgc.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sti_sgc.c,v 1.33 2006/11/30 11:25:11 mickey Exp $ */
+/* $OpenBSD: sti_sgc.c,v 1.34 2006/12/18 18:57:26 miod Exp $ */
/*
* Copyright (c) 2000-2003 Michael Shalayeff
@@ -63,8 +63,9 @@ char sti_sgc_opt[] = { 0x17, 0x20, 0x30, 0x40, 0x70, 0xc0, 0xd0 };
extern struct cfdriver sti_cd;
-int sti_sgc_probe(struct device *, void *, void *);
-void sti_sgc_attach(struct device *, struct device *, void *);
+int sti_sgc_probe(struct device *, void *, void *);
+void sti_sgc_attach(struct device *, struct device *, void *);
+paddr_t sti_sgc_getrom(int, struct confargs *);
struct cfattach sti_gedoens_ca = {
sizeof(struct sti_softc), sti_sgc_probe, sti_sgc_attach
@@ -201,9 +202,9 @@ sti_sgc_attach(parent, self, aux)
paddr_t rom;
u_int32_t romlen;
int rv;
+ int i;
sc->memt = sc->iot = ca->ca_iot;
- sc->base = ca->ca_hpa;
/* we stashed rom addr/len into the last slot during probe */
rom = ca->ca_addrs[ca->ca_naddrs - 1].addr;
@@ -217,6 +218,10 @@ sti_sgc_attach(parent, self, aux)
}
}
+ sc->bases[0] = sc->romh;
+ for (i = 1; i < STI_REGION_MAX; i++)
+ sc->bases[i] = ca->ca_hpa;
+
#ifdef HP7300LC_CPU
/* PCXL2: enable accel i/o for this space */
if (cpu_type == hpcxl2)