Jump to content

AHCI on Bootcamp with Nvidia MCP89 chipset ?


DarkCenobyte
 Share

3 posts in this topic

Recommended Posts

Hi, (sorry if my english is not very good, it's not my mother tongue)

 

So, I have a MacBook Pro 7,1 (mid-2010) with the MCP89 chipset, and a SSD Crucial M500 960Gb (and OSX Maverick + a Bootcamp to Windows 8.1 (who work with Windows 7 + Windows 8 drivers from Apple, except the graphic driver from Nvidia, everything work good, except it use IDE mode, and the battery life seem very reduce...), but I found absolutely nothing to use AHCI on other OS with it.

But I try anyway,

 

At this time, the best result I have is to boot SuperGRUB2Disk with AHCI active, but in this case, GRUB2 see every OS in double, and can't boot any of these...

 

So, to go to the start, I install rEFInd on my Macbook (in the HFS+ partition, not the ESP), and add the shell to it.

 

And I use lspci on OSX:

MacBook-Pro:~ admin$ lspci -s 00:0a.0 -nnvvxxx
00:0a.0 SATA controller [0106]: nVidia Corporation Unknown device [10de:0d88] (rev a2) (prog-if 01 [AHCI 1.0])
                Subsystem: Apple Computer Inc. Unknown device [106b:cb89]
                Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
                Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
                Latency: 0 (750ns min, 250ns max)
                Interrupt: pin A routed to IRQ 18
                Region 0: I/O ports at 2298
                Region 1: I/O ports at 22a4
                Region 2: I/O ports at 2290
                Region 3: I/O ports at 22a0
                Region 4: I/O ports at 2280
                Region 5: Memory at d3484000 (32-bit, non-prefetchable)
                Capabilities: [44] Power Management version 2
                                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
                                Status: D0 PME-Enable- DSel=0 DScale=0 PME-
                Capabilities: [8c] SATA HBA <?>
                Capabilities: [b0] Message Signalled Interrupts: Mask- 64bit+ Queue=0/3 Enable-
                                Address: 00000000fee00000  Data: 4092
00: de 10 88 0d 07 00 b0 00 a2 01 06 01 00 00 00 00
10: 99 22 00 00 a5 22 00 00 91 22 00 00 a1 22 00 00
20: 81 22 00 00 00 40 48 d3 00 00 00 00 6b 10 89 cb
30: 00 00 00 00 44 00 00 00 00 00 00 00 12 01 03 01
40: 6b 10 89 cb 01 8c 02 00 00 00 00 00 00 00 00 00
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 12 b0 10 00
90: 5f 02 00 00 00 00 00 00 01 ff 20 e6 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 05 00 86 00 00 00 e0 fe 00 00 00 00 92 40 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 08 00 02 a8
f0: 00 00 00 00 00 00 00 00 00 c1 9f 80 00 00 00 00

and on Fedora 19 live-cd:

[root@localhost liveuser]# lspci -s 00:0a.0 -nnvvxxx
00:0a.0 IDE interface [0101]: NVIDIA Corporation MCP89 SATA Controller [10de:0d85] (rev a2) (prog-if 85 [Master SecO PriO])
Subsystem: Apple Inc. Device [106b:cb89]
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0 (750ns min, 250ns max)
Interrupt: pin A routed to IRQ 16
Region 0: I/O ports at 2298 [size=8]
Region 1: I/O ports at 22a4 [size=4]
Region 2: I/O ports at 2290 [size=8]
Region 3: I/O ports at 22a0 [size=4]
Region 4: I/O ports at 2280 [size=16]
Region 5: Memory at d3484000 (32-bit, non-prefetchable) [size=8K]
Capabilities: [44] Power Management version 2
  Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
  Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [8c] SATA HBA v1.0 InCfgSpace
Capabilities: [b0] MSI: Enable- Count=1/8 Maskable- 64bit+
  Address: 0000000000000000  Data: 0000
Kernel driver in use: ata_generic
00: de 10 85 0d 07 00 b0 00 a2 85 01 01 00 00 00 00
10: 99 22 00 00 a5 22 00 00 91 22 00 00 a1 22 00 00
20: 81 22 00 00 00 40 48 d3 00 00 00 00 6b 10 89 cb
30: 00 00 00 00 44 00 00 00 00 00 00 00 0b 01 03 01
40: 6b 10 89 cb 01 8c 02 00 00 00 00 00 00 00 00 00
50: 0b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 12 b0 10 00
90: 5f 02 00 00 00 00 00 00 01 ff 20 e6 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 05 00 86 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 08 00 02 a8
f0: 00 00 00 00 00 00 00 00 00 c0 9f 50 00 00 00 00

I try to use "setpci" and it's work, but only on some line, and even if I can change the DeviceID (by editing the 0xfb value; example if I move it to 60, the 0x03 value change to 86, ...), I can't change it to AHCI mode.

 

I use the pci command on an EFI shell, and it show me it is in AHCI mode:

t-0052738c1500146fa0.jpg

 

So I think that the switch to IDE come at the boot, so I found it's the Apple "BIOS Emulation" who do this...

 

I try many things, and with an USB with DUET (but I can't boot it...) and a SuperGrub2Disk, I boot this:

t-0152738c3f00146fa1.jpg

 

And... He boot SuperGrub2Disk in EFI mode with AHCI active !

t-0252738c5c00146fa2.jpg

I confirm this by using the lspci in grub2 cli:

t-0452738c7d00146fa4.jpg

 

But I can't boot anything from this... Could someone help me to solve this?

t-0552738c9400146fa5.jpgt-0652738ca600146fa6.jpgt-0752738cba00146fa7.jpg

 

 

EDIT: from grub I can move inside my bootcamp partition, and I use chainloader on bootmgfw.efi and "boot", It load this Windows Error:

t-Photo_01_11_20135273b7dc00146fee.jpg

 

I think this is because my Windows is installed in "BIOS compatibility" mode, so I think I will try to reinstall it from the EFI Mode.

 

fixed: I only had to reinstall Windows without Bootcamp and into Native EFI Mode, everything seems to be okay, except the graphical Nvidia chipset, because driver seems to be impossible to install (brutal reboot during all my tentative).

 

Edited by DarkCenobyte
  • Like 1
Link to comment
Share on other sites

  • 4 weeks later...
  • 1 month later...

Very nice job, mate!

I really liked your approach, very interesting.

Have you tried just setpci -d 10de:0ab5 9c.b=06 (from http://www.insanelymac.com/forum/topic/126089-howto-boot-macs-with-intel-chipset-in-ahci-win7-vista-xp-linux/)?

Maybe we could repatch the Intel MBR patch to replace the MCP89 registers(from http://forums.macrumors.com/showthread.php?t=760482).

What do you think?
Cheers

 

 

EDIT: I can't install VGA driver on my macbook mcp89 based, even the Windows 7 is hard to install. The setup just hangs.

I'm using 8GB of RAM, on Mavericks it's fine, but maybe the BIOS emulation is buggy.

Could you please try to boot with 4GB of RAM or less? Please, avoid 4GB sticks during this test.

Maybe your AHCI patch is fine :)

Cheers

Link to comment
Share on other sites

 Share

×
×
  • Create New...