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

gekalegoret

macrumors newbie
Apr 11, 2015
7
0
Belgium
I solved the previous question - But got a new one...

I'm answering my own question.

I've finally figured out a way of running the "ahci-1.sh" script within the Terminal. :) I had to type "sudo bash" instead of "sudo" only and it worked. I was able to execute the script but I must have goofed somewhere in my inputs because when rebooting Windows I got the message "A disk read error occured" Press Ctrl+Alt+Delete.
I suppose I have patched the MBR wrongly. I'll try to restore it (hopefully...) and start again.
I think I'm progressing, even thought it is very slowly...
Any advise any way welcome.:eek:

Georges
 
Last edited:

gekalegoret

macrumors newbie
Apr 11, 2015
7
0
Belgium
I give up for now

I have not been able to restore the MBR from the "backup.mbr" nor to figure out a way to correctly patch that MBR. :(
So at this stage I'm restoring my Bootcamp partition from my Winclone backup. (A few hours are needed !) Hopefully I'll recover Windows...
I hope to attempt the whole process again later when I'll have a more precise modus operandi...
It should be simple. That's the way it seems to be...
I have a Macbook Pro Core 2 duo (Oct 2006) with a single SSD inside. On this SSD, I have one partition for Mac Os X 10.6.8 and one Bootcamp partition for Win7 x64. (Bootcamp 3.3).
All what I need so far is a more precise description of how to patch the MBR using the "achi-1.sh" script within Terminal.
The script initialy says it has found a partition with Windows on it (dev/disk0) but at a second stage says I'm using an unknown OS... That's where I'm confused.
A this point, that is the only part of the "gugucom" tutorial that I consider far too vague. (I apologise for having to say this).
This tutorial is a masterpiece as it indicates that it should be possible to activate AHCI in Windows without Bios but unfortunately it is not sufficently detailed and precise for newbies like myself who really need to be taken by the hand to cross a major difficulty like patching the MBR. It has also a tendency to address to many options at once (XP, Vista, Win7). XP and Vista were probably relevant issues 5 years ago but today a tutorial addressing W7 only shoud suffise. Maybe Gugucom will read this...
People have successfully activated AHCI... I only dream I could do the same.
Thanks in advance for any help or feedback.:)

Georges
 
Last edited:

gekalegoret

macrumors newbie
Apr 11, 2015
7
0
Belgium
AHCI successfully activated on a MacBook Pro (2006)

I feel that I'm pretty much speaking to myself here. But if somebody reads this thread one day, here is how I achieved it.

*** Following some Googling, I found somewhere a forum where a user was saying that : the Paragon NTFS driver changes the file system of the Bootcamp partition to “compressed”.
After uninstalling the Paragon NTFS driver from the OS X side of my Mac and rebooting in Mac OS X the Bootcamp partition was changed to a Mac OS X Extended one and finally seen and recognized !

*** Even though the Bootcamp partition was identified by “AHCI enabler”, this program failed to patch the MBR correctly, ending up with a “read disk” error when booting into Windows. As bad as a BSoD. Exact same error that the one generated by the "achi-1.sh" script.
Nevertheless, I finally solved the issue and I have been able to activate AHCI anyhow by following this procedure : (Thank you to its author !)

http://www.adminsehow.com/2012/10/how-to-enable-ahci-support-for-windows-on-an-imac-macbook-or-etc/

I had to learn a little bit of Terminal language which I was not familiar with…
Follow exactly (i.e. by the letter) what is said on that page. Boot from Mac Os X install DVD, etc.

*** I think it’s a pity that I had to spent almost 36 hours before enabling AHCI under Windows, something that could easily have been done by simply ticking a box, because Apple is trying to demonstrate dishonestly (by deliberately disabling AHCI on the other side of THEIR own machine…) that their stuff is superior to the one of the competition. Very stupid attitude IMHO since I have bought my MacBook from them even if it is to run Windows with it…

But its finally works, that's the most important !
Thank you very much to "gugucom" for starting this topic, prooving this can be done, despite Apple's sabotage !:mad:

:)
 

MythicFrost

