ACPI causes page fault/panic upon reboot

Dan Hulme d at diefree.com
Wed Dec 31 11:21:51 PST 2003


Ok, I did as you said, and replaced "Microsoft Windows" with "FreeBSD" 
in the following.  I also set the two variables in loader.conf.  The 
result was that it loaded on boot, but for some reason it couldn't mount 
my root partition.  I disabled acpi and was able to boot.  I looked more 
carefully at the result of compiling, and this is what I saw:

acpi.asl   123:     If (S3EN)
Error    1037 -      ^ syntax error

Here are the surrounding lines. To be honest, I really don't see what 
could be causing a syntax error.

118     Name (_S0, Package (0x02)
119     {
120         0x00,
121         0x00
122     })
123     If (S3EN)
124     {
125         Name (_S3, Package (0x02)
126         {
127             0x05,
128             0x05
129         })
130     }
131     Else
132     {
133         Name (_S1, Package (0x02)
134         {
135             0x01,
136             0x01
137         })
138     }

-Dan

Name (OSFL, 0x03)
Method (_INI, 0, NotSerialized)
{
    If (MCTH (\_OS, "Microsoft Windows"))
    {
        Store (0x01, OSFL)
    }
    Else
    {

Peter Schultz wrote:

> Dan Hulme wrote:
>
>> Disabling ACPI fixes the problem.  The problem appears to be in  dc0, 
>> however.  See my other reply for details.
>>
>
> You might be able to use ACPI, run this command:
>
> `acpidump -t -d > your.asl'
>
> In your.asl, change if statements that compare the value of _OS from 
> "Windows" to "FreeBSD".  For example*:
>
> If (MCTH (\_OS, "Microsoft Windows NT"))
> {
>     Return (PIC1)
> }
> Else
> {
>     Return (PIC0)
> }
>
> Overridden for use with FreeBSD:
> If (MCTH (\_OS, "FreeBSD"))
> {
>     Return (PIC1)
> }
> Else
> {
>     Return (PIC0)
> }
>
> After you customize your.asl, you'll want to compile** it, run:
>
> `iasl -f your.asl'
>
> DSDT.aml is the default output filename for the above command.  It's 
> machine code you can offer to ACPI instead of using the DSDT provided 
> with your motherboard.  You do this by editing /boot/loader.conf, add:
>
> acpi_dsdt_load="YES"
> acpi_dsdt_name="/boot/DSDT.aml"
>
> Remember to move DSDT.aml to the /boot directory.  That's what I've 
> done to get ACPI working back to how it was in the past.
>
> HTH,
> Pete...
>
> * From my OEM ASL, a partnership with Microsoft?
>
> ** We're forcing compilation because it seems most OEM ASLs are buggy.
>
>


More information about the freebsd-current mailing list