summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornwhitehorn <nwhitehorn@FreeBSD.org>2008-10-27 00:09:14 +0000
committernwhitehorn <nwhitehorn@FreeBSD.org>2008-10-27 00:09:14 +0000
commitf81b969763ed0fb47b7286275a04a203cf97c615 (patch)
treed343f81008575a2688dd043778e15dabe92ff3d6
parent57432d8a84d76480c6a66af412a5c77f87818971 (diff)
downloadFreeBSD-src-f81b969763ed0fb47b7286275a04a203cf97c615.zip
FreeBSD-src-f81b969763ed0fb47b7286275a04a203cf97c615.tar.gz
Bring Kauai ATA driver in line with Macio ATA by reading the PIO config reg
to set the initial PIO mode instead of assuming PIO4. There are still a few nagging issues: - There are some problems with 64 K DMA transfers waiting on lower level changes. - ATAPI DMA is broken on Marcel's Mac Mini because we need an ATA SELECT hook propagated up to individual drivers for hardware without timing registers for each ATA channel.
-rw-r--r--sys/powerpc/powermac/ata_kauai.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/sys/powerpc/powermac/ata_kauai.c b/sys/powerpc/powermac/ata_kauai.c
index 53fc676..415d0fb 100644
--- a/sys/powerpc/powermac/ata_kauai.c
+++ b/sys/powerpc/powermac/ata_kauai.c
@@ -292,16 +292,12 @@ ata_kauai_attach(device_t dev)
#endif
/* Set up initial mode */
- if (sc->shasta)
- sc->pioconf[0] = sc->pioconf[1] = pio_timing_shasta[4];
- else
- sc->pioconf[0] = sc->pioconf[1] = pio_timing_kauai[4];
+ sc->pioconf[0] = sc->pioconf[1] =
+ bus_read_4(sc->sc_memr, PIO_CONFIG_REG) & 0x0f000fff;
sc->udmaconf[0] = sc->udmaconf[1] = 0;
sc->wdmaconf[0] = sc->wdmaconf[1] = 0;
- bus_write_4(sc->sc_memr, PIO_CONFIG_REG, sc->pioconf[0]);
-
/* Magic FCR value from Apple */
bus_write_4(sc->sc_memr, 0, 0x00000007);
OpenPOWER on IntegriCloud