macrumors 68040
Mar 11, 2009
3,944
40
Australia
Intel Matrix Storage Manager is no longer there. Am I correct in assuming that the Intel Rapid Storage Technology is its replacement? Can I use that? (I've got a 2008 Mac Pro btw.)

EDIT:

Apparently it is. However it won't install for me, so I installed the latest ver of Intel Matrix Storage Manager in the downloads section.
 
Last edited:

gekalegoret

macrumors newbie
Apr 11, 2015
7
0
Belgium
Intel drivers

The file that I've downloaded from Intel's site is named : IATA89CD.exe (22.6 Mb). The setup.exe is from Macrovision Corporation and is version 12.0.0.49974.
It was downloaded from here (item before last on the page):

Intel® Matrix Storage Manager - 7/17/2009 - 8.9.0.1023

https://downloadcenter.intel.com/product/55005/Intel-Rapid-Storage-Technology-Intel-RST-

It worked well for me.

BTW: I have written a complete tutorial of what "I" did but I cannot post it here because it is rejected by the site's firewall... Apparently it contains code that is not authorized.

Georges
 

tigerintank

macrumors 6502
Jun 16, 2013
272
48
BTW: I have written a complete tutorial of what "I" did but I cannot post it here because it is rejected by the site's firewall... Apparently it contains code that is not authorized.

Georges

If you've posted it elsewhere I for one would appreciate a pointer to it. Suspect there'll be others too.
 

gekalegoret

macrumors newbie
Apr 11, 2015
7
0
Belgium
Tuto

If you are interrested by what I did. Just PM me, in return I'll send you a .pdf file with the story of how I succeeded to activate AHCI.:)

Cheers,

Georges
 

tuchubby

macrumors newbie
Jun 12, 2017
10
7
Here's an updated procedure

1. In Windows 10, copy/paste below into Notepad, save it as a .reg file, and run it
Code:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\storahci\StartOverride]
"0"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStorAV\StartOverride]
"0"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStorV\StartOverride]
"0"=dword:00000000

2. Open up Device Manager. Expand IDE ATA/ATAPI controllers, right-click 4port Serial ATA Storage Controller, select update drivers.
3. Manually update drivers from list, and select Standard SATA AHCI Controller
4. Reboot into macOS
5. Follow the directions from this post to run the .sh

That's all you have to do to get AHCI working.

I am using a MacPro5,1 mid-2010 on Bootcamp Assistant (Legacy Boot mode), macOS Sierra 10.12.6, Windows 10 Pro. This was the only way for me to get a non UEFI GPU (GTX 1060) in working order along with onboard SATA2 in AHCI mode. My SSD went from 200 to 280 R/W.

Most of you have SSD now, so please take note. SSD in IDE mode is not good.
 
Last edited:
  • Like
Reactions: h9826790

Draeconis

macrumors 6502a
May 6, 2008
987
281
I’m assuming this has already come up, but I found installing Windows 10 via EFI set all drives connected to the SATA bus to use AHCI by default.

You can also prevent the boot camp installer putting loads of redundant drivers on your system by removing them from the driver folder.
 

Tesseract

macrumors regular
Mar 2, 2008
139
38
Hmmm... I've previously done this whole AHCI thing numerous times successfully. Not anymore it seems.

I'm not sure what has changed (probably something in a newer Windows 10 build), but using johnsock's ahci-1.sh script causes my Win10 bootcamp drive to boot into a Disk Read Error screen. Anyone else?
 

Objectivist-C

macrumors 6502
Jul 1, 2006
443
27
This also rendered my Mac Pro 5,1 Windows 10 partition unbootable, do not attempt unless you have a recovery plan.
 

Objectivist-C

macrumors 6502
Jul 1, 2006
443
27
Incidentally, if anyone knows how to change storage controller drivers from the command prompt, uh, let me know. Safe mode is a no-go.
 

Petri Krohn

macrumors regular
Feb 15, 2019
114
124
Helsinki, Finland
Windows natively uses legacy drivers instead of AHCI when you install it. It expects a BIOS command to select the AHCI mode. On a BIOS machine you simply use a software switch to select the configuration. On an EFI machine as the Mac, you have to manipulate the boot mechanism because the firmware has no user adjustable features.

Mac Pros have no preboot "BIOS" interface to configure the firmware. The BIOS settings are however stored in a file in NVRAM. As the Compatibility Support Module (CSM) used for legacy booting sits on top of EFI the settings can be accessed from the EFI shell or from any operating system that boots in EFI mode.

Under Linux you can see all NVRAM variables (or UEFI variables, as they are generally called) as files in the folder /sys/firmware/efi/efivars/. Variables can also be created, deleted and modified with the efivar command.

On my Mac Pro 3,1 the BIOS settings are stored in the EFI variable Setup-EC87D643-EBA4-4BB5-A1E5-3F3E36B20DA9. This is the content of the 640 bytes of the Setup variable:

