[coreboot] [PATCH] workaround for "An unexpected error (805262864) occurred at line 1768 of d:\xpclient\base\boot\setup\arcdisp.c"

Marc Jones marcj303 at gmail.com
Wed May 18 23:29:06 CEST 2011


On Wed, May 18, 2011 at 12:40 AM, Scott Duplichan <scott at notabs.org> wrote:
> The attached patch works around a Windows XP or Server 2003 setup
> failure where an error message such as:
> "An unexpected error (805262864) occurred at line 1768 of
> d:\xpclient\base\boot\setup\arcdisp.c"
> The value 805262864 varies, and is the physical address, in decimal,
> of one of the ACPI tables.
>
> Tested on Persimmon. Others abuild tested only.
> Signed-off-by: Scott Duplichan <scott at notabs.org>
>
> Detailed explanation: The error message is displayed when a 1024 dword
> page table array used by setupldr runs out of space. This table is used
> for mapping various physical addresses, such as those of ACPI tables
> (a separate table identity maps the lower 16MB used by setupldr code
> and data). Setupldr only looks at ACPI tables (FACP) to determine make
> and model of the system. The make and model of the system is needed when
> setupldr scans the good/bad bios lists contained in txtsetup.sif. The
> good/bad bios lists are used to bypass installation of the ACPI enabled
> kernel on certain systems known to have ACPI problems. The code loop
> that scans the lists creates a new mapping each time it reads an ACPI
> table, and never frees mappings. The code uses FACP OEM ID to determine
> the system model. The code sequentially reads tables listed in the RSDT
> array until the FACP is found. Each read consumes one page table entry.
> If more that 4 tables precede the FACP in the RSDT array, the 1024
> entry page table array will run out of space before the good/bad bios
> list processing completes. BIOS can work around this Windows XP/Server
> 2003 limitation by placing the FACP early in the RSDT array.
>
> Thanks,
> Scott

Hi Scott,

Good find. This must have been a difficult debug.

It looks like src/mainboard/amd/mahogany/acpi_tables.c has a double
paste issue. Fix that and it looks good.

Acked-by: Marc Jones <marcj303 at gmail.com>


Marc

-- 
http://se-eng.com




More information about the coreboot mailing list