Installing Windows 7 on the pure UEFI systems without CSM

Discussion in 'Windows 7' started by PrimeExpert Software, Jan 2, 2020.

  1. Hannspree

    Hannspree MDL Novice

    Aug 10, 2016
    Hi everyone, I'm currently having issues with getting Windows 7 to work without CSM on my HP Envy x360 15m-ds0011dx AMD Ryzen laptop. I had successfully installed Windows 7 on the laptop with CSM enabled, then I had tried a method by Youtuber Bob Pony that had worked on all my other Intel computers, but once I had restarted the HP Envy laptop, it hung at the Starting Windows boot screen, but the logo kept on animating rather then freezing all together, and the Windows 7 logon sound played while still stuck on the Starting Windows screen. I also had the same problem with my Ryzen custom built desktop, but it didn't play the startup sound. I just don't know what to do with how to getting Windows 7 to boot without CSM on my HP Envy. Coincidentally, they both have an AMI BIOS, but I thought that had nothing to do with why it doesn't work. I can't do this by myself, but I really want to use the laptop with Windows 7 without CSM. Please help.
  2. ExtremelyFancyUsername

    ExtremelyFancyUsername MDL Junior Member

    Oct 17, 2018
    Has anyone ever resolved this?
  3. PrimeExpert Software

    Dec 3, 2019
    #43 PrimeExpert Software, Feb 16, 2021
    Last edited: Feb 16, 2021
    Since FlashBoot version 3.2x we have fixed limited display resolution problem (it's no longer restricted to 1024x768 and now reflects actual LCD panel resolution as reported in EDID block), added support for GPU hardware which maps framebuffer to physical memory above 4 Gb boundary, and fixed dual boot problems (Windows Update in Windows 10 no longer overwrites FlashBoot's patch for the UEFI loader of Windows 7). Besides that, we have switched to generic USB3 and generic NVMe drivers for Windows 7 which support all hardware from all vendors.

    Remaining problems:

    1. nVidia GPUs don't work on some motherboards lacking support for VGA arbitration (nVidia drivers report "Code 12" error: "This device cannot find enough free resources that it can use. If you want to use this device, you will need to disable one of the other devices on this system."). AMD GPU cards have no such problem, as their drivers don't depend on legacy VGA resources to be assigned to the GPU device.

    You can view which resources (memory and I/O ports) are assigned to PCI-E devices in your system using Linux command "lspci -vv | more". VGA resources are: 0xA0000 0xC0000 memory range, 0x3B0 0x3DF I/O ports range. Unfortunately, during last few years firmware vendors and hardware suppliers started to exclude VGA arbitration support from PCI-E bridges and their initialization code in firmware (because it's no longer required by Windows 10 and modern versions of Linux).

    Unfortunately, PCI-E bridge configuration is very hardware-dependent, there's no standartized protocol for software control of these devices, realistically only BIOS or UEFI firmware can manage them. Linux tries to do some tricks related to this matter in the vfio driver and GPU passthru code in qemu, but in my experience it oftentimes doesn't work, it's easier to find motherboard with functional VGA arbitration rather than trying to reprogram PCI-E bridges after the BIOS.

    2. Certain UEFI firmware (on some the laptops and tablets, never seen on desktops) throws ACPI_BIOS_ERROR (0xA5) BSoD which becomes visible after applying FlashBoot Pro patch for Windows 7 UEFI loader (without FlashBoot's patch for UEFI loader, Windows 7 just halts on "Starting Windows" screen before the logo animation starts, because it's unable to switch to classic VGA 640x480x16 video mode to draw the BSoD). Examples why this BSoD might happen:

    • References to I2C resources in DSDT table. These ones can be removed, but then Windows 7 is unable to query battery status (battery charge level).
    • Duplicate definitions between DSDT and SSDTs. Windows 8+ tolerates that, Windows 7 throws ACPI_BIOS_ERROR BSoD instead. These duplicates usually can be removed without any negative consequences.
    • Zero-length array. Depending on context, it can be either removed or replaced by array consisting from one zero byte. This is something related on nVidia dual graphics card support. Replaced it without any issues at all (all hardware works as expected).
    • Reference to power resource of some yet-undeclared device. Windows 10 tolerates that, Windows 7 throws the same ACPI error BSoD again. Removing the reference fixes the issue completely.

    Sometimes it's possible to resolve such issues by preparing and sideloading modified ACPI tables (UEFI loader for Windows 7, when patched by FlashBoot Pro, loads ACPI override tables from \EFI\Boot\ACPITABL.DAT file on the partition it boots from). Out of 9 users who asked for this, there were 8 cases which were resolved successfuly and one case when the solution wasn't found (Windows 7 with modified ACPI tables hangs on their laptop). We have a special setup for this purpose: checked build of Windows 7 in VMware Workstation with overriden ACPI tables and attached kernel debugger on the host (but actually rarely deal with this kind of thing, it's not very common).
  4. ExtremelyFancyUsername

    ExtremelyFancyUsername MDL Junior Member

    Oct 17, 2018
    tl;dr: forget about getting Nvidia GPUs working under Win7 on a Crosshair VIII Dark Hero. Or better yet: forget about getting Win7 to work at all on it.

    God damn, guess I'll have to get used to Wins**t 10 then.
  5. shhnedo

    shhnedo MDL Addicted

    Mar 20, 2011
    You can very easily get an Edu iso, integrate latest updates + directx9c + vc runtimes, debloat the iso with MSMG toolkit and be on your way. Not to mention you're crippling the platform with windows 7.
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  6. csvw

    csvw MDL Novice

    Aug 4, 2009
    I've seen the A5 blue screen on some brand desktops, e.g. dell optiplex 5060,7060,5070,7070,7080 etc.