diff options
author | Michael Shalayeff <mickey@cvs.openbsd.org> | 2003-05-19 09:32:17 +0000 |
---|---|---|
committer | Michael Shalayeff <mickey@cvs.openbsd.org> | 2003-05-19 09:32:17 +0000 |
commit | 1d4e52509554934d31693d3afbfdd98ebdb1780d (patch) | |
tree | 683158fa1d1e38c8f93a624b285c40e395f12e03 /sys/arch | |
parent | ef60b34be07a049394fcaea969e1a4d8b3a7c7db (diff) |
dig internal EG prom address
Diffstat (limited to 'sys/arch')
-rw-r--r-- | sys/arch/hppa/dev/sti_sgc.c | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/sys/arch/hppa/dev/sti_sgc.c b/sys/arch/hppa/dev/sti_sgc.c index 56878070fcf..3cb738a0be4 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.11 2003/05/07 18:26:09 mickey Exp $ */ +/* $OpenBSD: sti_sgc.c,v 1.12 2003/05/19 09:32:16 mickey Exp $ */ /* * Copyright (c) 2000-2003 Michael Shalayeff @@ -59,6 +59,9 @@ #define STI_ROMSIZE 0x30000 #define STI_ID_FDDI 0x280b31af /* Medusa FDDI ROM id */ +#define STI_INEG_REV 0x60 +#define STI_INEG_PROM 0xf0011000 + int sti_sgc_probe(struct device *, void *, void *); void sti_sgc_attach(struct device *, struct device *, void *); @@ -104,9 +107,13 @@ sti_sgc_probe(parent, match, aux) * On some machines it may not be part of the HPA space. */ if (PAGE0->pd_resv2[1] < HPPA_IOBEGIN) { - rom = ca->ca_hpa; - romh = ioh; - romunmapped++; + if (ca->ca_type.iodc_revision == STI_INEG_REV) + rom = STI_INEG_PROM; + else { + rom = ca->ca_hpa; + romh = ioh; + romunmapped++; + } } else rom = PAGE0->pd_resv2[1]; @@ -182,7 +189,10 @@ sti_sgc_attach(parent, self, aux) int rv; if (PAGE0->pd_resv2[1] < HPPA_IOBEGIN) - addr = ca->ca_hpa; + if (ca->ca_type.iodc_revision == STI_INEG_REV) + addr = STI_INEG_PROM; + else + addr = ca->ca_hpa; else addr = PAGE0->pd_resv2[1]; |