xgene_ahci_qc_issue(9)
π xgene_ahci_qc_issue(9) π
okay so this is a page from the Kernel API Manual bestie, and it's literally all about xgene_ahci_qc_issue β no cap, we're getting into it π
β¨ NAME β¨
xgene_ahci_qc_issue β issue commands to the device, fr fr π
πΈ SYNOPSIS πΈ
unsigned int xgene_ahci_qc_issue (struct ata_queued_cmd *qc );
π¦ ARGUMENTS π¦
qcβ the command you wanna issue π that's it, that's the whole argument
π₯ DESCRIPTION π₯
ngl, this controller has hardware errata and we're all just living with it π so let's break it down π
π the IDENTIFY DEVICE situation
So, due to hardware errata for the IDENTIFY DEVICE command, the controller literally cannot clear the BSY bit after receiving the PIO setup FIS. And the way that this plays out? The dma state machine goes into the CMFatalErrorUpdate state and locks up. π
The fix is iconic actually: by restarting the dma engine, it removes the controller out of lock up state. slay π
π§ the PMP situation
Also due to H/W errata, the controller is unable to save the PMP field fetched from command header before sending the H2D FIS. So when the device returns the PMP port field in the D2H FIS, there's a mismatch, and that results in command completion failure π
The workaround, bestie? Write the pmp value to the PxFBS.DEV field before issuing any command to PMP. periodt β¨
π SEE ALSO π
Kernel file ./drivers/ata/ahci_xgene.c β and all the sister functions you should lowkey go read:
xgene_ahci_poll_reg_val(9)xgene_ahci_restart_engine(9)xgene_ahci_read_id(9)xgene_ahci_do_hardreset(9)xgene_ahci_pmp_softreset(9)xgene_ahci_softreset(9)xgene_ahci_handle_broken_edge_irq(9)
π friendly reminder from the manpage: those errata are real hardware behaviour, not a vibe. Handle them exactly like it says.
π and that's the page!! this little gem lives in ./drivers/ata, dated October 2026 β mwah, go touch some registers bestie π«Άπ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms