VirtualBox: Compile problems with ACPICA 20101013

Bernhard Froehlich decke at FreeBSD.org
Tue Oct 19 12:52:56 UTC 2010


On Mon, 18 Oct 2010 13:33:26 -0400, Jung-uk Kim <jkim at FreeBSD.org>
wrote:
> On Monday 18 October 2010 05:44 am, Bernhard Froehlich wrote:
>> Hi guys!
>>
>> VirtualBox has a compile problem with latest acpica. I've talked to
>> the VirtualBox developers and they think it's an acpica problem
>> which should be fixed upstream. Can we somehow file a bugreport or
>> create a patch to fix that in acpica?
> 
> Excerpt rom ACPI 4.0a:
> 
> ---------------------------------------------------
> Each Compatible Device ID must be either:
> 
> o A valid HID value (a 32-bit compressed EISA type ID or a string such 
> as "ACPI0004").
> o A string that uses a bus-specific nomenclature.  For example, _CID 
> can be used to specify the PCI ID.
> ---------------------------------------------------
> 
> Since it is not a valid HID value, you can only say it may be a 
> bus-specific nomenclature at best.  However, it looks like an ISA 
> device to me and probably it is just a bogus ID.  In fact, I googled 
> a bit and it only exists on some Intel Mac models, it seems.  You can 
> just remove the entire _CID unless it is absolutely necessary, which 
> is very unlikely. :-)

It very much looks like a regression. Right beyond that sentences they
have a few examples in the ACPI 4.0a spec on page 201 that won't pass
that check. I haven't looked at all the code so probably it's done
somewhere completely different but if it is checked with that code then
it will complain.

ACPI 4.0a spec on page 201:
---------------------------------------------------
o A valid HID value (a 32-bit compressed EISA type ID or a string such 
  as "ACPI0004").
o A string that uses a bus-specific nomenclature.  For example, _CID 
  can be used to specify the PCI ID.

  "PCI\CC_ccss"
  "PCI\CC_ccsspp"
  "PCI\VEN_vvvv&DEV_dddd&SUBSYS_ssssssss&REV_rr"
  ....
---------------------------------------------------

Now with a deeper look at the commit from acpica [1] especially the
second half. Before there was only an alphanumeric check for _HID but
with that change it was put into a new function AnCheckId() that is
called for both _HID and _CID and now wants both to be alphanumeric.
That looks correct for _HID but it's too strict for _CID which is a
string. Somewhere i've seen string is defined as a null-terminated ASCII
string and no word about alphanumeric.

[1] http://git.moblin.org/cgit.cgi/acpica/commit/?id=b66fd716e0b9b5389e



>> Compile error:
>> kBuild: iasl DevicesR3 -
>> /usr/ports/emulators/virtualbox-ose/work/VirtualBox-3.2.10_OSE/src/
>>VBox/Devices/PC/vbox.dsl
>> /usr/ports/emulators/virtualbox-ose/work/VirtualBox-3.2.10_OSE/src/
>>VBox/Devices/PC/vbox.dsl 736:                     Name (_CID,
>> "smc-napa")
>> Error    4001 -
>>                                 String must be entirely
>> alphanumeric ^ (smc-napa)
>>
>> ASL Input:
>> /usr/ports/emulators/virtualbox-ose/work/VirtualBox-3.2.10_OSE/src/
>>VBox/Devices/PC/vbox.dsl - 1305 lines, 46193 bytes, 288 keywords
>> Compilation complete. 1 Errors, 0 Warnings, 0 Remarks, 404
>> Optimizations
>>
>>
>> I have found the commit that introduces this additional checks:
>> http://git.moblin.org/cgit.cgi/acpica/commit/?id=b66fd716e0b9b5389e
>>544c58df189c817f316c3b
>>
>> and here is the dsl file from virtualbox:
>> http://www.virtualbox.org/browser/trunk/src/VBox/Devices/PC/vbox.ds
>>l#L781
>>
>>
>> Thanks!

-- 
Bernhard Froehlich
http://www.bluelife.at/


More information about the freebsd-acpi mailing list