Project

General

Profile

Actions

Bug #327

open

MBOX3, OperationRegion (OPRG, SystemMemory, ASLS, 0x2000) causes windows uefi tianocore BSOD ACPI_BIOS_ERROR

Added by xinhua wang about 2 years ago. Updated 13 days ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
Start date:
12/30/2021
Due date:
% Done:

0%

Estimated time:
Affected versions:
Needs backport to:
Affected hardware:
Affected OS:

Description

https://review.coreboot.org/c/coreboot/+/27711/7/src/drivers/intel/gma/acpi/configure_brightness_levels.asl#28

this line .. OperationRegion (OPRG, SystemMemory, ASLS, 0x2000)
the 0x2000 will cause BSOD ACPI_BIOS_ERROR when booting installer, os, etc

When set to 0x1000 windows UEFI tianocore mode boots fine


Files

dmesg.txt (76.9 KB) dmesg.txt Mat Phillips, 04/23/2022 03:47 AM
results.log (204 KB) results.log Mat Phillips, 04/23/2022 03:48 AM
Actions #1

Updated by xinhua wang about 2 years ago

Macbookpro10,1 aspire_xc600, hp 8200/6200, hp 8300/6300 (affected)

Actions #2

Updated by Paul Menzel about 2 years ago

MS Window’s BSOD ACPI_BIOS_ERROR is “using area of memory already reversed to the system”.

Actions #3

Updated by Paul Menzel about 2 years ago

Can you please test with a GNU/Linux system, and attach the Linux log messages (output of dmesg), and install and run FWTS?

Updated by Mat Phillips almost 2 years ago

I'm not the OP but I have a Thinkpad x230 running coreboot and have the same problem. Windows 11 (and 10, not tested others) crash right away with ACPI_BIOS_ERROR.
I have attached dmesg.txt and results.log from fwts.
Hope this helps. I have coreboot running on an x220 with a very similar coreboot configuration, and windows works just fine on it.

Actions #5

Updated by Pawel Radomychelski almost 2 years ago

xinhua wang wrote:

https://review.coreboot.org/c/coreboot/+/27711/7/src/drivers/intel/gma/acpi/configure_brightness_levels.asl#28

this line .. OperationRegion (OPRG, SystemMemory, ASLS, 0x2000)
the 0x2000 will cause BSOD ACPI_BIOS_ERROR when booting installer, os, etc

When set to 0x1000 windows UEFI tianocore mode boots fine

For the reference: It might be the same (or similar) bug like Bug #392 (same bug but in SeaBIOS).
Setting

OperationRegion (OPRG, SystemMemory, ASLS, 0x1000

doesn't solve the Bug #392

Actions #6

Updated by Matt DeVillier almost 2 years ago

When set to 0x1000 windows UEFI tianocore mode boots fine

This seems to be a board-specific issue rather than platform or tree-wide issue. The IGD OpRegion spec published by Intel themselves specifies that the reserved region starting at ASLS is 0x2000 in size - see: https://01.org/sites/default/files/documentation/acpi_igd_opregion_spec_0.pdf p16.

Additionally, other SNB/IVB boards (such as google/link and samsung/stumpy) have no issues booting Windows via Tianocore with the correct OpRegion size set.

So, I suspect something else in the x230 ACPI code is overlapping with the IGD OpRegion and causing the BSOD

Actions #7

Updated by Mat Phillips almost 2 years ago

Matt DeVillier wrote in #note-6:

When set to 0x1000 windows UEFI tianocore mode boots fine

This seems to be a board-specific issue rather than platform or tree-wide issue. The IGD OpRegion spec published by Intel themselves specifies that the reserved region starting at ASLS is 0x2000 in size - see: https://01.org/sites/default/files/documentation/acpi_igd_opregion_spec_0.pdf p16.

I can agree that I tried this 0x1000 change and it had no affect on the problem.

Actions #8

Updated by Pawel Radomychelski almost 2 years ago

Matt DeVillier wrote in #note-6:

When set to 0x1000 windows UEFI tianocore mode boots fine

This seems to be a board-specific issue rather than platform or tree-wide issue. The IGD OpRegion spec published by Intel themselves specifies that the reserved region starting at ASLS is 0x2000 in size - see: https://01.org/sites/default/files/documentation/acpi_igd_opregion_spec_0.pdf p16.

Additionally, other SNB/IVB boards (such as google/link and samsung/stumpy) have no issues booting Windows via Tianocore with the correct OpRegion size set.

So, I suspect something else in the x230 ACPI code is overlapping with the IGD OpRegion and causing the BSOD

Thanks for the info and clarification. Is it possible to find out what changed between Coreboot 4.15 and 4.16 and replace the changed files with the ones from 4.15 Branch? Otherwise i am forced still to use CoreBoot 4.15 until the bug is solved....

Actions #9

Updated by Paul Menzel almost 2 years ago

@Mat, on what board did you test?

@Pawel, please do not post unrelated questions to this issue here. This issue (#327) is not about a regression as far as I know.

Actions #10

Updated by Mat Phillips almost 2 years ago

Paul Menzel wrote in #note-9:

@Mat, on what board did you test?

Thinkpad x230. I7 CPU (doubt that's relevant though) The dmesg file attached to this ticket is from that laptop.

Actions #11

Updated by Jason Stewart about 1 year ago

Know this thread is a bit old, but just wanted to add that this change fixed this issue for me. Just wanted to add some data points regarding my hardware and in hopes that it helps someone else in the future:

Sandy Bridge Lenovo W520 + I7 3840QM + Quadro 2000m. No VGA roms were used.

Actions #12

Updated by Joel Linn 13 days ago

I can also confirm this, I get ACPI_BIOS_ERROR 0x1000 0x0 0x0 0x2000 and applying the mentioned change does the trick for me.
Sandy Bridge H61 Express i3-3220, no secondary GPU, libgfxinit

Actions #13

Updated by Patrick Rudolph 13 days ago

It looks like 0x2000 is the correct size for the total opregion (MBOX1-MBOX5).
Since ACPI only uses MBOX3, the size should be reduced to 0x400.

Actions #14

Updated by Patrick Rudolph 13 days ago

Please test https://review.coreboot.org/c/coreboot/+/81295

In case this doesn't fix the problem please attach to windows kernel using windbg and provide more details about the failing code.

Actions #15

Updated by Joel Linn 13 days ago

Works, setting 0x400 also boots the Win11 PE environment that BSODs with 0x2000

Actions

Also available in: Atom PDF