summaryrefslogtreecommitdiffstats
path: root/sys/powerpc
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 /sys/powerpc
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.
Diffstat (limited to 'sys/powerpc')
-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