Windows 7/8.1/10 EFI boot nvidia geforce 320m

Discussion in 'Windows, Linux & Others on the Mac' started by Pockets69, Jan 29, 2016.

  1. Pockets69, Jan 29, 2016
    Last edited: Jan 29, 2016

    Pockets69 macrumors newbie

    Joined:
    Jan 7, 2016
    #1
    Hello guys

    I know this has been extensively discussed previously, in this thread (http://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?!
     
  2. Pockets69 thread starter macrumors newbie

    Joined:
    Jan 7, 2016
    #2
    210 views and no replies I know the writing is pretty extensive, and that some of the technical terms are not for everybody, BUT, at least someone who was on the old thread, could chime in.

    Back to the case at hand, I realize that at least for ubuntu (and i haven't tried it with windows but will do so) issuing the two mm commands is not necessary, the only necessary command is the VGA enable on the pci bridge meaning i only need to mm 0017003E 8 -PCI and that gives me an image on ubuntu, now the question is, is the second mm command (the I/O space command) on the display controller somehow messing with the first not allowing the display to initialize?

    Will be back with updates, meanwhile people please give me your ideas/opinions, If this is successfully we may find a way to efi boot windows with graphics.
     
  3. ApolloBoy macrumors 6502a

    ApolloBoy

    Joined:
    Apr 16, 2015
    Location:
    San Jose, CA
    #3
    I have the same MacBook as you and I was able to get Windows 7 on it just fine, I just did a normal Boot Camp installation and everything worked.
     
  4. Pockets69 thread starter macrumors newbie

    Joined:
    Jan 7, 2016
    #4
    ApolloBoy EFI booting is not BIOS/CSM/Legacy booting.
     
  5. DearthnVader macrumors regular

    DearthnVader

    Joined:
    Dec 17, 2015
    Location:
    Red Springs, NC
    #5
    Apple will refer you to Microsoft, Microsoft will refer you to nVidia, nVidia will refer you to Apple.

    No real support for EFI booting of Windows on Mac's.
     
  6. Pockets69, Feb 3, 2016
    Last edited: Feb 3, 2016

    Pockets69 thread starter macrumors newbie

    Joined:
    Jan 7, 2016
    #6
    ^^ very true, but that is exactly why i haven't posted on, apple support, nvidia forums, or microsoft technet forums, see why I posted here?

    Either way I expected to have a few replies from people that participated on the original thread, yet none, I still though am puzzled why the same technique works so well on ubuntu and other linux distributions, and the same fails on windows 7/8.1/10...

    Also DearthnVader when you say that there is no EFI support for windows, I believe recent macbooks (more precisely the Air, or at least the Air, don't know if there are others) that apple dropped bootcamp support and efi booting windows 8.1 and 10 will be the norm now.
     
  7. dssence macrumors newbie

    Joined:
    Nov 2, 2008
    #7
    My friend I ended up here after reading some threads about enabling EFI boot for windows say 8, 10 and whatever comes along..
    So story short I have a macbook model 6,2 Arrandale 1st gen with intel HD graphics, and nvidia GT 330M.
    This has been so annoying for me , first of all I installed with Legacy mode and everything went fine only 1 gpu is being detected I can install nvidia drivers fine without moding dev strings. I even managed to overclokc using nvidia inspector.

    Then I said why not install in EFI mode. I went ahead and installed latest windows 10 build. What happened was as follows. I changed partition to GPT using gdisk created partitions from osx. Some times I came to the error . Windows can't modify boot configuration error , over and over. Until hours of reading and trying. I came to realise stupid Apple has a so much closed internal implementation of EFI on these machines different to what EFI specification is told.
    So to make it short, so that windows installer can update boot configuration,which in fact is nothing more than , creating the BCD enviroment boot files on EFI partition. I had to make 2 NVRAM resets until backlight it's set to maximum. And again boot over and windows installation reboots fine. Somehow resetting NVRAM , resets some flags on the efi partition.
    Hours and endless hours , trying to install. The only working solution to install EFI mode . Is

    1 - NVRAM reset twice.
    2- diskpart creating EFI partition, MSR partition , and windows partition , assigning letters to each of the partitions, then run windows setup ,and allow to finish.

    Problem is once I log to the finished installation. I get both Video cards with exclamation marks . I can't even install drivers on Nvidia even using modified drivers , and disabling driver signing. Still gives error 43.

    I even tried using refind UEFI shell with these commands.

    mm 01000004 7 -pci
    mm 0001003e 8 -pci
    mm 750 2 -io

    I understand using pci region registers, but If you can lead me a hand about -IO space registers. I'd be willing to make more tests. How can I decipher which IO registers are being used for either card intel HD or nvidia. Intel HD won't be using any PCI Bridge as it's integrated on the CPU die.

    Anyways.. I'll wait for your answer .. thanks!
     

Share This Page