Jump to content

[HOWTO] Boot Macs with Intel Chipset in AHCI Win7 Vista XP Linux


  • Please log in to reply
405 replies to this topic

#41
johnsock

johnsock

    InsanelyMac Protégé

  • Members
  • Pip
  • 44 posts
I have managed to get AHCI enabled (for real, not in legacy mode) in Vista 64 without using GRUB, rEFIt, or any extra partitions. I did this by modifying the MBR to perform the same configuration that is done with the modified GRUB stage1 loader. The end result is the ability to boot into Vista without going through any extra boot loaders and having AHCI enabled after installing the Intel Matrix storage drivers (without forcing the install). Also, I have access to all 6 SATA ports with NCQ capability. This was my primary motivation so that my SATA optical drive could be connected to one of the SATA_ODD ports on the Mac Pro motherboard and so that my Intel X25-E could operate full speed with NCQ.

I have not tried this on anything other than my Mac Pro (2006 model) running Vista 64 Enterprise. If anyone else is interested in this I'd be willing to work on trying it on other configurations and coming up with a guide (or possibly a utility program) for making it easy.

I want to thank ludacrisvp for this awesome guide that was my starting point on the project, pipomolo42 for the assembly code for writing to the configuration registers in the controller, and thestarman3 (http://www.geocities...br/Win2kmbr.htm) for a great disassembly of an MBR. I just put the pieces together and figured out how to fit some additional code in the limited space available in the MBR.

If anyone is interested in helping, I'd like to check the MBRs from other versions of Windows and see if the code works on other Mac models. I will post some screenshots so someone can see that I'm not blowing smoke (or tell me if I'm wrong) and more details on the process if anyone is interested. If there is enough interest, let me know and I'll start a new thread. If I'm barking up the wrong tree or posting in the wrong place, tell me to piss off and I will, with no hard feelings.

#42
ludacrisvp

ludacrisvp

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 374 posts
  • Gender:Male
  • Location:USA
@johnsock - This is a perfect place to post what you have so far. I have the 2008 Mac Pro so I could test your configuration as well to see if it works right on the newer machines. It would be nice to figure out a way to modify the Vista installation disc so that it has the modified loader to load the install from SATA optical drives.

As far as proof goes simply post an image similar to the one that I have below I have all 6 SATA ports in use and one of the IDE in use.
Attached File  AHCI_in_vista.JPG   135.71KB   129 downloads

The modifications that you have made to the MBR would be interesting to look at. I briefly messed around with direct modifications to the MBR via a hex editor but they were not successful.
Let me know if you need any more information from my system since I have multiple OS running.
Vista 64 SP1
Windows 7 Beta 64
Windows XP Pro 32 SP3
Leo
Snow Leo
Each have their own dedicated drive.
XP is installed on an IDE drive, all others are on SATA.

We might be able to easily make a utility from one of the Vista activation hack utilities.
I will have to look into it more on my end.

#43
mchaggis

mchaggis

    InsanelyMac Protégé

  • Members
  • Pip
  • 5 posts
Firstly, thanks a million to ludacrisvp for the OP, it's a beacon of light ;) I haven't tried it yet though for 2 reasons: firstly it would be for my work computer and I can't afford the time either to do the procedure or for it not to work right now. Secondly, I have one of the new 09 Mac Pros so I wasn't sure if the GRUB module would work with the new chipset/southbridge. Any ideas?

And to johnsock - your method certainly sounds a lot simpler. If you have the time I'm sure I wouldn't be the only one offering to have your proverbial babies if you could come up with something relatively usable ;)

If either of you (or anyone else) has something working and want to test it on an 09 Mac Pro, feel free to get in touch and I can test it for you.

As an aside: I installed Vista x64 without using Bootcamp (partitioned as GPT) and it booted fine, but still no AHCI. Can someone explain at what point the SATA controller is put into legacy mode in this config? It would seem to me (as a techy but without much knowledge of EFI and bootloaders) that Mac EFI must default to legacy mode but MacOS X must enable it during boot. Isn't this weird? Would there be any way of getting rEFIt to enable AHCI mode prior to a boot loader running? Like I say, I don't know a huge amount about this but if it helps, great...

#44
johnsock

johnsock

    InsanelyMac Protégé

  • Members
  • Pip
  • 44 posts
I'm glad to see some interest in this. I'd definitely like to come up with a simple solution that could be carried out by the average user. The idea crossed my mind about modifying the Windows install disc as well and I think it should be possible. I think that should be an ultimate goal once we have verified that it works on multiple configurations.

Here is a screen capture showing the controller and drives in AHCI mode, both in device manager and in the Intel Matrix manager. I also included CPU-Z and Windows Information so you can see it is a 2006 model Mac Pro running Vista Enterprise x64. I have three hard drives connected to the standard SATA ports and a DVD burner connected to one of the ODD_SATA ports on the motherboard. I don't have any PATA devices, but the ports still show up in device manager.

Attached File  AHCI.JPG   205KB   175 downloads

The drives on ports 0 & 1 are a RAID0 array containing OSX Leopard. The drive on port 3 contains Vista. The Vista drive was prepared using the Bootcamp configuration utility in Leopard so it only contains the 200MB EFI partition and the NTFS partition for windows. It is formatted GPT and is technically a hybrid GPT/MBR disk as is normal when using Bootcamp.

Here is a summary of what I did to get this working:

1. Use Bootcamp Assistant to create Windows partition on separate drive.
2. Install Vista using normal Bootcamp method, formatting the partition as NTFS during setup.
3. Install Bootcamp drivers from Leopard DVD and then update/install any other drivers needed.
4. Install 'Standard AHCI 1.0 Controller' drivers from Vista. This requires forcing a driver update manually and will result in a warning that the hardware doesn't appear to be supported.
5. Reboot Vista and allow device detection to happen, resulting in another reboot. This will get the generic Microsoft AHCI driver installed which gives access to the ODD_SATA ports, but all SATA ports still operate in legacy mode.
6. Once everything was verified working, I copied the MBR from the Vista disk and modified it with the code that modifies the port mapping register on the ICH for AHCI non-combined mode.
7. Overwrite MBR on Vista disk with my modified one and reboot
8. Allow another round of device detection to run its course and reboot. This will not actually change much, it just causes Vista to see the new PCI identifier for the AHCI mode controller and reinstalls the Microsoft AHCI driver and re-detects all SATA devices. At this point the Microsoft AHCI driver is running normally (not forced) but all devices are still seen by the OS as legacy mode devices.
9. In order to force windows to redetect the SATA devices I installed the Intel Matrix Storage drivers. This was done from the installer program, not using the .inf method. This works because the ICH is now recognized with the correct PCI identifier.
10.After another reboot and another round of device detection, all devices are seen in AHCI mode and all features are enabled.

The only thing I'm doing differently than the rEFIt/GRUB method is placing the configuration code in the MBR instead of in the GRUB stage1 loader. Here is an explanation of how I modified the MBR to make this happen:

1. Copy MBR from Windows disk:
- sudo dd if=/dev/disk3 of=./original.mbr bs=1 count=446
- make sure that you substitute the proper disk number where I have disk3 above!
- this will make a 446 byte file containing the boot code. Don't get the entire 512 byte sector because the other bytes contain your partition table. If you jack up the partition table you won't be able to boot Windows.
2. I used the DOS DEBUG program to unassemble the boot code so that I could modify it. I'm not going to detail that process here, but I will be happy to elaborate in another post if anyone is interested. Long story short: there are only 3 unused bytes in the Vista boot code and the code for programming the configuration registers need 17 bytes. Fortunately, the boot code also contains text for some error messages: "Invalid partition table", "Error loading operating system", and "Missing operating system". These seemed a bit wordy for me, so I changed them to "Bad partition table", "Bad OS", and "No OS" respectively. This freed up a whopping 47 bytes that I could use for additional code.
3. This additional space needs to be contiguous so I moved my newly modified text to the end of the MBR code and then modified the pointers used in the boot program so that it could still find them. This put some empty space in-between the actual boot program and the error message text.
4. After examining the original MBR boot code I decided that the best place to put the AHCI configuration code was at the beginning, before jumping into the standard boot program. This meant I had to move the entire program down 47 bytes, placing the empty bytes at the beginning of the file. This required changing a few pointers in the original code so it would still run properly, but I got it working with a minimal effort.
5. I then put the code for AHCI configuration at the start of the MBR file and filled in the rest of the space with 0x90 (NOP opcode for you assembly language programmers) so that it would run my code at the beginning and then continue right on with the standard boot code afterwards.
6. Then, I wrote the modified MBR to the disk:
- sudo fdisk -u -f ahci.mbr /dev/rdisk3
- again, make sure you use the correct disk where I have rdisk3 above
- Also, you have to use rdisk instead of disk so that fdisk can access the RAW drive
7. After that I was able to reboot into Vista using AHCI mode

Credit goes to pipomolo42 for the original AHCI configuration modification for GRUB. The code I used was blatantly taken from his GRUB patch file although I did verify it against the 631xESB/632xESB I/O Controller Hub Datasheet and I understand how and why it works now.
Also, I must give mad props to the guys at twocanoes, authors of the awesome Winclone utility for the methods used for reading and writing the MBR from within OS X.

For those of you who want to try this out, I see a couple of issues. First, I know that the Vista MBR is not the same as the XP MBR, so my modified one will most likely not work on XP. I'd be happy to attempt this on an XP MBR if someone can get me one. Second, I can't say for sure if all Vista MBRs are the same. I suspect that they are, but we would need to verify it. I know they are different for non-English versions of Vista because the error messages are different, but the actual code is probably the same. This is something else we would have to verify. Lastly, I don't know what the policy is for posting MBR code in this forum. What do you think, ludacrisvp? If it's allowed, I can post links to my original MBR (for comparison to yours) and to the one I have modified (for testing). I know that the AHCI code should work on Mac Pro models up through 2008 because the configuration registers are the same. I'm not sure what ICH the 2009 model has (is it ICH10?) but if someone can let me know I'll look into it. ICH10 should work the same according to the datasheet.
My next plan is to clean up the code a bit and then try my luck with getting this to work on my Santa Rosa MacBook Pro. In the mean time, PM me and I'll send you the MBR files I have so we can move forward.
If you need any additional detail on anything, let me know and I'll get back with an answer as soon as possible.

CK

EDIT:
The final 6 bytes of the MBR need to be copied over from your original MBR to make this work. This is because four of these bytes make up a disk signature that is stored in the Windows registry. If the signature in the MBR doesn't match the one in the registry, Windows will not boot. Thanks to mchaggis and ludacrisvp for pointing this out. They both noticed it when trying to use the modified MBR containing the signature for my disk. I was aware of this but didn't think about it until they pointed it out.

#45
fridgeymonster3

fridgeymonster3

    InsanelyMac Protégé

  • Just Joined
  • Pip
  • 2 posts
@ludacrisvp... So, I'm too stuck at the find /boot/grub/stage1 command. I have a screenshot of gparted which I believe shows that I have a 200 MB partition at the beginning of the drive. Can someone please help with what the command line would be and whether my 200 MB FAT32 partition is on the beginning of the drive? Thanks!

Attached File  gparted.jpg   54.91KB   33 downloads

Attached Files



#46
mchaggis

mchaggis

    InsanelyMac Protégé

  • Members
  • Pip
  • 5 posts
johsock: yes the 09 Mac Pro does use ICH10 (http://www.intel.com...f/xeon-5500.pdf).

Is there a reason for having to do so much installing of drivers and restarting? Is it just because the Intel SMB driver comes as an app and will only install if it can see the correct device?

Looking forward to trying this ;)

#47
johnsock

johnsock

    InsanelyMac Protégé

  • Members
  • Pip
  • 44 posts

johsock: yes the 09 Mac Pro does use ICH10 (http://www.intel.com...f/xeon-5500.pdf).

Is there a reason for having to do so much installing of drivers and restarting? Is it just because the Intel SMB driver comes as an app and will only install if it can see the correct device?

Looking forward to trying this :hysterical:


I checked the ICH10 datasheet and it should work just the same. I'm interested to see if you can get it working.

All the driver installing and restarting was partly due to the fact that I used the Intel installer app and partly because I was trying to be careful. We may be able to come up with a more streamlined approach (I have some ideas) once the MBR method is verified working for you. I listed the exact steps I took so that I could reproduce it.

Something else I thought of that I haven't looked into is installing Windows on the same drive as OS X. I'm not sure how this affects the MBR, but I'm going to look into it.

EDIT: I successfully patched the XP MBR to enable AHCI and was able to get it working on a Santa Rosa (2007) MacBook Pro with Windows installed on the same drive as OS X. The XP MBR had more free space available, so the patching was easier. Also, the driver installation was done with fewer steps this time. I think the easier driver install can be applied to Vista as well, but I'm going to test it out to make sure. I'll post results when I have them.
I'll post modified MBR files to the forum shortly. I'm waiting on some test results. If you want to try it out earier, PM me for details and MBR files.

#48
ludacrisvp

ludacrisvp

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 374 posts
  • Gender:Male
  • Location:USA
I have tested the Vista loader modified MBR for Johnsock, I had to make some changes to his code so he will have to take a look at it to see why it needed to be changed to work for my Vista. We are hoping that it was just the difference because he is on original MP and I have MP 08.

Driver installation for vista is really actually only a 3 step process.
Change the registry key, reboot into OSX or Linux and flash the new MBR that he made,
reboot into Vista and run the installation application for the Intel Matrix storage drivers.

The forcing driver installs is only needed in XP because the registry cannot be modified to tell XP to look for AHCI mode controllers at boot.

@fridgeymonster3 - we are currently working on a better solution that will avoid the GRUB loader and extra partitions.
Yes, your EFI partition is the first one on the drive.

#49
mchaggis

mchaggis

    InsanelyMac Protégé

  • Members
  • Pip
  • 5 posts
I got it working too, but using the 'original' MBR (good_ahci.mbr) from johnsock. I didn't do it exactly like in the post above though.

Comparing the MBRs from 3 different Vista installs on different disks (johnsock's plus 2 of mine: one Bootcamp with OSX on the same disk; the other no Bootcamp, straight Vista) I found they were identical with the exception of the final 6 bytes (0x0 to 0x1B7 were identical). So I dd'd the first 0x1B8 (440 bytes) of johnsock's code onto /dev/diskX, not rdisk as suggested - when I umounted the disk in question /dev/rdiskX was no longer available. Is there a way to dd onto a mounted disk in MacOS? It told me the resource was unavailable until I umounted it.

The first attempt gave a BSOD (but too fast to see the code). Before trying this I'd installed the AHCI driver as suggested. I then tried again with 'Last Good Conf' so the AHCI driver was no longer installed. This worked! It detected the AHCI devices at startup, then I loaded the Intel Storage Matrix driver and no complaints.

ISM when opened shows a tree for the AHCI device with all my attached SATA drives underneath it, including NCQ enabled. I'm going to try it on the other disk (MacOS + Vista BootCamp) soon, but I'm going to get a problem dd'ing to the active disk.

Is this why you use fdisk by any chance? If you're wondering, I used dd because I know exactly what it does - I wasn't sure if fdisk might try to overwrite the whole MBR with only 440 bytes of data and lose the bytes which seem to be unique per disk.

More to come...

#50
mchaggis

mchaggis

    InsanelyMac Protégé

  • Members
  • Pip
  • 5 posts
It seems to be working on my main disk now too. The process was similar, but this time I tried not installing the MS AHCI drivers before laying the patch. This resulted in a BSOD (no driver, I presume). I then had to re-lay the original MBR, boot back into Windows and install the MS AHCI drivers (I did it only 1 of the 2 SATA devices shown, the one with my HD attached to it). Then I re-relaid the patched MBR, booted into Windows and it detected the AHCI device. From then on it was plain-sailing, I just repeated the process for the second SATA controller. For some reason my 09 Mac Pro presents a 2-port SATA controller and a 4-port SATA controller separately, which is why I had to do it twice.

For reference this time I laid the MBR patch using a linux LiveCD and dd. The patch was the 440 byte version I modified (by removing the last 6 bytes), rather than the 446 byte original patch from johnsock.

The main stumbling block seems to be Windows drivers, and getting everything set up in the right order so Windows knows to use the right one after you transition to AHCI mode.

Edit: I've since realised that the '2-port SATA controller' has not been picked up as SATA/AHCI, it still seems to be operating in legacy mode. I presume the original code was written to enable one device which controls all 4 internal HD ports AND the 2 optical ports on the older Macs; wheras Apple seems to have put 2 controllers on the 09 Mac Pro - one for the internal bays and one for the optical ports. That sound plausible? This probably contributed to my BSOD problems when I tried to install it the second time - I may have installed the MS AHCI driver on the wrong one of the 2 available ports on my first attempt.

#51
johnsock

johnsock

    InsanelyMac Protégé

  • Members
  • Pip
  • 44 posts

I got it working too, but using the 'original' MBR (good_ahci.mbr) from johnsock. I didn't do it exactly like in the post above though.

Comparing the MBRs from 3 different Vista installs on different disks (johnsock's plus 2 of mine: one Bootcamp with OSX on the same disk; the other no Bootcamp, straight Vista) I found they were identical with the exception of the final 6 bytes (0x0 to 0x1B7 were identical). So I dd'd the first 0x1B8 (440 bytes) of johnsock's code onto /dev/diskX, not rdisk as suggested - when I umounted the disk in question /dev/rdiskX was no longer available. Is there a way to dd onto a mounted disk in MacOS? It told me the resource was unavailable until I umounted it.

The first attempt gave a BSOD (but too fast to see the code). Before trying this I'd installed the AHCI driver as suggested. I then tried again with 'Last Good Conf' so the AHCI driver was no longer installed. This worked! It detected the AHCI devices at startup, then I loaded the Intel Storage Matrix driver and no complaints.

ISM when opened shows a tree for the AHCI device with all my attached SATA drives underneath it, including NCQ enabled. I'm going to try it on the other disk (MacOS + Vista BootCamp) soon, but I'm going to get a problem dd'ing to the active disk.

Is this why you use fdisk by any chance? If you're wondering, I used dd because I know exactly what it does - I wasn't sure if fdisk might try to overwrite the whole MBR with only 440 bytes of data and lose the bytes which seem to be unique per disk.

More to come...


The final 6 bytes are the disk signature and is unique to each drive. It must match the one in the Windows registry and I should have omitted it. Thanks for pointing this out. I'll update my previous post accordingly.

As far as fdisk is concerned, you are correct about being able to use it on a mounted volume. That's why you have to use the rdisk. The -u parameter will update just the mbr specified by the file in the -f parameter. (Thanks to the WinClone guys for that piece of info!)
I haven't tested this yet, but I suspect that fdisk may need all 446 bytes when writing the MBR, so you may have to copy over the last 6 bytes from your original into the modified MBR file prior to writing it out to disk. I'm going to try it out and I'll let you guys know what I find.

It seems to be working on my main disk now too. The process was similar, but this time I tried not installing the MS AHCI drivers before laying the patch. This resulted in a BSOD (no driver, I presume). I then had to re-lay the original MBR, boot back into Windows and install the MS AHCI drivers (I did it only 1 of the 2 SATA devices shown, the one with my HD attached to it). Then I re-relaid the patched MBR, booted into Windows and it detected the AHCI device. From then on it was plain-sailing, I just repeated the process for the second SATA controller. For some reason my 09 Mac Pro presents a 2-port SATA controller and a 4-port SATA controller separately, which is why I had to do it twice.

For reference this time I laid the MBR patch using a linux LiveCD and dd. The patch was the 440 byte version I modified (by removing the last 6 bytes), rather than the 446 byte original patch from johnsock.

The main stumbling block seems to be Windows drivers, and getting everything set up in the right order so Windows knows to use the right one after you transition to AHCI mode.

Edit: I've since realised that the '2-port SATA controller' has not been picked up as SATA/AHCI, it still seems to be operating in legacy mode. I presume the original code was written to enable one device which controls all 4 internal HD ports AND the 2 optical ports on the older Macs; wheras Apple seems to have put 2 controllers on the 09 Mac Pro - one for the internal bays and one for the optical ports. That sound plausible? This probably contributed to my BSOD problems when I tried to install it the second time - I may have installed the MS AHCI driver on the wrong one of the 2 available ports on my first attempt.


using dd from a linux disc should work fine since you can unmount the drive you are working on. As far as the other ports on the '09 MP, I'll try to find some more detailed info on the controller configuration and see if there is something else that needs to be done.

I tried another method for installing the drivers that worked for me in XP. I'm going to try it in Vista when I get a chance. Here's what worked:

1. Once everything was installed, with SATA in legacy mode I extracted the drivers from the Intel Matrix installer app using the -a switch. This just extracts the files, but doesn't install them.
2. I then force installed the Intel drivers (not the generic Microsoft ones) on the SATA controller in device manager.
3. Then, I rebooted but not back into Windows. (Booting into Windows would blue-screen because the controller would still be in legacy mode)
4. Next, I applied the modified MBR to the disk and rebooted. This brought Windows up and all devices were re-detected using the Intel driver.
5. Finally, I installed the Intel Matrix software from the installer app natively and rebooted. This had everything up and running without using the Microsoft driver as an intermediate step.

I'm going to try the same method on Vista, but I see no reason why it wouldn't work the same way.

#52
johnsock

johnsock

    InsanelyMac Protégé

  • Members
  • Pip
  • 44 posts
Attached File  ahci.zip   1.89KB   1833 downloads
Here is a script for automating the MBR mod. It's not complete yet, but it does work on XP, Vista and Windows 7. Make sure you specify the correct disk if you are in a multi-disk environment. I tried to make it detect your Windows drive, but that part still needs some work. Let me know what you think.

#53
ludacrisvp

ludacrisvp

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 374 posts
  • Gender:Male
  • Location:USA
Hey John,
The auto detect didn't work for me.
One thought on picking your own drive would be to have some type of press "0" for disk0 "1" for disk1...
that way it would reduce more issues for those that cannot type properly or do not know the /dev/diskX path.
I did try it on my windows 7 drive but it kept booting into vista so I will have to look some more into that.
Otherwise its looking good.

#54
mchaggis

mchaggis

    InsanelyMac Protégé

  • Members
  • Pip
  • 5 posts
Sorry, I had to send my Mac Pro away for repair with a PSU problem so I won't be able to test your script for now. I'll hopefully get to try it on a non-critical disk when I get the machine back.

#55
johnsock

johnsock

    InsanelyMac Protégé

  • Members
  • Pip
  • 44 posts

Sorry, I had to send my Mac Pro away for repair with a PSU problem so I won't be able to test your script for now. I'll hopefully get to try it on a non-critical disk when I get the machine back.


Sorry to hear about the PSU problem. I hope you get is back soon. Maybe I'll have some new tweaks to the scripts finished by the time you can test it. Let us know when you are back in the game

#56
lobster.boy

lobster.boy

    InsanelyMac Protégé

  • Just Joined
  • Pip
  • 1 posts
Hi Guys

Thanks ever so much for sharing your conclusions so far. I've been wanting to do this for a while, having just upgraded my old sony 2x bd-re optical PATA drive for a new Pioneer SATA 8x BD-RE drive, whilst retaining the use of my existing 4 sata hard drives. So, much the same as the rest of you.

I'd like to get the NCQ etc benefits of using AHCI, but frankly am mostly interested in just getting the other 2 SATA ports up and running, so am willing to put back the need to do the MBR changes - although I'm keen to be a guinea pig for you to test the simplified steps you're trying to work out. Note in my case, I have a 2007 Mac Pro (the original?) with only Vista x64 installed. I've got the SATA drive with MacOSX sat on a shelf, but I cannot dual boot.

I've followed your second post, Johnsock, up to step 5, quoted below, but am not seeing the 2 optical drives I have attached to SATA 5 and 6 showing anywhere. So I guess I've done something wrong -- or should I not expect to see them or the ports until I've updated the MBR? It looked from your description that I should see them at step 5, but maybe I'm wrong.

[quote name='johnsock' date='Apr 20 2009, 09:50 PM' post='1137984']

Here is a summary of what I did to get this working:

1. Use Bootcamp Assistant to create Windows partition on separate drive.
2. Install Vista using normal Bootcamp method, formatting the partition as NTFS during setup.
3. Install Bootcamp drivers from Leopard DVD and then update/install any other drivers needed.
4. Install 'Standard AHCI 1.0 Controller' drivers from Vista. This requires forcing a driver update manually and will result in a warning that the hardware doesn't appear to be supported.
5. Reboot Vista and allow device detection to happen, resulting in another reboot. This will get the generic Microsoft AHCI driver installed which gives access to the ODD_SATA ports, but all SATA ports still operate in legacy mode.
6. Once everything was verified working, I copied the MBR from the Vista disk and modified it with the code that modifies the port mapping register on the ICH for AHCI non-combined mode.
[snip]

Here's a screenshot of my device manager after I've forced the MS Standard AHCI driver, but showing something none of yours shows, i.e. 4 IDE channels and 4 ATA, instead of 6 ATA. This sounds troubling.

Note I only forced the last item in the IDE controllers list, not the second from last. Should I have only forced the Serial ATA and not the Ultra ATA too?

I've also left open the Storage controller node, so you can comment on whether you have the ANM controller in your setup.

Anyone have a suggestion? I suppose it's faintly possible that the drivers etc are all OK, but the drives are not physically connected properly (although I have double checked that), but given I'm not seeing 6x SATA channels, I'm assuming its something else.

Many thanks for any input.

Attached Files

  • Attached File  sata.jpg   60.4KB   62 downloads


#57
ericwarren

ericwarren

    InsanelyMac Protégé

  • Just Joined
  • Pip
  • 1 posts
Guys,

Thanks for the help. I think this thread will get me on the right track. Forgive me for being a newbie on much of this.

Here is my configuration. I have just gotten in a 2009 Mac Pro 8-core 2.66 GHz Nahalem. It came with 2 1TB SATA drives installed. I purchased another one and my plan is to leave OS X on drive 1, XP 64-bit on drive 2, and put Linux (CentOS 5.3 hopefully) on drive 3.

What I did yesterday was

1. Reformat drive 2 out of OS X to a FAT system just to make sure that when I went to install XP it would recognize it. That may not have been necessary
2. I then shut down, removed the OS X drive (leaving only drive 2), and restarted the computer and booted from the 64-bit XP install CD. I have left the 3rd drive blank at this point and not installed.
3. Installed 64-bit XP
4. Manually installed the video driver for the NVIDIA GT120 from the internet
5. Installed the RealTek sound drivers from the OS X Applications Install CD
6. Installed the Intel chipset drivers from the OS X Applications Install CD

At this point and after several reboots in the process everything at least works in XP with the exception of the Bluetooth USB Controller which I dont really care about at this point.

I am not running Bootcamp or any other bootloader at this point. I just hold down the option key and select which drive I want to boot from either OS X or Windows XP.

SO....Looking at this thread I am assuming that my hard drives are operating in legacy mode and not taking advantage of the full AHCI capabilities.

Can someone here recap completely what I need to do for 64-bit Windows XP on the 2009 Mac Pro machine that I have?

Also when I go to Linux on the 3rd drive, any suggestions? Will Linux have AHCI support by default?

Thanks,
Eric

#58
johnsock

johnsock

    InsanelyMac Protégé

  • Members
  • Pip
  • 44 posts

Hi Guys

Thanks ever so much for sharing your conclusions so far. I've been wanting to do this for a while, having just upgraded my old sony 2x bd-re optical PATA drive for a new Pioneer SATA 8x BD-RE drive, whilst retaining the use of my existing 4 sata hard drives. So, much the same as the rest of you.

I'd like to get the NCQ etc benefits of using AHCI, but frankly am mostly interested in just getting the other 2 SATA ports up and running, so am willing to put back the need to do the MBR changes - although I'm keen to be a guinea pig for you to test the simplified steps you're trying to work out. Note in my case, I have a 2007 Mac Pro (the original?) with only Vista x64 installed. I've got the SATA drive with MacOSX sat on a shelf, but I cannot dual boot.

I've followed your second post, Johnsock, up to step 5, quoted below, but am not seeing the 2 optical drives I have attached to SATA 5 and 6 showing anywhere. So I guess I've done something wrong -- or should I not expect to see them or the ports until I've updated the MBR? It looked from your description that I should see them at step 5, but maybe I'm wrong.


Here is a summary of what I did to get this working:

1. Use Bootcamp Assistant to create Windows partition on separate drive.
2. Install Vista using normal Bootcamp method, formatting the partition as NTFS during setup.
3. Install Bootcamp drivers from Leopard DVD and then update/install any other drivers needed.
4. Install 'Standard AHCI 1.0 Controller' drivers from Vista. This requires forcing a driver update manually and will result in a warning that the hardware doesn't appear to be supported.
5. Reboot Vista and allow device detection to happen, resulting in another reboot. This will get the generic Microsoft AHCI driver installed which gives access to the ODD_SATA ports, but all SATA ports still operate in legacy mode.
6. Once everything was verified working, I copied the MBR from the Vista disk and modified it with the code that modifies the port mapping register on the ICH for AHCI non-combined mode.


Here's a screenshot of my device manager after I've forced the MS Standard AHCI driver, but showing something none of yours shows, i.e. 4 IDE channels and 4 ATA, instead of 6 ATA. This sounds troubling.

Note I only forced the last item in the IDE controllers list, not the second from last. Should I have only forced the Serial ATA and not the Ultra ATA too?

I've also left open the Storage controller node, so you can comment on whether you have the ANM controller in your setup.

Anyone have a suggestion? I suppose it's faintly possible that the drivers etc are all OK, but the drives are not physically connected properly (although I have double checked that), but given I'm not seeing 6x SATA channels, I'm assuming its something else.

Many thanks for any input.


Looking at the screenshot you posted, I can see that Ports 4&5 are visible in windows. Ports 0-4 are the ones normally connected to the hard drive bays, while 4&5 are the ODD_SATA ports on the motherboard. It looks like the BD-RE drive is not being recognized, but I can't tell if it's Windows that doesn't see it or the controller. Do you have another SATA device you can plug into the ODD_SATA port to see if it is recognized? Also, have you tried the BD-RE drive elsewhere to make sure it is working?
I know that my ODD_SATA ports became active after completing Step 5 above and my SATA DVD-RW drive was recognized by Windows. You might also try booting to OS X temporarily (remove Windows drives and put your OS X one in there) to see if the BD-RE is recognized there. Let me know what you find out. I'll be happy to assist if I can.

Guys,

Thanks for the help. I think this thread will get me on the right track. Forgive me for being a newbie on much of this.

Here is my configuration. I have just gotten in a 2009 Mac Pro 8-core 2.66 GHz Nahalem. It came with 2 1TB SATA drives installed. I purchased another one and my plan is to leave OS X on drive 1, XP 64-bit on drive 2, and put Linux (CentOS 5.3 hopefully) on drive 3.

What I did yesterday was

1. Reformat drive 2 out of OS X to a FAT system just to make sure that when I went to install XP it would recognize it. That may not have been necessary
2. I then shut down, removed the OS X drive (leaving only drive 2), and restarted the computer and booted from the 64-bit XP install CD. I have left the 3rd drive blank at this point and not installed.
3. Installed 64-bit XP
4. Manually installed the video driver for the NVIDIA GT120 from the internet
5. Installed the RealTek sound drivers from the OS X Applications Install CD
6. Installed the Intel chipset drivers from the OS X Applications Install CD

At this point and after several reboots in the process everything at least works in XP with the exception of the Bluetooth USB Controller which I dont really care about at this point.

I am not running Bootcamp or any other bootloader at this point. I just hold down the option key and select which drive I want to boot from either OS X or Windows XP.

SO....Looking at this thread I am assuming that my hard drives are operating in legacy mode and not taking advantage of the full AHCI capabilities.

Can someone here recap completely what I need to do for 64-bit Windows XP on the 2009 Mac Pro machine that I have?

Also when I go to Linux on the 3rd drive, any suggestions? Will Linux have AHCI support by default?

Thanks,
Eric


Eric,

ludacrisvp had updated the 1st post in this thread with instructions for using my script. Make sure you refer to the updated part of that post when trying this out.
To sum up what needs to be done, you first need to force install the Microsoft AHCI driver using the Windows XP method outlined by ludacrisvp. Windows will then tell you to reboot to complete installation. At this point, boot into OS X, not Windows. From OS X, you can run the script I made to modify the MBR on your Windows disk. Make sure you use the correct disk, otherwise it won't work. ludacrisvp explains how to check this using the OS X Disk Utility app. After the MBR is modified, reboot into Windows and install the Intel Matrix drivers and you should be good to go.
If you need any additional information, let me know.

CK

Also, if you get any errors during this process, PM me with the information so I can help figure out what happened. Your setup is a little different than the ones we have tested so far and I would like to know if everything works correctly. I don't think there will be any issues, but I'll work on improving the script if you find anything that doesn't work the way it should. I'm currently working on improving the way the script searches for the Windows drive. That will keep you from having to find the drive number and then typing it in at the prompt.

#59
nanothing

nanothing

    InsanelyMac Protégé

  • Just Joined
  • Pip
  • 2 posts
:unsure:

Hi thanks for all the hard work, though i'm not having success.

I'm trying to get the extra sata ports for my bluray drive to be seen in vista 64-bit.

I've done it several times, but after install of grub i end up with GRUB> flashing cursor

I have two drives. Second drive just has data partitions, nothing else.

Main drive is like this:

efi

Osx

unallocated space

vista 64-bit

ubuntu 9.04 (64-bit)

I'm using the ubuntu /boot/grub directory for booting

With the ubuntu install grub is set up properly. I copied the patched stage1, stage2 and menu.lst over (have corrected the menu.lst to give root (hd0,2) for vista partition.

I read that grub should be reinstalled to get the stages properly recognized. I went through the instructions (note - i'm installing from command prompt in ubuntu 9.04 live cd mode terminal.

Sorry for any unclearness - bit late and i need to go to sleep. Help would be greatly appreciated.

#60
nanothing

nanothing

    InsanelyMac Protégé

  • Just Joined
  • Pip
  • 2 posts

:huh:

Hi thanks for all the hard work, though i'm not having success.

I'm trying to get the extra sata ports for my bluray drive to be seen in vista 64-bit.

I've done it several times, but after install of grub i end up with GRUB> flashing cursor

I have two drives. Second drive just has data partitions, nothing else.

Main drive is like this:

efi

Osx

unallocated space

vista 64-bit

ubuntu 9.04 (64-bit)

I'm using the ubuntu /boot/grub directory for booting

With the ubuntu install grub is set up properly. I copied the patched stage1, stage2 and menu.lst over (have corrected the menu.lst to give root (hd0,2) for vista partition.

I read that grub should be reinstalled to get the stages properly recognized. I went through the instructions (note - i'm installing from command prompt in ubuntu 9.04 live cd mode terminal.

Sorry for any unclearness - bit late and i need to go to sleep. Help would be greatly appreciated.


Could it be due to vista not being the last partition on the first disk or because the partition containing the stage1 and stage2 is not at the beginning. I may try installing grub on a small partition on the second drive. Any thoughts would be greatly appreciated.





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy