Following patch converts the run-time SSDT patching via update_ssdt funtion to
new AML code generator. Compile-tested on all changed targets. I think it should work because it works for Asus M2V-MX SE. Signed-off-by: Rudolf Marek <r.marek@assembler.cz> Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3929 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
@@ -25,7 +25,7 @@
|
||||
#include <cpu/x86/msr.h>
|
||||
#include <cpu/amd/mtrr.h>
|
||||
#include <cpu/amd/amdk8_sysconf.h>
|
||||
|
||||
#include <../../../northbridge/amd/amdk8/amdk8_acpi.h>
|
||||
#include <arch/cpu.h>
|
||||
|
||||
#define DUMP_ACPI_TABLES 0
|
||||
@@ -99,8 +99,6 @@ unsigned long acpi_fill_madt(unsigned long current)
|
||||
|
||||
extern void get_bus_conf(void);
|
||||
|
||||
extern void update_ssdt(void *ssdt);
|
||||
|
||||
void update_ssdtx(void *ssdtx, int i)
|
||||
{
|
||||
uint8_t *PCI;
|
||||
@@ -591,6 +589,11 @@ u32 pstates_algorithm(acpi_header_t * dsdt)
|
||||
|
||||
}
|
||||
|
||||
unsigned long acpi_fill_ssdt_generator(unsigned long current, char *oem_table_id) {
|
||||
k8acpi_write_vars();
|
||||
return (unsigned long) (acpigen_get_current());
|
||||
}
|
||||
|
||||
unsigned long write_acpi_tables(unsigned long start)
|
||||
{
|
||||
unsigned long current;
|
||||
@@ -657,15 +660,10 @@ unsigned long write_acpi_tables(unsigned long start)
|
||||
|
||||
/* SSDT */
|
||||
printk_debug("ACPI: * SSDT\n");
|
||||
ssdt = (acpi_header_t *) current;
|
||||
current += ((acpi_header_t *) AmlCode_ssdt)->length;
|
||||
memcpy((void *)ssdt, (void *)AmlCode_ssdt,
|
||||
((acpi_header_t *) AmlCode_ssdt)->length);
|
||||
/* Here you need to set value in pci1234, sblk and sbdn in get_bus_conf.c */
|
||||
update_ssdt((void *)ssdt);
|
||||
/* recalculate checksum */
|
||||
ssdt->checksum = 0;
|
||||
ssdt->checksum = acpi_checksum((u8 *)ssdt, ssdt->length);
|
||||
ssdt = (acpi_header_t *)current;
|
||||
|
||||
acpi_create_ssdt_generator(ssdt, "DYNADATA");
|
||||
current += ssdt->length;
|
||||
acpi_add_table(rsdt, ssdt);
|
||||
|
||||
#if ACPI_SSDTX_NUM >= 1
|
||||
|
Reference in New Issue
Block a user