r344398 Import ACPICA 20190215: breaks bhyve
Conrad Meyer
cem at freebsd.org
Thu Feb 21 17:45:01 UTC 2019
Oops, to the list this time.
Hi Oleg,
Those look like the ACPI lines bhyve attempts to generate and compile
in basl_fwrite_madt():
272 /* Legacy IRQ0 is connected to pin 2 of the IOAPIC */
273 EFPRINTF(fp, "[0001]\t\tSubtable Type : 02\n");
274 EFPRINTF(fp, "[0001]\t\tLength : 0A\n");
275 EFPRINTF(fp, "[0001]\t\tBus : 00\n");
276 EFPRINTF(fp, "[0001]\t\tSource : 00\n");
277 EFPRINTF(fp, "[0004]\t\tInterrupt : 00000002\n");
278 EFPRINTF(fp, "[0002]\t\tFlags (decoded below) : 0005\n");
^^^ this line ("maximum 1 bit")
279 EFPRINTF(fp, "\t\t\tPolarity : 1\n");
280 EFPRINTF(fp, "\t\t\tTrigger Mode : 1\n");
281 EFPRINTF(fp, "\n");
282
283 EFPRINTF(fp, "[0001]\t\tSubtable Type : 02\n");
284 EFPRINTF(fp, "[0001]\t\tLength : 0A\n");
285 EFPRINTF(fp, "[0001]\t\tBus : 00\n");
286 EFPRINTF(fp, "[0001]\t\tSource : %02X\n", SCI_INT);
287 EFPRINTF(fp, "[0004]\t\tInterrupt : %08X\n", SCI_INT);
^^^ this line ("maximum 2 bit"; SCI_INT==9)
288 EFPRINTF(fp, "[0002]\t\tFlags (decoded below) : 0000\n");
289 EFPRINTF(fp, "\t\t\tPolarity : 3\n");
290 EFPRINTF(fp, "\t\t\tTrigger Mode : 3\n");
291 EFPRINTF(fp, "\n");
Would you mind filing a PR to track this investigation?
The error message and constraint on Value being in range of BitLength
was added to DtCompileFlag() in compiler/dtfield.c way back in r208625
(ACPICA 20100528) — it's not new. What must be new is the idea that
these fields have a smaller bit width that the numbers bhyve has
chosen, or bhyve's choice of numbers.
We can eliminate bhyve as a suspect, maybe? acpi.c hasn't changed
substantially for years. In fact, there is a seemingly related commit
r272838 which converted some fields to hexadecimal in order to comply
with length limitations. The first of these two tables was introduced
in r257933 by tycho@ / neel at . The second was changed from a bare
constant by jhb@ in r259998, but previously held the value 9. It
dates to the original 2012 "ACPI support for bhyve" commit by grehan@
in r243327.
So yeah, probably something changed recently in ACPICA.
Best,
Conrad
On Thu, Feb 21, 2019 at 8:38 AM Oleg Ginzburg <olevole at olevole.ru> wrote:
>
> Hi,
>
> most likely r344398[1] commit breaks bhyve with the following errors:
>
> Subtable Type : 02
> Error 6302 - Flag value is too large ^ (Maximum 1 bit)
> 58: [0002] Flags (decoded below) : 0005
> Error 6302 - Flag value is too large ^ (Maximum 2 bit)
> 66: [0004] Interrupt : 00000009
> Error 6302 - Flag value is too large ^ (Maximum 2 bit)
> Assertion failed: (error == 0), function main, file
> /usr/src/usr.sbin/bhyve/bhyverun.c, line 1190.
>
> Can anyone else confirm this?
>
> Howto reproduce:
>
> fetch ftp://ftp.freebsd.org/pub/FreeBSD/releases/ISO-IMAGES/10.3/FreeBSD-10.3-RELEASE-amd64-bootonly.iso
>
> sh /usr/share/examples/bhyve/vmrun.sh -c 1 -m 1024M -i -I
> FreeBSD-10.3-RELEASE-amd64-bootonly.iso guestname
>
>
> __
> [1] - https://svnweb.freebsd.org/base?view=revision&revision=r344398
> _______________________________________________
> freebsd-current at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe at freebsd.org"
More information about the freebsd-current
mailing list