Ciao, l'aggiunta che ho fatto è questa:
all'interno di
Device (PCIB)
{
Name (_ADR, 0x001E0000)
OperationRegion (SBRT, PCI_Config, 0x3E, 0x02)
blablabla....
Device (FWBR)
{
Name (_ADR, Zero)
Device (FRWR)
{
Name (_ADR, 0x00030000)
Name (_GPE, 0x1E)
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"fwhub",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
}
In pratica ho aggiunto FWBR e l'ho inserita lì ("ispirato" dal dsdt di un iMac). Questo mi da un System Profile identico all'iMac e mi da meno problemi con gli HD che collego anche se non sempre riesce a caricarmi tutte e due le partizioni in uno. Cosa importante da fare è controllare _GPE con ioreg che corrisponda al valore del PCIBus a cui è collegata.
Poi in Scope (\_GPE)
ho aggiunto questo
Method (_L1E, 0, NotSerialized)
{
Notify (\_SB.PCI0.PCIB.FWBR.FRWR, Zero)
Notify (\_SB.PWRB, 0x02)
}
Anche qui il valore dopo _L è lo stesso di _GPE e si basa su ioreg.
Per l'audio non so se hai ACL883 a me funzionicchia con voodooHDA ma distorce dopo lo stop, con le patch al DSDT + kext andava ogni tanto e altre volte KP.
Per ora ho risolto con un'altra scheda audio.
Ciao grazie scrax ora provo.
Per l'audio abbiamo l'AD2000b.
Per la Firewire riporto alcuni dettagli che ho ricavato da IORegexplorer
>-P0P1@1E
>>--IOPCI2PCIBridge
>>>--pci1106,3044@2
>>>>---AppleFWOCHI
E questo da LsPci da snow (stesso DSDT)
------------------------------------------------------------------------------------------
09:02.0 FireWire (IEEE 1394): VIA Technologies, Inc. VT6306 Fire II IEEE 1394 OHCI Link Layer Controller (rev c0) (prog-if 10 [OHCI])
Subsystem: VIA Technologies, Inc. VT6306 Fire II IEEE 1394 OHCI Link Layer Controller
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 64 (8000ns max), Cache Line Size: 256 bytes
Interrupt: pin A routed to IRQ 18
Region 0: Memory at fbeff000 (32-bit, non-prefetchable)
Region 1: I/O ports at ec00 [disabled]
Capabilities: [50] 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-
-----------------------------------------------
So per certo che devo "montarlo" qui dentro...
Device (P0P1)
{
Name (_ADR, 0x001E0000)
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x0B, 0x04))
}
Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR01)
}
Return (PR01)
}
}Ma il tuo valore
Name (_ADR, 0x00030000)
come lo hai ricavato? da cosa dipende?
E mi sorge spontanea la domanda.... cosa faccio con i due device Firewire presenti nel DSDT??????
Se compilo cosi non ho errori.. domani provo se funziona.
Device (P0P1)
{
Name (_ADR, 0x001E0000)
Device (FWBR)
{
Name (_ADR, Zero)
Device (FRWR)
{
Name (_ADR, 0x00030000)
Name (_GPE, 0x1E)
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"fwports",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
Scope (\_GPE)
{
Method (_L1E, 0, NotSerialized)
{
Notify (\_SB.PCI0.P0P1.FWBR.FRWR, Zero)
Notify (\_SB.PWRB, 0x02)
}
}
}
}
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x0B, 0x04))
}
Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR01)
}
Return (PR01)
}
}Consigli sono ben accetti
Fabio