Hi Experts,
I'm writing the PCIe controller driver on K2E EVM for an RTOS.
I use the onboard 88SE9182A PCIe-to-SATA AHCI chip for verifying the PCIe driver.
Currently, I face such situation: The SATA SSD can be identified and read by our AHCI driver. The identify and read can work in both legacy INTx and MSI mode. But when written, the 88SE9182A never responds to PCIe controller with interrupt, neither legacy INTx nor MSI.
When displaying the PCI status for both RC and 88SE9182A, I find "Advisory Non-Fatal Error" in RC, and Received Master-Abort (RMA) flag in 88SE9182A. This 2 error conditions only occur after write operation.
I suspected that the inbound mapping didn't work, so I map the PCIe address 0x80000000 to CPU address 0x80000000, with size of 2GB, but it doesn't help.
I disable the BAR0 and BAR1 for RC in Linux, the read/write operate normally. So it shouldn't be the inbound mapping issue.
I also suspected there was issue in AHCI driver, so I used other Marvell AHCI(88SE9128) PCIe card to verify on other boards, the read/write operation is fine. So I think the AHCI driver is no problem.
I tried many other configuration changes to the PCIe controller, but no effect.
I can't find any way to go ahead.
Could anyone give any suggestion, please? Thank you!
Best Regards,
Guohu