128 lines
3.5 KiB
Plaintext
128 lines
3.5 KiB
Plaintext
// Name: Concatenate Resources
|
|
// Expect: int => 1
|
|
|
|
DefinitionBlock ("", "DSDT", 2, "uTEST", "TESTTABL", 0xF0F0F0F0)
|
|
{
|
|
Name (BUF0, ResourceTemplate ()
|
|
{
|
|
WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
|
|
0x0000,
|
|
0x0000,
|
|
0x00FF,
|
|
0x0000,
|
|
0x0100,
|
|
,, _Y00)
|
|
DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
|
|
0x00000000,
|
|
0x00000000,
|
|
0x00000CF7,
|
|
0x00000000,
|
|
0x00000CF8,
|
|
1, "\\SOME.PATH",, TypeStatic, DenseTranslation)
|
|
IO (Decode16,
|
|
0x0CF8,
|
|
0x0CF8,
|
|
0x01,
|
|
0x08,
|
|
)
|
|
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
|
|
0x00000000,
|
|
0x000A0000,
|
|
0x000BFFFF,
|
|
0x00000000,
|
|
0x00020000,
|
|
123, "^^^^^^^^^ANOT.ER.PATH", , AddressRangeMemory, TypeStatic)
|
|
})
|
|
|
|
Name (IIC0, ResourceTemplate ()
|
|
{
|
|
I2cSerialBusV2 (0x0000, ControllerInitiated, 0x00061A80,
|
|
AddressingMode7Bit, "\\_SB.PCI0.I2C0",
|
|
0x00, ResourceConsumer, _Y10, Exclusive,
|
|
)
|
|
})
|
|
|
|
Name (RBUF, ResourceTemplate ()
|
|
{
|
|
I2cSerialBusV2 (0x0029, ControllerInitiated, 0x00061A80,
|
|
AddressingMode7Bit, "\\_SB.PCI0.I2C0",
|
|
0x00, ResourceConsumer, , Exclusive,
|
|
)
|
|
GpioInt (Level, ActiveHigh, Exclusive, PullNone, 0x0000,
|
|
"\\_SB.PCI0.GPI0", 0x00, ResourceConsumer, ,
|
|
)
|
|
{
|
|
0x012A
|
|
}
|
|
GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
|
|
"\\_SB.PCI0.GPI0", 0x00, ResourceConsumer, ,
|
|
)
|
|
{
|
|
0x002F
|
|
}
|
|
GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
|
|
"\\_SB.PCI0.GPI0", 0x00, ResourceConsumer, ,
|
|
)
|
|
{
|
|
0x0124
|
|
}
|
|
})
|
|
|
|
// src0, src1, dst
|
|
Method (CHEK, 3)
|
|
{
|
|
Local0 = (SizeOf(Arg0) + SizeOf(Arg1)) - 2
|
|
|
|
If (Local0 != SizeOf(Arg2)) {
|
|
Printf("Invalid final buffer size: %o, expected %o",
|
|
Local0, SizeOf(Arg2))
|
|
Return (0)
|
|
}
|
|
|
|
Local0 = 0
|
|
Local1 = 0
|
|
|
|
While (Local0 < (SizeOf(Arg0) - 2)) {
|
|
Local2 = DerefOf(Arg0[Local0])
|
|
Local3 = DerefOf(Arg2[Local1])
|
|
|
|
If (Local2 != Local3) {
|
|
Printf("Byte src=%o (dst=%o) mismatch, expected %o got %o",
|
|
Local0, Local1, ToHexString(Local2), ToHexString(Local3))
|
|
Return (0)
|
|
}
|
|
|
|
Local0 += 1
|
|
Local1 += 1
|
|
}
|
|
|
|
Local0 = 0
|
|
While (Local0 < SizeOf(Arg1)) {
|
|
Local2 = DerefOf(Arg1[Local0])
|
|
Local3 = DerefOf(Arg2[Local1])
|
|
|
|
If (Local2 != Local3) {
|
|
Printf("Byte src=%o (dst=%o) mismatch, expected %o got %o",
|
|
Local0, Local1, ToHexString(Local2), ToHexString(Local3))
|
|
Return (0)
|
|
}
|
|
|
|
Local0 += 1
|
|
Local1 += 1
|
|
}
|
|
|
|
Return (1)
|
|
}
|
|
|
|
Method (MAIN, 0, NotSerialized)
|
|
{
|
|
Local0 = ConcatenateResTemplate(BUF0, IIC0)
|
|
If (CHEK(BUF0, IIC0, Local0) != 1) {
|
|
Return (0)
|
|
}
|
|
|
|
Local1 = ConcatenateResTemplate(Local0, RBUF)
|
|
Return(CHEK(Local0, RBUF, Local1))
|
|
}
|
|
}
|