#!/usr/bin/env python3 # vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4 import chipset def read(reg): val = chipset.intel_register_read(reg) return val def write(reg, val): chipset.intel_register_write(reg, val) def gen6_forcewake_get(): write(0xa18c, 0x1) read(0xa180) def mt_forcewake_get(): write(0xa188, 0x10001) read(0xa180) def vlv_forcewake_get(): write(0x1300b0, 0x10001) read(0x1300b4) # don't be clever, just try all possibilities def get_wake(): gen6_forcewake_get() mt_forcewake_get() vlv_forcewake_get() def dpio_read(reg, phy): phy = int(phy) val = chipset.intel_dpio_reg_read(reg, phy) return val def flisdsi_read(reg): val = chipset.intel_flisdsi_reg_read(reg) return val def init(): pci_dev = chipset.intel_get_pci_device() ret = chipset.intel_register_access_init(pci_dev, 0) if ret != 0: print("Register access init failed"); return False if chipset.intel_register_access_needs_fakewake(): print("Forcing forcewake. Don't expect your system to work after this.") get_wake() return True if __name__ == "__main__": import sys if init() == False: sys.exit() reg = sys.argv[1] print(hex(read(int(reg,16)))) chipset.intel_register_access_fini()