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 699013f1ae635e01ee4244070b4cc763134aea71 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`
When hooking the ASL into the DSDT of the ASRock E350M1, the build fails with the following error.
$ LANG=C make […] IASL build/mainboard/asrock/e350m1/dsdt.ramstage.o
Intel ACPI Component Architecture ASL Optimizing Compiler version 20121114-32 [Apr 22 2013] Copyright (c) 2000 - 2012 Intel Corporation
dsdt.ramstage.asl 1779: CreateByteField (Arg0, IRQ0._INT, IRQL) Warning 1126 - ResourceTag larger than Field ^ (Size mismatch, Tag: 16 bits, Field: 8 bits)
dsdt.ramstage.asl 1917: IO (Decode16, 0x0100, 0x0FFC, 0x08, 0x08) Error 4001 - ^ Must be a multiple of alignment/granularity value
dsdt.ramstage.asl 2051: CreateByteField (Arg0, IRQX._INT, IRQL) Warning 1126 - ResourceTag larger than Field ^ (Size mismatch, Tag: 16 bits, Field: 8 bits)
dsdt.ramstage.asl 2160: CreateByteField (Arg0, IRQX._INT, IRQL) Warning 1126 - ResourceTag larger than Field ^ (Size mismatch, Tag: 16 bits, Field: 8 bits)
dsdt.ramstage.asl 2269: CreateByteField (Arg0, IRQX._INT, IRQL) Warning 1126 - ResourceTag larger than Field ^ (Size mismatch, Tag: 16 bits, Field: 8 bits)
dsdt.ramstage.asl 2341: CreateByteField (Arg0, IRQX._INT, IRQL) Warning 1126 - ResourceTag larger than Field ^ (Size mismatch, Tag: 16 bits, Field: 8 bits)
dsdt.ramstage.asl 2424: CreateByteField (Arg0, IRQX._INT, IRQL) Warning 1126 - ResourceTag larger than Field ^ (Size mismatch, Tag: 16 bits, Field: 8 bits)
dsdt.ramstage.asl 2491: CreateByteField (Arg0, IRQX._INT, IRQL) Warning 1126 - ResourceTag larger than Field ^ (Size mismatch, Tag: 16 bits, Field: 8 bits)
ASL Input: dsdt.ramstage.asl - 2996 lines, 59383 bytes, 1610 keywords Hex Dump: dsdt.ramstage.hex - 160002 bytes
Compilation complete. 1 Errors, 7 Warnings, 0 Remarks, 553 Optimizations make: *** [build/mainboard/asrock/e350m1/dsdt.ramstage.o] Error 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.
Using address 0x0FF8, 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 ff95dfc..67cf67a 100644 --- a/src/superio/winbond/w83627hf/acpi/superio.asl +++ b/src/superio/winbond/w83627hf/acpi/superio.asl @@ -559,7 +559,7 @@ Device(SIO) { /* Any configurable address (EPP mode) */ StartDependentFn (2,0) { - IO (Decode16, 0x0100, 0x0FFC, 0x08, 0x08) + IO (Decode16, 0x0100, 0x0FF8, 0x08, 0x08) IRQNoFlags () {3,4,5,7,9,10,11,12} } /* Any configurable address (No EPP mode) */