c8eab2c044
The patch is based on Thatcher board. So far it boots Linux (3.2/3.7), internal network adapter works, AHCI works. External PCI/PCIe slots works too. Power management/ACPI seems to work. Internal VGA works with dumped ROM (VGA/DVI), but lacks GART. PCI pref devices are being relocated by Linux, reason unknown. This is a good start. USB and XHCI untested but visible. Change-Id: I1869aecb2634d548b00b3c9139517d6a0e0c9817 Signed-off-by: Rudolf Marek <r.marek@assembler.cz> Reviewed-on: http://review.coreboot.org/2038 Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Tested-by: build bot (Jenkins)
97 lines
1.3 KiB
Text
97 lines
1.3 KiB
Text
//BTDC Due to IMC Fan, ACPI control codes
|
|
OperationRegion(IMIO, SystemIO, 0x3E, 0x02)
|
|
Field(IMIO , ByteAcc, NoLock, Preserve) {
|
|
IMCX,8,
|
|
IMCA,8
|
|
}
|
|
|
|
IndexField(IMCX, IMCA, ByteAcc, NoLock, Preserve) {
|
|
Offset(0x80),
|
|
MSTI, 8,
|
|
MITS, 8,
|
|
MRG0, 8,
|
|
MRG1, 8,
|
|
MRG2, 8,
|
|
MRG3, 8,
|
|
}
|
|
|
|
Method(WACK, 0)
|
|
{
|
|
Store(0, Local0)
|
|
Store(50, Local1)
|
|
While (LAnd (LNotEqual(Local0, 0xFA), LGreater(Local1,0))) {
|
|
Store(MRG0, Local0)
|
|
Sleep(10)
|
|
Decrement(Local1)
|
|
}
|
|
}
|
|
|
|
//Init
|
|
Method (ITZE, 0)
|
|
{
|
|
Store(0, MRG0)
|
|
Store(0xB5, MRG1)
|
|
Store(0, MRG2)
|
|
Store(0x96, MSTI)
|
|
WACK()
|
|
|
|
Store(0, MRG0)
|
|
Store(0, MRG1)
|
|
Store(0, MRG2)
|
|
Store(0x80, MSTI)
|
|
WACK()
|
|
|
|
Or(MRG2, 0x01, Local0)
|
|
|
|
Store(0, MRG0)
|
|
Store(0, MRG1)
|
|
Store(Local0, MRG2)
|
|
Store(0x81, MSTI)
|
|
WACK()
|
|
}
|
|
|
|
//Sleep
|
|
Method (IMSP, 0)
|
|
{
|
|
Store(0, MRG0)
|
|
Store(0xB5, MRG1)
|
|
Store(0, MRG2)
|
|
Store(0x96, MSTI)
|
|
WACK()
|
|
|
|
Store(0, MRG0)
|
|
Store(1, MRG1)
|
|
Store(0, MRG2)
|
|
Store(0x98, MSTI)
|
|
WACK()
|
|
|
|
Store(0, MRG0)
|
|
Store(0xB4, MRG1)
|
|
Store(0, MRG2)
|
|
Store(0x96, MSTI)
|
|
WACK()
|
|
}
|
|
|
|
//Wake
|
|
Method (IMWK, 0)
|
|
{
|
|
Store(0, MRG0)
|
|
Store(0xB5, MRG1)
|
|
Store(0, MRG2)
|
|
Store(0x96, MSTI)
|
|
WACK()
|
|
|
|
Store(0, MRG0)
|
|
Store(0, MRG1)
|
|
Store(0, MRG2)
|
|
Store(0x80, MSTI)
|
|
WACK()
|
|
|
|
Or(MRG2, 0x01, Local0)
|
|
|
|
Store(0, MRG0)
|
|
Store(0, MRG1)
|
|
Store(Local0, MRG2)
|
|
Store(0x81, MSTI)
|
|
WACK()
|
|
}
|