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.
This commit is contained in:
nwhitehorn 2008-10-27 00:09:14 +00:00
parent 57432d8a84
commit f81b969763

View File

@ -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);