Code:
GUID: ec87d643-eba4-4bb5-a1e5-3f3e36b20da9
Name: "Setup"
Attributes:
    Non-Volatile
    Boot Service Access
    Runtime Service Access
Value:
00000000  00 00 00 00 01 01 01 00  00 00 00 00 00 00 00 00  |................|
00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000020  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000030  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000040  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000050  00 00 00 00 00 00 00 00  00 01 02 00 00 00 00 00  |................|
00000060  00 01 01 01 01 02 00 00  00 01 00 00 00 00 00 00  |................|
00000070  00 00 00 00 00 01 01 03  07 01 00 01 01 00 01 04  |................|
00000080  02 00 01 00 01 00 01 00  01 00 00 00 00 00 00 00  |................|
00000090  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000a0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000c0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000e0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000100  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000110  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000120  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000130  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000140  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000150  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000160  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000170  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000180  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000190  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001a0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001c0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001e0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000200  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000210  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000220  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000230  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000240  00 00 00 00 00 00 00 00  00 00 00 00 01 00 00 01  |................|
00000250  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000260  00 00 00 00 00 00 00 00  04 00 01 08 00 00 00 00  |................|
00000270  00 00 00 00 04 00 01 08  00 00 01 00              |............    |

Modifying one of these bytes changes the legacy boot mode from IDE to AHCI.

Even though Mac Pros do not have a graphical user interface to modify BIOS settings, they have a Internal Forms Representation (IFR) file embedded in the EFI ROM that describes the semantics of the Setup variable and how the hypothetical "BIOS" interface for modifying the configuration should look like. On an UEFI PC this internal representation is used to generate the BIOS GUI. It could also be used by a generic configuration tool to create the values for the Setup variable.

