Hi, 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??
Any clues, much appreciated.
Daniel
Hi,
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
l4-hackers@os.inf.tu-dresden.de