Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 24 Oct 2001 22:12:00 +0900 (JST)
From:      Mitsuru IWASAKI <iwasaki@jp.FreeBSD.org>
To:        acpi-jp@jp.freebsd.org, sobomax@FreeBSD.ORG
Cc:        msmith@FreeBSD.ORG, ache@nagual.pp.ru, current@FreeBSD.ORG
Subject:   Re: [acpi-jp 1363] Re: ACPI: problem with fdc resource allocation
Message-ID:  <20011024.221200.104029670.iwasaki@jp.FreeBSD.org>
In-Reply-To: <200110240837.f9O8bAV99173@vega.vega.com>
References:  <no.id> <200110240837.f9O8bAV99173@vega.vega.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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 majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20011024.221200.104029670.iwasaki>