Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 19 Jan 2008 12:36:02 +0800
From:      =?ISO-8859-1?Q?=B1=E7?= <vader@lavabit.com>
To:        freebsd-acpi@FreeBSD.org
Subject:   ACPI problem on EPOX MVP3C2 (Fixed)
Message-ID:  <20080119123459.CB76.A838D848@lavabit.com>

index | next in thread | raw e-mail


After researching MVP3C2 ASL code & Google searching over a week,
I got the easy way from AOPEN AX59Pro ASL to solve 
both PCI IRQ & lost FDC0 with ACPI problem on MVP3C2.
(ACPI bad read / write from port 0x4D1 on PCI Links & exceed buffer on FDC0)

1. Fix the PCI IRQ problem leading to NIC watchdog timeout.
Here is a example, find the section in Device (LNKA) as below 
(Also in Device (LNKB/C/D): 

                    Method (_DIS, 0, NotSerialized) 
                    { 
                        Store (0x01, Local3) 
                        And (PIRA, 0xF0, Local1) 
                        ShiftRight (Local1, 0x04, Local1) 
                        Store (Local1, Local2) 
                        If (LGreater (Local1, 0x07)) 
                        { 
                            Subtract (Local1, 0x08, Local1) 
                        } 


                        ShiftLeft (Local3, Local1, Local3) 
                        Not (Local3, Local3) 
                        If (LGreater (Local2, 0x07)) 
                        { 
                            And (ELC2, Local3, ELC2) 
                        } 
                        Else 
                        { 
                            If (LNotEqual (Local2, 0x00)) 
                            { 
                                And (ELC1, Local3, ELC1) 
                            } 
                        } 
                        
                        
                        And (PIRA, 0x0F, PIRA) 
                    } 


Then remove some lines to change it as below (the AX59 Pro's way): 

                    Method (_DIS, 0, NotSerialized) 
                    { 
                        And (PIRA, 0x0F, PIRA) 
                    } 

Modify all 4 Device (LNKA/B/C/D),
in Device (LNKB/C/D) leave PIBC / PIRD as they were. 

2. Fix lost FDC0 (FDD)  problem, 
change two 0x19 to 0x11 & two 0x1C to 0x14 in Device (FDC0) 

Then use isal with parameter "-oa" to make customed AML, 
load it in loader.conf, no more NIC watchdog timeout & lost FDC0. 

Here is my modified sample for your referece
http://vader.hopto.org/freenas/acpi/mvp3c2aml.zip


Here's a article on M$ website talking about forbbid BIOS AML directly access 
H/W resource including ELCR.
http://www.microsoft.com/whdc/system/pnppwr/powermgmt/BIOSAML.mspx
The newer BIOS (after 2003?) will never use such code in their ACPI table.

That's all, then I will try to make ACPI debug work,
make sure no other trouble would be caused by these modification.



help

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