1. Welcome to the new MacRumors forums. See our announcement and read our FAQ

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

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

  1. macrumors regular

    #1
    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. macrumors member

    #2
    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 (http://www.parallels.com/en/products/workstation/mac/).

    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. macrumors regular

    #3
    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. macrumors 65816

    macenforcer

    #4
    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. macrumors regular

    #5
    mace,

    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. macrumors 6502a

    #6
    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. macrumors regular

    #7
    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. macrumors 6502a

    #8
    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. macrumors 6502a

    #9
    Well, here is one thing postitive at least..

    Just for fun, I put some disk drivers for XP on a floppy... these in fact : http://downloadfinder.intel.com/scr...indows 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. macrumors regular

    #10
    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. macrumors newbie

    #11
    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. macrumors 6502a

    #12
    Because it's an entirely different chipset with entirely different drivers.
     
  13. macrumors regular

    #13
    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: 7.0.0.1020
    PCI\VEN_8086&DEV_27C4&SUBSYS_72708086&REV_02

    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 7.4.0.1005
    PCI\VEN_8086&DEV_2680&SUBSYS_72708086&REV_09

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

    macenforcer

    #14
    Where do you go to find that information?
     
  15. macrumors 6502

    #15
    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. macrumors newbie

    #16
    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. macrumors 6502

    #17
    I'll be pretty pissed off if they don't fix this.
     
  18. macrumors regular

    #18
    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. macrumors newbie

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

    #20
    Here is a good read that explains how Windows handles a DMA device that is "misbehaving" and demotes it to PIO:

    http://winhlp.com/WxDMA.htm

    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. macrumors 6502a

    #21
    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. macrumors 6502a

    #22
    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. macrumors 6502a

    #23
    There were no errors in the event log. I checked, many times.
     
  24. macrumors regular

    #24
    Here are some of the things I have tried...

    Editing the system registry following instructions from this thread:
    http://sniptools.com/tipstricks/getting-back-to-dma-mode-in-windows-xp

    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. macrumors newbie

    #25
    Let me know how that one pans out..
     

Share This Page