Rename cpu/x86/car.h to arch/early_variables.h
and add an ARMv7 version. Signed-off-by: Stefan Reinauer <reinauer@google.com> BUG=chrome-os-partner:18637 TEST=no functional change BRANCH=none Change-Id: I13d9194235bf03e3cceb862c791572f89196b65b Reviewed-on: https://gerrit.chromium.org/gerrit/59293 Reviewed-by: Stefan Reinauer <reinauer@chromium.org> Tested-by: Stefan Reinauer <reinauer@chromium.org> Commit-Queue: Stefan Reinauer <reinauer@google.com>
This commit is contained in:
parent
d846fd0e9b
commit
fa004acf8c
14 changed files with 73 additions and 14 deletions
|
|
@ -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 CONFIG_CAR_MIGRATION && 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue