aboutsummaryrefslogtreecommitdiff
path: root/sys/powerpc/powermac
diff options
context:
space:
mode:
authorPeter Grehan <grehan@FreeBSD.org>2004-02-29 06:01:16 +0000
committerPeter Grehan <grehan@FreeBSD.org>2004-02-29 06:01:16 +0000
commit80bd99be3338e3e60e1d4d54e9edb8a51d58dead (patch)
treecdefbed608bcdc2218217e4b92fa23f489dc016f /sys/powerpc/powermac
parent77990834a38c9f244c043797c9c7378da929c08b (diff)
downloadsrc-80bd99be3338e3e60e1d4d54e9edb8a51d58dead.tar.gz
src-80bd99be3338e3e60e1d4d54e9edb8a51d58dead.zip
Bring to working PIO state.
- use correct rid when allocating PCI mem resource - ATA taskfile registers are indeed spaced 0x10 apart just like the Macio ATA cell. Adjust offsets in ATA channel struct. Tested by: Suleiman Souhlal <ssouhlal@vt.edu>
Notes
Notes: svn path=/head/; revision=126394
Diffstat (limited to 'sys/powerpc/powermac')
-rw-r--r--sys/powerpc/powermac/ata_kauai.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/sys/powerpc/powermac/ata_kauai.c b/sys/powerpc/powermac/ata_kauai.c
index 3a6dfe4eb273..655ac6c99663 100644
--- a/sys/powerpc/powermac/ata_kauai.c
+++ b/sys/powerpc/powermac/ata_kauai.c
@@ -54,7 +54,16 @@ __FBSDID("$FreeBSD$");
#include <dev/pci/pcireg.h>
#define ATA_KAUAI_REGOFFSET 0x2000
-#define ATA_KAUAI_ALTOFFSET (ATA_KAUAI_REGOFFSET + 0x16)
+
+/*
+ * Offset to alt-control register from base
+ */
+#define ATA_KAUAI_ALTOFFSET (ATA_KAUAI_REGOFFSET + 0x160)
+
+/*
+ * Define the gap between registers
+ */
+#define ATA_KAUAI_REGGAP 16
/*
* Define the kauai pci bus attachment.
@@ -161,7 +170,7 @@ ata_kauai_probe(device_t dev)
ch = device_get_softc(dev);
- rid = 0;
+ rid = PCIR_BARS;
mem = bus_alloc_resource(dev, SYS_RES_MEMORY, &rid, 0, ~1, 1,
RF_ACTIVE);
if (mem == NULL) {
@@ -174,7 +183,7 @@ ata_kauai_probe(device_t dev)
*/
for (i = ATA_DATA; i <= ATA_STATUS; i++) {
ch->r_io[i].res = mem;
- ch->r_io[i].offset = i + ATA_KAUAI_REGOFFSET;
+ ch->r_io[i].offset = i*ATA_KAUAI_REGGAP + ATA_KAUAI_REGOFFSET;
}
ch->r_io[ATA_ALTSTAT].res = mem;
ch->r_io[ATA_ALTSTAT].offset = ATA_KAUAI_ALTOFFSET;