@lnx64 has extracted the IFR file from his Mac Pro 3,1. @tsialex extracted the file from a Mac Pro 5,1 and it was found to be identical. See more here:
The section of the IFR file that defines the legacy boot mode is this:
Code:
0x2DF9     Form: IDE Configuration, Form ID: 0x4 {01 06 04 00 19 00}
0x2DFF         Text: PATA Master {03 0B 28 01 1B 00 1C 00 00 00 00}
0x2E0A         Text: PATA Slave {03 0B 28 01 1D 00 1E 00 00 00 00}
0x2E15         Text: SATA Port 0 {03 0B 28 01 1F 00 20 00 00 00 00}
0x2E20         Text: SATA Port 1 {03 0B 28 01 21 00 22 00 00 00 00}
0x2E2B         Text: SATA Port 2 {03 0B 28 01 23 00 24 00 00 00 00}
0x2E36         Text: SATA Port 3 {03 0B 28 01 25 00 26 00 00 00 00}
0x2E41         Subtitle:  {02 04 28 01}
0x2E45         Suppress If: {0A 03 00}
0x2E48         Variable 0x65[1] equals 0x0 {12 07 65 00 01 00 00}
0x2E4F             Setting: SATA Gen, Variable: 0x68[1] {05 09 68 00 01 38 00 39 00}
0x2E58                 Option: SATA Generation I, Value: 0x0 {09 09 3A 00 00 00 11 00 00}
0x2E61                 Option: SATA Generation II, Value: 0x1 {09 09 3B 00 01 00 10 00 00}
0x2E6A             End of Options {10 02}
0x2E6C         End If {18 02}
0x2E6E         Suppress If: {0A 03 00}
0x2E71         Variable 0x65[1] equals 0x0 {12 07 65 00 01 00 00}
0x2E78             Setting: Stagger Spinup Support, Variable: 0x66[1] {05 09 66 00 01 36 00 37 00}
0x2E81                 Option: Disable, Value: 0x0 {09 09 24 01 00 00 11 00 00}
0x2E8A                 Option: Enable, Value: 0x1 {09 09 23 01 01 00 10 00 00}
0x2E93             End of Options {10 02}
0x2E95         End If {18 02}
0x2E97         Setting: IDE Mode Select, Variable: 0x64[1] {05 09 64 00 01 27 00 28 00}
0x2EA0             Option: Compatible, Value: 0x0 {09 09 2A 00 00 00 10 00 00}
0x2EA9             Option: Enhanced, Value: 0x1 {09 09 29 00 01 00 11 00 00}
0x2EB2         End of Options {10 02}
0x2EB4         Suppress If: {0A 03 00}
0x2EB7         Variable 0x64[1] equals 0x0 {12 07 64 00 01 00 00}
0x2EBE             Setting: Configure SATA as, Variable: 0x65[1] {05 09 65 00 01 31 00 32 00}
0x2EC7                 Option: IDE, Value: 0x0 {09 09 33 00 00 00 10 00 00}
0x2ED0                 Option: RAID, Value: 0x1 {09 09 34 00 01 00 10 00 00}
0x2ED9                 Option: AHCI, Value: 0x2 {09 09 35 00 02 00 11 00 00}
0x2EE2             End of Options {10 02}
0x2EE4         End If {18 02}
0x2EE6         Suppress If: {0A 03 00}
0x2EE9         Variable 0x64[1] equals 0x1 {12 07 64 00 01 01 00}
0x2EF0             Setting: PATA/SATA Selection, Variable: 0x69[1] {05 09 69 00 01 2B 00 2C 00}
0x2EF9                 Option: SATA Only, Value: 0x0 {09 09 2D 00 00 00 10 00 00}
0x2F02                 Option: PATA/SATA (PATA as Primary), Value: 0x1 {09 09 30 00 01 00 11 00 00}
0x2F0B                 Option: SATA/PATA (SATA as Primary), Value: 0x2 {09 09 2E 00 02 00 10 00 00}
0x2F14                 Option: PATA Only, Value: 0x3 {09 09 2F 00 03 00 10 00 00}
0x2F1D             End of Options {10 02}
0x2F1F         End If {18 02}
0x2F21     End Form {0B 02}
0x2F23     Form: Floppy Configuration, Form ID: 0x5 {01 06 05 00 3C 00}
0x2F29         Setting: Diskette Controller, Variable: 0x0[1] {05 09 00 00 01 3E 00 3F 00}
0x2F32             Option: Disable, Value: 0x0 {09 09 24 01 00 00 11 00 00}
0x2F3B             Option: Enable, Value: 0x1 {09 09 23 01 01 00 10 00 00}
0x2F44         End of Options {10 02}
0x2F46         Setting: Diskette Write Protect, Variable: 0x1[1] {05 09 01 00 01 40 00 41 00}
0x2F4F             Option: Disable, Value: 0x0 {09 09 24 01 00 00 11 00 00}
0x2F58             Option: Enable, Value: 0x1 {09 09 23 01 01 00 10 00 00}
0x2F61         End of Options {10 02}
0x2F63     End Form {0B 02}
0x2F65     Form: Video Configuration, Form ID: 0x6 {01 06 06 00 42 00}
0x2F6B         Setting: Active Vedio, Variable: 0x5A[1] {05 09 5A 00 01 44 00 45 00}
0x2F74             Option: Onboard Device, Value: 0x0 {09 09 46 00 00 00 10 00 00}
0x2F7D             Option: PCI(X) Device, Value: 0x1 {09 09 47 00 01 00 10 00 00}
0x2F86             Option: PCIE Device, Value: 0x2 {09 09 48 00 02 00 11 00 00}
0x2F8F         End of Options {10 02}
0x2F91     End Form {0B 02}
0x2F93 End Form Set {0D 02}

Caveat: All information in this post is unconfirmed and may be speculation. It is also unknown if changing the value of the variable will actually change the behavior of the Mac Pro.
 

lnx64

macrumors member
Sep 6, 2019
47
13
Yea, neither one of us have confirmed as of yet if any patching to the IFR enabled AHCI yet, and if it's a MP 3,1, best not to take the risk just yet.
 
  • Like
Reactions: Petri Krohn

trondl

macrumors newbie
Jul 12, 2019
23
2
I still have issues trying to activate ahci for bay 3 & 4 (2 port controller) in win7 on my cMP 4.1 flashed to 5.1.
Anyone have a solution to this?
 

trondl

macrumors newbie
Jul 12, 2019
23
2
I have succeeded in accessing ports 4-5 (bay 3&4) on my 4,1 flashed to 5,1 running win7 in AHCI mode!
Although really slow at booting (almost 2min).

What's done:
Grub2win to use setpci commands instead of the mbr hack.
Linux EFI usbstick to dump the pci config space with lspci to compare with a working AHCI state.

No matter what I do, 8086:3A26 (second controller in IDE mode) is always exposed in CSM mode.
Disabling it in windows and using the following commands gives me access:

