pci: add is64bits and physical address to pcibar_t

This commit is contained in:
Matheus
2023-10-15 20:57:09 -03:00
parent f362f017bc
commit 676be91ac0
2 changed files with 7 additions and 2 deletions
+3 -2
View File
@@ -146,9 +146,10 @@ pcibar_t pci_getbar(pcienum_t *e, int n) {
} else {
ret.mmio = true;
ret.prefetchable = bar & BAR_PREFETCHABLE;
ret.address = bar & 0xfffffff0;
ret.address = ret.physical = bar & 0xfffffff0;
ret.length = -1;
if ((bar & BAR_TYPE_MASK) == BAR_TYPE_64BIT)
ret.is64bits = (bar & BAR_TYPE_MASK) == BAR_TYPE_64BIT;
if (ret.is64bits)
ret.address += (uint64_t)pci_read32(e->bus, e->device, e->function, offset + 4) << 32;
pci_write32(e->bus, e->device, e->function, offset, -1);