diff options
author | Peter Grehan <grehan@FreeBSD.org> | 2004-02-29 06:01:16 +0000 |
---|---|---|
committer | Peter Grehan <grehan@FreeBSD.org> | 2004-02-29 06:01:16 +0000 |
commit | 80bd99be3338e3e60e1d4d54e9edb8a51d58dead (patch) | |
tree | cdefbed608bcdc2218217e4b92fa23f489dc016f /sys/powerpc/powermac | |
parent | 77990834a38c9f244c043797c9c7378da929c08b (diff) | |
download | src-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.c | 15 |
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; |