Paul Menzel (paulepanter@users.sourceforge.net) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/2942
-gerrit
commit 153f968e4c0b536f8a8a4934b3acfe74ad078d67 Author: Paul Menzel paulepanter@users.sourceforge.net Date: Thu Mar 28 14:59:34 2013 +0100
Winbond W83627HF: ACPI: Make `AddressMax` a multiple of `AddressAlignment`
Hooking the ASL into the DSDT of the ASRock E350M1, building fails with the following error.
[…] Warning 1126 - ResourceTag larger than Field ^ (Size mismatch, Tag: 16 bits, Field: 8 bits)
dsdt.ramstage.asl 1281: IO (Decode16, 0x0100, 0x0FFC, 0x08, 0x08) Error 4001 - ^ Must be a multiple of alignment/granularity value
dsdt.ramstage.asl 1415: CreateByteField (Arg0, IRQX._INT, IRQL) Warning 1126 - ResourceTag larger than Field ^ (Size mismatch, Tag: 16 bits, Field: 8 bits)
dsdt.ramstage.asl 1524: CreateByteField (Arg0, IRQX._INT, IRQL) Warning 1126 - ResourceTag larger than Field ^ (Size mismatch, Tag: 16 bits, Field: 8 bits)
dsdt.ramstage.asl 1633: CreateByteField (Arg0, IRQX._INT, IRQL) Warning 1126 - ResourceTag larger than Field ^ (Size mismatch, Tag: 16 bits, Field: 8 bits)
dsdt.ramstage.asl 1705: CreateByteField (Arg0, IRQX._INT, IRQL) Warning 1126 - ResourceTag larger than Field ^ (Size mismatch, Tag: 16 bits, Field: 8 bits)
dsdt.ramstage.asl 1788: CreateByteField (Arg0, IRQX._INT, IRQL) Warning 1126 - ResourceTag larger than Field ^ (Size mismatch, Tag: 16 bits, Field: 8 bits)
dsdt.ramstage.asl 1855: CreateByteField (Arg0, IRQX._INT, IRQL) Warning 1126 - ResourceTag larger than Field ^ (Size mismatch, Tag: 16 bits, Field: 8 bits)
dsdt.ramstage.asl 2304: Method(_OSC,4) Warning 1114 - ^ Not all control paths return a value (_OSC)
dsdt.ramstage.asl 2304: Method(_OSC,4) Warning 1106 - ^ Reserved method must return a value (Buffer required for _OSC)
ASL Input: dsdt.ramstage.asl - 2885 lines, 58411 bytes, 1507 keywords Hex Dump: dsdt.ramstage.hex - 155352 bytes
Compilation complete. 1 Errors, 9 Warnings, 0 Remarks, 547 Optimizations make: *** [build/mainboard/asrock/e350m1/dsdt.ramstage.o] Fehler 255
According to the ACPI specification the maximum acceptable starting address `AddressMax` has to be a multiple of the alignment granularity for the I/O address. Citing ACPI specification 4.0a, page 612 [1].
18.5.56 IO (IO Resource Descriptor Macro)
### Syntax
IO (Decode, AddressMin, AddressMax, AddressAlignment, RangeLength, DescriptorName) => Buffer
### Argument
[…]
AddressMax evaluates to a 16-bit integer that specifies the maximum acceptable starting address for the I/O range. It must be an even multiple of AddressAlignment. The field DescriptorName._MAX is automatically created to refer to this portion of the resource descriptor.
Use address 0x0FF0, a multiple of 0x08, instead of 0x0FFC, fixes the error.
[1] http://acpi.info/DOWNLOADS/ACPIspec40a.pdf
Change-Id: I272e09d091149791f2867b1d06e4fc27bc1bb2cd Signed-off-by: Paul Menzel paulepanter@users.sourceforge.net --- src/superio/winbond/w83627hf/acpi/superio.asl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/superio/winbond/w83627hf/acpi/superio.asl b/src/superio/winbond/w83627hf/acpi/superio.asl index 69017fe..2e12ef8 100644 --- a/src/superio/winbond/w83627hf/acpi/superio.asl +++ b/src/superio/winbond/w83627hf/acpi/superio.asl @@ -556,7 +556,7 @@ Device(SIO) { } StartDependentFn (2,0) { - IO (Decode16, 0x0100, 0x0FFC, 0x08, 0x08) + IO (Decode16, 0x0100, 0x0FF0, 0x08, 0x08) IRQNoFlags () {3,4,5,7,9,10,11,12} } StartDependentFn (2,1)