I originally bought my Mac Pro under the pretext it was a 64bit machine which was all ready to run a 64bit OS (yes, that,s how it was advertised when I bought it and I have old documents and phone conversations with 'professiosnals' working at apple, to substantiate this claim. Yes, its half true, it can run 64 bit applications just fine, but the EFI is 32 bit blah blah (I guess it's a discussion for another forum). I was furious at the time because I had to make a decision to wait a few months for the 2008 model, or go for the older one. I based my decision on 3 different 'professional' pieces of advice working for a well known company, and went for the Mac pro 1,1. I found out later it was not capable of usin a64 bit operating system upon boot, only 32 bit. I have upgraded and made many mods to my system since then, once bying an ATI2600XT card from Apple, before finding out about the 64 bit problem. I have not bought another piece of harware from apple again since. All upgrades have been done directly through other hardware providers, since there is no interest in releasing an update for our machines which cost an arm and a leg. Netkas has shown that its possible to stiil boot up a 64 bit OS using the current 32 bit EFI, so the excuse that the flash chip is not big enough to accomodate the bigger EFI file stands no ground. I can accept that the new standard came out after the mac was produced, but why was it sold and adevertised as capable if it is not. Ok I let that out now, and I feel much better. So that was my grudge and what motivated me to persist in getting the 64 bit mode going (yes yes i know, it doesn't make a difference....but actually sorry, it does in many ways, no crashes, efficient use of memory, noticeable decrease in start times - very noticable, zippier all round and is basically what I paid for originally).
Ok so booting into 64 bit mode is a piece of cake....well a bit of tinkering if your running software RAID but all okay in the end. Thanks to advice from this post by MacEFIRom
http://forum.netkas....pic,1123.0.html In the end you will need to have an 'Extra' named folder in the chameleon boot drive. Inside should be the boot file, DSDT.aml, chameleon.plist, smbios and another "extensions' named folder. The only extension I have in there, is IOAHCIblockinjector to make ur hard drives internal not external.
After getting it going, I guess my machine was technically a pc running mac osx! I think there's a word for it.....ha....hac....damn can't remember
First I downloaded this program -> EVO DSDT SE
Next I used the extract DSTD function to extract the DSTD file. What is the DSDT.aml? It basically tells your OS s what hardware you have and how to talk to it. In it's raw format, my mac behaved with the issues described above. Sleep crashes, no restarts, no audio and no ODD ports. Using various bits of information here there and over there, I managed to get fixes and patches for various 'Devices' on my system in the DSTS table. The DSSDT table is read upon boot of the OS and hence issues are ironed out. I got native audio, SATA ports working and full sleep and restart functionality. Because I have been asked by some people how I got it all going, here is what I did...
You need to search for the devices below and replace the code. Compile the DSDT.aml file and place it in the boot drive Extra folder and restart. You will then see AHCI kext load up at start up using -v for verbose boot mode. Then you will have ODD ports and full sound....
RTC fix -
Device (RTC)
{
Name (_HID, EisaId ("PNP0B00"))
Name (BUF0, ResourceTemplate ()
{
IO (Decode16,
0x0070, // Range Minimum
0x0070, // Range Maximum
0x01, // Alignment
0x08, // Length
)
})
Name (BUF1, ResourceTemplate ()
{
IO (Decode16,
0x0070, // Range Minimum
0x0070, // Range Maximum
0x01, // Alignment
0x08, // Length
)
/* IRQNoFlags () RTC Fix
{8} */
})
Method (_CRS, 0, Serialized)
{
If (HPAE)
{
Return (BUF0)
}
Return (BUF1)
}
}Timer Fix
Device (TIMR)
{
Name (_HID, EisaId ("PNP0100"))
Name (BUF0, ResourceTemplate ()
{
IO (Decode16,
0x0040, // Range Minimum
0x0040, // Range Maximum
0x01, // Alignment
0x04, // Length
)
IO (Decode16,
0x0050, // Range Minimum
0x0050, // Range Maximum
0x10, // Alignment
0x04, // Length
)
})
Name (BUF1, ResourceTemplate ()
{
IO (Decode16,
0x0040, // Range Minimum
0x0040, // Range Maximum
0x01, // Alignment
0x04, // Length
)
IO (Decode16,
0x0050, // Range Minimum
0x0050, // Range Maximum
0x10, // Alignment
0x04, // Length
)
/* IRQNoFlags ()
{0} */
})
Method (_CRS, 0, Serialized)
{
If (HPAE)
{
Return (BUF0)
}
Return (BUF1)
}
}Pic Fix
Device (IPIC)
{
Name (_HID, EisaId ("PNP0000"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0020, // Range Minimum
0x0020, // Range Maximum
0x01, // Alignment
0x1E, // Length
)
IO (Decode16,
0x00A0, // Range Minimum
0x00A0, // Range Maximum
0x01, // Alignment
0x1E, // Length
)
IO (Decode16,
0x04D0, // Range Minimum
0x04D0, // Range Maximum
0x01, // Alignment
0x02, // Length
)
/* IRQNoFlags ()
{2} */
})
}Native Audio fix
Device (HDEF)
{
Name (_ADR, 0x001B0000)
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x04)
{
"layout-id",
Buffer (0x04)
{
0x0C, 0x00, 0x00, 0x00
},
"PinConfigurations",
Buffer (Zero) {}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}5+6 ODD port SATA Fix
SATA
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0xC5, 0x27, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}Sleep fix on USB devices
Device (UHC1)
{
Name (_ADR, 0x001D0000)
Name (UPS1, Package (0x02)
{
0x03,
0x03
})
Method (_PRW, 0, NotSerialized)
{
Return (UPS1)
}
OperationRegion (USBR, PCI_Config, 0xC4, One)
Field (USBR, AnyAcc, NoLock, Preserve)
{
URES, 8
}
Method (_PSW, 1, NotSerialized)
{
If (LEqual (Arg0, Zero))
{
Store (Zero, URES)
}
If (LEqual (Arg0, One))
{
Store (0x03, URES)
}
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x34, 0x3A, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Device (UHC2)
{
Name (_ADR, 0x001D0001)
Name (UPS1, Package (0x02)
{
0x04,
0x03
})
Method (_PRW, 0, NotSerialized)
{
Return (UPS1)
}
OperationRegion (USBR, PCI_Config, 0xC4, One)
Field (USBR, AnyAcc, NoLock, Preserve)
{
URES, 8
}
Method (_PSW, 1, NotSerialized)
{
If (LEqual (Arg0, Zero))
{
Store (Zero, URES)
}
If (LEqual (Arg0, One))
{
Store (0x03, URES)
}
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x35, 0x3A, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Device (UHC3)
{
Name (_ADR, 0x001D0002)
Name (UPS1, Package (0x02)
{
0x0C,
0x03
})
Method (_PRW, 0, NotSerialized)
{
Return (UPS1)
}
OperationRegion (USBR, PCI_Config, 0xC4, One)
Field (USBR, AnyAcc, NoLock, Preserve)
{
URES, 8
}
Method (_PSW, 1, NotSerialized)
{
If (LEqual (Arg0, Zero))
{
Store (Zero, URES)
}
If (LEqual (Arg0, One))
{
Store (0x03, URES)
}
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x36, 0x3A, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Device (UHC4)
{
Name (_ADR, 0x001D0003)
Name (UPS1, Package (0x02)
{
0x0E,
0x03
})
Method (_PRW, 0, NotSerialized)
{
Return (UPS1)
}
OperationRegion (USBR, PCI_Config, 0xC4, One)
Field (USBR, AnyAcc, NoLock, Preserve)
{
URES, 8
}
Method (_PSW, 1, NotSerialized)
{
If (LEqual (Arg0, Zero))
{
Store (Zero, URES)
}
If (LEqual (Arg0, One))
{
Store (0x03, URES)
}
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x37, 0x3A, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Device (EHCI)
{
Name (_ADR, 0x001D0007)
Name (UPS1, Package (0x02)
{
0x0D,
0x03
})
Method (_PRW, 0, NotSerialized)
{
Return (UPS1)
}
OperationRegion (USBR, PCI_Config, 0x62, 0x02)
Field (USBR, AnyAcc, NoLock, Preserve)
{
URE2, 9
}
Method (_PSW, 1, NotSerialized)
{
If (LEqual (Arg0, Zero))
{
Store (Zero, URE2)
}
If (LEqual (Arg0, One))
{
Store (0x01FF, URE2)
}
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x3a, 0x3a, 0x00, 0x00 /*<--------- ID MAC------*/
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}I can report I have not had ANY issues with these fixes I applied. No crashes (as I had before - even in 32 bit EFI mode). I hope this can help some others using these earlier macs in 64 bit mode. Feel free to PM me if your stuck at any stage along the way.
Edit: Ooops forgot to mention, was running 10.6.7. Updated to 10.6.8 and everything same except my display port with ATI 5770 is not showing anything anymore. Plenty of warning of this issue by Rominator and Netkas but just wanted to give it a go. Aprt from this, absolutely no probs. Please post if ur trying the DSDT method and ur expreriencing any issues.
Mac Pro 1,1 -> upgraded to 2,1 using Mac Pro EFis method see my post here for problematic 1,1s - > http://forum.netkas....c,1094.120.html
x2 quad core X5355 chips (plus original heatsinks form 2,1 macpro)
Legacy 64 bit mode using chameleon bootloader
DSDT with fixes for audio, SATA ports and USB devices for sleep



Sign In
Create Account







