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