HP G72-262nr Virtualization Problem

Discussion in 'Virtualization' started by jguernsey, Jan 22, 2011.

  1. jguernsey

    jguernsey MDL Novice

    Jan 22, 2011
    12
    0
    0
    I have an HP g72-262nr that I am trying to install a 64bit operating system in a virtual machine. I looked up the specs for my processor, an Intel i3-350M and as far as I could see it does support VT-x but there is no where to enable this in the BIOS. The BIOS is an Insyde bios, i just udated to F.32 hoping that would do something. Is there any way that I can run a 64 bit OS in a VM on this laptop?

    Specs:
    HP G72-262nr
    Insyde Bios ID 1482 Version F.32
     
  2. atreyu

    atreyu MDL Junior Member

    Nov 15, 2009
    63
    132
    0
  3. jguernsey

    jguernsey MDL Novice

    Jan 22, 2011
    12
    0
    0
    Thanks, atreyu. I tried to use the EFI application and my laptop will not boot from the USB drive. When I attempt to boot from the USB drive the computer shows a message that says "Remove disks or other media. Press any key to restart." Is it possible to burn the EFI application to a CD and boot the application that way? I'm really quite frustrated that the option to enable hardware virtualization isn't available in the BIOS. Had I known that it was disabled I wouldn't have purchased this model.
     
  4. jguernsey

    jguernsey MDL Novice

    Jan 22, 2011
    12
    0
    0
    #5 jguernsey, Jan 25, 2011
    Last edited: Jan 25, 2011
    (OP)
    I'm pretty new to messing with BIOSes, how would I determine if it is the BIOS old style of UEFI?

    I did a little bit of research and apparently the BIOS is UEFI. In the downloads section on HP's website there is an option for "HP System Diagnostics (UEFI)" so I'm guessing that it is a UEFI BIOS. Unfortunately, the more I read, the more confused I get. A lot of the solutions are related to other platforms other than HP laptops.
     
  5. jguernsey

    jguernsey MDL Novice

    Jan 22, 2011
    12
    0
    0
    #7 jguernsey, Jan 26, 2011
    Last edited: Jan 26, 2011
    (OP)
    I have to say I'm definitely going to do more research before I buy another laptop. I read that the i3-350m supported VT-x and just assumed that I would be able use it as I needed to. I'll never make that assumption again. I downloaded the bios update from HP, it's just an executable named "SP51125" I noticed that I could extract the .exe file, and while there isn't a "platform.ini" file, there is a file named "1484.ini" that has the [BackupROM] section. I set the "Flag=1", saved the file, then tried to run "InsydeFlashx64.exe" and recieve a message that says "This BIOS is not for your Notebook PC" This is proving to be quite a pain. I'm going to read that thread again and try to figure it out. If being able to run a 64bit guest OS in a VM wasn't so important right now I would give up. :mad:

    Do I need to download the EDK II package? Or should I just follow MaxL's comment using the WinFlash tool? :confused:
     
  6. atreyu

    atreyu MDL Junior Member

    Nov 15, 2009
    63
    132
    0
    You don't need EDK II package. You need WinFlash or InsydeFlash, I would use the later bc it's from your bios mf. Didn't you use it to update to F.32? I've checked the package and there is a CheckCM.vbe that copies the right .ini to platform.ini, then there is no error... anyway there is no harm if you install the sp, perhaps the install procedure runs the vbe and that's why you had no error the first time.

    If you didn't install F.32 that's the first thing to do...
     
  7. jguernsey

    jguernsey MDL Novice

    Jan 22, 2011
    12
    0
    0
    #9 jguernsey, Jan 26, 2011
    Last edited: Jan 26, 2011
    (OP)
    Ok, I was able to get a copy of my bios using InsydeFlash. Now to patch it, I'll let you know how it goes....
    If the Patch Offset is wrong will that brick my laptop?

    Now when I run vtenable.py I get "Invalid VSS signature" I feel I'm getting closer.....
     
  8. atreyu

    atreyu MDL Junior Member

    Nov 15, 2009
    63
    132
    0
    As you have noticed if the offset is wrong you get a invalid signature message.

    Search for $VSS with an hex editor, and use first occurrence as VSS_OFFSET. I expect you get an output now, but don't use it. PATCH_OFFSET must be checked / changed, too.

    Here you need the so talked about main.py and lzma.py, maybe others. If you can't run it in nix you have to google for liblzmadec.dll and change main.py... well, you have to change it anyway bc the string you have (if you have one) may be diff from the hardcoded one...

    I can't assist you before the end of the day (gmt), good luck and enjoy the more you can
     
  9. jguernsey

    jguernsey MDL Novice

    Jan 22, 2011
    12
    0
    0
    I've been busy all day today so and my next oppourtunity to attack this won't be until after about 11pm GMT. I'm using dz6's main.py and lzma.py. I'll have to google for the liblzmadec.dll as I have been receiving the error that it couldn't find liblzmadec.so, I even tried installing Ubuntu 10.10 in a VM and had issues with that as well so I gave up late last night. Thanks for your help, it's been great.
     
  10. jguernsey

    jguernsey MDL Novice

    Jan 22, 2011
    12
    0
    0
    #12 jguernsey, Jan 30, 2011
    Last edited: Jan 30, 2011
    (OP)
    Ok, I finally found time to try doing this again. I managed to get this far:

    C:\Python26>python.exe main.py Backup.fd
    Opened BIOS 'Backup.fd' with md5:1189a320ab6b09604c1da473f4048ae6
    Operating on BIOS data/original_bios-mine.fd size = 0x100000
    Loading compressed sections
    .. found 1 compressed sections
    Locating Firmware Volumes
    .. found 9 FirmwareVolumes (4 compressed)
    Traceback (most recent call last):
    File "main.py", line 459, in <module>
    main()
    File "main.py", line 454, in main
    bios = BIOS(sys.argv[1])
    File "main.py", line 264, in __init__
    self.locate_packs(setup_utility_pe.data)
    File "main.py", line 342, in locate_packs
    forms = find_all(setuputility_binary, form_magic, create_form)
    File "C:\Python26\util.py", line 40, in find_all
    result.append(callback(position))
    File "main.py", line 338, in create_form
    return Form(setuputility_binary, location, english_stringtable)
    File "C:\Python26\dumpsetup.py", line 262, in __init__
    op = FormOp(data, stable)
    File "C:\Python26\dumpsetup.py", line 168, in __init__
    raise RuntimeError("Undefined opcode: 0x%x" % self.opcode)
    RuntimeError: Undefined opcode: 0x27

    Any idea why this might be happening? I am running Windows 7 64bit, I was going to install Windows XP 32-bit in a VM then try repeating this process to see if that changes anything.

    Update:
    I ran main.py and got the same error message.
     
  11. jguernsey

    jguernsey MDL Novice

    Jan 22, 2011
    12
    0
    0
    #14 jguernsey, Jan 30, 2011
    Last edited: Jan 30, 2011
    (OP)
    So, I changed "Vanderpool" to "Virtualization" and this is the output:

    Opened BIOS 'Backup_new.fd' with md5:D9e4fd92a9d0edcd4ccd628d6673918a
    Operating on BIOS data/original_bios-mine.fd size = 0x100000
    Loading compressed sections
    .. found 1 compressed sections
    Locating Firmware Volumes
    .. found 9 FirmwareVolumes (4 compressed)
    Sorry, I couldn't locate the VT flag? :(
    Have vss_volume: <FirmVol position=0x0d0000 size=0x007fb8 where=None [VSS]>
    Have vss_volume: <FirmVol position=0x0f3000 size=0x00cfb8 where=None [VSS]>
    Have vss_volume: <FirmVol position=0x000010 size=0x2fffb8 where=[compr at 0x20069] [VSS]>
    Done

    So, I'm guessing this means that my processor doesn't support hardware virtualization but according to my laptop's documentation, it's an Intel Core i3-350M processor and according to Intel's documentation:

    Intel® Turbo Boost Technology No
    Intel® Hyper-Threading Technology Yes
    Intel® Virtualization Technology (VT-x) Yes
    Intel® Virtualization Technology for Directed I/O (VT-d) No <------- Does this mean that I've wasted our time?
    Intel® Trusted Execution Technology No
    AES New Instructions No
    Intel® 64 Yes
    Idle States Yes
    Enhanced Intel SpeedStep® Technology Yes
    Thermal Monitoring Technologies Yes
    Intel® Fast Memory Access Yes
    Intel® Flex Memory Access Yes
    Execute Disable Bit Yes

    I opened the "SetupUtility-mine.pe" in wordpad and did find a section that said "Virtualization Technology Hardware VT enables a processor feature for running multiple simultaneous Virtual Machines allowing specialized software applications to run in full isolation of eachother. HP recommends that this feature remain disabled unless specialized applications are being used."
     
  12. FreeStyler

    FreeStyler MDL Guru

    Jun 23, 2007
    3,557
    3,832
    120
    Hardware virtualization is 'Intel® Virtualization Technology (VT-x)', 'Intel® Virtualization Technology for Directed I/O (VT-d)' is a new expansion to this technology but not required.
     
  13. jguernsey

    jguernsey MDL Novice

    Jan 22, 2011
    12
    0
    0
    Thanks for the clarification FreeStyler. I'm guessing I have to change the search string in main.py. I'll try a few different things to see what I can find.
     
  14. atreyu

    atreyu MDL Junior Member

    Nov 15, 2009
    63
    132
    0
    Damn, python looks in help string and Virtualization is in the name; sorry :eek:

    Use "Hardware VT" or, better, shift the print
     
  15. jguernsey

    jguernsey MDL Novice

    Jan 22, 2011
    12
    0
    0
    Ok, now I get to the point where I run vtenable.py and I get the following:

    Traceback (most recent call last):
    File "vtenable.py", line 95, in <module>
    var = VAR(vss[off:])
    File "vtenable.py", line 58, in __init__
    raise ValueError("Checksum error")
    ValueError: Checksum error
     
  16. jguernsey

    jguernsey MDL Novice

    Jan 22, 2011
    12
    0
    0
    #19 jguernsey, Jan 31, 2011
    Last edited by a moderator: Apr 20, 2017
    (OP)
    Well, I was finally able to run vtenable.py, flashed the bios with the result, and nothing. Here's the result of running main.py, my "setup.txt" file, and what I used for "vtenable.py"

    result of main.py
    Code:
    Opened BIOS 'mybios.fd' with md5:60d2469d1f2a3e2d51c127eac409dc07
    Operating on BIOS data/original_bios-mine.fd size = 0x100000
    Loading compressed sections
     .. found 1 compressed sections
    Locating Firmware Volumes
      .. found 9 FirmwareVolumes (4 compressed)
    STRING_TABLE = 0x17710
    String table:
     Language: eng (English)
     String count: 833
    Location = 0x4f320
    Location = 0x4f3e0
    Location = 0x4f9d0
    Location = 0x4fa30
    Location = 0x4fb60
    Location = 0x50030
    Location = 0x508d0
    Location = 0x258<1>, name='Button Sound' help='Enabling and Disabling the media button playback sound.'
    Location = 0x1ad<1>, name='Virtualization Technology' help='Hardware VT enables a processor feature for running multiple simultaneous Virtual Machines allowing specialized software applications to run in full isolation of each other. HP recommends that this feature remain disabled unless specialized applications are being used.'
    Location = 0x1b4<1>, name='Processor C6 states' help='Enabling/Disabling the processor C6 sleep.'
    Location = 0x036<1>, name='IDE Controller' help='DISABLED: disables both the PATA & SATA IDE controllers. BOTH: enables both the PATA & SATA IDE controllers.'
    Location = 0x039<1>, name='SATA Native Support' help='Enabling SATA Native Support will improve the HDD performance. Disabling SATA Native Support may be necessary when a legacy OS is used.'
    Location = 0x0e7<1>, name='AHCI Option ROM Support' help='If AHCI Option ROM is set to disabled, the system can only detect ports 0 and 1. If AHCI option ROM is set to enabled, the system can detect all ports.'
    Location = 0x259<1>, name='LAN Power Saving' help='To reduce the power consumption of Lan controller on DC mode.'
    Location = 0x25a<1>, name='Card Reader / 1394 Power Saving' help='To reduce the power consumption of Card Reader / 1394 controller on DC mode'
    Location = 0x25d<1>, name='Fan Always On' help='Set the Fan Always On'
    Location = 0x260<1>, name='Action Keys Mode' help='Disabled: Requires pressing Fn key + f1 through f12 to activate action keys              Enabled: Requires pressing only f1 through f12 to activate action keys'
    Location = 0x072<1>, name='Quick Boot' help='Allows InsydeH2O to skip certain tests while booting. This will decrease the time needed to boot the system.'
    Location = 0x073<1>, name='Quiet Boot' help='Disables or enables booting in Text Mode.'
    Location = 0x067<1>, name='ACPI Selection' help='Select booting to Acpi3.0/Acpi1.0B'
    Location = 0x063<1>, name='USB boot' help='Disables or enables booting to USB boot devices.'
    Location = 0x214<1>, name='F10 and F12 Delay (sec)' help='Customizable amount of time for the user to press F10 and F12 at POST.'
    Location = 0x214<1>, name='POST Hotkey Delay (sec)' help='Customizable amount of time for the user to press HotKey at POST.'
    Location = 0x215<1>, name='CD-ROM Boot' help='Enable/Disable CDROM boot during boot time.'
    Location = 0x216<1>, name='Floppy Boot' help='Enable/Disable floppy boot during boot time.'
    Location = 0x074<1>, name='Internal Network Adapter Boot' help='Enable/Disable internal network adapter boot during boot time.'
    Location = 0x07b<1>, name='Normal Boot Menu' help=' '
    Location = 0x069<1>, name='TPM Operation' help='Enable/Disable TPM Function. This option will automatically return to No-Operation.'
    Location = 0x06a<1>, name='TPM Force Clear' help='TPM Force Clear Function'
    Location = 0x089<1>, name='ACPI S1:' help='Enable/Disable ACPI S1/S3 Sleep state'
    Location = 0x08a<1>, name='ACPI S3:' help='Enable/Disable ACPI S1/S3 Sleep state'
    Location = 0x08b<1>, name='Wake on PME' help='Determines the action taken when the system power is off and a PCI Power Management Enable wake up event occurs.'
    Location = 0x08c<1>, name='Wake on Modem Ring' help='Determines the action taken when the system power is off and a modem connected to the serial port is ringing.'
    Location = 0x1a9<1>, name='Quickly S4 Resume' help='Quickly S4 Resume, Optionally Boot from S4 Resume'
    Location = 0x08d<1>, name='Auto wake on S5' help='Auto wake on S5, By Day of Month or Fixed time of every day'
    Location = 0x19b<1>, name='P-States(IST)' help='Enable processor performance states(P-States).'
    Location = 0x1a8<1>, name='Boot performance mode' help='Select the performace state that BIOS will set befor OS handoff.'
    Location = 0x19c<1>, name='Thermal Mode' help=' '
    Location = 0x19c<1>, name='Thermal Mode' help=' '
    Location = 0x1b6<1>, name='CMP Support' help='Enable/Disable Core Multi-Processing'
    Location = 0x19f<1>, name='Use XD capability' help='Enable or disable processor XD capability'
    Location = 0x1c1<1>, name='SMRR Support' help='Enable/Disable SMRR Support.'
    Location = 0x1b0<1>, name='C-States' help='Enable processor idle power saving states(C-States).'
    Location = 0x1b1<1>, name='Enhanced C-States' help='Enable P-State transitions to occur in combination with C-States.'
    Location = 0x1aa<1>, name='C-State Pop Up Mode' help='If enabled and ICH abserves a bus master requests, it will take the system from C3/C4 to C2 and auto enable bus masters. If disabled, bus master traffic is a break event and ICH will attempt to return to C0 state.'
    Location = 0x1ab<1>, name='C-State Pop Down Mode' help='If enabled and ICH abserves no bus master requests, it can return to the previous C3/C4 state. If disabled, ICH will not attempt to automatically return to the previous C3/C4 state.'
    Location = 0x1c0<1>, name='C4 Exit Timing Mode' help='This option controls a programmable time for the CPU voltage to stabilize when exiting from a C4 state.'
    Location = 0x1ab<1>, name='C-State Pop Down Mode' help='If enabled and ICH abserves no bus master requests, it can return to the previous C3/C4 state. If disabled, ICH will not attempt to automatically return to the previous C3/C4 state.'
    Location = 0x1a3<1>, name='EMTTM' help='Enable processor Enhanced Multi Threaded Thermal Monitoring (requires GV3).'
    Location = 0x1a4<1>, name='Bi-directional PROCHOT#' help='Whan a processor thermal sensor trips(either core),the PROCHOT# will be driven.If bi-directional is enable ,external agents can drive PROCHOT# to throttle.'
    Location = 0x1a5<1>, name='Dynamic FSB Switching' help='Enable or disable processor Dynamic FSB Frequency Switching(Bus GV).'
    Location = 0x1a6<1>, name='Turbo Mode' help='Enable processor Turbo Mode(requires EMTTM enabled too).'
    Location = 0x1a7<1>, name='ACPI 3.0 T-States' help='Enable/Disable ACPI 3.0 T-States.'
    Location = 0x1b8<1>, name='DTS' help='Enables CPU Digitial Thermal Sensor function.'
    Location = 0x1b9<1>, name='DTS Calibration' help='Enables Calibration function.'
    Location = 0x19d<1>, name='Fan On Temperature' help='Set the CPU temperature point of Fan On'
    Location = 0x19e<1>, name='Throttle On Temperature' help='Set the CPU temperature point of Throttle On'
    Location = 0x1a0<1>, name='PCI Clock Run:' help='If Enabled,the CLKRUN# Logic will stop the PCI Clocks'
    Location = 0x1c6<1>, name='Storage Break Event' help='If Enabled, Parallel IDE or Serial ATA master activity will cause BM_STS to be set and will cause a break from C3/C4.'
    Location = 0x1c7<1>, name='PCIE Break Event' help='If Enabled, PCI Express master activity will cause BM_STS to be set and will cause a break from C3/C4.'
    Location = 0x1c8<1>, name='PCI Break Event' help='If Enabled, PCI master activity will cause BM_STS to be set and will cause a break from C3/C4.'
    Location = 0x1c9<1>, name='EHCI Break Event' help='If Enabled, EHCI master activity will cause BM_STS to be set and will cause a break from C3/C4.'
    Location = 0x1ca<1>, name='UHCI Break Event' help='If Enabled, UHCI master activity will cause BM_STS to be set and will cause a break from C3/C4.'
    Location = 0x1cb<1>, name='HDA Break Event' help='If Enabled, Intel High Definition Audio master activity will cause BM_STS to be set and will cause a break from C3/C4.'
    Location = 0x1bc<1>, name='Express Card' help='Enable: Express Card Solution for Windows Standby and Hibernation. Disable: Express Card can support in POST/DOS'
    Location = 0x1b2<1>, name='Processor C4 states' help='Enabling/Disabling the processor C4 sleep.'
    Location = 0x1b3<1>, name='Hard C4E' help='Enable P-State transitions to minimum state on C4E.'
    Location = 0x002<1>, name='PCI Slot3 IRQ Priority' help='Manual IRQ selection does not garantee PCI slot device will be configured with choice because PnP ISA Cards (if present) are assigned the available resources before PCI device.'
    Location = 0x003<1>, name='PCI Slot4 IRQ Priority' help='Manual IRQ selection does not garantee PCI slot device will be configured with choice because PnP ISA Cards (if present) are assigned the available resources before PCI device.'
    Location = 0x008<1>, name='Numlock' help='Selects Power-on state for Numlock'
    Location = 0x009<1>, name='Zip Emulation Type' help='Selects Zip Emulation as FDD or HDD'
    Location = 0x00a<1>, name='Serial Port A' help='Configure Serial port A using options : [Disable] No Configuration [Enable] User Configuration [Auto] EFI/OS chooses configuration'
    Location = 0x00b<1>, name='  Base I/O Address' help=' '
    Location = 0x00c<1>, name='  Interrupt' help=' '
    Location = 0x00f<1>, name='Infrared Port' help='Configure Infrared port using options : [Disable] No Configuration [Enable] User Configuration [Auto] EFI/OS chooses configuration'
    Location = 0x012<1>, name='  Mode' help='Set the mode for the parallel port using options'
    Location = 0x010<1>, name='  Base I/O Address' help=' '
    Location = 0x011<1>, name='  Interrupt' help=' '
    Location = 0x013<1>, name='  DMA Channel' help=' '
    Location = 0x014<1>, name='HIGH SPEED' help='Set FIR to High speed mode or normal speed mode'
    Location = 0x033<1>, name='Azalia' help='AUTO: Auto detect the Azalia codec.  DISABLED: Disable the Azalia controller can be selectable.'
    Location = 0x0e6<1>, name='Lan' help='ENABLE: Enable the Lan controller.  DISABLED: Disable the Lan controller can be selectable.'
    Location = 0x0e8<1>, name='SATA Port 0 HotPlug' help='Enable/Disable SATA Port 0 HotPlug'
    Location = 0x0e9<1>, name='SATA Port 1 HotPlug' help='Enable/Disable SATA Port 1 HotPlug'
    Location = 0x0ea<1>, name='SATA Port 4 HotPlug' help='Enable/Disable SATA Port 4 HotPlug'
    Location = 0x0eb<1>, name='SATA Port 5 HotPlug' help='Enable/Disable SATA Port 5 HotPlug'
    Location = 0x03e<1>, name='Type :' help=' '
    Location = 0x03f<1>, name='32Bit I/O:' help=' '
    Location = 0x040<1>, name='Block Mode:' help=' '
    Location = 0x041<1>, name='Transfer Mode:' help=' '
    Location = 0x042<1>, name='Type :' help=' '
    Location = 0x043<1>, name='32Bit I/O:' help=' '
    Location = 0x044<1>, name='Block Mode:' help=' '
    Location = 0x045<1>, name='Transfer Mode:' help=' '
    Location = 0x03e<1>, name='Type :' help=' '
    Location = 0x03f<1>, name='32Bit I/O:' help=' '
    Location = 0x040<1>, name='Block Mode:' help=' '
    Location = 0x041<1>, name='Transfer Mode:' help=' '
    Location = 0x03e<1>, name='Type :' help=' '
    Location = 0x03f<1>, name='32Bit I/O:' help=' '
    Location = 0x040<1>, name='Block Mode:' help=' '
    Location = 0x041<1>, name='Transfer Mode:' help=' '
    Location = 0x0ef<1>, name='PEG Aperture Size' help=' '
    Location = 0x1cf<1>, name='Render Standby' help='Check to enable render standby support.'
    Location = 0x1d4<1>, name='Render Thermal Throttling' help='This feature is applicable Graphic SKUs only'
    Location = 0x0f0<1>, name='IGD - Device2,Function1:' help=' Enable/Disable Function 1 of the Internal Graphics Device by setting item to the desired value'
    Location = 0x0f1<1>, name='IGD - Pre-allocat Memory:' help='Select the amount of Pre-allocated Memory that the Internal Graphics Device will use. Warning: Some feature may not support with 1MB Pre-allocated Memory.'
    Location = 0x0f2<1>, name='IGD - DVMT Size:' help=' Select the size of DVMT 3.0 that the Internal Graphics Device will use'
    Location = 0x0f3<1>, name='Clock Chip Initialize:' help='   '
    Location = 0x0f4<1>, name='Enabled CK SSC:' help='   '
    Location = 0x0f5<1>, name='IGD - Boot Type:' help=' Select the Video Device that will be activated during POST'
    Location = 0x0f6<1>, name='IGD - LCD Panel Type:' help='Select the Panel used by the Internal Graphics Device by selecting the appropriate setup item'
    Location = 0x0f7<1>, name='IGD - TV:' help='Select the TV standard used by the Internal Graphics Device'
    Location = 0x1c4<1>, name='IGD - PAVP Mode' help='GMCH Protected Audio Video Path (PAVP) BIOS Support.'
    Location = 0x1d0<1>, name='IGD - Gfx Low Power Mode' help='This option is applicable for SFF only.'
    Location = 0x195<1>, name='  ASPM' help='Control ASPM support for the PEG Device.'
    Location = 0x196<1>, name='Automatic ASPM' help='Automatically enable ASPM based on reported capabilities and known issues.'
    Location = 0x19a<1>, name='Extended Synch' help='Enable PCIe Extended Synchronization for Logic Analyzer use.'
    Location = 0x197<1>, name='ASPM L0s' help='Enable PCIe ASPM L0s.'
    Location = 0x199<1>, name='ASPM L1' help='Enable PCIe ASPM L1.'
    Location = 0x198<1>, name='ASPM L0s Aggressiveness' help='Set the level of L0s entry aggressiveness.  This applies to root port L0s entry only.'
    Location = 0x04f<1>, name='USB Legacy' help='USB devices boot and access in DOS'
    Location = 0x0f8<1>, name='EHCI 1' help='Enable/Disable EHCI 1'
    Location = 0x0f9<1>, name='EHCI 2' help='Enable/Disable EHCI 2'
    Location = 0x0fa<1>, name='UHCI 1' help='Enable/Disable UHCI 1'
    Location = 0x0fb<1>, name='UHCI 2' help='Enable/Disable UHCI 2'
    Location = 0x0fc<1>, name='UHCI 3' help='Enable/Disable UHCI 3'
    Location = 0x0fd<1>, name='UHCI 4' help='Enable/Disable UHCI 4'
    Location = 0x0fe<1>, name='UHCI 5' help='Enable/Disable UHCI 5'
    Location = 0x0ff<1>, name='Pre-Port Control' help='Enable/Disable the Per-Port Disable Control Override'
    Location = 0x100<1>, name='Usb Port0' help='Enable/Disable Port 0'
    Location = 0x101<1>, name='Usb Port1' help='Enable/Disable Port 1'
    Location = 0x102<1>, name='Usb Port2' help='Enable/Disable Port 2'
    Location = 0x103<1>, name='Usb Port3' help='Enable/Disable Port 3'
    Location = 0x104<1>, name='Usb Port4' help='Enable/Disable Port 4'
    Location = 0x105<1>, name='Usb Port5' help='Enable/Disable Port 5'
    Location = 0x106<1>, name='Usb Port6' help='Enable/Disable Port 6'
    Location = 0x107<1>, name='Usb Port7' help='Enable/Disable Port 7'
    Location = 0x108<1>, name='Usb Port8' help='Enable/Disable Port 8'
    Location = 0x109<1>, name='Usb Port9' help='Enable/Disable Port 9'
    Location = 0x10a<1>, name='Usb Port10' help='Enable/Disable Port 10'
    Location = 0x10b<1>, name='Usb Port11' help='Enable/Disable Port 11'
    Location = 0x1d2<1>, name='USB Pre-fetch Feature' help='Enable/Disable USB Pre-fetch feature'
    Location = 0x1d3<1>, name='USB Pre-fetch Time' help='Select USB Pre-fetch time'
    Location = 0x1d5<1>, name='CRID' help='Enable / Disable : Compatible Revision ID ( CRID ) / Stepping Revision ID ( SRID ).'
    Location = 0x10c<1>, name='Port 80h Cycles' help='Control where the port 80h cycles are sent.'
    Location = 0x191<1>, name='DMI Link ASPM Control' help='Enable/Disable the control of Active State Power Management on both GMCH side and ICH8M side of the DMI Link.'
    Location = 0x192<1>, name='Automatic ASPM' help='Automatically or manually control the level of ASPM supported on the DMI Link'
    Location = 0x193<1>, name=' ASPM L0s Support' help='Control L0s Entry Support on the DMI Link'
    Location = 0x194<1>, name=' ASPM L0sL1 Support' help='Control L0s and L1 Entry Support on the DMI Link'
    Location = 0x050<1>, name='PCI Latency Timer' help=' '
    Location = 0x1bf<1>, name='VT-d' help='Check to enable VT-d function on MCH'
    Location = 0x1d1<1>, name='System Memory Frequency' help='Auto indicates there is no change in System Memory Frequency. 667MHz indicates the system Memory Fequency fix at 667MHz.'
    Location = 0x051<1>, name='Extended Configuration' help='Chooses the default or user defined settings for the extended configuration options.'
    Location = 0x052<1>, name='System Memory Frequency' help='Allows override of detected memory frequency value.'
    Location = 0x053<1>, name='RAM Timing Control' help='AUTO:Timings will be programmed according to the memory detected. MANUAL-AGGRESSIVE: Selects most aggressive user defined timings. MANUAL:Allows manual override of detected SDRAM settings.'
    Location = 0x054<1>, name='RAM RAS Act. to Pre.' help='Corresponds to tRAS, min.'
    Location = 0x055<1>, name='RAM CAS# Latency' help='Corresponds to CL.'
    Location = 0x056<1>, name='RAM RAS# to CAS# delay' help='Corresponds to tRCD.'
    Location = 0x057<1>, name='RAM RAS# Precharge' help='Corresponds to tRP.'
    Location = 0x1cc<1>, name='TM Mode' help='Select TM Mode: Disable, TM, Catastrophic'
    Location = 0x1cd<1>, name='TS on DIMM' help='Enable/Disable Thermal Sensor on DIMM'
    Location = 0x1ce<1>, name='TM Lock' help='Enable/Disable Thermal Monitor Lock'
    Location = 0x058<1>, name='FACP - C2 Latency Value:' help='Value only for ACPI. Select the value for the P_LVL2_LAT field found in the FACP Table where: 1 = C2 Enabled, 101 = C2 Disabled'
    Location = 0x059<1>, name='FACP - C3 Latency Value:' help='Value only for ACPI. Select the value for the P_LVL3_LAT field found in the FACP Table where: 85 = C3 Enabled, 1001 = C3 Disabled'
    Location = 0x05a<1>, name='FACP - RTC S4 Wakeup:' help='Value only for ACPI. Enable/Disable for S4 Wakeup from RTC'
    Location = 0x05b<1>, name='APIC - IO APIC Mode:' help='This item is valid only for WIN2k and WINXP.Also,a fresh install of the OS must occur when APIC Mode is desired.Test the IO ACPI by setting item to Enable.The APIC Table will then be pointed to by the RSDT,the Local APIC will be initialized,and the proper enable bits will be set in ICH4M'
    Location = 0x05c<1>, name='HPET - HPET support:' help='High Performance Event Timer Support in Windows XP. Enabled this feature, the HPET table will be add-into ACPI Tables.'
    Location = 0x05d<1>, name='  Base Address select' help='Memory address ranges of High Performance Event Timer'
    Location = 0x11f<1>, name='PCI Express Root Port 1' help='Control the PCI Express Root Port.'
    Location = 0x12b<1>, name='  VC1 Enable' help='PCI Express Virtual Channel 1 Enable/Disable.'
    Location = 0x18b<1>, name='    VC1/TC Mapping' help='Set Virtual Channel 1 (VC1) to Traffic Class (TC) Mappings'
    Location = 0x125<1>, name='  ASPM' help='Enable PCI Express Active State Power Management settings.'
    Location = 0x131<1>, name='Automatic ASPM' help='Automatically enable ASPM based on reported capabilities and known issues.'
    Location = 0x137<1>, name='ASPM L0s' help='Enable PCIe ASPM L0s.'
    Location = 0x13d<1>, name='ASPM L1' help='Enable PCIe ASPM L1.'
    Location = 0x149<1>, name='  URR' help='PCI Express Unsupported Request Reporting Enable/Disable.'
    Location = 0x14f<1>, name='  FER' help='PCI Express Device Fatal Error Reporting Enable/Disable.'
    Location = 0x155<1>, name='  NFER' help='PCI Express Device Non-Fatal Error Reporting Enable/Disable.'
    Location = 0x15b<1>, name='  CER' help='PCI Express Device Correctable Error Reporting Enable/Disable.'
    Location = 0x161<1>, name='  CTO' help='PCI Express Completion Timer TO Enable/Disable'
    Location = 0x16d<1>, name='  SEFE' help='Root PCI Express System Error on Fatal Error Enable/Disable.'
    Location = 0x173<1>, name='  SENFE' help='Root PCI Express System Error on Non-Fatal Error Enable/Disable.'
    Location = 0x179<1>, name='  SECE' help='Root PCI Express System Error on Correctable Error Enable/Disable.'
    Location = 0x167<1>, name='  PME Interrupt' help='Root PCI Express PME Interrupt Enable/Disable.'
    Location = 0x17f<1>, name='  PME SCI' help='PCI Express PME SCI Enable/Disable.'
    Location = 0x185<1>, name='  Hot Plug SCI' help='PCI Express Hot Plug SCI Enable/Disable.'
    Location = 0x120<1>, name='PCI Express Root Port 2' help='Control the PCI Express Root Port.'
    Location = 0x12c<1>, name='  VC1 Enable' help='PCI Express Virtual Channel 1 Enable/Disable.'
    Location = 0x18c<1>, name='    VC1/TC Mapping' help='Set Virtual Channel 1 (VC1) to Traffic Class (TC) Mappings'
    Location = 0x126<1>, name='  ASPM' help='Enable PCI Express Active State Power Management settings.'
    Location = 0x132<1>, name='Automatic ASPM' help='Automatically enable ASPM based on reported capabilities and known issues.'
    Location = 0x138<1>, name='ASPM L0s' help='Enable PCIe ASPM L0s.'
    Location = 0x13e<1>, name='ASPM L1' help='Enable PCIe ASPM L1.'
    Location = 0x14a<1>, name='  URR' help='PCI Express Unsupported Request Reporting Enable/Disable.'
    Location = 0x150<1>, name='  FER' help='PCI Express Device Fatal Error Reporting Enable/Disable.'
    Location = 0x156<1>, name='  NFER' help='PCI Express Device Non-Fatal Error Reporting Enable/Disable.'
    Location = 0x15c<1>, name='  CER' help='PCI Express Device Correctable Error Reporting Enable/Disable.'
    Location = 0x162<1>, name='  CTO' help='PCI Express Completion Timer TO Enable/Disable'
    Location = 0x16e<1>, name='  SEFE' help='Root PCI Express System Error on Fatal Error Enable/Disable.'
    Location = 0x174<1>, name='  SENFE' help='Root PCI Express System Error on Non-Fatal Error Enable/Disable.'
    Location = 0x17a<1>, name='  SECE' help='Root PCI Express System Error on Correctable Error Enable/Disable.'
    Location = 0x168<1>, name='  PME Interrupt' help='Root PCI Express PME Interrupt Enable/Disable.'
    Location = 0x180<1>, name='  PME SCI' help='PCI Express PME SCI Enable/Disable.'
    Location = 0x186<1>, name='  Hot Plug SCI' help='PCI Express Hot Plug SCI Enable/Disable.'
    Location = 0x121<1>, name='PCI Express Root Port 3' help='Control the PCI Express Root Port.'
    Location = 0x12d<1>, name='  VC1 Enable' help='PCI Express Virtual Channel 1 Enable/Disable.'
    Location = 0x18d<1>, name='    VC1/TC Mapping' help='Set Virtual Channel 1 (VC1) to Traffic Class (TC) Mappings'
    Location = 0x127<1>, name='  ASPM' help='Enable PCI Express Active State Power Management settings.'
    Location = 0x133<1>, name='Automatic ASPM' help='Automatically enable ASPM based on reported capabilities and known issues.'
    Location = 0x139<1>, name='ASPM L0s' help='Enable PCIe ASPM L0s.'
    Location = 0x13f<1>, name='ASPM L1' help='Enable PCIe ASPM L1.'
    Location = 0x14b<1>, name='  URR' help='PCI Express Unsupported Request Reporting Enable/Disable.'
    Location = 0x151<1>, name='  FER' help='PCI Express Device Fatal Error Reporting Enable/Disable.'
    Location = 0x157<1>, name='  NFER' help='PCI Express Device Non-Fatal Error Reporting Enable/Disable.'
    Location = 0x15d<1>, name='  CER' help='PCI Express Device Correctable Error Reporting Enable/Disable.'
    Location = 0x163<1>, name='  CTO' help='PCI Express Completion Timer TO Enable/Disable'
    Location = 0x16f<1>, name='  SEFE' help='Root PCI Express System Error on Fatal Error Enable/Disable.'
    Location = 0x175<1>, name='  SENFE' help='Root PCI Express System Error on Non-Fatal Error Enable/Disable.'
    Location = 0x17b<1>, name='  SECE' help='Root PCI Express System Error on Correctable Error Enable/Disable.'
    Location = 0x169<1>, name='  PME Interrupt' help='Root PCI Express PME Interrupt Enable/Disable.'
    Location = 0x181<1>, name='  PME SCI' help='PCI Express PME SCI Enable/Disable.'
    Location = 0x187<1>, name='  Hot Plug SCI' help='PCI Express Hot Plug SCI Enable/Disable.'
    Location = 0x122<1>, name='PCI Express Root Port 4' help='Control the PCI Express Root Port.'
    Location = 0x12e<1>, name='  VC1 Enable' help='PCI Express Virtual Channel 1 Enable/Disable.'
    Location = 0x18e<1>, name='    VC1/TC Mapping' help='Set Virtual Channel 1 (VC1) to Traffic Class (TC) Mappings'
    Location = 0x128<1>, name='  ASPM' help='Enable PCI Express Active State Power Management settings.'
    Location = 0x134<1>, name='Automatic ASPM' help='Automatically enable ASPM based on reported capabilities and known issues.'
    Location = 0x13a<1>, name='ASPM L0s' help='Enable PCIe ASPM L0s.'
    Location = 0x140<1>, name='ASPM L1' help='Enable PCIe ASPM L1.'
    Location = 0x14c<1>, name='  URR' help='PCI Express Unsupported Request Reporting Enable/Disable.'
    Location = 0x152<1>, name='  FER' help='PCI Express Device Fatal Error Reporting Enable/Disable.'
    Location = 0x158<1>, name='  NFER' help='PCI Express Device Non-Fatal Error Reporting Enable/Disable.'
    Location = 0x15e<1>, name='  CER' help='PCI Express Device Correctable Error Reporting Enable/Disable.'
    Location = 0x164<1>, name='  CTO' help='PCI Express Completion Timer TO Enable/Disable'
    Location = 0x170<1>, name='  SEFE' help='Root PCI Express System Error on Fatal Error Enable/Disable.'
    Location = 0x176<1>, name='  SENFE' help='Root PCI Express System Error on Non-Fatal Error Enable/Disable.'
    Location = 0x17c<1>, name='  SECE' help='Root PCI Express System Error on Correctable Error Enable/Disable.'
    Location = 0x16a<1>, name='  PME Interrupt' help='Root PCI Express PME Interrupt Enable/Disable.'
    Location = 0x182<1>, name='  PME SCI' help='PCI Express PME SCI Enable/Disable.'
    Location = 0x188<1>, name='  Hot Plug SCI' help='PCI Express Hot Plug SCI Enable/Disable.'
    Location = 0x123<1>, name='PCI Express Root Port 5' help='Control the PCI Express Root Port.'
    Location = 0x12f<1>, name='  VC1 Enable' help='PCI Express Virtual Channel 1 Enable/Disable.'
    Location = 0x18f<1>, name='    VC1/TC Mapping' help='Set Virtual Channel 1 (VC1) to Traffic Class (TC) Mappings'
    Location = 0x129<1>, name='  ASPM' help='Enable PCI Express Active State Power Management settings.'
    Location = 0x135<1>, name='Automatic ASPM' help='Automatically enable ASPM based on reported capabilities and known issues.'
    Location = 0x13b<1>, name='ASPM L0s' help='Enable PCIe ASPM L0s.'
    Location = 0x141<1>, name='ASPM L1' help='Enable PCIe ASPM L1.'
    Location = 0x14d<1>, name='  URR' help='PCI Express Unsupported Request Reporting Enable/Disable.'
    Location = 0x153<1>, name='  FER' help='PCI Express Device Fatal Error Reporting Enable/Disable.'
    Location = 0x159<1>, name='  NFER' help='PCI Express Device Non-Fatal Error Reporting Enable/Disable.'
    Location = 0x15f<1>, name='  CER' help='PCI Express Device Correctable Error Reporting Enable/Disable.'
    Location = 0x165<1>, name='  CTO' help='PCI Express Completion Timer TO Enable/Disable'
    Location = 0x171<1>, name='  SEFE' help='Root PCI Express System Error on Fatal Error Enable/Disable.'
    Location = 0x177<1>, name='  SENFE' help='Root PCI Express System Error on Non-Fatal Error Enable/Disable.'
    Location = 0x17d<1>, name='  SECE' help='Root PCI Express System Error on Correctable Error Enable/Disable.'
    Location = 0x16b<1>, name='  PME Interrupt' help='Root PCI Express PME Interrupt Enable/Disable.'
    Location = 0x183<1>, name='  PME SCI' help='PCI Express PME SCI Enable/Disable.'
    Location = 0x189<1>, name='  Hot Plug SCI' help='PCI Express Hot Plug SCI Enable/Disable.'
    Location = 0x124<1>, name='PCI Express Root Port 6' help='Control the PCI Express Root Port.'
    Location = 0x130<1>, name='  VC1 Enable' help='PCI Express Virtual Channel 1 Enable/Disable.'
    Location = 0x190<1>, name='    VC1/TC Mapping' help='Set Virtual Channel 1 (VC1) to Traffic Class (TC) Mappings'
    Location = 0x12a<1>, name='  ASPM' help='Enable PCI Express Active State Power Management settings.'
    Location = 0x136<1>, name='Automatic ASPM' help='Automatically enable ASPM based on reported capabilities and known issues.'
    Location = 0x13c<1>, name='ASPM L0s' help='Enable PCIe ASPM L0s.'
    Location = 0x142<1>, name='ASPM L1' help='Enable PCIe ASPM L1.'
    Location = 0x14e<1>, name='  URR' help='PCI Express Unsupported Request Reporting Enable/Disable.'
    Location = 0x154<1>, name='  FER' help='PCI Express Device Fatal Error Reporting Enable/Disable.'
    Location = 0x15a<1>, name='  NFER' help='PCI Express Device Non-Fatal Error Reporting Enable/Disable.'
    Location = 0x160<1>, name='  CER' help='PCI Express Device Correctable Error Reporting Enable/Disable.'
    Location = 0x166<1>, name='  CTO' help='PCI Express Completion Timer TO Enable/Disable'
    Location = 0x172<1>, name='  SEFE' help='Root PCI Express System Error on Fatal Error Enable/Disable.'
    Location = 0x178<1>, name='  SENFE' help='Root PCI Express System Error on Non-Fatal Error Enable/Disable.'
    Location = 0x17e<1>, name='  SECE' help='Root PCI Express System Error on Correctable Error Enable/Disable.'
    Location = 0x16c<1>, name='  PME Interrupt' help='Root PCI Express PME Interrupt Enable/Disable.'
    Location = 0x184<1>, name='  PME SCI' help='PCI Express PME SCI Enable/Disable.'
    Location = 0x18a<1>, name='  Hot Plug SCI' help='PCI Express Hot Plug SCI Enable/Disable.'
    Sorry, I couldn't locate the VT flag? :(
    Have vss_volume: <FirmVol position=0x0d0000 size=0x007fb8 where=None [VSS]>
    Creating variable at 0
    Blah: e6 ff 1a 5e 2f e5 15 4c 96 0a 8f 87 40 50 04 b6
    <FirmVol position=0x0d0000 size=0x007fb8 where=None [VSS]> <VSSData len=1 size=0x1fb8>
    <Variable status=0x7f size=0x04c name=ysDiagsBiosData>
    Have vss_volume: <FirmVol position=0x0f3000 size=0x00cfb8 where=None [VSS]>
    Have vss_volume: <FirmVol position=0x000010 size=0x2fffb8 where=[compr at 0x20069] [VSS]>
    Done
    
    partial results of "setup.txt" file
    Code:
        One Of [0x1ad<1>] 'Virtualization Technology'
        \Help text: 'Hardware VT enables a processor feature for running multiple simultaneous Virtual Machines allowing specialized software applications to run in full isolation of each other. HP recommends that this feature remain disabled unless specialized applications are being used.'
         Option 'Enabled' = 0x1 Flags 0x0 Key 0x0
         Option 'Disabled' = 0x0 Flags 0x1 Key 0x0
        End One Of
       End If 
       Grayout If
        EQ [0x85<1>] == 0x2
        EQ [0x86<1>] == 0x1
        AND
       +Suppress If
        EQ [0x21c<1>] == 0x0
    
    vtenable.py For "Patch Value I have tried 0x00, 0x01, 0x0 and 0x1 if that makes a difference.
    Code:
    #!/usr/bin/python
    
    import sys, struct
    
    VSS_OFFSET = 0x0d0048
    VSS_SIZE = 0x1fb8
    
    PATCH_OFFSET = 0x1ad
    PATCH_VALUE = 0x01
    PATCH_VARIABLE = u"Setup"
    
    def hexdump(s,sep=" "):
    return sep.join(map(lambda x: "%02x"%ord(x),s))
    
    def ascii(s):
    s2 = ""
    for c in s:
    if ord(c)<0x20 or ord(c)>0x7e:
    s2 += "."
    else:
    s2 += c
    return s2
    
    def pad(s,c,l):
    if len(s)<l:
    s += c * (l-len(s))
    return s
    
    def chexdump(s,ts=""):
    for i in range(0,len(s),16):
    print ts+"%08x  %s  %s  |%s|"%(i,pad(hexdump(s[i:i+8],' ')," ",23),pad(hexdump(s[i+8:i+16],' ')," ",23),pad(ascii(s[i:i+16])," ",16))
    
    def addup(s):
    if len(s) & 1:
    s = s + "\x00"
    sum = 0
    while len(s):
    sum += struct.unpack("<H",s[:2])[0]
    s = s[2:]
    return sum &0xFFFF
    
    class VAR(object):
    GLOBAL_VARIABLE = "\x61\xdf\xe4\x8b\xca\x93\xd2\x11\xaa\x0d\x00\xe0\x98\x03\x2b\x8c"
    def __init__(self, data):
    hdr = data[:0x22]
    self.magic, self.status, self.attributes, self.nsize, self.dsize, self.guid, self.checksum = struct.unpack("<HHIII16sH", hdr)
    if self.magic != 0x55aa:
    raise ValueError("bad magic 0x%x"%self.magic)
    self.bname = data[0x22:0x22+self.nsize]
    self.name = ''.join(data[0x22:0x22+self.nsize:2])
    self.name = self.name.split("\x00")[0]
    self.value = data[0x22+self.nsize:0x22+self.nsize+self.dsize]
    self.data = data[:0x22+self.nsize+self.dsize]
    cdata = data[:0x20] + "\x00\x00" + data[0x22:]
    fdata = "\xaa\x55\x7f\x00" + cdata[4:0x22+self.nsize+self.dsize]
    self.ccsum = (-addup(fdata)) & 0xFFFF
    #if self.ccsum != self.checksum:
    #raise ValueError("Checksum error")
    def update(self):
    self.nsize = len(self.name) * 2 + 2
    self.dsize = len(self.value)
    self.data = struct.pack("<HHIII16sH", self.magic, self.status, self.attributes, self.nsize, self.dsize, self.guid, 0)
    self.data += self.name.encode('utf-16le') + "\x00\x00"
    self.data += self.value
    fdata = "\xaa\x55\x7f\x00" + self.data[4:0x22+self.nsize+self.dsize]
    self.ccsum = self.checksum = (-addup(fdata)) & 0xFFFF
    self.data = self.data[:0x20] + struct.pack("<H", self.checksum) + self.data[0x22:]
    def showinfo(self, ts=''):
    print ts+"Variable %s"%repr(self.name)
    print ts+" Attributes: 0x%08x"%self.attributes
    print ts+" Status: 0x%02x"%self.status
    if self.guid == self.GLOBAL_VARIABLE:
    print ts+" VendorGUID: EFI_GLOBAL_VARIABLE (%s)"%' '.join('%02x'%ord(c) for c in self.guid)
    else:
    print ts+" VendorGUID: %s"%' '.join('%02x'%ord(c) for c in self.guid)
    print ts+" Checksum: 0x%02x"%self.checksum
    print ts+"  Calculated: 0x%04x"%self.ccsum
    print ts+" Value (0x%x bytes):"%(len(self.value))
    chexdump(self.value, ts+"  ")
    
    print "Loading BIOS..."
    bin = open(sys.argv[1], "rb").read()
    
    print "Loading VSS..."
    vss = bin[VSS_OFFSET:VSS_OFFSET+VSS_SIZE]
    
    if vss[:4] != "$VSS":
    raise ValueError("Invalid VSS signature")
    
    off = 0x10
    
    found = False
    
    while not found and vss[off:off+2] == "\xaa\x55":
    var = VAR(vss[off:])
    if var.name == PATCH_VARIABLE and var.status == 0x7f:
    found = True
    else:
    off += len(var.data)
    
    if not found:
    print "Variable not found!"
    
    print "Old state:"
    var.showinfo()
    
    var.value = var.value[:PATCH_OFFSET] + chr(PATCH_VALUE) + var.value[PATCH_OFFSET+1:]
    var.update()
    print "Patched state:"
    var = VAR(var.data)
    var.showinfo()
    
    print "Updating VSS..."
    vss = vss[:off] + var.data + vss[off+len(var.data):]
    
    print "Updating BIOS..."
    bin = bin[:VSS_OFFSET] + vss + bin[VSS_OFFSET+VSS_SIZE:]
    
    print "Writing output..."
    ofd = open(sys.argv[2], "wb")
    ofd.write(bin)
    ofd.close()
    
    print "Done"
    
    I tried to upload them in a zip file but its not working for me.
     

    Attached Files:

  17. atreyu

    atreyu MDL Junior Member

    Nov 15, 2009
    63
    132
    0
    This affair is been a nightmare, stupid HP!

    Your PATCH_OFFSET = 0x1ad is OK, what could go wrong? I would do this:

    - compare input and output of vtenable.py; there should be 2/3 bytes diff, the last should be a change from 0 to 1
    - get another bios backup to check if changes were commited; here the binary diff can be greater, the check can be done with mercan's python scripts.

    I can double check it if you want, just upload the 3 files (1st backup, vtenable out, 2nd backup) somewhere