Kyösti Mälkki (kyosti.malkki(a)gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/3939
-gerrit
commit 041e1407233e5d6764cf4df88f9a3352807f7583
Author: Stefan Reinauer <reinauer(a)chromium.org>
Date: Wed Jun 19 12:25:44 2013 -0700
Rename cpu/x86/car.h to arch/early_variables.h
and add an ARMv7 version.
Change-Id: I14fbff88d7c2b003dde57a19bf0ba9640d322156
Signed-off-by: Stefan Reinauer <reinauer(a)google.com>
[km: rebased fa004acf8 from chromium git]
Signed-off-by: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
---
src/arch/armv7/include/arch/early_variables.h | 59 ++++++++++++++++++++++++++
src/arch/x86/include/arch/early_variables.h | 60 +++++++++++++++++++++++++++
src/cpu/x86/car.c | 2 +-
src/cpu/x86/lapic/apic_timer.c | 2 +-
src/drivers/oxford/oxpcie/oxpcie_early.c | 2 +-
src/drivers/pc80/tpm.c | 2 +-
src/include/cpu/x86/car.h | 60 ---------------------------
src/lib/cbmem.c | 2 +-
src/lib/cbmem_console.c | 2 +-
src/lib/dynamic_cbmem.c | 2 +-
src/lib/timestamp.c | 2 +-
src/lib/usbdebug.c | 2 +-
src/northbridge/amd/amdfam10/raminit_amdmct.c | 2 +-
src/northbridge/amd/amdk8/raminit.c | 2 +-
src/northbridge/amd/amdk8/raminit_f.c | 2 +-
src/vendorcode/google/chromeos/vbnv.c | 2 +-
16 files changed, 132 insertions(+), 73 deletions(-)
diff --git a/src/arch/armv7/include/arch/early_variables.h b/src/arch/armv7/include/arch/early_variables.h
new file mode 100644
index 0000000..90ead9d
--- /dev/null
+++ b/src/arch/armv7/include/arch/early_variables.h
@@ -0,0 +1,59 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2011 The ChromiumOS Authors. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA, 02110-1301 USA
+ */
+
+#ifndef ARCH_EARLY_VARIABLES_H
+#define ARCH_EARLY_VARIABLES_H
+
+#ifdef __PRE_RAM__
+#define CAR_GLOBAL __attribute__((section(".car.global_data,\"w\",%nobits@")))
+#define CAR_CBMEM __attribute__((section(".car.cbmem_console,\"w\",%nobits@")))
+#else
+#define CAR_GLOBAL
+#define CAR_CBMEM
+#endif
+
+#if defined(__PRE_RAM__)
+#define CAR_MIGRATE_ATTR __attribute__ ((used,section (".car.migrate")))
+
+/* Call migrate_fn_() when CAR globals are migrated. */
+#define CAR_MIGRATE(migrate_fn_) \
+ static void (* const migrate_fn_ ## _ptr)(void) CAR_MIGRATE_ATTR = \
+ migrate_fn_;
+
+/* Get the correct pointer for the CAR global variable. */
+void *car_get_var_ptr(void *var);
+
+/* Get and set a primitive type global variable. */
+#define car_get_var(var) \
+ *(typeof(var) *)car_get_var_ptr(&(var))
+#define car_set_var(var, val) \
+ do { car_get_var(var) = (val); } while(0)
+
+/* Migrate the CAR variables to memory. */
+void car_migrate_variables(void);
+
+#else
+#define CAR_MIGRATE(migrate_fn_)
+static inline void *car_get_var_ptr(void *var) { return var; }
+#define car_get_var(var) (var)
+#define car_set_var(var, val) do { (var) = (val); } while (0)
+static inline void car_migrate_variables(void) { }
+#endif
+
+#endif
diff --git a/src/arch/x86/include/arch/early_variables.h b/src/arch/x86/include/arch/early_variables.h
new file mode 100644
index 0000000..ba7df97
--- /dev/null
+++ b/src/arch/x86/include/arch/early_variables.h
@@ -0,0 +1,60 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2011 The ChromiumOS Authors. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA, 02110-1301 USA
+ */
+
+#ifndef ARCH_EARLY_VARIABLES_H
+#define ARCH_EARLY_VARIABLES_H
+
+#ifdef __PRE_RAM__
+#define CAR_GLOBAL __attribute__((section(".car.global_data,\"w\",@nobits#")))
+#define CAR_CBMEM __attribute__((section(".car.cbmem_console,\"w\",@nobits#")))
+#else
+#define CAR_GLOBAL
+#define CAR_CBMEM
+#endif
+
+#if defined(__PRE_RAM__)
+#define CAR_MIGRATE_ATTR __attribute__ ((used,section (".car.migrate")))
+
+/* Call migrate_fn_() when CAR globals are migrated. */
+#define CAR_MIGRATE(migrate_fn_) \
+ static void (* const migrate_fn_ ## _ptr)(void) CAR_MIGRATE_ATTR = \
+ migrate_fn_;
+
+/* Get the correct pointer for the CAR global variable. */
+void *car_get_var_ptr(void *var);
+
+/* Get and set a primitive type global variable. */
+#define car_get_var(var) \
+ *(typeof(var) *)car_get_var_ptr(&(var))
+#define car_set_var(var, val) \
+ do { car_get_var(var) = (val); } while(0)
+
+/* Migrate the CAR variables to memory. */
+void car_migrate_variables(void);
+
+#else
+#define CAR_MIGRATE(migrate_fn_)
+static inline void *car_get_var_ptr(void *var) { return var; }
+#define car_get_var(var) (var)
+#define car_set_var(var, val) do { (var) = (val); } while (0)
+static inline void car_migrate_variables(void) { }
+#endif
+
+
+#endif
diff --git a/src/cpu/x86/car.c b/src/cpu/x86/car.c
index 87fa98b..481153d 100644
--- a/src/cpu/x86/car.c
+++ b/src/cpu/x86/car.c
@@ -21,7 +21,7 @@
#include <stddef.h>
#include <console/console.h>
#include <cbmem.h>
-#include <cpu/x86/car.h>
+#include <arch/early_variables.h>
typedef void (* const car_migration_func_t)(void);
diff --git a/src/cpu/x86/lapic/apic_timer.c b/src/cpu/x86/lapic/apic_timer.c
index e5ce62f..868fb92 100644
--- a/src/cpu/x86/lapic/apic_timer.c
+++ b/src/cpu/x86/lapic/apic_timer.c
@@ -24,7 +24,7 @@
#include <thread.h>
#include <arch/io.h>
#include <arch/cpu.h>
-#include <cpu/x86/car.h>
+#include <arch/early_variables.h>
#include <cpu/x86/msr.h>
#include <cpu/x86/lapic.h>
#include <cpu/intel/speedstep.h>
diff --git a/src/drivers/oxford/oxpcie/oxpcie_early.c b/src/drivers/oxford/oxpcie/oxpcie_early.c
index 2bca5c7..d04e9d4 100644
--- a/src/drivers/oxford/oxpcie/oxpcie_early.c
+++ b/src/drivers/oxford/oxpcie/oxpcie_early.c
@@ -19,7 +19,7 @@
#include <stdint.h>
#include <arch/io.h>
-#include <cpu/x86/car.h>
+#include <arch/early_variables.h>
#include <delay.h>
#include <uart8250.h>
#include <device/pci_def.h>
diff --git a/src/drivers/pc80/tpm.c b/src/drivers/pc80/tpm.c
index 0ea0017..b8ed3f1 100644
--- a/src/drivers/pc80/tpm.c
+++ b/src/drivers/pc80/tpm.c
@@ -34,7 +34,7 @@
#include <arch/byteorder.h>
#include <console/console.h>
#include <pc80/tpm.h>
-#include <cpu/x86/car.h>
+#include <arch/early_variables.h>
#define PREFIX "lpc_tpm: "
diff --git a/src/include/cpu/x86/car.h b/src/include/cpu/x86/car.h
deleted file mode 100644
index 5fc11f9..0000000
--- a/src/include/cpu/x86/car.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * This file is part of the coreboot project.
- *
- * Copyright (C) 2011 The ChromiumOS Authors. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA, 02110-1301 USA
- */
-
-#ifndef CPU_X86_CAR_H
-#define CPU_X86_CAR_H
-
-#ifdef __PRE_RAM__
-#define CAR_GLOBAL __attribute__((section(".car.global_data,\"w\",@nobits#")))
-#define CAR_CBMEM __attribute__((section(".car.cbmem_console,\"w\",@nobits#")))
-#else
-#define CAR_GLOBAL
-#define CAR_CBMEM
-#endif
-
-#if defined(__PRE_RAM__)
-#define CAR_MIGRATE_ATTR __attribute__ ((used,section (".car.migrate")))
-
-/* Call migrate_fn_() when CAR globals are migrated. */
-#define CAR_MIGRATE(migrate_fn_) \
- static void (* const migrate_fn_ ## _ptr)(void) CAR_MIGRATE_ATTR = \
- migrate_fn_;
-
-/* Get the correct pointer for the CAR global variable. */
-void *car_get_var_ptr(void *var);
-
-/* Get and set a primitive type global variable. */
-#define car_get_var(var) \
- *(typeof(var) *)car_get_var_ptr(&(var))
-#define car_set_var(var, val) \
- do { car_get_var(var) = (val); } while(0)
-
-/* Migrate the CAR variables to memory. */
-void car_migrate_variables(void);
-
-#else
-#define CAR_MIGRATE(migrate_fn_)
-static inline void *car_get_var_ptr(void *var) { return var; }
-#define car_get_var(var) (var)
-#define car_set_var(var, val) do { (var) = (val); } while (0)
-static inline void car_migrate_variables(void) { }
-#endif
-
-
-#endif
diff --git a/src/lib/cbmem.c b/src/lib/cbmem.c
index 8d69435..8a39647 100644
--- a/src/lib/cbmem.c
+++ b/src/lib/cbmem.c
@@ -23,7 +23,7 @@
#include <cbmem.h>
#include <boot/coreboot_tables.h>
#include <console/console.h>
-#include <cpu/x86/car.h>
+#include <arch/early_variables.h>
#if CONFIG_HAVE_ACPI_RESUME && !defined(__PRE_RAM__)
#include <arch/acpi.h>
#endif
diff --git a/src/lib/cbmem_console.c b/src/lib/cbmem_console.c
index 881865c..dd88300 100644
--- a/src/lib/cbmem_console.c
+++ b/src/lib/cbmem_console.c
@@ -19,7 +19,7 @@
#include <console/console.h>
#include <cbmem.h>
-#include <cpu/x86/car.h>
+#include <arch/early_variables.h>
#include <string.h>
/*
diff --git a/src/lib/dynamic_cbmem.c b/src/lib/dynamic_cbmem.c
index ba7760d..e21f96e 100644
--- a/src/lib/dynamic_cbmem.c
+++ b/src/lib/dynamic_cbmem.c
@@ -23,7 +23,7 @@
#include <cbmem.h>
#include <string.h>
#include <stdlib.h>
-#include <cpu/x86/car.h>
+#include <arch/early_variables.h>
#if CONFIG_HAVE_ACPI_RESUME && !defined(__PRE_RAM__)
#include <arch/acpi.h>
#endif
diff --git a/src/lib/timestamp.c b/src/lib/timestamp.c
index a9c354e..8942649 100644
--- a/src/lib/timestamp.c
+++ b/src/lib/timestamp.c
@@ -22,7 +22,7 @@
#include <console/console.h>
#include <cbmem.h>
#include <timestamp.h>
-#include <cpu/x86/car.h>
+#include <arch/early_variables.h>
#include <cpu/x86/lapic.h>
#define MAX_TIMESTAMPS 30
diff --git a/src/lib/usbdebug.c b/src/lib/usbdebug.c
index 39cd138..3faec10 100644
--- a/src/lib/usbdebug.c
+++ b/src/lib/usbdebug.c
@@ -24,7 +24,7 @@
#include <device/pci.h>
#include <device/pci_def.h>
#include <arch/byteorder.h>
-#include <cpu/x86/car.h>
+#include <arch/early_variables.h>
#include <string.h>
#include <cbmem.h>
diff --git a/src/northbridge/amd/amdfam10/raminit_amdmct.c b/src/northbridge/amd/amdfam10/raminit_amdmct.c
index 6994c39..e5c18a8 100644
--- a/src/northbridge/amd/amdfam10/raminit_amdmct.c
+++ b/src/northbridge/amd/amdfam10/raminit_amdmct.c
@@ -120,7 +120,7 @@ static void print_t(const char *strval)
#endif /* DDR2 */
-#include <cpu/x86/car.h>
+#include <arch/early_variables.h>
struct sys_info sysinfo_car CAR_GLOBAL;
int mctRead_SPD(u32 smaddr, u32 reg)
diff --git a/src/northbridge/amd/amdk8/raminit.c b/src/northbridge/amd/amdk8/raminit.c
index 33a3245..4aaa1bb 100644
--- a/src/northbridge/amd/amdk8/raminit.c
+++ b/src/northbridge/amd/amdk8/raminit.c
@@ -14,7 +14,7 @@
#include "option_table.h"
#endif
-#include <cpu/x86/car.h>
+#include <arch/early_variables.h>
struct sys_info sysinfo_car CAR_GLOBAL;
#if (CONFIG_RAMTOP & (CONFIG_RAMTOP -1)) != 0
diff --git a/src/northbridge/amd/amdk8/raminit_f.c b/src/northbridge/amd/amdk8/raminit_f.c
index c1882d7..64271b5 100644
--- a/src/northbridge/amd/amdk8/raminit_f.c
+++ b/src/northbridge/amd/amdk8/raminit_f.c
@@ -39,7 +39,7 @@
#endif
-#include <cpu/x86/car.h>
+#include <arch/early_variables.h>
struct sys_info sysinfo_car CAR_GLOBAL;
#if (CONFIG_RAMTOP & (CONFIG_RAMTOP -1)) != 0
diff --git a/src/vendorcode/google/chromeos/vbnv.c b/src/vendorcode/google/chromeos/vbnv.c
index d94203a..58ccbdb 100644
--- a/src/vendorcode/google/chromeos/vbnv.c
+++ b/src/vendorcode/google/chromeos/vbnv.c
@@ -21,7 +21,7 @@
#include <string.h>
#include <console/console.h>
#include <pc80/mc146818rtc.h>
-#include <cpu/x86/car.h>
+#include <arch/early_variables.h>
#include "chromeos.h"
#define VBNV_BLOCK_SIZE 16 /* Size of NV storage block in bytes */
Siyuan Wang (wangsiyuanbuaa(a)gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/3936
-gerrit
commit 7c3541c0a3016eede3193d7ff4d5c251a4705013
Author: WANG Siyuan <wangsiyuanbuaa(a)gmail.com>
Date: Mon Sep 23 15:11:11 2013 +0800
ASRock IMB_A180: fix Windows 7 HDMI audio issue
Windows 7 cannot find HDMI audio device because of acpi setting.
I have tested on Windows 7. I can play music.
Change-Id: I53177ce00b676824a903a3397d69338e8c1a38af
Signed-off-by: WANG Siyuan <SiYuan.Wang(a)amd.com>
Signed-off-by: WANG Siyuan <wangsiyuanbuaa(a)gmail.com>
---
src/mainboard/asrock/imb-a180/acpi/routing.asl | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/mainboard/asrock/imb-a180/acpi/routing.asl b/src/mainboard/asrock/imb-a180/acpi/routing.asl
index babf6ba..0b924a3 100644
--- a/src/mainboard/asrock/imb-a180/acpi/routing.asl
+++ b/src/mainboard/asrock/imb-a180/acpi/routing.asl
@@ -75,8 +75,8 @@ Name(APR0, Package(){
/* Bus 0, Dev 0 - F15 Host Controller */
/* Bus 0, Dev 1 - PCI Bridge for Internal Graphics(IGP) */
- Package(){0x0001FFFF, 0, 0, 17 },
- Package(){0x0001FFFF, 1, 0, 18 },
+ Package(){0x0001FFFF, 0, 0, 44 },
+ Package(){0x0001FFFF, 1, 0, 45 },
/* Bus 0, Dev 2 - PCIe Bridges */
Package(){0x0002FFFF, 0, 0, 18 },
Siyuan Wang (wangsiyuanbuaa(a)gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/3933
-gerrit
commit 3c8c9e11ea7ffb803f67498c87245bc34af93698
Author: WANG Siyuan <wangsiyuanbuaa(a)gmail.com>
Date: Sun Sep 22 15:13:57 2013 +0800
AMD Olive Hill: fix Windows 7 HDMI audio issue
Windows 7 cannot find HDMI audio device because of acpi setting.
I have tested on Windows 7. I can play music.
Change-Id: I90ade7e7be79f65783922333c2cbb2d3cc6557ea
Signed-off-by: WANG Siyuan <SiYuan.Wang(a)amd.com>
Signed-off-by: WANG Siyuan <wangsiyuanbuaa(a)gmail.com>
---
src/mainboard/amd/olivehill/acpi/routing.asl | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/mainboard/amd/olivehill/acpi/routing.asl b/src/mainboard/amd/olivehill/acpi/routing.asl
index babf6ba..0b924a3 100644
--- a/src/mainboard/amd/olivehill/acpi/routing.asl
+++ b/src/mainboard/amd/olivehill/acpi/routing.asl
@@ -75,8 +75,8 @@ Name(APR0, Package(){
/* Bus 0, Dev 0 - F15 Host Controller */
/* Bus 0, Dev 1 - PCI Bridge for Internal Graphics(IGP) */
- Package(){0x0001FFFF, 0, 0, 17 },
- Package(){0x0001FFFF, 1, 0, 18 },
+ Package(){0x0001FFFF, 0, 0, 44 },
+ Package(){0x0001FFFF, 1, 0, 45 },
/* Bus 0, Dev 2 - PCIe Bridges */
Package(){0x0002FFFF, 0, 0, 18 },
the following patch was just integrated into master:
commit cbf5bdfe67e90f780b9f5b2f8cb9cd6e0d46682d
Author: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
Date: Tue Sep 10 00:07:21 2013 +0300
CBMEM: Always select CAR_MIGRATION
If romstage does not make cbmem_initialize() call, linker should
optimize the code for CAR migration away.
This simplifies design of CBMEM console by a considerable amount.
As console buffer is now migrated within cbmem_initialize() call there
is no longer need for cbmemc_reinit() call made at end of romstage.
Change-Id: I8675ecaafb641fa02675e9ba3f374caa8e240f1d
Signed-off-by: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
Reviewed-on: http://review.coreboot.org/3916
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin(a)google.com>
See http://review.coreboot.org/3916 for details.
-gerrit