AHCI Spec第2.4章,定義了一個SATA Capability(0x12), 有這個Capability就是代表此AHCI有support Index Data Pair
這個Cap的結構如下
在SATACAP+4h 這個Register說明他是用哪個BAR(BAR0, BAR1,...)提供IO base address, 然後IO offset是多少。
所以 IDP Index port實際上就是 [BARx]+Offset
那 IDP Data port 實際上就是 [BARx]+Offset +4
作法就是用IO in/out指令先把要read的MMIO offset填到 [BARx]+Offset, 再去[BARx]+Offset +4讀出,或把要寫的資料寫到Data port然後再去Index port指定MMIO offset
沒有留言:
張貼留言