(self, entry_id:int, paddr:int, table=False, uncached=False, aspace=AddrSpace.PHYS, snooped=False, frag=0, valid=True)
| 121 | def __init__(self, adev, paddr, lv): self.adev, self.paddr, self.lv, self.entries = adev, paddr, lv, adev.vram.view(paddr, 0x1000, fmt='Q') |
| 122 | |
| 123 | def set_entry(self, entry_id:int, paddr:int, table=False, uncached=False, aspace=AddrSpace.PHYS, snooped=False, frag=0, valid=True): |
| 124 | is_sys = aspace is AddrSpace.SYS |
| 125 | if aspace is AddrSpace.PHYS: paddr = self.adev.paddr2xgmi(paddr) |
| 126 | assert paddr & self.adev.gmc.address_space_mask == paddr, f"Invalid physical address {paddr:#x}" |
| 127 | self.entries[entry_id] = self.adev.gmc.get_pte_flags(self.lv, table, frag, uncached, is_sys, snooped, valid) | (paddr & 0x0000FFFFFFFFF000) |
| 128 | |
| 129 | def entry(self, entry_id:int) -> int: return self.entries[entry_id] |
| 130 | def valid(self, entry_id:int) -> bool: return (self.entries[entry_id] & am.AMDGPU_PTE_VALID) != 0 |
no test coverage detected