- Joined
- Apr 7, 2010
- Messages
- 74
- Motherboard
- MSI B75A-G43
- CPU
- i5-2500K
- Graphics
- nVidia 8400GS 512 MB DDR3
- Mac
- Classic Mac
- Mobile Phone
Re: DSDT Database for non-P55 Motherboards
In most of the DSDTs found here in the DSDT database, all which I have reviewed, anyway, the SATA device tree is simply the IDE1 device tree which has been renamed SATA, by changing only the initial Device statement.
I believe the IDE0 device is the correct one to rename, and if a true SATA device tree is substituted for the IDE0 device tree (a sample of which SATA device tree is attached, below), then the devices will, indeed, appear as SATA devices, and with distinct SATA bay names, too. This descriptive information appears in the About This Mac... information.
In the sample, the 0x001F0002 device is replaced with a SATA device tree.
Each SATA device is given a bay name, starting with 1, as Int 1, Int 2, Int 3, Int 4, Ext 1 and Ext 2, for a total of six SATA devices.
In this instance I am using a Gigabyte accessory external SATA connector kit (obtained from a spare GA-P35-DS3R mobo) on my GA-H55M-S2H mobo.
As I have done on this H55 mobo, I have done the same on my other Hacks, namely P35-DS3R, EP45C-DS3R, EP45T-DS3R and Shuttle SP35 as each of these are ICH9R or ICH10R. Actually, the Shuttle SP35 came first with this substitution, and the others followed, with the Gigabyte H55M being last.
Also, on some G31 and G41 mobos which I have built, and which are ICH7, there are only four devices, in which case the bays are usually named Int 1, Int 2, Int 3 and Ext 1, and a special custom eSATA bracket is used for Ext 1, often using the otherwise unused upper portion of an R8169 gigabit E-net PCI card or a Mini-PCI to PCI WiFi adapter card as the location of the eSATA connector, which is itself obtained from one of the "usual suspect" cable companies found on The Bay, or elsewhere. This requires use of hand tools or machinery, but is a small price to pay for the convenience.
Incidentally, I had earlier retrofitted the "Hackintosh-friendly" DSDT additions (AMAC, etcetera) from an existing Gigabyte mobo to my F5 GA-H55M-S2H mobo's BIOS, and I was pleased to see that Gigabyte finally included the same in this mobo's F6 BIOS.
Device (SATA) // The SATA device replaces the entire IDE0 device
{
Name (_ADR, 0x001F0002) // Otherwise, the descriptive bay names won't be picked up
Name (_SUN, One)
Device (PRT0) // Device 0 is internal (DVD multi-burner) in my machine
{
Name (_ADR, Zero)
Method (_GTF, 0, NotSerialized)
{
Name (PIB0, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5
})
Return (PIB0)
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"io-device-location",
Buffer (0x06)
{
"Int 1" // Name this bay "Int 1" (for Internal 1)
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Device (PRT1) // Device 1 is internal (500 GB hard drive with main and backup partitions) in my machine
{
Name (_ADR, One)
Method (_GTF, 0, NotSerialized)
{
Name (PIB1, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xF5
})
Return (PIB1)
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"io-device-location",
Buffer (0x06)
{
"Int 2" // Name this bay "Int 2" (for Internal 2)
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Device (PRT2) // Device 2 is internal, but is presently unused in my machine
{
Name (_ADR, 0x02)
Method (_GTF, 0, NotSerialized)
{
Name (PIB2, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5
})
Return (PIB2)
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"io-device-location",
Buffer (0x06)
{
"Int 3" // Name this bay "Int 3" (for Internal 3)
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Device (PRT3) // Device 3 is internal, but is presently unused in my machine
{
Name (_ADR, 0x03)
Method (_GTF, 0, NotSerialized)
{
Name (PIB3, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xF5
})
Return (PIB3)
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"io-device-location",
Buffer (0x06)
{
"Int 4" // Name this bay "Int 4" (for Internal 4)
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Device (PRT4) // Device 4 is external, and is usually a 1.5 TB eSATA docking device
{
Name (_ADR, 0x04)
Method (_GTF, 0, NotSerialized)
{
Name (PIB4, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5
})
Return (PIB4)
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"io-device-location",
Buffer (0x06)
{
"Ext 1" // Name this bay "Ext 1" (for External 1)
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Device (PRT5) // Device 5 is external, and is usually a 1.5 TB eSATA docking device
{
Name (_ADR, 0x05)
Method (_GTF, 0, NotSerialized)
{
Name (PIB5, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xF5
})
Return (PIB5)
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"io-device-location",
Buffer (0x06)
{
"Ext 2" // Name this bay "Ext 2" (for External 2)
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x06)
{
"device_type",
Buffer (0x10)
{
"AHCI Controller"
},
"model",
Buffer (0x1D)
{
"ICH10-R SATA/AHCI Controller"
},
"name",
Buffer (0x1D)
{
"ICH10-R SATA/AHCI Controller"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
In most of the DSDTs found here in the DSDT database, all which I have reviewed, anyway, the SATA device tree is simply the IDE1 device tree which has been renamed SATA, by changing only the initial Device statement.
I believe the IDE0 device is the correct one to rename, and if a true SATA device tree is substituted for the IDE0 device tree (a sample of which SATA device tree is attached, below), then the devices will, indeed, appear as SATA devices, and with distinct SATA bay names, too. This descriptive information appears in the About This Mac... information.
In the sample, the 0x001F0002 device is replaced with a SATA device tree.
Each SATA device is given a bay name, starting with 1, as Int 1, Int 2, Int 3, Int 4, Ext 1 and Ext 2, for a total of six SATA devices.
In this instance I am using a Gigabyte accessory external SATA connector kit (obtained from a spare GA-P35-DS3R mobo) on my GA-H55M-S2H mobo.
As I have done on this H55 mobo, I have done the same on my other Hacks, namely P35-DS3R, EP45C-DS3R, EP45T-DS3R and Shuttle SP35 as each of these are ICH9R or ICH10R. Actually, the Shuttle SP35 came first with this substitution, and the others followed, with the Gigabyte H55M being last.
Also, on some G31 and G41 mobos which I have built, and which are ICH7, there are only four devices, in which case the bays are usually named Int 1, Int 2, Int 3 and Ext 1, and a special custom eSATA bracket is used for Ext 1, often using the otherwise unused upper portion of an R8169 gigabit E-net PCI card or a Mini-PCI to PCI WiFi adapter card as the location of the eSATA connector, which is itself obtained from one of the "usual suspect" cable companies found on The Bay, or elsewhere. This requires use of hand tools or machinery, but is a small price to pay for the convenience.
Incidentally, I had earlier retrofitted the "Hackintosh-friendly" DSDT additions (AMAC, etcetera) from an existing Gigabyte mobo to my F5 GA-H55M-S2H mobo's BIOS, and I was pleased to see that Gigabyte finally included the same in this mobo's F6 BIOS.
Device (SATA) // The SATA device replaces the entire IDE0 device
{
Name (_ADR, 0x001F0002) // Otherwise, the descriptive bay names won't be picked up
Name (_SUN, One)
Device (PRT0) // Device 0 is internal (DVD multi-burner) in my machine
{
Name (_ADR, Zero)
Method (_GTF, 0, NotSerialized)
{
Name (PIB0, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5
})
Return (PIB0)
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"io-device-location",
Buffer (0x06)
{
"Int 1" // Name this bay "Int 1" (for Internal 1)
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Device (PRT1) // Device 1 is internal (500 GB hard drive with main and backup partitions) in my machine
{
Name (_ADR, One)
Method (_GTF, 0, NotSerialized)
{
Name (PIB1, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xF5
})
Return (PIB1)
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"io-device-location",
Buffer (0x06)
{
"Int 2" // Name this bay "Int 2" (for Internal 2)
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Device (PRT2) // Device 2 is internal, but is presently unused in my machine
{
Name (_ADR, 0x02)
Method (_GTF, 0, NotSerialized)
{
Name (PIB2, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5
})
Return (PIB2)
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"io-device-location",
Buffer (0x06)
{
"Int 3" // Name this bay "Int 3" (for Internal 3)
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Device (PRT3) // Device 3 is internal, but is presently unused in my machine
{
Name (_ADR, 0x03)
Method (_GTF, 0, NotSerialized)
{
Name (PIB3, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xF5
})
Return (PIB3)
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"io-device-location",
Buffer (0x06)
{
"Int 4" // Name this bay "Int 4" (for Internal 4)
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Device (PRT4) // Device 4 is external, and is usually a 1.5 TB eSATA docking device
{
Name (_ADR, 0x04)
Method (_GTF, 0, NotSerialized)
{
Name (PIB4, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5
})
Return (PIB4)
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"io-device-location",
Buffer (0x06)
{
"Ext 1" // Name this bay "Ext 1" (for External 1)
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Device (PRT5) // Device 5 is external, and is usually a 1.5 TB eSATA docking device
{
Name (_ADR, 0x05)
Method (_GTF, 0, NotSerialized)
{
Name (PIB5, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xF5
})
Return (PIB5)
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"io-device-location",
Buffer (0x06)
{
"Ext 2" // Name this bay "Ext 2" (for External 2)
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x06)
{
"device_type",
Buffer (0x10)
{
"AHCI Controller"
},
"model",
Buffer (0x1D)
{
"ICH10-R SATA/AHCI Controller"
},
"name",
Buffer (0x1D)
{
"ICH10-R SATA/AHCI Controller"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}