Add string support to nvramtool.
To add a string to your cmos.layout, you need to specify type 's': #start len type unused name 416 512 s 0 boot_devices With this patch you can do $ nvramtool -w boot_devices="(hd0,0);(hd2,1);(hd3)" And FILO will attempt to load a menu.lst from any of these devices in that order. The patch is not exactly pretty, but a cleaner solution might have resulted in a complete rewrite of the tool, which I did not want. Signed-off-by: Stefan Reinauer <stepan@coresystems.de> Acked-by: Joseph Smith <joe@settoplinux.org> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3613 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
committed by
Stefan Reinauer
parent
830b17d3e3
commit
a67aab7083
@@ -1,6 +1,5 @@
|
||||
/*****************************************************************************\
|
||||
* nvramtool.c
|
||||
* $Id$
|
||||
*****************************************************************************
|
||||
* Copyright (C) 2002-2005 The Regents of the University of California.
|
||||
* Produced at the Lawrence Livermore National Laboratory.
|
||||
@@ -477,6 +476,11 @@ static void list_param_enums (const char name[])
|
||||
e->length);
|
||||
break;
|
||||
|
||||
case CMOS_ENTRY_STRING:
|
||||
printf("Parameter %s requires a %u-byte string.\n", name,
|
||||
e->length / 8);
|
||||
break;
|
||||
|
||||
case CMOS_ENTRY_RESERVED:
|
||||
printf("Parameter %s is reserved.\n", name);
|
||||
break;
|
||||
@@ -570,7 +574,7 @@ static void set_one_param (const char name[], const char value[])
|
||||
|
||||
/* write the value to nonvolatile RAM */
|
||||
set_iopl(3);
|
||||
cmos_write(e->bit, e->length, n);
|
||||
cmos_write(e, n);
|
||||
cmos_checksum_write(cmos_checksum_compute());
|
||||
set_iopl(0);
|
||||
return;
|
||||
@@ -674,7 +678,7 @@ static int list_cmos_entry (const cmos_entry_t *e, int show_name)
|
||||
|
||||
/* read the value from CMOS */
|
||||
set_iopl(3);
|
||||
value = cmos_read(e->bit, e->length);
|
||||
value = cmos_read(e);
|
||||
set_iopl(0);
|
||||
|
||||
/* display the value */
|
||||
@@ -703,6 +707,16 @@ static int list_cmos_entry (const cmos_entry_t *e, int show_name)
|
||||
|
||||
break;
|
||||
|
||||
case CMOS_ENTRY_STRING:
|
||||
if (show_name)
|
||||
printf("%s = %s\n", e->name, (char *)(unsigned long)value);
|
||||
else
|
||||
printf("%s\n", (char *)(unsigned long)value);
|
||||
|
||||
free((void *)(unsigned long)value);
|
||||
|
||||
break;
|
||||
|
||||
case CMOS_ENTRY_RESERVED:
|
||||
default:
|
||||
BUG();
|
||||
|
Reference in New Issue
Block a user