Fix build with CMOS support on various platforms

When bringing in nvramtool as build_opt_tbl replacement,
various platforms where left in the cold that don't
provide direct IO support from userland (or at least not
in a way we support).

Build nvramtool without CMOS support when done as part of
a coreboot build. We don't need to touch CMOS in this case.

Change-Id: Icc88d1d32f10384867a5d44b065f9aa119bb0d50
Signed-off-by: Patrick Georgi <patrick@georgi-clan.de>
Reviewed-on: http://review.coreboot.org/983
Tested-by: build bot (Jenkins)
Reviewed-by: Marc Jones <marcj303@gmail.com>
This commit is contained in:
Patrick Georgi 2012-05-01 12:10:45 +02:00 committed by Stefan Reinauer
parent f8f00629e3
commit 44a89b34f8
3 changed files with 10 additions and 3 deletions

View File

@ -24,7 +24,7 @@ CC = gcc
STRIP = strip STRIP = strip
INSTALL = /usr/bin/install INSTALL = /usr/bin/install
PREFIX = /usr/local PREFIX = /usr/local
CFLAGS = -O2 -g -Wall -W -I. CFLAGS = -O2 -g -Wall -W -I. -DCMOS_HAL=1
#CFLAGS = -Os -Wall #CFLAGS = -Os -Wall
CLI_OBJS = cli/nvramtool.o cli/opts.o CLI_OBJS = cli/nvramtool.o cli/opts.o

View File

@ -37,7 +37,7 @@ nvramtoolobj :=
nvramtoolobj += cli/nvramtool.o cli/opts.o nvramtoolobj += cli/nvramtool.o cli/opts.o
nvramtoolobj += cmos_lowlevel.o cmos_ops.o common.o compute_ip_checksum.o nvramtoolobj += cmos_lowlevel.o cmos_ops.o common.o compute_ip_checksum.o
nvramtoolobj += hexdump.o input_file.o layout.o accessors/layout-common.o accessors/layout-text.o accessors/layout-bin.o lbtable.o nvramtoolobj += hexdump.o input_file.o layout.o accessors/layout-common.o accessors/layout-text.o accessors/layout-bin.o lbtable.o
nvramtoolobj += reg_expr.o cbfs.o accessors/cmos-hw-unix.o accessors/cmos-mem.o nvramtoolobj += reg_expr.o cbfs.o accessors/cmos-mem.o
$(objutil)/nvramtool $(objutil)/nvramtool/accessors $(objutil)/nvramtool/cli: $(objutil)/nvramtool $(objutil)/nvramtool/accessors $(objutil)/nvramtool/cli:
mkdir -p $@ mkdir -p $@

View File

@ -39,14 +39,21 @@
/* Hardware Abstraction Layer: lowlevel byte-wise write access */ /* Hardware Abstraction Layer: lowlevel byte-wise write access */
extern cmos_access_t cmos_hal, memory_hal; extern cmos_access_t cmos_hal, memory_hal;
static cmos_access_t *current_access = &cmos_hal; static cmos_access_t *current_access =
#ifdef CMOS_HAL
&cmos_hal;
#else
&memory_hal;
#endif
void select_hal(hal_t hal, void *data) void select_hal(hal_t hal, void *data)
{ {
switch(hal) { switch(hal) {
#ifdef CMOS_HAL
case HAL_CMOS: case HAL_CMOS:
current_access = &cmos_hal; current_access = &cmos_hal;
break; break;
#endif
case HAL_MEMORY: case HAL_MEMORY:
current_access = &memory_hal; current_access = &memory_hal;
break; break;