Mac Pro w Boot Camp - SATA, AHCI, EFI, BIOS - what can we do?

Discussion in 'Mac Pro' started by sirnh, Aug 16, 2006.

  1. sirnh macrumors regular

    Aug 16, 2006
    I know there is another thread running concerning itself with the poor performance of SATA under Boot Camp, but much of the discussion wasn't technical in nature. I would like to focus this thread on the technical aspects preventing the drives from reaching their ultimate performance potential.

    I have spent a few days researching SATA, and how it is handled under Windows, especially Intel's implementation. Intel is pushing a standardized controller interface called AHCI. AHCI does support legacy PATA emulation. In WinTel platform, it is a requirement of the BIOS to configure the AHCI device properly. The AHCI PCI device will present different PCI subcodes depending if it is running in PATA or native mode. These PCI subcodes are used to choose the appropriate driver at boot time.

    For best performance, SATA wants to run in native mode which, on the Mac Pro platform, means running the controller device in AHCI mode. AHCI fully supports DMA as well as Native Command Queuing (NCQ). Combining these two technologies give the best performance.

    The PATA emulation can support DMA, depending on the actual BIOS implementation. PATA can not support NCQ.

    With Boot Camp, Apple is providing a BIOS layer on top of EFI, the new standard for low-level PC firmware. This layer is called a CSM (Compatibility Support Module). I believe the CSM is not programming the device to enter AHCI mode. Also, the CSM is not providing anything other than Programmed I/O (PIO or non-DMA) in their PATA emulation support.

    How do we work around this? I don't know. I am hoping to bring others into this discussion to see if we can figure something out. Considering Apple released Boot Camp 1.1 with the same flaw, I don't believe we can expect them to resolve this issue soon.

    Putting the device in AHCI mode may present more difficult problems for Apple. They will have to change their CSM to support loading the boot sector using AHCI instead of PATA protocols.

    There is one other thing to note, when you boot with device in AHCI mode, and then install Windows, you must install a 3rd party driver provided by Intel at installation time. Pressing the F6 key early on in the install process, inserting a floppy, which contains the driver, and then choosing the driver for installation. The CSM will have to support USB floppies (I have not tested to see if it does, yet). It also means that any user that currently has Windows installed will have to reinstall Windows once we determine how to put the device in AHCI mode.

    If we were willing to give up NCQ, it might be easier for Apple to extend their CSM to include better PATA emulation. We may be limited to 100MB/s, or 133MB/s at best. This is more than enough bandwidth to support any single drive.

    In a later post, I will list all of the steps that I have tried in enabling any form of SATA DMA on the Mac Pro.

    To finish off this post, I ask if you have been following other similar threads on other sites, please bring their attention to this thread. I would really like to centralize all discussion, work and knowledge in one place.

    Brian Williams
  2. omfgninja macrumors member

    Aug 9, 2006
    good post.

    Actualy, and actualy I have an idea.....
    I have installed Windows many times using special "Install Time" drivers.
    And I have a possible workaround for now...

    Now personaly, I havent used any type of Virtualization software, but I had read about Paralles (

    So I looked on there, and I think I figured out how we can get that running.
    We can run Paralles, and have that run the Windows XP installer. Insted of having to hook up a USB floppy, you could make an image of that driver, and then have Paralles mount that as a drive image.
    That way we can install with the drivers for the hard drive, without having to mess with hooking up a floppy.

    You could just take all thouse files and then put them on its own harddrive, or whatever, and then you could even do a Native boot of that for your dual booting good'ness.
  3. sirnh thread starter macrumors regular

    Aug 16, 2006
    That may be difficult, because Parallels isn't ACPI compatible, so the installation that it makes can not be used directly to boot a Mac Pro through Boot Camp, I believe. So you would have to do a repair installation, all over, which brings us back to the original problem you are talking about, getting the installer to use the native drivers.

    Also, we still face the other issue of how we get the controller device into AHCI mode, so that the native drivers will recognize the device.
  4. macenforcer macrumors 65816


    Jun 9, 2004
    YOu could always use that old pata drive in the lower DVD drive slot like I did. Computer and drive is plenty fast and I still have my 4 sata drives available for OSX.
  5. sirnh thread starter macrumors regular

    Aug 16, 2006

    I appreciate your input, but I want to focus this thread on actually solving the SATA performance problem, not working around it. Others have suggested this in other threads. The work around has its merits, but in my case, I have 3 different SATA drives mounted, so the PATA is a partial solution, at best.
  6. tobyg macrumors 6502a

    Aug 31, 2004
    Yeah I've thought about this sort of stuff too. I was trying to figure out if there is an equivilant 'setup' process to the csm/bios emulation. I couldn't find anything. You know, kinda like the delete/f2 stuff with a normal bios. It's got to be a problem with the way the CSM is presenting the sata channels. That's why I've always thought that a firmware update is going to be required and drivers alone won't do it.
  7. sirnh thread starter macrumors regular

    Aug 16, 2006
    There are ways to get into the EFI command prompt, but it is nothing like a normal BIOS set up. I noticed apple has an EFI SDK now. I thought of looking at that, but without understanding how the CSM works, writing an EFI module that enables AHCI could just end up breaking the CSM so that it can't find the boot sector.
  8. tobyg macrumors 6502a

    Aug 31, 2004
    Ultimately I believe we're going to be at the mercy of Apple to fix this, if they even choose to. Either that or I hope people smarter than myself see these posts and can figure it out for us!
  9. tobyg macrumors 6502a

    Aug 31, 2004
    Well, here is one thing postitive at least..

    Just for fun, I put some disk drivers for XP on a floppy... these in fact : Server* 2003 Standard Edition&lang=eng

    I plugged in my USB Floppy, booted my XP CD on my Mac Pro and hit F6... when it asked me for the driver disk, I put in the floppy and it DID read the floppy and find the drivers on the floppy. Granted, these drivers won't help right now (until the mode is changed in the csm), I was just using these as something for XP to look for.

    So, it could work... but it would mean everyone would have to buy a USB Floppy drive or they would have to figure out some other method (temporary hard drive partition or something, similar to how HP SmartStart method works on HP servers) to add these drivers to the install.
  10. sirnh thread starter macrumors regular

    Aug 16, 2006
    Good to know, Toby. I think if a floppy driver install is going to be required Apple will just go along with the PATA emulation, adding DMA support. OR, they work with Intel to create a special version of the AHCI driver which forces the device into AHCI mode.
  11. FabioC macrumors newbie

    Aug 16, 2006
    What about the MacBook Pros, then?

    Greetings all.. new member here. Glad to be in the company of such good people.

    Although I do not have my Mac Pro yet (damn ATI cards :mad: ) I have been paying attention to all of the adoption issues people are having and the SATA issue concerns me as well.

    I'd like to turn this thread's attention to the SATA performance under Windows with the MacBook Pro. It seems most MBP users report adequate SATA performance with their notebooks, despite the MBP running under EFI as well.

    If the problem is in fact the EFI/AHCI implementation, then why do SATA drives perform well in the MacBook Pro?

    The answer to that may lead us to better performance on the Mac Pro..

    I hope..
  12. tobyg macrumors 6502a

    Aug 31, 2004
    Because it's an entirely different chipset with entirely different drivers.
  13. sirnh thread starter macrumors regular

    Aug 16, 2006
    Here is the information for the controller driver for a Mac Book:

    Intel(R) 82801GBM/GHM (ICH7_M Family) Serial ATA Storage Controller - 27C4
    Driver Provider: Intel
    Driver Date: 5/23/2005
    Driver Version:

    The intenal hard disk is connected to the Primary IDE Channel, Device 1, and is connected for Ultra DMA Mode 5.

    And here is the same information for the Mac Pro:

    Intel(R) 631xESB/6321ESB/3100 Chipset Serial ATA Storage Controller - 2680
    Driver Provider: Intel
    Driver Date: 5/15/2006
    Driver Version

    All internal hard drives connected to all IDE channels are currently set to PIO Mode.
  14. macenforcer macrumors 65816


    Jun 9, 2004
    Where do you go to find that information?
  15. seanf macrumors 6502

    Aug 8, 2006
    It's possible (and quite simple) to include third party drivers on an XP installation CD. The process is called Slipstreaming and involves creating a new installation CD by copying the files off your old one and adding any additional files. MaximumPC has an article that shows how to create an XP Service Pack 2 Slipstreamed CD and how to add raid/SATA drivers.

    Sean :)
  16. FabioC macrumors newbie

    Aug 16, 2006
    Excuse my ignorance, but are you saying that the faulty SATA implementation issue is due to a bad windows driver for the chipset? I thought we were looking at an EFI/BIOS implementation issue?

    If it's the former, a proper windows driver would (should) fix the problem.

    However, it's the problem of the BIOS as simh suggested, then the only thing that can save our skins is a firmware update.

    Or am I wrong?
  17. Mr. Mister macrumors 6502

    Feb 15, 2006
    I'll be pretty pissed off if they don't fix this.
  18. sirnh thread starter macrumors regular

    Aug 16, 2006
    Well, I think many people went down the drivers route, and thus far it hasn't panned out.

    BUT, I think we are still focused on it somewhat, because if Apple enables AHCI, it will mean users will need a USB floppy and a driver floppy to install Windows. We truly want AHCI for the best performance going forward, especially if you intend to do things like uncompressed digital video or audio editing.

    For many users, though, they would be happy with PATA emulation with Ultra DMA 5 performance.
  19. FabioC macrumors newbie

    Aug 16, 2006
    I think it's a good bet that if they provided iSight support in win, they will provide proper hard drive support..
  20. FabioC macrumors newbie

    Aug 16, 2006
    Here is a good read that explains how Windows handles a DMA device that is "misbehaving" and demotes it to PIO:

    Among the reasons cited here are BIOS misconfigurations, read/write errors, and ATAPI errors..

    It also says that sometimes the errors causing this fallback might show up on the event log.. Perhaps those of us with access to windows on these machines could escalate the event log triggers and have it try to catch some errors? I'll be glad to do this, too, as soon as my machine gets here--curse you, ATI!

    This possible reaons for these errors seems to be leaning more and more towards things like hardware defects and misconfigurations than drivers... That's not to say a really hosed driver couldn't do this, either, but it seems unlikely.
  21. tobyg macrumors 6502a

    Aug 31, 2004
    Well aware of this, but this is way above the skillset of an average user. Apple needs a solution that is friendly and easy to use for all, and even a USB floppy drive won't cut it.
  22. tobyg macrumors 6502a

    Aug 31, 2004
    The bios emulation that is done via the CSM in EFI is different for all hardware. EFI. Just like every standard computer has a different BIOS, the Mac Pro and Macbook Pro will have different implementations of EFI and the CSM/BIOS emulation. So what I'm saying is just because the Macbook Pro works, doesn't mean the Mac Pro will. Way different hardware, way different EFI drivers and CSM/BIOS emulation even though it looks pretty much the same to the user.
  23. tobyg macrumors 6502a

    Aug 31, 2004
    There were no errors in the event log. I checked, many times.
  24. sirnh thread starter macrumors regular

    Aug 16, 2006
    Here are some of the things I have tried...

    Editing the system registry following instructions from this thread:

    Trying to install the Intel Matrix Raid package from Intel's site.

    Trying to install the raw driver from the Intel Matrix Install floppy from the same site.

    Switching the driver back to Microsoft's standard IDE/ATA controller driver.
  25. FabioC macrumors newbie

    Aug 16, 2006
    Let me know how that one pans out..

Share This Page