setpci -s 00:1f.2 40.b=00 -> 40-43.b values are IDE timing registers (may be redundant but I set them anyway)
setpci -s 00:1f.2 41.b=80
setpci -s 00:1f.2 42.b=00
setpci -s 00:1f.2 43.b=80
setpci -s 00:1f.2 44.b=00 -> no idea
setpci -s 00:1f.2 4A.b=00 -> no idea
setpci -s 00:1f.2 4B.b=00 -> no idea
setpci -s 00:1f.2 55.b=00 -> no idea
setpci -s 00:1f.2 90.b=60 -> set controller 1 in combined mode for all 6 ports
setpci -s 00:1f.2 92.b=3F -> give access to all 6 ports

I have not tested yet which ones are absolutely necessary, but these values are the ones that survived a setpci command and still boots compared to the linux pci dump.

Until a CSM firmware hack is available, I need to disable the second controller (00:1f.5).
Apparently, I have to use the Function Disable Register in Root Complex Base Address (RCBA):
D31:F0
F0h-F3h RCBA Root Complex, Base Address 00000000h R/W;
FD—Function Disable Register, Offset Address: 3418–341Bh;
and set bit 25 high to disable controller 2.
How can I do that?
 
Last edited:
  • Like
Reactions: sauria

trondl

macrumors newbie
Jul 12, 2019
23
2
I found a way to disable the second IDE controller using Grub:
write_dword 0xFED1F418 0x03000001
This sets bit 25 in the Function Disable register to high, disabling it.
The boot time is still slow though: 30s before the animation begins and login at 1m40s
 

trondl

macrumors newbie
Jul 12, 2019
23
2
We had used grub initially to do this but the MBR modification was used to streamline this.

The problem is still no access to bay 3-4 in ahci mode on a 4,1 or 5,1 (ICH10R) with mbr mod as it by default sets the first controller in 4 port mode only (90h = 40), leaving the second controller in IDE mode and hogging up bay 3-4.

I did some boot tracing today and found that initial booting is 60 seconds of 100% bootdisk activity with no real progress, indicating something isn't configured correctly (most likely the first controller).
But slow booting is also the case when using the mbr mod and nothing else.

Could a controller 1 reset of some sort to set "default" AHCI values but retain the 6 port configuration be a solution?
Since both controllers are initially configured for IDE mode, I guess some memory registers are still in IDE configuration.

PS: I'm a coding n00b, but I'm not afraid of logic.
Spent too much time on this problem to let it goo_O
 

trondl

macrumors newbie
Jul 12, 2019
23
2
I've cut the boot time in half by reverting from Intel RST 11.7 to Intel MSM 8.9, so this may indeed be a driver issue.
Boot time is now 25s to starting windows animation (previously 30s) and login at 50s (previously 1m40s).
All timed from win7 start in bootselector.
Downside is that 11.7 is the only one compatible with bootcamp control panel.
 

mcluskyism

macrumors newbie
Jun 3, 2022
1
0
Hello everyone, I know that I am writing in a forum "alien" to my problem, so first of all I apologize.
Has anyone tried to apply the ahci-1.sh script to a native Windows PC?
I am trying this on a Sony netbook (VAIO VPCW12J1E), which is equipped with an 82801GBM ICH7-M chipset which could work in AHCI mode (from PCI ID 8086:27c4 to 8086:27c5).
Unfortunately the BIOS (Phoenix R1100E1 heavily mutilated by Sony) lacks the option to enable AHCI.
I try to explain it simply: I hex modified a vanilla Win7 MBR inserting the string AHCI_CODE=66B890FA0080BAF80C66EFB040BAFC0CEEC3 at the correct offset (and then adding the string NEW_MESSAGES= etc).
Since i am in a dual boot machine, after a backup of the original bootsector, from Linux I dd'ed my modified MBR to my SSD disk (the one and only, /dev/sda), but then at boot I get "A disk read error occurred" from Windows.
Then, following a Japanese site, I slightly changed the AHCI_CODE= string (from the original to 66B800000000BAF80C66EFB040BAFC0CEEC3).
After zeroing at offset 162 the 66B8 part, after dd'ing, now I boot into Windows, but still in IDE mode.
According to ndisasm.exe, with original string I get the expected 00000162 66B890FA0080 mov eax,0x8000fa90 -> disk read error.
With zeroed string, I get 00000162 66B800000000 mov eax,0x0 -> Windows in IDE mode like with vanilla MBR.
It is evident that clearing the string is not the solution, but the original string also does not work in my case.
But then, what could be the correct value at offset 162 to force the chipset into AHCI?
Thanks, and feel free to ask for any other information you need.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.