ASRock E350M1: ACPI-related BSOD fix
On installing/starting Windows (tested with Win7 Ultimate) the system crashes with a Blue Screen of Death, reporting an ACPI BIOS error. From Scott Duplichan: To avoid the Windows BSOD, the uninitialized value TOM1 in the SSDT must be corrected. The attached patch does this. It uses the older patching method, and not the (possibly preferred) AML generation method. To simplify the patching operation, I moved the AML item 'TOM1' to the start of the SSDT. The patch also includes code to confirm the AML variable TOM1 is at the expected offset before patching. Also tested & working with Linux. Change-Id: I59cedc366e09d98f690b093d6a21fc0c864559c3 Signed-off-by: Scott Duplichan <scott@notabs.org> Acked-by: Marshall Buschman <mbuschman@lucidmachines.com> Reviewed-on: http://review.coreboot.org/91 Tested-by: build bot (Jenkins) Reviewed-by: Peter Stuge <peter@stuge.se>
This commit is contained in:
parent
1fe6c64ba1
commit
7d6f0bf10e
|
@ -185,6 +185,11 @@ unsigned long write_acpi_tables(unsigned long start)
|
|||
memcpy(ssdt, &AmlCode_ssdt, sizeof(acpi_header_t));
|
||||
current += ssdt->length;
|
||||
memcpy(ssdt, &AmlCode_ssdt, ssdt->length);
|
||||
|
||||
char *position = ssdt;
|
||||
if (memcmp (position + 50, "TOM1", 4) == 0)
|
||||
*(u32 *) (position + 55) = __readmsr (0xc001001a);
|
||||
|
||||
/* recalculate checksum */
|
||||
ssdt->checksum = 0;
|
||||
ssdt->checksum = acpi_checksum((unsigned char *)ssdt,ssdt->length);
|
||||
|
|
|
@ -30,6 +30,7 @@ DefinitionBlock ("SSDT.aml", "SSDT", 1, "AMD-FAM14H", "AMD-ACPI", 0x1000)
|
|||
|
||||
Scope (\_SB.PCI0)
|
||||
{
|
||||
Name (TOM1, 0xaaaaaaaa)
|
||||
Name (BUSN, Package (0x20) /* HC_NUMS */
|
||||
{
|
||||
0x11111111,
|
||||
|
@ -264,7 +265,6 @@ DefinitionBlock ("SSDT.aml", "SSDT", 1, "AMD-FAM14H", "AMD-ACPI", 0x1000)
|
|||
0x44444444
|
||||
})
|
||||
Name (SBLK, 0x11)
|
||||
Name (TOM1, 0xaaaaaaaa)
|
||||
Name (SBDN, 0xbbbbbbbb)
|
||||
Name (HCLK, Package (0x20) /* HC_POSSIBLE_NUM */
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue