From fd4f4136e8b6dd6f743b2a3bfd02c735b6b25131 Mon Sep 17 00:00:00 2001 From: Stefan Reinauer Date: Wed, 19 Jun 2013 12:25:44 -0700 Subject: Rename cpu/x86/car.h to arch/early_variables.h MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit and add an ARMv7 version. Change-Id: I14fbff88d7c2b003dde57a19bf0ba9640d322156 Signed-off-by: Stefan Reinauer [km: rebased fa004acf8 from chromium git] Signed-off-by: Kyösti Mälkki Reviewed-on: http://review.coreboot.org/3939 Reviewed-by: Stefan Reinauer Tested-by: build bot (Jenkins) --- 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(-) create mode 100644 src/arch/armv7/include/arch/early_variables.h create mode 100644 src/arch/x86/include/arch/early_variables.h delete mode 100644 src/include/cpu/x86/car.h 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 0000000000..90ead9d44b --- /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 0000000000..ba7df97059 --- /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 87fa98b488..481153d685 100644 --- a/src/cpu/x86/car.c +++ b/src/cpu/x86/car.c @@ -21,7 +21,7 @@ #include #include #include -#include +#include 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 e5ce62f3f5..868fb92716 100644 --- a/src/cpu/x86/lapic/apic_timer.c +++ b/src/cpu/x86/lapic/apic_timer.c @@ -24,7 +24,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/src/drivers/oxford/oxpcie/oxpcie_early.c b/src/drivers/oxford/oxpcie/oxpcie_early.c index 2bca5c7056..d04e9d4df0 100644 --- a/src/drivers/oxford/oxpcie/oxpcie_early.c +++ b/src/drivers/oxford/oxpcie/oxpcie_early.c @@ -19,7 +19,7 @@ #include #include -#include +#include #include #include #include diff --git a/src/drivers/pc80/tpm.c b/src/drivers/pc80/tpm.c index 0ea0017b47..b8ed3f1635 100644 --- a/src/drivers/pc80/tpm.c +++ b/src/drivers/pc80/tpm.c @@ -34,7 +34,7 @@ #include #include #include -#include +#include #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 5fc11f9cbc..0000000000 --- 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 8d69435694..8a39647dd1 100644 --- a/src/lib/cbmem.c +++ b/src/lib/cbmem.c @@ -23,7 +23,7 @@ #include #include #include -#include +#include #if CONFIG_HAVE_ACPI_RESUME && !defined(__PRE_RAM__) #include #endif diff --git a/src/lib/cbmem_console.c b/src/lib/cbmem_console.c index 881865cec8..dd883008bf 100644 --- a/src/lib/cbmem_console.c +++ b/src/lib/cbmem_console.c @@ -19,7 +19,7 @@ #include #include -#include +#include #include /* diff --git a/src/lib/dynamic_cbmem.c b/src/lib/dynamic_cbmem.c index ba7760dcd1..e21f96e372 100644 --- a/src/lib/dynamic_cbmem.c +++ b/src/lib/dynamic_cbmem.c @@ -23,7 +23,7 @@ #include #include #include -#include +#include #if CONFIG_HAVE_ACPI_RESUME && !defined(__PRE_RAM__) #include #endif diff --git a/src/lib/timestamp.c b/src/lib/timestamp.c index a9c354eb55..8942649099 100644 --- a/src/lib/timestamp.c +++ b/src/lib/timestamp.c @@ -22,7 +22,7 @@ #include #include #include -#include +#include #include #define MAX_TIMESTAMPS 30 diff --git a/src/lib/usbdebug.c b/src/lib/usbdebug.c index 39cd138ba0..3faec10f63 100644 --- a/src/lib/usbdebug.c +++ b/src/lib/usbdebug.c @@ -24,7 +24,7 @@ #include #include #include -#include +#include #include #include diff --git a/src/northbridge/amd/amdfam10/raminit_amdmct.c b/src/northbridge/amd/amdfam10/raminit_amdmct.c index 6994c394e8..e5c18a8f45 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 +#include 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 33a3245644..4aaa1bb385 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 +#include 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 c1882d7cef..64271b56f0 100644 --- a/src/northbridge/amd/amdk8/raminit_f.c +++ b/src/northbridge/amd/amdk8/raminit_f.c @@ -39,7 +39,7 @@ #endif -#include +#include 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 d94203ad6d..58ccbdb72f 100644 --- a/src/vendorcode/google/chromeos/vbnv.c +++ b/src/vendorcode/google/chromeos/vbnv.c @@ -21,7 +21,7 @@ #include #include #include -#include +#include #include "chromeos.h" #define VBNV_BLOCK_SIZE 16 /* Size of NV storage block in bytes */ -- cgit v1.2.3