[coreboot] Patch set updated for coreboot: 85f52c8 Fix messy code in ALIB

Zheng Bao (zheng.bao@amd.com) gerrit at coreboot.org
Thu Apr 12 04:39:17 CEST 2012


Zheng Bao (zheng.bao at amd.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/885

-gerrit

commit 85f52c8e80831acb0de3898bdfad73081c091a49
Author: zbao <fishbaozi at gmail.com>
Date:   Thu Apr 12 11:28:11 2012 +0800

    Fix messy code in ALIB
    
    The address return from PICK_ALIB is not protected by Coreboot. We
    need to use the "current", which is the correct way to allocate the
    ACPI table.
    
    Change-Id: I250066eb5f755275f75c37789ce8760de35b046b
    Signed-off-by: Zheng Bao <zheng.bao at amd.com>
    Signed-off-by: zbao <fishbaozi at gmail.com>
---
 src/mainboard/amd/dinar/acpi_tables.c         |    3 +--
 src/mainboard/amd/inagua/acpi_tables.c        |    6 ++----
 src/mainboard/amd/persimmon/acpi_tables.c     |    6 ++----
 src/mainboard/amd/south_station/acpi_tables.c |    6 ++----
 src/mainboard/amd/union_station/acpi_tables.c |    6 ++----
 src/mainboard/asrock/e350m1/acpi_tables.c     |    6 ++----
 src/mainboard/supermicro/h8qgi/acpi_tables.c  |    3 +--
 7 files changed, 12 insertions(+), 24 deletions(-)

diff --git a/src/mainboard/amd/dinar/acpi_tables.c b/src/mainboard/amd/dinar/acpi_tables.c
index 741ba99..6fa9c6f 100644
--- a/src/mainboard/amd/dinar/acpi_tables.c
+++ b/src/mainboard/amd/dinar/acpi_tables.c
@@ -264,9 +264,8 @@ unsigned long write_acpi_tables(unsigned long start)
 	alib = (acpi_header_t *)agesawrapper_getlateinitptr (PICK_ALIB);
 	if (alib != NULL) {
 		memcpy((void *)current, alib, alib->length);
-		ssdt = (acpi_header_t *) current;
+		acpi_add_table(rsdp, (void *)current);
 		current += alib->length;
-		acpi_add_table(rsdp,alib);
 	} else {
 		printk(BIOS_DEBUG, "	AGESA ALIB SSDT table NULL. Skipping.\n");
 	}
diff --git a/src/mainboard/amd/inagua/acpi_tables.c b/src/mainboard/amd/inagua/acpi_tables.c
index e521b4b..0588d04 100644
--- a/src/mainboard/amd/inagua/acpi_tables.c
+++ b/src/mainboard/amd/inagua/acpi_tables.c
@@ -230,11 +230,9 @@ unsigned long write_acpi_tables(unsigned long start)
 	alib = (acpi_header_t *)agesawrapper_getlateinitptr (PICK_ALIB);
 	if (alib != NULL) {
 		memcpy((void *)current, alib, alib->length);
-		ssdt = (acpi_header_t *) current;
+		acpi_add_table(rsdp, (void *)current);
 		current += alib->length;
-		acpi_add_table(rsdp,alib);
-	}
-	else {
+	} else {
 		printk(BIOS_DEBUG, "	AGESA ALIB SSDT table NULL. Skipping.\n");
 	}
 
diff --git a/src/mainboard/amd/persimmon/acpi_tables.c b/src/mainboard/amd/persimmon/acpi_tables.c
index 00a08d2..789c11d 100644
--- a/src/mainboard/amd/persimmon/acpi_tables.c
+++ b/src/mainboard/amd/persimmon/acpi_tables.c
@@ -230,11 +230,9 @@ unsigned long write_acpi_tables(unsigned long start)
 	alib = (acpi_header_t *)agesawrapper_getlateinitptr (PICK_ALIB);
 	if (alib != NULL) {
 		memcpy((void *)current, alib, alib->length);
-		ssdt = (acpi_header_t *) current;
+		acpi_add_table(rsdp, (void *)current);
 		current += alib->length;
-		acpi_add_table(rsdp,alib);
-	}
-	else {
+	} else {
 		printk(BIOS_DEBUG, "	AGESA ALIB SSDT table NULL. Skipping.\n");
 	}
 
diff --git a/src/mainboard/amd/south_station/acpi_tables.c b/src/mainboard/amd/south_station/acpi_tables.c
index c49a8e2..21281c8 100644
--- a/src/mainboard/amd/south_station/acpi_tables.c
+++ b/src/mainboard/amd/south_station/acpi_tables.c
@@ -230,11 +230,9 @@ unsigned long write_acpi_tables(unsigned long start)
 	alib = (acpi_header_t *)agesawrapper_getlateinitptr (PICK_ALIB);
 	if (alib != NULL) {
 		memcpy((void *)current, alib, alib->length);
-		ssdt = (acpi_header_t *) current;
+		acpi_add_table(rsdp, (void *)current);
 		current += alib->length;
-		acpi_add_table(rsdp,alib);
-	}
-	else {
+	} else {
 		printk(BIOS_DEBUG, "	AGESA ALIB SSDT table NULL. Skipping.\n");
 	}
 
diff --git a/src/mainboard/amd/union_station/acpi_tables.c b/src/mainboard/amd/union_station/acpi_tables.c
index c49a8e2..21281c8 100644
--- a/src/mainboard/amd/union_station/acpi_tables.c
+++ b/src/mainboard/amd/union_station/acpi_tables.c
@@ -230,11 +230,9 @@ unsigned long write_acpi_tables(unsigned long start)
 	alib = (acpi_header_t *)agesawrapper_getlateinitptr (PICK_ALIB);
 	if (alib != NULL) {
 		memcpy((void *)current, alib, alib->length);
-		ssdt = (acpi_header_t *) current;
+		acpi_add_table(rsdp, (void *)current);
 		current += alib->length;
-		acpi_add_table(rsdp,alib);
-	}
-	else {
+	} else {
 		printk(BIOS_DEBUG, "	AGESA ALIB SSDT table NULL. Skipping.\n");
 	}
 
diff --git a/src/mainboard/asrock/e350m1/acpi_tables.c b/src/mainboard/asrock/e350m1/acpi_tables.c
index c49a8e2..21281c8 100644
--- a/src/mainboard/asrock/e350m1/acpi_tables.c
+++ b/src/mainboard/asrock/e350m1/acpi_tables.c
@@ -230,11 +230,9 @@ unsigned long write_acpi_tables(unsigned long start)
 	alib = (acpi_header_t *)agesawrapper_getlateinitptr (PICK_ALIB);
 	if (alib != NULL) {
 		memcpy((void *)current, alib, alib->length);
-		ssdt = (acpi_header_t *) current;
+		acpi_add_table(rsdp, (void *)current);
 		current += alib->length;
-		acpi_add_table(rsdp,alib);
-	}
-	else {
+	} else {
 		printk(BIOS_DEBUG, "	AGESA ALIB SSDT table NULL. Skipping.\n");
 	}
 
diff --git a/src/mainboard/supermicro/h8qgi/acpi_tables.c b/src/mainboard/supermicro/h8qgi/acpi_tables.c
index 7b97a92..e587334 100644
--- a/src/mainboard/supermicro/h8qgi/acpi_tables.c
+++ b/src/mainboard/supermicro/h8qgi/acpi_tables.c
@@ -264,9 +264,8 @@ unsigned long write_acpi_tables(unsigned long start)
 	alib = (acpi_header_t *)agesawrapper_getlateinitptr (PICK_ALIB);
 	if (alib != NULL) {
 		memcpy((void *)current, alib, alib->length);
-		ssdt = (acpi_header_t *) current;
+		acpi_add_table(rsdp, (void *)current);
 		current += alib->length;
-		acpi_add_table(rsdp,alib);
 	} else {
 		printk(BIOS_DEBUG, "	AGESA ALIB SSDT table NULL. Skipping.\n");
 	}




More information about the coreboot mailing list