SATA AHCI driver head banging.
adam at os.inf.tu-dresden.de
Mon Jul 23 22:56:45 CEST 2012
On Fri Jul 20, 2012 at 16:07:46 -0700, Daniel Waddington wrote:
> I am trying to build a SATA driver for our Fiasco.OC personality.
> The h/w is a Intel 82801J IOCH in a PC platform.
> I get can pick up the device in the PCI, get BAR5 and map in the
> control registers. I then initialize the card (into AHCI mode), set
> up memory (command list and command tables) and try to do an
> IDENTIFY_DEVICE command. The command issues, and returns a PIO
> Setup FIS (type 5f). PxTFD.STS.DRQ=1 PxTFD.STS.BSY=0 PxSERR=0
> PxSACT=1. The PIO setup FIS indicates a transfer count of 512 bytes
> (which is correct). All good so far, but then no interrupt happens
> and no more FISes appear - and I don't know what to do next. The
> same behavior occurs on another PC platform with a IOCH9 controller.
> I have not done anything w.r.t. configuring or re-routing IRQs in
> the PCI subsystem (a black hole to me). Is there something that is a
> must that I'm clearly missing here??
I'd think it has something to do with PCI. The hint I could give is that
you put your driver code into an L4Re task and check if it's better
there? That could give a direction.
Adam adam at os.inf.tu-dresden.de
More information about the l4-hackers