You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
458 lines
17 KiB
458 lines
17 KiB
DefinitionBlock("MEM.AML","SSDT",0x1,"MSFT","simulatr",0x1) {
|
|
Scope(\_SB) {
|
|
|
|
Device(XXSP) {
|
|
Name(_HID, "SPSIMUL")
|
|
Method(_STA) {
|
|
return (0xF)
|
|
}
|
|
|
|
Name(AVAL, 0)
|
|
OperationRegion(DSTA, 0x99, 0, 0x10)
|
|
Field(DSTA, ByteAcc, NoLock, Preserve) {
|
|
SMM0, 8,
|
|
SMM1, 8,
|
|
SMM2, 8,
|
|
SMM3, 8,
|
|
SMM4, 8,
|
|
SMM5, 8,
|
|
SMM6, 8,
|
|
SMM7, 8
|
|
}
|
|
|
|
Name(SNAM,
|
|
Package() {
|
|
\_SB.PMM0,
|
|
\_SB.PMM1,
|
|
\_SB.PMM2,
|
|
\_SB.PMM3,
|
|
\_SB.PMM4,
|
|
\_SB.PMM5,
|
|
\_SB.PMM6,
|
|
\_SB.PMM7
|
|
}
|
|
)
|
|
|
|
OperationRegion(MEMI, 0x9A, 0, 0x100)
|
|
Field(MEMI, DwordAcc, NoLock, Preserve) {
|
|
MM0A, 32,
|
|
MM0L, 32,
|
|
MM1A, 32,
|
|
MM1L, 32,
|
|
MM2A, 32,
|
|
MM2L, 32,
|
|
MM3A, 32,
|
|
MM3L, 32,
|
|
MM4A, 32,
|
|
MM4L, 32,
|
|
MM5A, 32,
|
|
MM5L, 32,
|
|
MM6A, 32,
|
|
MM6L, 32,
|
|
MM7A, 32,
|
|
MM7L, 32
|
|
}
|
|
|
|
Method(_REG, 2) {
|
|
Store(Arg1, AVAL)
|
|
}
|
|
|
|
Method(NOFD, 2) {
|
|
if (LEqual(Arg0, 0)) {
|
|
Notify(\_SB.PMM0, Arg1)
|
|
}
|
|
if (LEqual(Arg0, 1)) {
|
|
Notify(\_SB.PMM1, Arg1)
|
|
}
|
|
if (LEqual(Arg0, 2)) {
|
|
Notify(\_SB.PMM2, Arg1)
|
|
}
|
|
if (LEqual(Arg0, 3)) {
|
|
Notify(\_SB.PMM3, Arg1)
|
|
}
|
|
if (LEqual(Arg0, 4)) {
|
|
Notify(\_SB.PMM4, Arg1)
|
|
}
|
|
if (LEqual(Arg0, 5)) {
|
|
Notify(\_SB.PMM5, Arg1)
|
|
}
|
|
if (LEqual(Arg0, 6)) {
|
|
Notify(\_SB.PMM6, Arg1)
|
|
}
|
|
if (LEqual(Arg0, 7)) {
|
|
Notify(\_SB.PMM7, Arg1)
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
Device(PMM0) {
|
|
Name(_HID, EISAID("PNP0C80"))
|
|
Name(_UID, 0)
|
|
Name(_SUN, 0)
|
|
Method(_STA) {
|
|
If (Land(\_SB.XXSP.AVAL, \_SB.XXSP.MM0L)) {
|
|
Store(\_SB.XXSP.SMM0, Local0)
|
|
return (Local0)
|
|
}
|
|
return (0)
|
|
}
|
|
Method(_EJ0, 1) {
|
|
Store(0, \_SB.XXSP.SMM0)
|
|
}
|
|
|
|
Method(_CRS) {
|
|
Name(BUF0, ResourceTemplate() {
|
|
DWORDMemory( // Consumed-and-produced resource(all of memory space)
|
|
ResourceConsumer, // bit 0 of general flags is 0
|
|
PosDecode, // positive Decode
|
|
MinFixed, // Range is fixed
|
|
MaxFixed, // Range is fixed
|
|
Cacheable,
|
|
ReadWrite,
|
|
0x00000000, // Granularity
|
|
0x00000000, // Min (calculated dynamically)
|
|
0x00000000, // Max
|
|
0x00000000, // Translation
|
|
0x00000000, // Length
|
|
, // ResIndex
|
|
, // ResSource
|
|
MEMD // ResourceTag
|
|
)
|
|
}
|
|
)
|
|
CreateDWORDField(BUF0, MEMD._MIN, MMIN)
|
|
CreateDWORDField(BUF0, MEMD._MAX, MMAX)
|
|
CreateDWORDField(BUF0, MEMD._LEN, MLEN)
|
|
Store(\_SB.XXSP.MM0A, MMIN)
|
|
Store(\_SB.XXSP.MM0L, MLEN)
|
|
Add(MMIN, MLEN, Local0)
|
|
Decrement(Local0)
|
|
Store(Local0, MMAX)
|
|
return (BUF0)
|
|
}
|
|
}
|
|
Device(PMM1) {
|
|
Name(_HID, EISAID("PNP0C80"))
|
|
Name(_UID, 1)
|
|
Name(_SUN, 1)
|
|
Method(_STA) {
|
|
If (Land(\_SB.XXSP.AVAL, \_SB.XXSP.MM1L)) {
|
|
Store(\_SB.XXSP.SMM1, Local0)
|
|
return (Local0)
|
|
}
|
|
return (0)
|
|
}
|
|
Method(_EJ0, 1) {
|
|
Store(0, \_SB.XXSP.SMM1)
|
|
}
|
|
|
|
Method(_CRS) {
|
|
Name(BUF0, ResourceTemplate() {
|
|
DWORDMemory( // Consumed-and-produced resource(all of memory space)
|
|
ResourceConsumer, // bit 0 of general flags is 0
|
|
PosDecode, // positive Decode
|
|
MinFixed, // Range is fixed
|
|
MaxFixed, // Range is fixed
|
|
Cacheable,
|
|
ReadWrite,
|
|
0x00000000, // Granularity
|
|
0x00000000, // Min (calculated dynamically)
|
|
0x00000000, // Max
|
|
0x00000000, // Translation
|
|
0x00000000, // Length
|
|
, // ResIndex
|
|
, // ResSource
|
|
MEMD // ResourceTag
|
|
)
|
|
}
|
|
)
|
|
CreateDWORDField(BUF0, MEMD._MIN, MMIN)
|
|
CreateDWORDField(BUF0, MEMD._MAX, MMAX)
|
|
CreateDWORDField(BUF0, MEMD._LEN, MLEN)
|
|
Store(\_SB.XXSP.MM1A, MMIN)
|
|
Store(\_SB.XXSP.MM1L, MLEN)
|
|
Add(MMIN, MLEN, Local0)
|
|
Decrement(Local0)
|
|
Store(Local0, MMAX)
|
|
return (BUF0)
|
|
}
|
|
}
|
|
Device(PMM2) {
|
|
Name(_HID, EISAID("PNP0C80"))
|
|
Name(_UID, 2)
|
|
Name(_SUN, 2)
|
|
Method(_STA) {
|
|
If (Land(\_SB.XXSP.AVAL, \_SB.XXSP.MM2L)) {
|
|
Store(\_SB.XXSP.SMM2, Local0)
|
|
return (Local0)
|
|
}
|
|
return (0)
|
|
}
|
|
Method(_EJ0, 1) {
|
|
Store(0, \_SB.XXSP.SMM2)
|
|
}
|
|
|
|
Method(_CRS) {
|
|
Name(BUF0, ResourceTemplate() {
|
|
DWORDMemory( // Consumed-and-produced resource(all of memory space)
|
|
ResourceConsumer, // bit 0 of general flags is 0
|
|
PosDecode, // positive Decode
|
|
MinFixed, // Range is fixed
|
|
MaxFixed, // Range is fixed
|
|
Cacheable,
|
|
ReadWrite,
|
|
0x00000000, // Granularity
|
|
0x00000000, // Min (calculated dynamically)
|
|
0x00000000, // Max
|
|
0x00000000, // Translation
|
|
0x00000000, // Length
|
|
, // ResIndex
|
|
, // ResSource
|
|
MEMD // ResourceTag
|
|
)
|
|
}
|
|
)
|
|
CreateDWORDField(BUF0, MEMD._MIN, MMIN)
|
|
CreateDWORDField(BUF0, MEMD._MAX, MMAX)
|
|
CreateDWORDField(BUF0, MEMD._LEN, MLEN)
|
|
Store(\_SB.XXSP.MM2A, MMIN)
|
|
Store(\_SB.XXSP.MM2L, MLEN)
|
|
Add(MMIN, MLEN, Local0)
|
|
Decrement(Local0)
|
|
Store(Local0, MMAX)
|
|
return (BUF0)
|
|
}
|
|
}
|
|
Device(PMM3) {
|
|
Name(_HID, EISAID("PNP0C80"))
|
|
Name(_UID, 3)
|
|
Name(_SUN, 3)
|
|
Method(_STA) {
|
|
If (Land(\_SB.XXSP.AVAL, \_SB.XXSP.MM3L)) {
|
|
Store(\_SB.XXSP.SMM3, Local0)
|
|
return (Local0)
|
|
}
|
|
return (0)
|
|
}
|
|
Method(_EJ0, 1) {
|
|
Store(0, \_SB.XXSP.SMM3)
|
|
}
|
|
|
|
Method(_CRS) {
|
|
Name(BUF0, ResourceTemplate() {
|
|
DWORDMemory( // Consumed-and-produced resource(all of memory space)
|
|
ResourceConsumer, // bit 0 of general flags is 0
|
|
PosDecode, // positive Decode
|
|
MinFixed, // Range is fixed
|
|
MaxFixed, // Range is fixed
|
|
Cacheable,
|
|
ReadWrite,
|
|
0x00000000, // Granularity
|
|
0x00000000, // Min (calculated dynamically)
|
|
0x00000000, // Max
|
|
0x00000000, // Translation
|
|
0x00000000, // Length
|
|
, // ResIndex
|
|
, // ResSource
|
|
MEMD // ResourceTag
|
|
)
|
|
}
|
|
)
|
|
CreateDWORDField(BUF0, MEMD._MIN, MMIN)
|
|
CreateDWORDField(BUF0, MEMD._MAX, MMAX)
|
|
CreateDWORDField(BUF0, MEMD._LEN, MLEN)
|
|
Store(\_SB.XXSP.MM3A, MMIN)
|
|
Store(\_SB.XXSP.MM3L, MLEN)
|
|
Add(MMIN, MLEN, Local0)
|
|
Decrement(Local0)
|
|
Store(Local0, MMAX)
|
|
return (BUF0)
|
|
}
|
|
}
|
|
Device(PMM4) {
|
|
Name(_HID, EISAID("PNP0C80"))
|
|
Name(_UID, 4)
|
|
Name(_SUN, 4)
|
|
Method(_STA) {
|
|
If (Land(\_SB.XXSP.AVAL, \_SB.XXSP.MM4L)) {
|
|
Store(\_SB.XXSP.SMM4, Local0)
|
|
return (Local0)
|
|
}
|
|
return (0)
|
|
}
|
|
Method(_EJ0, 1) {
|
|
Store(0, \_SB.XXSP.SMM4)
|
|
}
|
|
|
|
Method(_CRS) {
|
|
Name(BUF0, ResourceTemplate() {
|
|
DWORDMemory( // Consumed-and-produced resource(all of memory space)
|
|
ResourceConsumer, // bit 0 of general flags is 0
|
|
PosDecode, // positive Decode
|
|
MinFixed, // Range is fixed
|
|
MaxFixed, // Range is fixed
|
|
Cacheable,
|
|
ReadWrite,
|
|
0x00000000, // Granularity
|
|
0x00000000, // Min (calculated dynamically)
|
|
0x00000000, // Max
|
|
0x00000000, // Translation
|
|
0x00000000, // Length
|
|
, // ResIndex
|
|
, // ResSource
|
|
MEMD // ResourceTag
|
|
)
|
|
}
|
|
)
|
|
CreateDWORDField(BUF0, MEMD._MIN, MMIN)
|
|
CreateDWORDField(BUF0, MEMD._MAX, MMAX)
|
|
CreateDWORDField(BUF0, MEMD._LEN, MLEN)
|
|
Store(\_SB.XXSP.MM4A, MMIN)
|
|
Store(\_SB.XXSP.MM4L, MLEN)
|
|
Add(MMIN, MLEN, Local0)
|
|
Decrement(Local0)
|
|
Store(Local0, MMAX)
|
|
return (BUF0)
|
|
}
|
|
}
|
|
Device(PMM5) {
|
|
Name(_HID, EISAID("PNP0C80"))
|
|
Name(_UID, 5)
|
|
Name(_SUN, 5)
|
|
Method(_STA) {
|
|
If (Land(\_SB.XXSP.AVAL, \_SB.XXSP.MM5L)) {
|
|
Store(\_SB.XXSP.SMM5, Local0)
|
|
return (Local0)
|
|
}
|
|
return (0)
|
|
}
|
|
Method(_EJ0, 1) {
|
|
Store(0, \_SB.XXSP.SMM5)
|
|
}
|
|
|
|
Method(_CRS) {
|
|
Name(BUF0, ResourceTemplate() {
|
|
DWORDMemory( // Consumed-and-produced resource(all of memory space)
|
|
ResourceConsumer, // bit 0 of general flags is 0
|
|
PosDecode, // positive Decode
|
|
MinFixed, // Range is fixed
|
|
MaxFixed, // Range is fixed
|
|
Cacheable,
|
|
ReadWrite,
|
|
0x00000000, // Granularity
|
|
0x00000000, // Min (calculated dynamically)
|
|
0x00000000, // Max
|
|
0x00000000, // Translation
|
|
0x00000000, // Length
|
|
, // ResIndex
|
|
, // ResSource
|
|
MEMD // ResourceTag
|
|
)
|
|
}
|
|
)
|
|
CreateDWORDField(BUF0, MEMD._MIN, MMIN)
|
|
CreateDWORDField(BUF0, MEMD._MAX, MMAX)
|
|
CreateDWORDField(BUF0, MEMD._LEN, MLEN)
|
|
Store(\_SB.XXSP.MM5A, MMIN)
|
|
Store(\_SB.XXSP.MM5L, MLEN)
|
|
Add(MMIN, MLEN, Local0)
|
|
Decrement(Local0)
|
|
Store(Local0, MMAX)
|
|
return (BUF0)
|
|
}
|
|
}
|
|
Device(PMM6) {
|
|
Name(_HID, EISAID("PNP0C80"))
|
|
Name(_UID, 6)
|
|
Name(_SUN, 6)
|
|
Method(_STA) {
|
|
If (Land(\_SB.XXSP.AVAL, \_SB.XXSP.MM6L)) {
|
|
Store(\_SB.XXSP.SMM6, Local0)
|
|
return (Local0)
|
|
}
|
|
return (0)
|
|
}
|
|
Method(_EJ0, 1) {
|
|
Store(0, \_SB.XXSP.SMM6)
|
|
}
|
|
|
|
Method(_CRS) {
|
|
Name(BUF0, ResourceTemplate() {
|
|
DWORDMemory( // Consumed-and-produced resource(all of memory space)
|
|
ResourceConsumer, // bit 0 of general flags is 0
|
|
PosDecode, // positive Decode
|
|
MinFixed, // Range is fixed
|
|
MaxFixed, // Range is fixed
|
|
Cacheable,
|
|
ReadWrite,
|
|
0x00000000, // Granularity
|
|
0x00000000, // Min (calculated dynamically)
|
|
0x00000000, // Max
|
|
0x00000000, // Translation
|
|
0x00000000, // Length
|
|
, // ResIndex
|
|
, // ResSource
|
|
MEMD // ResourceTag
|
|
)
|
|
}
|
|
)
|
|
CreateDWORDField(BUF0, MEMD._MIN, MMIN)
|
|
CreateDWORDField(BUF0, MEMD._MAX, MMAX)
|
|
CreateDWORDField(BUF0, MEMD._LEN, MLEN)
|
|
Store(\_SB.XXSP.MM6A, MMIN)
|
|
Store(\_SB.XXSP.MM6L, MLEN)
|
|
Add(MMIN, MLEN, Local0)
|
|
Decrement(Local0)
|
|
Store(Local0, MMAX)
|
|
return (BUF0)
|
|
}
|
|
}
|
|
Device(PMM7) {
|
|
Name(_HID, EISAID("PNP0C80"))
|
|
Name(_UID, 7)
|
|
Name(_SUN, 7)
|
|
Method(_STA) {
|
|
If (Land(\_SB.XXSP.AVAL, \_SB.XXSP.MM7L)) {
|
|
Store(\_SB.XXSP.SMM7, Local0)
|
|
return (Local0)
|
|
}
|
|
return (0)
|
|
}
|
|
Method(_EJ0, 1) {
|
|
Store(0, \_SB.XXSP.SMM7)
|
|
}
|
|
|
|
Method(_CRS) {
|
|
Name(BUF0, ResourceTemplate() {
|
|
DWORDMemory( // Consumed-and-produced resource(all of memory space)
|
|
ResourceConsumer, // bit 0 of general flags is 0
|
|
PosDecode, // positive Decode
|
|
MinFixed, // Range is fixed
|
|
MaxFixed, // Range is fixed
|
|
Cacheable,
|
|
ReadWrite,
|
|
0x00000000, // Granularity
|
|
0x00000000, // Min (calculated dynamically)
|
|
0x00000000, // Max
|
|
0x00000000, // Translation
|
|
0x00000000, // Length
|
|
, // ResIndex
|
|
, // ResSource
|
|
MEMD // ResourceTag
|
|
)
|
|
}
|
|
)
|
|
CreateDWORDField(BUF0, MEMD._MIN, MMIN)
|
|
CreateDWORDField(BUF0, MEMD._MAX, MMAX)
|
|
CreateDWORDField(BUF0, MEMD._LEN, MLEN)
|
|
Store(\_SB.XXSP.MM7A, MMIN)
|
|
Store(\_SB.XXSP.MM7L, MLEN)
|
|
Add(MMIN, MLEN, Local0)
|
|
Decrement(Local0)
|
|
Store(Local0, MMAX)
|
|
return (BUF0)
|
|
}
|
|
}
|
|
}
|
|
}
|