ok. Founded how to fix Hot Plug for Firewire !
every Gigabyte board has
Method (_L0B, 0, NotSerialized)
{
Notify (\_SB.PCI0.HUB0, 0x02)
}
change it to this
Method (_L0B, 0, NotSerialized)
{
Notify (\_SB.PCI0.HUB0, 0x02)
Notify (\_SB.PCI0.HUB0.FRWR, Zero)
Notify (\_SB.PWRB, 0x02)
}
Under Device (HUB0) add this
Device (FRWR)
{
Name (_ADR, 0x0006FFFF) // find your address in Ioreg
Name (_GPE, 0x0B)
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"fwhub",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
and THE MOST IMPORTANT PART
every Gigabyte board has
Method (^_INI, 0, NotSerialized)
and
Method (OSTP, 0, NotSerialized)
they are not Darwin frendly and must be edited !
from this
Method (^_INI, 0, NotSerialized)
{
If (STRC (_OS, "Microsoft Windows"))
{
Store (0x56, SMIP)
}
Else
{
If (STRC (_OS, "Microsoft Windows NT"))
{
If (CondRefOf (\_OSI, Local0))
{
If (_OSI ("Windows 2001"))
{
Store (0x59, SMIP)
Store (Zero, OSFL)
Store (0x03, OSFX)
}
}
Else
{
Store (0x58, SMIP)
Store (Zero, OSFL)
}
}
Else
{
Store (0x57, SMIP)
Store (0x02, OSFL)
}
}
}
Scope (\)
{
Method (OSTP, 0, NotSerialized)
{
If (LEqual (OSFL, One))
{
Store (0x56, SMIP)
}
If (LEqual (OSFL, 0x02))
{
Store (0x57, SMIP)
}
If (LEqual (OSFL, Zero))
{
If (LEqual (OSFX, 0x03))
{
Store (0x59, SMIP)
}
Else
{
Store (0x58, SMIP)
}
}
If (LEqual (OSFX, 0x03))
{
Store (0x59, SMIP)
}
}
}
to this
Method (^_INI, 0, NotSerialized)
{
Store (0x99, SMIP)
}
Scope (\)
{
Method (OSTP, 0, NotSerialized)
{
Store (0x99, SMIP)
}
}
that's all. You will have firewire Hotplug and runtime power conservation working properly.
P.S. d00d - can you add this on front page?