VirtualBox: Compile problems with ACPICA 20101013

Jung-uk Kim jkim at FreeBSD.org
Mon Oct 25 16:55:17 UTC 2010


On Saturday 23 October 2010 03:28 am, Bernhard Froehlich wrote:
> On Tue, 19 Oct 2010 11:31:00 -0400, Jung-uk Kim <jkim at FreeBSD.org>
>
> wrote:
> > On Tuesday 19 October 2010 08:52 am, Bernhard Froehlich wrote:
> >> 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=b66fd716e0b9b53
> >>89e
> >
> > Yes, I am aware of the issue.  My point was _CID may be pointless
> > for *VirtualBox* and it can be removed.
>
> I am just trying to figure out who is wrong and try to fix it there
> if possible.

Understood.

> So do you agree that this is a acpica regression?

Yes, I do.  I was told Intel would going to look into it.

> Vbox guys say that removing it is not a good idea because it will
> "break things" but I don't know what it is used for so I cannot test
> it. 

It *may* break Mac OS X guest.  However, I don't believe it would rely 
on _CID.  On top of that, Mac OS X is not a supported guest OS and it 
is illegal, AFAIK.  So, I don't think it would matter. ;-)

Jung-uk Kim


More information about the freebsd-acpi mailing list