* Steve Ames <steve_at_energistic.com> [030908 20:26]: > > Hey. I installed a new motherboard today and now I get a lot of ACPI > errors (with a kernel from today and one from a few days back). This > anything to worry about? Not really, just annoying. A fair number (all that I've seen!) of motherboard ship with ACPI tables that are buggy. Namely, they are bug-for-bug compatible with Microsoft's much more lenient ACPI interpreter. The stricter one built into FreeBSD chokes on a lot of things. The short answer is, unless you have hardware that's actually not functioning properly, you can usually ignore those messages. You can also just turn off ACPI and they'll go away. (But you're likely to replace them with a bunch of "PNP0501 Could not assign resources" type messages, it's a toss-up.) If you are so inclined, it's often very easy to fix these things. Install the devel/acpicatools port, then use the ASL compiler and decompiler like so: acpidump -o foo.dsdt -d > foo.asl iasl foo.asl You will likely get a lot of errors at that point. Not knowing anything about ACPI I was able to figure out the really easy ones in a few hours. In particular, watch for things like this: foo.asl 1577: Method (_STA, 0, NotSerialized) Warning 2019 - ^ Not all control paths return a value (_STA) These are harmless but easy to fix. Stick Return(0) inside the blocks that are missing them. The line numbers should give you a good idea. foo.asl 857: Field (PSRG, DWordAcc, NoLock, Preserve) Error 1047 - ^ Access width is greater than region size These are a bit tricker. It means a field was defined inside of an ACPI region that is bigger than the region itself. The offending lines are: OperationRegion (PSRG, SystemMemory, 0x0410, 0x01) Field (PSRG, DWordAcc, NoLock, Preserve) The 0x01 at the end of the first line means this region is 1 byte big; the DWordAcc in the second line means there's a field that's 4 bytes big in that region. Not good :) In my case simply making the region bigger: OperationRegion (PSRG, SystemMemory, 0x0410, 0x04) Field (PSRG, DWordAcc, NoLock, Preserve) Solved the compile problems. Any more complex ACPI problems you can probably post here and get some assistance from the numerous people who fixed their own ACPI tables. There's also numerous examples on the web of fixed ASL code that may solve similar problems to your own -- hit google and look for the error messages. After that, just copy the .aml file that iasl outputs into /boot and put this in loader.conf: acpi_dsdt_load="YES" # DSDT Overriding acpi_dsdt_type="acpi_dsdt" # Don't change this acpi_dsdt_name="/boot/foo.aml" --Mike
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:21 UTC