Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Are you using volatile reads and writes for MMIO? Is MMIO enabled in the AHCI controller's PCI command register? Are you sure the device you're accessing has the correct class code for AHCI?
Octocontrabass wrote: ↑Tue May 06, 2025 12:04 pm
That looks correct to me.
Are you using volatile reads and writes for MMIO? Is MMIO enabled in the AHCI controller's PCI command register? Are you sure the device you're accessing has the correct class code for AHCI?
abar is showing it's value is 0xFEBD5000 which is higher than 4GB But My system has maximum 4GB System memory. This 0xFEBD5000 is a MMIO address. I have enabled Paging in Higher half virtual address(actually by limine) but do not have lower half virtual address which I can be able to enable for user space. But if I consider 0xFEBD5000 is a virtual address then it is fall into lower half which is not helps. Do I need to consider mapping 0xFEBD5000 address into another higher half virtual address then it can be usable to rebase the port?
Class and subclass are correct as per my knowledge.
The MMIO addresses in the PCI BARs are physical addresses. You first need to map them to a virtual address, then use this virtual address to acces them.