>The system ACPI BIOS is attempting to access PCI configuration space
>directly rather than using the correct PCI Config space operation regions.
>This is unsafe - directly accessing config space like this is non-atomic.
>The OSL implementation blocks these accesses.


Perhaps, Dana, you can give us some AML recipes on how to fix this?


I have an old ASUS CUV4X which has the same problem, it defines an
operating region:

                OperationRegion (PCIC, SystemIO, 0x0CF8, 0x08)
                Field (PCIC, DWordAcc, NoLock, Preserve)
                {
                    PIND,   32, 
                    PDAT,   32
                }


And the uses the following _STA method for the FDC0 (floppy device):

                   Method (_STA, 0, NotSerialized)
                    {
                        Store (0x80002084, PIND)                <-- bad
                        Store (PDAT, Local0)                    <-- bad
                        And (Local0, 0x0100, Local0)
                        If (LEqual (Local0, 0x00))
                        {
                            Return (0x00)
                        }
                        Else
                        {
                            ENFG ()
                            Store (IOFN, Local0)
                            And (Local0, 0x10, Local0)
                            If (LNot (LEqual (Local0, 0x00)))
                            {
                                EXFG ()
                                Return (0x0F)
                            }
                            Else
                            {
                                Store (FCIO, Local1)
                                If (LNot (LEqual (Local1, 0x00)))
                                {
                                    EXFG ()
                                    Return (0x0D)
                                }
                                Else
                                {
                                    EXFG ()
                                    Return (0x00)
                                }
                            }
                        }
                    }

This then leads to:

acpica: [ID 972481 kern.warning] WARNING: AcpiOsWritePort: cf8 32 not permitted
acpica: [ID 815887 kern.notice] ACPI-0519: *** Error: 
acpica: [ID 441208 kern.notice] Handler for [SystemIO] returned AE_ERROR
acpica: [ID 584230 kern.notice] ACPI-1413: *** Error: 
acpica: [ID 810882 kern.notice] Method execution failed 
acpica: [ID 363072 kern.notice] [\_SB_.PCI0.PX40.FDC0._STA] (Node c81f3364)

Now if I could rewrite the AML to do the proper thing and install the 
replacement
ACPICA table (just as I fixed the Ferrari 4000 batter), such a recipe might
help some to see what the exact problem is.

Casper

PS: What is the status of iasl?  Getting a standard Solaris iasl binary
out would be very helpful.
_______________________________________________
opensolaris-discuss mailing list
opensolaris-discuss@opensolaris.org

Reply via email to