diff options
author | nwhitehorn <nwhitehorn@FreeBSD.org> | 2008-10-27 00:09:14 +0000 |
---|---|---|
committer | nwhitehorn <nwhitehorn@FreeBSD.org> | 2008-10-27 00:09:14 +0000 |
commit | f81b969763ed0fb47b7286275a04a203cf97c615 (patch) | |
tree | d343f81008575a2688dd043778e15dabe92ff3d6 /sys/powerpc | |
parent | 57432d8a84d76480c6a66af412a5c77f87818971 (diff) | |
download | FreeBSD-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.c | 8 |
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); |