Hi, Maxim. Thanks for reporting and reminding us. I think this is very difficult to fix, because; 1. Basically, this is a bug in BIOS, should be reported to vendor. 2. ACPI CA is developed by Intel. We'd like to have less local workaround changes as possible. 3. I'm not sure whether suggested patches (buffer size dynamicaly expanding) in [acpi-jp 1315] is correct fix, maybe not. Probably another approach can be considered (e.g. just ignore AE_AML_BUFFER_LIMIT and continue interpreter execution).
I'll describe again the problem. This method is like this; Method(_CRS) { Name(BUF0, Buffer(0x18) {0x47, 0x1, 0xf2, 0x3, 0xf2, 0x3, 0x0, 0x4, 0x47, 0x1, 0xf7, 0x3, 0xf7, 0x3, 0x0, 0x1, 0x22, 0x40, 0x0, 0x2a, 0x4, 0x0, 0x79, 0x0 }) CreateByteField(BUF0, 0x2, IOLO) CreateByteField(BUF0, 0x3, IOHI) CreateByteField(BUF0, 0x4, IORL) CreateByteField(BUF0, 0x5, IORH) CreateByteField(BUF0, 0x19, IRQL) CreateByteField(BUF0, 0x1c, DMAV) Return(BUF0) } The problem is that this AML is trying to create a field at exceeded position (0x19) of the Buffer (size is 0x18). And strangely, this method just return the buffer w/o any changes after CreateByteField operations. I guess that BIOS writer forgotten to delete CreateByteField statements, or change the buffer size. Now that we have DSDT override patches; http://home.jp.freebsd.org/cgi-bin/showmail/acpi-jp/1347 or http://home.jp.freebsd.org/cgi-bin/showmail/acpi-jp/1349 and AML disassembler (acpidump), and ASL compiler (iasl) in ports/devel/acpicatools/. Maxim, could you apply the following patches and try DSDT overriding? Thanks --- Tyan-S1590.asl.org Wed Oct 24 22:00:44 2001 +++ Tyan-S1590.asl Wed Oct 24 22:02:09 2001 @@ -884,12 +884,14 @@ } Method(_CRS) { Name(BUF0, Buffer(0x18) {0x47, 0x1, 0xf2, 0x3, 0xf2, 0x3, 0x0, 0x4, 0x47, 0x1, 0xf7, 0x3, 0xf7, 0x3, 0x0, 0x1, 0x22, 0x40, 0x0, 0x2a, 0x4, 0x0, 0x79, 0x0 }) +/* CreateByteField(BUF0, 0x2, IOLO) CreateByteField(BUF0, 0x3, IOHI) CreateByteField(BUF0, 0x4, IORL) CreateByteField(BUF0, 0x5, IORH) CreateByteField(BUF0, 0x19, IRQL) CreateByteField(BUF0, 0x1c, DMAV) +*/ Return(BUF0) } Name(_PRS, Buffer(0x1a) {0x30, 0x47, 0x1, 0xf2, 0x3, 0xf2, 0x3, 0x0, 0x4, 0x47, 0x1, 0xf7, 0x3, 0xf7, 0x3, 0x0, 0x1, 0x22, 0x40, 0x0, 0x2a, 0x4, 0x0, 0x38, 0x79, 0x0 }) To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-current" in the body of the message