blob: 98b52f279bd85483c52fc456fbb8616608631874 [file] [log] [blame]
/* SPDX-License-Identifier: GPL-2.0-only */
Device (MBRS)
{
Name (_HID, EisaId ("PNP0C01"))
Name (_UID, 0x01)
Name (MSBF, ResourceTemplate ()
{
/* System memory */
QWordMemory (ResourceProducer, PosDecode, MinFixed,
MaxNotFixed, Prefetchable, ReadWrite,
0x0, 0x100000000, 0x400000000, 0x0, 0x0, ,, _Y1C,
AddressRangeMemory, TypeStatic)
/* Top Of Low Memory */
Memory32 (ReadOnly, 0x0, 0x0, 0x1, 0x0, _Y1D)
/* 640kB who wants more? */
Memory32Fixed (ReadWrite, 0x0, 0xA0000, )
/* 64k BIOS bootblock */
Memory32Fixed (ReadOnly, 0xF0000, 0x10000,)
/* ISA memory hole 15-16 MB ? */
/* Memory32Fixed (ReadOnly, 0x100000, 0xF00000,) */
/* ISA memory hole 14-15 MB ? */
/* Memory32Fixed (ReadOnly, 0x100000, 0xE00000,) */
/* Local APIC */
Memory32Fixed (ReadWrite, 0xFEE00000, 0x00001000,)
})
Method (_CRS, 0, NotSerialized)
{
CreateQWordField (MSBF, \_SB.MBRS._Y1C._MIN, MEML)
CreateQWordField (MSBF, \_SB.MBRS._Y1C._MAX, MEMM)
CreateQWordField (MSBF, \_SB.MBRS._Y1C._LEN, LELM)
Local1 = \_SB.PCI0.RLAR & 0x03FF
Local1++
If (Local1 > 0x40)
{
LELM = Local1 << 0x1A
}
CreateDWordField (MSBF, \_SB.MBRS._Y1D._MIN, MS00)
CreateDWordField (MSBF, \_SB.MBRS._Y1D._MAX, MS01)
CreateDWordField (MSBF, \_SB.MBRS._Y1D._LEN, MEM2)
Local1 = \_SB.PCI0.TOLM & 0xF800
Local1 >>= 4
Local1--
If (Local1 > 0x10)
{
Local1 -= 0x0F
MEM2 = Local1 << 0x14
MS00 = 0x01000000
MS01 = MS00
}
Return (MSBF)
}
Method (_STA, 0, NotSerialized)
{
Return (0x0F)
}
}