Hello guys
I know this has been extensively discussed previously, in this thread (https://forums.macrumors.com/threads/win7-x64-booting-natively-via-efi-no-bios-emulation.696523/) although after reading 43 pages of posts, I still am unable to get any of the windows operating system working correctly.
I have gone through a lot of methods but none seem to work, and I am thinking this may be due to the damn GPU, I would love for people that have gone through that thread and actually tried it whether they achieved that uefi boot or not to chime in and help or add any input, i will list the methods i used for the last 3 months of trial and error (yes 3 months reading threads and trying methods to no avail).
this is my machine by the way:
Macbook 7,1 nvidia geforce 320m(which for me is the culprit of all this trouble) a 1tb hdd, and 2gb of ram (soon to be upgraded to 16gb)
I started by trying a regular windows 7 boot, since I was able to install windows 7 in EFI mode on ALL my computers ( which are all UEFI computers ) it got stuck on loading files (from the usb) I though well it doesn't work (little did I know it was working, but since there was no screen I dismissed it).
Moved to windows 8.1 it booted and the screen was working so I proceed to install it went through the setup got to the desktop and it was working, that was until I installed my bootcamp drivers, as soon as I installed the bootcamp driver one of two things started to happen, first they would install, request a reboot, which I did, and upon reboot black screen after the windows 8 flag... other times instead as soon as the gpu drivers were installed what did I get? instant black screen, and the only way was to force shutdown, as soon as i powered on, same windows 8 flag and bam blackscreen.
I am not even going to mention windows 10, because it is the same as windows 8.1
I got frustrated... then curious, and that was when I came across that thread up there, I have gone through it in the last few months and attempted almost every trick in the book but still was unable to make any of the windows functioning correctly.
So back to windows 7 by reading the thread I realized that there were some incompatibilities between how Apple implemented EFI and how windows expect some things to be done by EFI before handing control to the bootloader.
With that said I tried to use windows PE boot environment to start the setup of windows 7, and that actually worked! I could see and select where to install windows 7, the second part of the installation was completely blind, but as was said in the thread it completes even though the user has no image on the screen, and since there is no need for user interaction I was ok with that, the Macbook eventually rebooted and I was ready to do the first boot for configuration username password etc, Ah I need to mention that the PCI registers were modified before the bootup so with the registers modified I was going to do my first boot but I only got a blackscreen, I moved to another strategy, slipstream the nvidia drivers into the windows 7 installation and do an unattended install, which meant that, 1- even though I could not see anything on the screen, windows 7 would install without any interaction from the beginning of the installation to desktop, and 2- with the slipstreamed nvidia drivers maybe I could solve the black screen issues on boot.
Well I slipstreamed the drivers and did an unattended install once it was time to boot to desktop... again black screen but this time it was different which probably meant that nvidia drivers were successfully installed during the unattended install, I had a bootscreen and then the backlight was gone... the windows proceeded to boot to desktop, but i was unable to see anything, but was able to blindly shutdown the PC, so yeah successful boot to the desktop, but no image on the screen.
When it came to windows 8.1 the same happened, I didn't do the unattended install as I could see everything that was going on, I also didn't do the slipstreaming of the nvidia drivers because I could install them through the nvidia installer once windows 8.1 booted, after installing the driver on windows 8.1 and getting the dreaded blackscreen I force shutdown modified the PCI Registers and tried to boot windows 8.1 again, same windows 8 flag same blackscreen and then a blackscreen with no backlight again i assumed it booted to the desktop but was unable to verify that.
Finally windows 10, same as windows 8.1, I don't think i need to describe it again...
This brings me to a point, let's be a bit more technical: let's talk PCI registers, I have modified my PCI registers according to the thread for my machine, since every machine (even though they have the same specs) is different i had to find my pci registers, i found the pci bridge (i had two), 00 17 00 for one of the pci bridges and 00 15 00 for the other, now I need to find which one is the pci bridge that refers to my gpu the geforce 320m which has the pci register 02 00 00, now that i found the registers i need to see which pci bridge is related to gpu in my case i could see that 00 17 00 was the correct pci bridge due to it having the id 02 on Bus Numbers secundary (which is the id of the pci register that is related to the gpu) so the two registers we need to modify to actually have an image on windows 7 and gpu acceleration on windows 8 and 10 are 00 17 00 and the 02 00 00, then we need to modify a few parameters on the pci bridge and on the display controller, first the pci bridge (00 17 00) we want the pci bridge to have vga enable that is on the Bridge control (3E) section, so we do mm 0017003E 8 -PCI with this command VGA is enabled in the PCI bridge, then we need to modify the second register the display controller (02 00 00) we need to allow I/O space access enable and that is on command (4) so we type mm 02000004 7 -PCI and like that we enable I/O Space access with these two settings in theory we would be able to have image / graphics acceleration on every version of windows, BUT again it isn't happening...
You maybe saying, "well maybe the registers are wrong!!!" Well i wish that were true! the registers and the modifications are correct, you see the same hack/mod is also necessary to run Ubuntu once you install the proprietary nvidia drivers in ubuntu, you get the dreaded blackscreen, that i have mentioned so many times... it turns out that if i enable those register hacks and then boot ubuntu, TADAA!!! ubuntu works!!!
Now what the **** is going on i am losing my sanity over this, I know for a fact that the registers are OK because they work on ubuntu with the proprietary nvidia drivers, but what about windows? why are they not working? is it a problem of the driver? is it some sort of bug that doesn't allow for this to work?
I don't know what else to do over here, I feel i am completely clueless and i have no idea what else to do, and the main problem is that the other thread is so old that i didn't want to grave digg it, and most people that posted on that thread are not around anymore which is unfortunate, and i have no one to bounce some ideas or pick my brain.
Could you please guys help me out here
Pockets
EDIT> TL;DR modifying the same pci registers windows doesn't work ubuntu does , WTF?!
I know this has been extensively discussed previously, in this thread (https://forums.macrumors.com/threads/win7-x64-booting-natively-via-efi-no-bios-emulation.696523/) although after reading 43 pages of posts, I still am unable to get any of the windows operating system working correctly.
I have gone through a lot of methods but none seem to work, and I am thinking this may be due to the damn GPU, I would love for people that have gone through that thread and actually tried it whether they achieved that uefi boot or not to chime in and help or add any input, i will list the methods i used for the last 3 months of trial and error (yes 3 months reading threads and trying methods to no avail).
this is my machine by the way:
Macbook 7,1 nvidia geforce 320m(which for me is the culprit of all this trouble) a 1tb hdd, and 2gb of ram (soon to be upgraded to 16gb)
I started by trying a regular windows 7 boot, since I was able to install windows 7 in EFI mode on ALL my computers ( which are all UEFI computers ) it got stuck on loading files (from the usb) I though well it doesn't work (little did I know it was working, but since there was no screen I dismissed it).
Moved to windows 8.1 it booted and the screen was working so I proceed to install it went through the setup got to the desktop and it was working, that was until I installed my bootcamp drivers, as soon as I installed the bootcamp driver one of two things started to happen, first they would install, request a reboot, which I did, and upon reboot black screen after the windows 8 flag... other times instead as soon as the gpu drivers were installed what did I get? instant black screen, and the only way was to force shutdown, as soon as i powered on, same windows 8 flag and bam blackscreen.
I am not even going to mention windows 10, because it is the same as windows 8.1
I got frustrated... then curious, and that was when I came across that thread up there, I have gone through it in the last few months and attempted almost every trick in the book but still was unable to make any of the windows functioning correctly.
So back to windows 7 by reading the thread I realized that there were some incompatibilities between how Apple implemented EFI and how windows expect some things to be done by EFI before handing control to the bootloader.
With that said I tried to use windows PE boot environment to start the setup of windows 7, and that actually worked! I could see and select where to install windows 7, the second part of the installation was completely blind, but as was said in the thread it completes even though the user has no image on the screen, and since there is no need for user interaction I was ok with that, the Macbook eventually rebooted and I was ready to do the first boot for configuration username password etc, Ah I need to mention that the PCI registers were modified before the bootup so with the registers modified I was going to do my first boot but I only got a blackscreen, I moved to another strategy, slipstream the nvidia drivers into the windows 7 installation and do an unattended install, which meant that, 1- even though I could not see anything on the screen, windows 7 would install without any interaction from the beginning of the installation to desktop, and 2- with the slipstreamed nvidia drivers maybe I could solve the black screen issues on boot.
Well I slipstreamed the drivers and did an unattended install once it was time to boot to desktop... again black screen but this time it was different which probably meant that nvidia drivers were successfully installed during the unattended install, I had a bootscreen and then the backlight was gone... the windows proceeded to boot to desktop, but i was unable to see anything, but was able to blindly shutdown the PC, so yeah successful boot to the desktop, but no image on the screen.
When it came to windows 8.1 the same happened, I didn't do the unattended install as I could see everything that was going on, I also didn't do the slipstreaming of the nvidia drivers because I could install them through the nvidia installer once windows 8.1 booted, after installing the driver on windows 8.1 and getting the dreaded blackscreen I force shutdown modified the PCI Registers and tried to boot windows 8.1 again, same windows 8 flag same blackscreen and then a blackscreen with no backlight again i assumed it booted to the desktop but was unable to verify that.
Finally windows 10, same as windows 8.1, I don't think i need to describe it again...
This brings me to a point, let's be a bit more technical: let's talk PCI registers, I have modified my PCI registers according to the thread for my machine, since every machine (even though they have the same specs) is different i had to find my pci registers, i found the pci bridge (i had two), 00 17 00 for one of the pci bridges and 00 15 00 for the other, now I need to find which one is the pci bridge that refers to my gpu the geforce 320m which has the pci register 02 00 00, now that i found the registers i need to see which pci bridge is related to gpu in my case i could see that 00 17 00 was the correct pci bridge due to it having the id 02 on Bus Numbers secundary (which is the id of the pci register that is related to the gpu) so the two registers we need to modify to actually have an image on windows 7 and gpu acceleration on windows 8 and 10 are 00 17 00 and the 02 00 00, then we need to modify a few parameters on the pci bridge and on the display controller, first the pci bridge (00 17 00) we want the pci bridge to have vga enable that is on the Bridge control (3E) section, so we do mm 0017003E 8 -PCI with this command VGA is enabled in the PCI bridge, then we need to modify the second register the display controller (02 00 00) we need to allow I/O space access enable and that is on command (4) so we type mm 02000004 7 -PCI and like that we enable I/O Space access with these two settings in theory we would be able to have image / graphics acceleration on every version of windows, BUT again it isn't happening...
You maybe saying, "well maybe the registers are wrong!!!" Well i wish that were true! the registers and the modifications are correct, you see the same hack/mod is also necessary to run Ubuntu once you install the proprietary nvidia drivers in ubuntu, you get the dreaded blackscreen, that i have mentioned so many times... it turns out that if i enable those register hacks and then boot ubuntu, TADAA!!! ubuntu works!!!
Now what the **** is going on i am losing my sanity over this, I know for a fact that the registers are OK because they work on ubuntu with the proprietary nvidia drivers, but what about windows? why are they not working? is it a problem of the driver? is it some sort of bug that doesn't allow for this to work?
I don't know what else to do over here, I feel i am completely clueless and i have no idea what else to do, and the main problem is that the other thread is so old that i didn't want to grave digg it, and most people that posted on that thread are not around anymore which is unfortunate, and i have no one to bounce some ideas or pick my brain.
Could you please guys help me out here
Pockets
EDIT> TL;DR modifying the same pci registers windows doesn't work ubuntu does , WTF?!
Last edited: