Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

sirnh

macrumors regular
Original poster
Aug 16, 2006
105
0
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
 

omfgninja

macrumors member
Aug 9, 2006
42
0
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.
 

sirnh

macrumors regular
Original poster
Aug 16, 2006
105
0
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.
 

macenforcer

macrumors 65816
Jun 9, 2004
1,248
0
Colorado
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.
 

sirnh

macrumors regular
Original poster
Aug 16, 2006
105
0
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.
 

tobyg

macrumors 6502a
Aug 31, 2004
528
2
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.
 

sirnh

macrumors regular
Original poster
Aug 16, 2006
105
0
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.
 

tobyg

macrumors 6502a
Aug 31, 2004
528
2
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!
 

tobyg

macrumors 6502a
Aug 31, 2004
528
2
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.
 

sirnh

macrumors regular
Original poster
Aug 16, 2006
105
0
tobyg said:
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.

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.
 

FabioC

macrumors newbie
Aug 16, 2006
14
0
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..
 

tobyg

macrumors 6502a
Aug 31, 2004
528
2
FabioC said:
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..

Because it's an entirely different chipset with entirely different drivers.
 

sirnh

macrumors regular
Original poster
Aug 16, 2006
105
0
tobyg said:
Because it's an entirely different chipset with entirely different drivers.

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.
 

macenforcer

macrumors 65816
Jun 9, 2004
1,248
0
Colorado
sirnh said:
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.

Where do you go to find that information?
 

seanf

macrumors 6502
Aug 8, 2006
310
0
UK
tobyg said:
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 ...
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 :)
 

FabioC

macrumors newbie
Aug 16, 2006
14
0
tobyg said:
Because it's an entirely different chipset with entirely different drivers.

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?
 

sirnh

macrumors regular
Original poster
Aug 16, 2006
105
0
FabioC said:
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?

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.
 

FabioC

macrumors newbie
Aug 16, 2006
14
0
Mr. Mister said:
I'll be pretty pissed off if they don't fix this.

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

FabioC

macrumors newbie
Aug 16, 2006
14
0
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.
 

tobyg

macrumors 6502a
Aug 31, 2004
528
2
seanf said:
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 :)

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.
 

tobyg

macrumors 6502a
Aug 31, 2004
528
2
FabioC said:
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?

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.
 

tobyg

macrumors 6502a
Aug 31, 2004
528
2
FabioC said:
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.

There were no errors in the event log. I checked, many times.
 

sirnh

macrumors regular
Original poster
Aug 16, 2006
105
0
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.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.