MCPcopy
hub / github.com/tinygrad/tinygrad / set_entry

Method set_entry

tinygrad/runtime/support/am/amdev.py:123–127  ·  view source on GitHub ↗
(self, entry_id:int, paddr:int, table=False, uncached=False, aspace=AddrSpace.PHYS, snooped=False, frag=0, valid=True)

Source from the content-addressed store, hash-verified

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

Callers 4

level_downMethod · 0.45
_try_free_ptMethod · 0.45
map_rangeMethod · 0.45
unmap_rangeMethod · 0.45

Calls 2

get_pte_flagsMethod · 0.80
paddr2xgmiMethod · 0.45

Tested by

no test coverage detected