From 22b3d270f167af3362bd3f54d17a35387d21611f Mon Sep 17 00:00:00 2001 From: grehan Date: Sun, 29 Feb 2004 06:01:16 +0000 Subject: 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 --- sys/powerpc/powermac/ata_kauai.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'sys/powerpc/powermac') diff --git a/sys/powerpc/powermac/ata_kauai.c b/sys/powerpc/powermac/ata_kauai.c index 3a6dfe4..655ac6c 100644 --- a/sys/powerpc/powermac/ata_kauai.c +++ b/sys/powerpc/powermac/ata_kauai.c @@ -54,7 +54,16 @@ __FBSDID("$FreeBSD$"); #include #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; -- cgit v1.1