PERFORCE change 109695 for review
Sam Leffler
sam at FreeBSD.org
Fri Nov 10 18:50:48 UTC 2006
http://perforce.freebsd.org/chv.cgi?CH=109695
Change 109695 by sam at sam_ebb on 2006/11/10 18:50:41
o setup all direct-mapped registers (was only doing up to
command but everything up to status is there)
o don't call ata_default_registers; it clobbers register
mappings; not sure if we'll need to manually fixup IREASON
and ALTSTAT
Affected files ...
.. //depot/projects/arm/src/sys/arm/xscale/ixp425/avila_ata.c#4 edit
Differences ...
==== //depot/projects/arm/src/sys/arm/xscale/ixp425/avila_ata.c#4 (text+ko) ====
@@ -281,8 +281,13 @@
{
struct ata_avila_softc *sc = t;
-printf("%s(%lx, %ld)\n", __func__, h, o);
+#if 0
return bus_space_read_1(sc->sc_iot, h, o);
+#else
+uint8_t v = bus_space_read_1(sc->sc_iot, h, o);
+printf("%s(%lx, %ld) => 0x%x\n", __func__, h, o, v);
+return v;
+#endif
}
void
@@ -413,16 +418,17 @@
struct ata_channel *ch = device_get_softc(dev);
int i;
- for (i = ATA_DATA; i <= ATA_COMMAND; i++) {
+ /* registers up to ATA_STATUS map directly */
+ for (i = ATA_DATA; i <= ATA_STATUS; i++) {
ch->r_io[i].res = &sc->sc_ata;
ch->r_io[i].offset = i;
}
+ /* the control register is special */
ch->r_io[ATA_CONTROL].res = &sc->sc_ata;
ch->r_io[ATA_CONTROL].offset = AVILA_IDE_CTRL;
/* NB: by convention this points at the base of registers */
ch->r_io[ATA_IDX_ADDR].res = &sc->sc_ata;
ch->r_io[ATA_IDX_ADDR].offset = 0;
- ata_default_registers(dev);
ata_generic_hw(dev);
return ata_attach(dev);
More information about the p4-projects
mailing list