I did these changes to the DSDT.
Added QWordMemory region. EDIT: Added - One
to fix error
QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x0000000000000000, // Granularity
0x0000000000010000, // Range Minimum
0x000000000001FFFF, // Range Maximum
0x0000000000000000, // Translation Offset
0x0000000000010000, // Length
,, _YAF, AddressRangeMemory, TypeStatic)
CreateQWordField (BUF0, \_SB.PCI0._YAF._LEN, M2LN) // _LEN: Length
CreateQWordField (BUF0, \_SB.PCI0._YAF._MIN, M2MN) // _MIN: Minimum Base Address
CreateQWordField (BUF0, \_SB.PCI0._YAF._MAX, M2MX) // _MAX: Maximum Base Address
// 39-bit for Haswell
M2MX = 0x8000000000 - One
If ((TUUD >= 0x1000))
{
M2MN = (TUUD << 0x14)
}
Else
{
M2MN = 0x0000000100000000
}
M2LN = (M2MX - M2MN) + One
And removed some entries I think aren’t needed (like lid, dock and battery) to reduce the size (this only matters when modifying it in BIOS but better to test now). Resizable BAR should work on Linux now and test stuff like sleep too.
If anything doesn’t work send dmesg output.
DSDTMod.zip (22.3 KB)
Copy DSDTMod.aml to /boot/. While on the GRUB menu press e to edit the Ubuntu entry and add a line acpi /boot/DSDTMod.aml
at the end and press CTRL+X to boot.
If it all works we can go to the next step of getting the modded DSDT into the BIOS so it works on Windows.