Ulrich Eckhardt wrote:
> I'm trying to code the glue to connect the vanilla ATA drivers with a CF
> card connected to an Au1100. I managed to access the CIS parts of the card
> but then the problems start: the area where I'd expect to find the ATA
> controller's registers mirrors every byte twice, just as if the address
> used was first shifted by one.
> Here's a sketch of what I'm doing:
> 1. Setup SYS_PINFUNC so the PCMCIA interface is used
Well, at least I tried to...
> At this moment, I think I should be able to talk to the ATA controller via
> the first few bytes of the ioremapped PCMCIA_IO_PHYS_ADDR, but that area
> has this weird mirrored byte behaviour which I don't understand.
Setting the PC flag in SYS_PINFUNC in fact DISables the PCMCIA driver, leaving
PREG, PCE1, PCE2 and PWE as GPIO pins. These seem unused for 16 bit accesses
to the attribute memory but required for the 8 bit accesses to the ATA
controller's registers, causing the funny behaviour.
"Principle of maximum surprise."