def read_mmio_reg(self, phys_address, size): phys_address_lo = phys_address & 0xFFFFFFFF phys_address_hi = (phys_address >> 32) & 0xFFFFFFFF out_buf = edk2.readmem(phys_address_lo, phys_address_hi, size) if size == 8: value = struct.unpack('=Q', out_buf[:size])[0] elif size == 4: value = struct.unpack('=I', out_buf[:size])[0] elif size == 2: value = struct.unpack('=H', out_buf[:size])[0] elif size == 1: value = struct.unpack('=B', out_buf[:size])[0] else: value = 0 return value
def _read_phys_mem(self, phys_address, length): return edk2.readmem(phys_address, length)
def read_phys_mem(self, phys_address_hi, phys_address_lo, length): return edk2.readmem(phys_address_lo, phys_address_hi, length)
def _read_phys_mem( self, phys_address, length ): return edk2.readmem( phys_address, length )