xgene_ahci_softreset(9)
β¨ xgene_ahci_softreset(9) β¨
okay bestie, buckle up β this is the manual page for xgene_ahci_softreset(9) from the Kernel API Manual and it's genuinely iconic. it's giving "niche kernel driver lore" and i'm obsessed π
π NAME π
xgene_ahci_softreset β literally just issues the softreset to the drive. that's it. that's the vibe. π
πΈ SYNOPSIS πΈ
int xgene_ahci_softreset (struct ata_link *link , unsigned int *class ,
unsigned long deadline );
π¦ ARGUMENTS π¦
linkβ the link to reset, bestie. this is the main character of the whole operation β¨classβ a return value that tells you the class of the device. like a little gossip report on what kind of device we're dealing with πββοΈdeadlineβ the deadline in jiffies for the operation. yes, jiffies. no cap, that's the unit. β°
π DESCRIPTION π
okay so this is where it gets juicy. due to H/W errata, the controller literally cannot save the PMP field it fetched from the command header before sending the H2D FIS. it's a hardware oopsie, not our fault. π
so when the device returns the PMP port field in the D2H FIS, there's a mismatch β and that mismatch results in command completion failure. not slay. π
the workaround? write the pmp value to the PxFBS.DEV field before issuing any command to PMP. periodt. and here's the algorithm to detect PMP, laid out step by step:
- Save the
PxFBSvalue πΎ - Program
PxFBS.DEVwith the pmp value send by framework. Framework sends0xFfor both PMP/NON-PMP initially π οΈ - Issue softreset π
- If signature class is PMP goto 6 β‘οΈ
- restore the original
PxFBSand goto 3 π - return π
π SEE ALSO π
- Kernel file
./drivers/ata/ahci_xgene.c xgene_ahci_poll_reg_val(9)xgene_ahci_restart_engine(9)xgene_ahci_qc_issue(9)xgene_ahci_read_id(9)xgene_ahci_do_hardreset(9)xgene_ahci_pmp_softreset(9)xgene_ahci_handle_broken_edge_irq(9)
fr fr this whole thing lives in ./drivers/ata and it's lowkey a whole saga. go read the friends. iykyk π«Ά
and that's a wrap, bestie! this iconic page came from ./drivers/ata, dated October 2026, and it's literally the xgene_ahci_softreset(9) manual β slay, you made it to the end π
β¨π
π¦ 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