This patch drops the coreboot CMOS checksum ranges from Kconfig because

the information is already specified in cmos.layout. coreboot is changed
to use that version instead.

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Ronald G. Minnich <rminnich@gmai.com>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5313 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
Stefan Reinauer
2010-03-29 17:14:28 +00:00
committed by Stefan Reinauer
parent 002c9ff3e4
commit b5828d7445
70 changed files with 114 additions and 768 deletions

View File

@@ -214,18 +214,6 @@ config XIP_ROM_SIZE
hex hex
default 0x20000 default 0x20000
config LB_CKS_RANGE_START
int
default 49
config LB_CKS_RANGE_END
int
default 125
config LB_CKS_LOC
int
default 126
config LOGICAL_CPUS config LOGICAL_CPUS
bool bool
default y default y

View File

@@ -59,9 +59,9 @@ $(obj)/option_table.h $(obj)/option_table.c: $(obj)/build_opt_tbl $(top)/src/mai
@printf " OPTION $(subst $(obj)/,,$(@))\n" @printf " OPTION $(subst $(obj)/,,$(@))\n"
$(obj)/build_opt_tbl --config $(top)/src/mainboard/$(MAINBOARDDIR)/cmos.layout --header $(obj)/option_table.h --option $(obj)/option_table.c $(obj)/build_opt_tbl --config $(top)/src/mainboard/$(MAINBOARDDIR)/cmos.layout --header $(obj)/option_table.h --option $(obj)/option_table.c
$(obj)/build_opt_tbl: $(top)/util/options/build_opt_tbl.c $(top)/src/include/pc80/mc146818rtc.h $(top)/src/include/boot/coreboot_tables.h $(obj)/config.h $(obj)/build_opt_tbl: $(top)/util/options/build_opt_tbl.c $(top)/src/include/pc80/mc146818rtc.h $(top)/src/include/boot/coreboot_tables.h
@printf " HOSTCC $(subst $(obj)/,,$(@))\n" @printf " HOSTCC $(subst $(obj)/,,$(@))\n"
$(HOSTCC) $(HOSTCFLAGS) -include $(obj)/config.h $< -o $@ $(HOSTCC) $(HOSTCFLAGS) $< -o $@
####################################################################### #######################################################################
# Build the coreboot_ram (stage 2) # Build the coreboot_ram (stage 2)

View File

@@ -2,7 +2,7 @@
* This file is part of the coreboot project. * This file is part of the coreboot project.
* *
* Copyright (C) 2003-2004 Eric Biederman * Copyright (C) 2003-2004 Eric Biederman
* Copyright (C) 2005-2009 coresystems GmbH * Copyright (C) 2005-2010 coresystems GmbH
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as * modify it under the terms of the GNU General Public License as
@@ -29,6 +29,9 @@
#include <version.h> #include <version.h>
#include <device/device.h> #include <device/device.h>
#include <stdlib.h> #include <stdlib.h>
#if (CONFIG_HAVE_OPTION_TABLE == 1)
#include <pc80/mc146818rtc.h>
#endif
static struct lb_header *lb_table_init(unsigned long addr) static struct lb_header *lb_table_init(unsigned long addr)
{ {
@@ -196,9 +199,9 @@ static struct cmos_checksum *lb_cmos_checksum(struct lb_header *header)
cmos_checksum->size = (sizeof(*cmos_checksum)); cmos_checksum->size = (sizeof(*cmos_checksum));
cmos_checksum->range_start = CONFIG_LB_CKS_RANGE_START * 8; cmos_checksum->range_start = LB_CKS_RANGE_START * 8;
cmos_checksum->range_end = ( CONFIG_LB_CKS_RANGE_END * 8 ) + 7; cmos_checksum->range_end = ( LB_CKS_RANGE_END * 8 ) + 7;
cmos_checksum->location = CONFIG_LB_CKS_LOC * 8; cmos_checksum->location = LB_CKS_LOC * 8;
cmos_checksum->type = CHECKSUM_PCBIOS; cmos_checksum->type = CHECKSUM_PCBIOS;
return cmos_checksum; return cmos_checksum;

View File

@@ -81,15 +81,9 @@
#define PC_CKS_RANGE_END 45 #define PC_CKS_RANGE_END 45
#define PC_CKS_LOC 46 #define PC_CKS_LOC 46
/* Linux bios checksum is built only over bytes 49..125 */ /* coreboot cmos checksum is usually only built over bytes 49..125 */
#ifndef CONFIG_LB_CKS_RANGE_START #ifdef AUTOCONF_INCLUDED
#define CONFIG_LB_CKS_RANGE_START 49 #include <option_table.h>
#endif
#ifndef CONFIG_LB_CKS_RANGE_END
#define CONFIG_LB_CKS_RANGE_END 125
#endif
#ifndef CONFIG_LB_CKS_LOC
#define CONFIG_LB_CKS_LOC 126
#endif #endif
#if !defined(ASSEMBLY) #if !defined(ASSEMBLY)
@@ -97,7 +91,8 @@ void rtc_init(int invalid);
#if CONFIG_USE_OPTION_TABLE == 1 #if CONFIG_USE_OPTION_TABLE == 1
int get_option(void *dest, const char *name); int get_option(void *dest, const char *name);
#else #else
static inline int get_option(void *dest, const char *name) { return -2; } static inline int get_option(void *dest __attribute__((unused)),
const char *name __attribute__((unused))) { return -2; }
#endif #endif
#endif #endif

View File

@@ -30,4 +30,4 @@ obj-$(CONFIG_BOOTSPLASH) += jpeg.o
smmobj-y += memcpy.o smmobj-y += memcpy.o
$(obj)/lib/version.o :: $(obj)/build.h $(obj)/lib/version.o : $(obj)/build.h

View File

@@ -49,16 +49,6 @@ config APIC_ID_OFFSET
default 0x0 default 0x0
depends on BOARD_AMD_DBM690T depends on BOARD_AMD_DBM690T
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_AMD_DBM690T
config LB_CKS_LOC
int
default 123
depends on BOARD_AMD_DBM690T
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "DBM690T" default "DBM690T"

View File

@@ -51,16 +51,6 @@ config APIC_ID_OFFSET
default 0x0 default 0x0
depends on BOARD_AMD_MAHOGANY depends on BOARD_AMD_MAHOGANY
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_AMD_MAHOGANY
config LB_CKS_LOC
int
default 123
depends on BOARD_AMD_MAHOGANY
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "MAHOGANY" default "MAHOGANY"

View File

@@ -35,16 +35,6 @@ config APIC_ID_OFFSET
default 0x0 default 0x0
depends on BOARD_AMD_MAHOGANY_FAM10 depends on BOARD_AMD_MAHOGANY_FAM10
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_AMD_MAHOGANY_FAM10
config LB_CKS_LOC
int
default 123
depends on BOARD_AMD_MAHOGANY_FAM10
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "Mahogany (Fam10)" default "Mahogany (Fam10)"

View File

@@ -43,16 +43,6 @@ config APIC_ID_OFFSET
default 0x0 default 0x0
depends on BOARD_AMD_PISTACHIO depends on BOARD_AMD_PISTACHIO
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_AMD_PISTACHIO
config LB_CKS_LOC
int
default 123
depends on BOARD_AMD_PISTACHIO
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "Pistachio" default "Pistachio"

View File

@@ -46,16 +46,6 @@ config APIC_ID_OFFSET
default 0x8 default 0x8
depends on BOARD_AMD_SERENGETI_CHEETAH depends on BOARD_AMD_SERENGETI_CHEETAH
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_AMD_SERENGETI_CHEETAH
config LB_CKS_LOC
int
default 123
depends on BOARD_AMD_SERENGETI_CHEETAH
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "Serengeti Cheetah" default "Serengeti Cheetah"

View File

@@ -33,16 +33,6 @@ config APIC_ID_OFFSET
default 0x0 default 0x0
depends on BOARD_AMD_SERENGETI_CHEETAH_FAM10 depends on BOARD_AMD_SERENGETI_CHEETAH_FAM10
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_AMD_SERENGETI_CHEETAH_FAM10
config LB_CKS_LOC
int
default 123
depends on BOARD_AMD_SERENGETI_CHEETAH_FAM10
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "Serengeti Cheetah (Fam10)" default "Serengeti Cheetah (Fam10)"

View File

@@ -35,16 +35,6 @@ config APIC_ID_OFFSET
default 0x0 default 0x0
depends on BOARD_ARIMA_HDAMA depends on BOARD_ARIMA_HDAMA
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_ARIMA_HDAMA
config LB_CKS_LOC
int
default 123
depends on BOARD_ARIMA_HDAMA
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "HDAMA" default "HDAMA"

View File

@@ -49,16 +49,6 @@ config SB_HT_CHAIN_UNITID_OFFSET_ONLY
default n default n
depends on BOARD_ASUS_A8N_E depends on BOARD_ASUS_A8N_E
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_ASUS_A8N_E
config LB_CKS_LOC
int
default 123
depends on BOARD_ASUS_A8N_E
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "A8N-E" default "A8N-E"

View File

@@ -49,16 +49,6 @@ config SB_HT_CHAIN_UNITID_OFFSET_ONLY
default n default n
depends on BOARD_ASUS_A8V_E_SE depends on BOARD_ASUS_A8V_E_SE
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_ASUS_A8V_E_SE
config LB_CKS_LOC
int
default 123
depends on BOARD_ASUS_A8V_E_SE
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "A8V-E SE" default "A8V-E SE"

View File

@@ -82,16 +82,6 @@ config HEAP_SIZE
default 0x40000 default 0x40000
depends on BOARD_ASUS_M2V_MX_SE depends on BOARD_ASUS_M2V_MX_SE
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_ASUS_M2V_MX_SE
config LB_CKS_LOC
int
default 123
depends on BOARD_ASUS_M2V_MX_SE
config HT_CHAIN_UNITID_BASE config HT_CHAIN_UNITID_BASE
hex hex
default 0x0 default 0x0

View File

@@ -46,16 +46,6 @@ config SB_HT_CHAIN_ON_BUS0
default 1 default 1
depends on BOARD_BROADCOM_BLAST depends on BOARD_BROADCOM_BLAST
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_BROADCOM_BLAST
config LB_CKS_LOC
int
default 123
depends on BOARD_BROADCOM_BLAST
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "Blast" default "Blast"

View File

@@ -20,16 +20,6 @@ config MAINBOARD_DIR
default dell/s1850 default dell/s1850
depends on BOARD_DELL_S1850 depends on BOARD_DELL_S1850
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_DELL_S1850
config LB_CKS_LOC
int
default 123
depends on BOARD_DELL_S1850
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "PowerEdge 1850" default "PowerEdge 1850"

View File

@@ -50,21 +50,6 @@ config SB_HT_CHAIN_ON_BUS0
default 2 default 2
depends on BOARD_GIGABYTE_GA_2761GXDK depends on BOARD_GIGABYTE_GA_2761GXDK
config LB_CKS_RANGE_START
int
default 49
depends on BOARD_GIGABYTE_GA_2761GXDK
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_GIGABYTE_GA_2761GXDK
config LB_CKS_LOC
int
default 123
depends on BOARD_GIGABYTE_GA_2761GXDK
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "GA-2761GXDK" default "GA-2761GXDK"

View File

@@ -53,21 +53,6 @@ config SB_HT_CHAIN_ON_BUS0
default 2 default 2
depends on BOARD_GIGABYTE_M57SLI depends on BOARD_GIGABYTE_M57SLI
config LB_CKS_RANGE_START
int
default 49
depends on BOARD_GIGABYTE_M57SLI
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_GIGABYTE_M57SLI
config LB_CKS_LOC
int
default 123
depends on BOARD_GIGABYTE_M57SLI
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "GA-M57SLI-S4" default "GA-M57SLI-S4"

View File

@@ -52,16 +52,6 @@ config SB_HT_CHAIN_UNITID_OFFSET_ONLY
default n default n
depends on BOARD_HP_DL145_G3 depends on BOARD_HP_DL145_G3
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_HP_DL145_G3
config LB_CKS_LOC
int
default 123
depends on BOARD_HP_DL145_G3
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "ProLiant DL145 G3" default "ProLiant DL145 G3"

View File

@@ -41,16 +41,6 @@ config APIC_ID_OFFSET
default 0x0 default 0x0
depends on BOARD_IBM_E325 depends on BOARD_IBM_E325
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_IBM_E325
config LB_CKS_LOC
int
default 123
depends on BOARD_IBM_E325
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "eServer 325" default "eServer 325"

View File

@@ -41,16 +41,6 @@ config APIC_ID_OFFSET
default 0x0 default 0x0
depends on BOARD_IBM_E326 depends on BOARD_IBM_E326
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_IBM_E326
config LB_CKS_LOC
int
default 123
depends on BOARD_IBM_E326
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "eServer 326" default "eServer 326"

View File

@@ -61,16 +61,6 @@ config DCACHE_RAM_SIZE
default 0x8000 default 0x8000
depends on BOARD_INTEL_D945GCLF depends on BOARD_INTEL_D945GCLF
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_INTEL_D945GCLF
config LB_CKS_LOC
int
default 123
depends on BOARD_INTEL_D945GCLF
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "D945GCLF" default "D945GCLF"

View File

@@ -38,16 +38,6 @@ config DCACHE_RAM_SIZE
default 0x8000 default 0x8000
depends on BOARD_INTEL_EAGLEHEIGHTS depends on BOARD_INTEL_EAGLEHEIGHTS
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_INTEL_EAGLEHEIGHTS
config LB_CKS_LOC
int
default 123
depends on BOARD_INTEL_EAGLEHEIGHTS
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "EagleHeights" default "EagleHeights"

View File

@@ -21,16 +21,6 @@ config MAINBOARD_DIR
default intel/jarrell default intel/jarrell
depends on BOARD_INTEL_JARRELL depends on BOARD_INTEL_JARRELL
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_INTEL_JARRELL
config LB_CKS_LOC
int
default 123
depends on BOARD_INTEL_JARRELL
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "Jarrell" default "Jarrell"

View File

@@ -17,16 +17,6 @@ config MAINBOARD_DIR
default intel/mtarvon default intel/mtarvon
depends on BOARD_INTEL_MTARVON depends on BOARD_INTEL_MTARVON
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_INTEL_MTARVON
config LB_CKS_LOC
int
default 123
depends on BOARD_INTEL_MTARVON
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "3100 devkit (Mt. Arvon)" default "3100 devkit (Mt. Arvon)"

View File

@@ -18,16 +18,6 @@ config MAINBOARD_DIR
default intel/truxton default intel/truxton
depends on BOARD_INTEL_TRUXTON depends on BOARD_INTEL_TRUXTON
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_INTEL_TRUXTON
config LB_CKS_LOC
int
default 123
depends on BOARD_INTEL_TRUXTON
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "Truxton" default "Truxton"

View File

@@ -21,21 +21,6 @@ config MAINBOARD_DIR
default intel/xe7501devkit default intel/xe7501devkit
depends on BOARD_INTEL_XE7501DEVKIT depends on BOARD_INTEL_XE7501DEVKIT
config LB_CKS_RANGE_START
int
default 128
depends on BOARD_INTEL_XE7501DEVKIT
config LB_CKS_RANGE_END
int
default 130
depends on BOARD_INTEL_XE7501DEVKIT
config LB_CKS_LOC
int
default 131
depends on BOARD_INTEL_XE7501DEVKIT
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "XE7501devkit" default "XE7501devkit"

View File

@@ -45,16 +45,6 @@ config APIC_ID_OFFSET
default 0x10 default 0x10
depends on BOARD_IWILL_DK8_HTX depends on BOARD_IWILL_DK8_HTX
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_IWILL_DK8_HTX
config LB_CKS_LOC
int
default 123
depends on BOARD_IWILL_DK8_HTX
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "DK8-HTX" default "DK8-HTX"

View File

@@ -42,16 +42,6 @@ config APIC_ID_OFFSET
default 0x0 default 0x0
depends on BOARD_IWILL_DK8S2 depends on BOARD_IWILL_DK8S2
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_IWILL_DK8S2
config LB_CKS_LOC
int
default 123
depends on BOARD_IWILL_DK8S2
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "DK8S2" default "DK8S2"

View File

@@ -41,16 +41,6 @@ config APIC_ID_OFFSET
default 0x0 default 0x0
depends on BOARD_IWILL_DK8X depends on BOARD_IWILL_DK8X
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_IWILL_DK8X
config LB_CKS_LOC
int
default 123
depends on BOARD_IWILL_DK8X
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "DK8X" default "DK8X"

View File

@@ -38,16 +38,6 @@ config DCACHE_RAM_SIZE
default 0x8000 default 0x8000
depends on BOARD_KONTRON_986LCD_M depends on BOARD_KONTRON_986LCD_M
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_KONTRON_986LCD_M
config LB_CKS_LOC
int
default 123
depends on BOARD_KONTRON_986LCD_M
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "986LCD-M" default "986LCD-M"

View File

@@ -35,26 +35,11 @@ config MAINBOARD_PCI_SUBSYSTEM_DEVICE_ID
default 0x6900 default 0x6900
depends on BOARD_KONTRON_KT690 depends on BOARD_KONTRON_KT690
config LB_CKS_RANGE_START
int
default 49
depends on BOARD_KONTRON_KT690
config APIC_ID_OFFSET config APIC_ID_OFFSET
hex hex
default 0x0 default 0x0
depends on BOARD_KONTRON_KT690 depends on BOARD_KONTRON_KT690
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_KONTRON_KT690
config LB_CKS_LOC
int
default 123
depends on BOARD_KONTRON_KT690
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "KT690/mITX" default "KT690/mITX"

View File

@@ -34,16 +34,6 @@ config SB_HT_CHAIN_ON_BUS0
default 2 default 2
depends on BOARD_MSI_MS7135 depends on BOARD_MSI_MS7135
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_MSI_MS7135
config LB_CKS_LOC
int
default 123
depends on BOARD_MSI_MS7135
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "MS-7135" default "MS-7135"

View File

@@ -51,21 +51,6 @@ config SB_HT_CHAIN_ON_BUS0
default 2 default 2
depends on BOARD_MSI_MS7260 depends on BOARD_MSI_MS7260
config LB_CKS_RANGE_START
int
default 49
depends on BOARD_MSI_MS7260
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_MSI_MS7260
config LB_CKS_LOC
int
default 123
depends on BOARD_MSI_MS7260
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "MS-7260" default "MS-7260"

View File

@@ -47,16 +47,6 @@ config SB_HT_CHAIN_ON_BUS0
default 2 default 2
depends on BOARD_MSI_MS9185 depends on BOARD_MSI_MS9185
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_MSI_MS9185
config LB_CKS_LOC
int
default 123
depends on BOARD_MSI_MS9185
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "MS-9185" default "MS-9185"

View File

@@ -45,21 +45,6 @@ config SB_HT_CHAIN_ON_BUS0
default 1 default 1
depends on BOARD_MSI_MS9282 depends on BOARD_MSI_MS9282
config LB_CKS_RANGE_START
int
default 49
depends on BOARD_MSI_MS9282
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_MSI_MS9282
config LB_CKS_LOC
int
default 123
depends on BOARD_MSI_MS9282
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "MS-9282" default "MS-9282"

View File

@@ -92,21 +92,6 @@ config USE_OPTION_TABLE
default n default n
depends on BOARD_MSI_MS9652_FAM10 depends on BOARD_MSI_MS9652_FAM10
config LB_CKS_RANGE_START
int
default 49
depends on BOARD_MSI_MS9652_FAM10
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_MSI_MS9652_FAM10
config LB_CKS_LOC
int
default 123
depends on BOARD_MSI_MS9652_FAM10
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "MS-9652" default "MS-9652"

View File

@@ -45,16 +45,6 @@ config SB_HT_CHAIN_ON_BUS0
default 0 default 0
depends on BOARD_NEWISYS_KHEPRI depends on BOARD_NEWISYS_KHEPRI
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_NEWISYS_KHEPRI
config LB_CKS_LOC
int
default 123
depends on BOARD_NEWISYS_KHEPRI
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "Khepri" default "Khepri"

View File

@@ -51,21 +51,6 @@ config SB_HT_CHAIN_ON_BUS0
default 2 default 2
depends on BOARD_NVIDIA_L1_2PVV depends on BOARD_NVIDIA_L1_2PVV
config LB_CKS_RANGE_START
int
default 49
depends on BOARD_NVIDIA_L1_2PVV
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_NVIDIA_L1_2PVV
config LB_CKS_LOC
int
default 123
depends on BOARD_NVIDIA_L1_2PVV
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "l1_2pvv" default "l1_2pvv"

View File

@@ -35,16 +35,6 @@ config DCACHE_RAM_SIZE
default 0x8000 default 0x8000
depends on BOARD_RODA_RK886EX depends on BOARD_RODA_RK886EX
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_RODA_RK886EX
config LB_CKS_LOC
int
default 123
depends on BOARD_RODA_RK886EX
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "RK886EX" default "RK886EX"

View File

@@ -49,16 +49,6 @@ config SB_HT_CHAIN_UNITID_OFFSET_ONLY
default n default n
depends on BOARD_SUNW_ULTRA40 depends on BOARD_SUNW_ULTRA40
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_SUNW_ULTRA40
config LB_CKS_LOC
int
default 123
depends on BOARD_SUNW_ULTRA40
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "Ultra 40" default "Ultra 40"

View File

@@ -56,16 +56,6 @@ config SB_HT_CHAIN_UNITID_OFFSET_ONLY
default n default n
depends on BOARD_SUPERMICRO_H8DME depends on BOARD_SUPERMICRO_H8DME
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_SUPERMICRO_H8DME
config LB_CKS_LOC
int
default 123
depends on BOARD_SUPERMICRO_H8DME
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "H8DME-2" default "H8DME-2"

View File

@@ -55,16 +55,6 @@ config SB_HT_CHAIN_UNITID_OFFSET_ONLY
default n default n
depends on BOARD_SUPERMICRO_H8DMR depends on BOARD_SUPERMICRO_H8DMR
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_SUPERMICRO_H8DMR
config LB_CKS_LOC
int
default 123
depends on BOARD_SUPERMICRO_H8DMR
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "H8DMR-i2" default "H8DMR-i2"

View File

@@ -73,16 +73,6 @@ config SB_HT_CHAIN_UNITID_OFFSET_ONLY
default n default n
depends on BOARD_SUPERMICRO_H8DMR_FAM10 depends on BOARD_SUPERMICRO_H8DMR_FAM10
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_SUPERMICRO_H8DMR_FAM10
config LB_CKS_LOC
int
default 123
depends on BOARD_SUPERMICRO_H8DMR_FAM10
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "H8DMR-i2 (Fam10)" default "H8DMR-i2 (Fam10)"

View File

@@ -74,16 +74,6 @@ config SB_HT_CHAIN_UNITID_OFFSET_ONLY
default n default n
depends on BOARD_SUPERMICRO_H8QME_FAM10 depends on BOARD_SUPERMICRO_H8QME_FAM10
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_SUPERMICRO_H8QME_FAM10
config LB_CKS_LOC
int
default 123
depends on BOARD_SUPERMICRO_H8QME_FAM10
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "H8QME-2+ (Fam10)" default "H8QME-2+ (Fam10)"

View File

@@ -17,16 +17,6 @@ config MAINBOARD_DIR
default supermicro/x6dai_g default supermicro/x6dai_g
depends on BOARD_SUPERMICRO_X6DAI_G depends on BOARD_SUPERMICRO_X6DAI_G
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_SUPERMICRO_X6DAI_G
config LB_CKS_LOC
int
default 123
depends on BOARD_SUPERMICRO_X6DAI_G
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "X6DAi-G" default "X6DAi-G"

View File

@@ -19,16 +19,6 @@ config MAINBOARD_DIR
default supermicro/x6dhe_g default supermicro/x6dhe_g
depends on BOARD_SUPERMICRO_X6DHE_G depends on BOARD_SUPERMICRO_X6DHE_G
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_SUPERMICRO_X6DHE_G
config LB_CKS_LOC
int
default 123
depends on BOARD_SUPERMICRO_X6DHE_G
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "X6DHE-G" default "X6DHE-G"

View File

@@ -20,16 +20,6 @@ config MAINBOARD_DIR
default supermicro/x6dhe_g2 default supermicro/x6dhe_g2
depends on BOARD_SUPERMICRO_X6DHE_G2 depends on BOARD_SUPERMICRO_X6DHE_G2
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_SUPERMICRO_X6DHE_G2
config LB_CKS_LOC
int
default 123
depends on BOARD_SUPERMICRO_X6DHE_G2
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "X6DHE-G2" default "X6DHE-G2"

View File

@@ -19,16 +19,6 @@ config MAINBOARD_DIR
default supermicro/x6dhr_ig default supermicro/x6dhr_ig
depends on BOARD_SUPERMICRO_X6DHR_IG depends on BOARD_SUPERMICRO_X6DHR_IG
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_SUPERMICRO_X6DHR_IG
config LB_CKS_LOC
int
default 123
depends on BOARD_SUPERMICRO_X6DHR_IG
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "X6DHR-iG" default "X6DHR-iG"

View File

@@ -19,16 +19,6 @@ config MAINBOARD_DIR
default supermicro/x6dhr_ig2 default supermicro/x6dhr_ig2
depends on BOARD_SUPERMICRO_X6DHR_IG2 depends on BOARD_SUPERMICRO_X6DHR_IG2
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_SUPERMICRO_X6DHR_IG2
config LB_CKS_LOC
int
default 123
depends on BOARD_SUPERMICRO_X6DHR_IG2
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "X6DHR-iG2" default "X6DHR-iG2"

View File

@@ -45,16 +45,6 @@ config APIC_ID_OFFSET
default 0x0 default 0x0
depends on BOARD_TECHNEXION_TIM5690 depends on BOARD_TECHNEXION_TIM5690
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_TECHNEXION_TIM5690
config LB_CKS_LOC
int
default 123
depends on BOARD_TECHNEXION_TIM5690
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "TIM-5690" default "TIM-5690"

View File

@@ -44,16 +44,6 @@ config APIC_ID_OFFSET
default 0x0 default 0x0
depends on BOARD_TECHNEXION_TIM8690 depends on BOARD_TECHNEXION_TIM8690
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_TECHNEXION_TIM8690
config LB_CKS_LOC
int
default 123
depends on BOARD_TECHNEXION_TIM8690
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "TIM-8690" default "TIM-8690"

View File

@@ -31,21 +31,6 @@ config DCACHE_RAM_SIZE
default 0x1000 default 0x1000
depends on BOARD_TYAN_S2735 depends on BOARD_TYAN_S2735
config LB_CKS_RANGE_START
int
default 49
depends on BOARD_TYAN_S2735
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_TYAN_S2735
config LB_CKS_LOC
int
default 123
depends on BOARD_TYAN_S2735
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "S2735" default "S2735"

View File

@@ -16,16 +16,6 @@ config MAINBOARD_DIR
default tyan/s2850 default tyan/s2850
depends on BOARD_TYAN_S2850 depends on BOARD_TYAN_S2850
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_TYAN_S2850
config LB_CKS_LOC
int
default 123
depends on BOARD_TYAN_S2850
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "S2850" default "S2850"

View File

@@ -17,16 +17,6 @@ config MAINBOARD_DIR
default tyan/s2875 default tyan/s2875
depends on BOARD_TYAN_S2875 depends on BOARD_TYAN_S2875
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_TYAN_S2875
config LB_CKS_LOC
int
default 123
depends on BOARD_TYAN_S2875
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "S2875" default "S2875"

View File

@@ -28,16 +28,6 @@ config SB_HT_CHAIN_ON_BUS0
default 0 default 0
depends on BOARD_TYAN_S2880 depends on BOARD_TYAN_S2880
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_TYAN_S2880
config LB_CKS_LOC
int
default 123
depends on BOARD_TYAN_S2880
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "S2880" default "S2880"

View File

@@ -29,16 +29,6 @@ config SB_HT_CHAIN_ON_BUS0
default 2 default 2
depends on BOARD_TYAN_S2881 depends on BOARD_TYAN_S2881
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_TYAN_S2881
config LB_CKS_LOC
int
default 123
depends on BOARD_TYAN_S2881
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "S2881" default "S2881"

View File

@@ -28,16 +28,6 @@ config SB_HT_CHAIN_ON_BUS0
default 0 default 0
depends on BOARD_TYAN_S2882 depends on BOARD_TYAN_S2882
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_TYAN_S2882
config LB_CKS_LOC
int
default 123
depends on BOARD_TYAN_S2882
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "S2882" default "S2882"

View File

@@ -29,16 +29,6 @@ config SB_HT_CHAIN_ON_BUS0
default 2 default 2
depends on BOARD_TYAN_S2885 depends on BOARD_TYAN_S2885
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_TYAN_S2885
config LB_CKS_LOC
int
default 123
depends on BOARD_TYAN_S2885
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "S2885" default "S2885"

View File

@@ -31,16 +31,6 @@ config SB_HT_CHAIN_ON_BUS0
default 2 default 2
depends on BOARD_TYAN_S2891 depends on BOARD_TYAN_S2891
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_TYAN_S2891
config LB_CKS_LOC
int
default 123
depends on BOARD_TYAN_S2891
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "S2891" default "S2891"

View File

@@ -30,16 +30,6 @@ config SB_HT_CHAIN_ON_BUS0
default 2 default 2
depends on BOARD_TYAN_S2892 depends on BOARD_TYAN_S2892
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_TYAN_S2892
config LB_CKS_LOC
int
default 123
depends on BOARD_TYAN_S2892
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "S2892" default "S2892"

View File

@@ -30,16 +30,6 @@ config SB_HT_CHAIN_ON_BUS0
default 2 default 2
depends on BOARD_TYAN_S2895 depends on BOARD_TYAN_S2895
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_TYAN_S2895
config LB_CKS_LOC
int
default 123
depends on BOARD_TYAN_S2895
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "S2895" default "S2895"

View File

@@ -51,21 +51,6 @@ config SB_HT_CHAIN_ON_BUS0
default 2 default 2
depends on BOARD_TYAN_S2912 depends on BOARD_TYAN_S2912
config LB_CKS_RANGE_START
int
default 49
depends on BOARD_TYAN_S2912
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_TYAN_S2912
config LB_CKS_LOC
int
default 123
depends on BOARD_TYAN_S2912
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "S2912" default "S2912"

View File

@@ -53,21 +53,6 @@ config SB_HT_CHAIN_ON_BUS0
default 2 default 2
depends on BOARD_TYAN_S2912_FAM10 depends on BOARD_TYAN_S2912_FAM10
config LB_CKS_RANGE_START
int
default 49
depends on BOARD_TYAN_S2912_FAM10
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_TYAN_S2912_FAM10
config LB_CKS_LOC
int
default 123
depends on BOARD_TYAN_S2912_FAM10
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "S2912 (Fam10)" default "S2912 (Fam10)"

View File

@@ -45,16 +45,6 @@ config SB_HT_CHAIN_ON_BUS0
default 0 default 0
depends on BOARD_TYAN_S4880 depends on BOARD_TYAN_S4880
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_TYAN_S4880
config LB_CKS_LOC
int
default 123
depends on BOARD_TYAN_S4880
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "S4880" default "S4880"

View File

@@ -45,16 +45,6 @@ config SB_HT_CHAIN_ON_BUS0
default 0 default 0
depends on BOARD_TYAN_S4882 depends on BOARD_TYAN_S4882
config LB_CKS_RANGE_END
int
default 122
depends on BOARD_TYAN_S4882
config LB_CKS_LOC
int
default 123
depends on BOARD_TYAN_S4882
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "S4882" default "S4882"

View File

@@ -185,8 +185,8 @@ void rtc_init(int invalid)
#if CONFIG_HAVE_OPTION_TABLE #if CONFIG_HAVE_OPTION_TABLE
/* See if there is a LB CMOS checksum error */ /* See if there is a LB CMOS checksum error */
checksum_invalid = !rtc_checksum_valid(CONFIG_LB_CKS_RANGE_START, checksum_invalid = !rtc_checksum_valid(LB_CKS_RANGE_START,
CONFIG_LB_CKS_RANGE_END,CONFIG_LB_CKS_LOC); LB_CKS_RANGE_END,LB_CKS_LOC);
if(checksum_invalid) if(checksum_invalid)
printk(BIOS_DEBUG, "Invalid CMOS LB checksum\n"); printk(BIOS_DEBUG, "Invalid CMOS LB checksum\n");
@@ -263,8 +263,8 @@ int get_option(void *dest, const char *name)
if(get_cmos_value(ce->bit, ce->length, dest)) if(get_cmos_value(ce->bit, ce->length, dest))
return(-3); return(-3);
if(!rtc_checksum_valid(CONFIG_LB_CKS_RANGE_START, if(!rtc_checksum_valid(LB_CKS_RANGE_START,
CONFIG_LB_CKS_RANGE_END,CONFIG_LB_CKS_LOC)) LB_CKS_RANGE_END,LB_CKS_LOC))
return(-4); return(-4);
return(0); return(0);
} }

View File

@@ -44,14 +44,14 @@ static int cmos_chksum_valid(void)
unsigned long sum, old_sum; unsigned long sum, old_sum;
sum = 0; sum = 0;
/* Comput the cmos checksum */ /* Comput the cmos checksum */
for(addr = CONFIG_LB_CKS_RANGE_START; addr <= CONFIG_LB_CKS_RANGE_END; addr++) { for(addr = LB_CKS_RANGE_START; addr <= LB_CKS_RANGE_END; addr++) {
sum += cmos_read(addr); sum += cmos_read(addr);
} }
sum = (sum & 0xffff) ^ 0xffff; sum = (sum & 0xffff) ^ 0xffff;
/* Read the stored checksum */ /* Read the stored checksum */
old_sum = cmos_read(CONFIG_LB_CKS_LOC) << 8; old_sum = cmos_read(LB_CKS_LOC) << 8;
old_sum |= cmos_read(CONFIG_LB_CKS_LOC+1); old_sum |= cmos_read(LB_CKS_LOC+1);
return sum == old_sum; return sum == old_sum;
} }

View File

@@ -1,3 +1,23 @@
/*
* This file is part of the coreboot project.
*
* Copyright (C) 2003 Eric Biederman (ebiederm@xmission.com)
* Copyright (C) 2007-2010 coresystems GmbH
*
* 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
*/
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
@@ -16,14 +36,14 @@
#define TMPFILE_TEMPLATE "/build_opt_tbl_XXXXXX" #define TMPFILE_TEMPLATE "/build_opt_tbl_XXXXXX"
static unsigned char cmos_table[4096]; static unsigned char cmos_table[4096];
void test_for_entry_overlaps(void *entry_start, void *entry_end);
/* This array is used to isolate bits that are to be changed in a byte */ /* This array is used to isolate bits that are to be changed in a byte */
static unsigned char clip[9]={0,1,3,7,0x0f,0x1f,0x3f,0x7f,0xff}; static unsigned char clip[9]={0,1,3,7,0x0f,0x1f,0x3f,0x7f,0xff};
#ifdef WIN32 #ifdef WIN32
#include <fcntl.h> #include <fcntl.h>
char* mkstemp(char* name) { char *mkstemp(char* name)
{
static char val='0'; static char val='0';
char *c=name; char *c=name;
while (*c!='X') c++; while (*c!='X') c++;
@@ -35,13 +55,15 @@ char* mkstemp(char* name) {
#define UNLINK_IF_NECESSARY(x) #define UNLINK_IF_NECESSARY(x)
#endif #endif
/* This routine loops through the entried and tests if any of the fields overlap /**
input entry_start = the memory pointer to the start of the entries. * This routine loops through the entried and tests if any of the fields
entry_end = the byte past the entries. * overlap.
output none * If there is an overlap, the routine exits, otherwise it returns.
if there is an overlap, the routine exits, other wise it returns. *
* @param entry_start memory pointer to the start of the entries.
* @param entry_end memory pointer to the byte past the entries.
*/ */
void test_for_entry_overlaps(void *entry_start, void *entry_end) static void test_for_entry_overlaps(void *entry_start, void *entry_end)
{ {
int ptr; int ptr;
char *cptr; char *cptr;
@@ -63,7 +85,7 @@ void test_for_entry_overlaps(void *entry_start, void *entry_end)
for(cptr = entry_start; cptr < (char *)entry_end; cptr += ce->size) { for(cptr = entry_start; cptr < (char *)entry_end; cptr += ce->size) {
ce=(struct cmos_entries *)cptr; ce=(struct cmos_entries *)cptr;
/* test if entry goes past the end of the buffer */ /* test if entry goes past the end of the buffer */
if((ce->bit+ce->length)>buffer_bit_size) { if((int)(ce->bit+ce->length) > buffer_bit_size) {
printf("Error - Entry %s start bit + length must be less than %d\n", printf("Error - Entry %s start bit + length must be less than %d\n",
ce->name,buffer_bit_size); ce->name,buffer_bit_size);
exit(1); exit(1);
@@ -94,7 +116,7 @@ void test_for_entry_overlaps(void *entry_start, void *entry_end)
} }
} else { } else {
/* test if bits overlap byte boundaries */ /* test if bits overlap byte boundaries */
if(ce->length>(8-offset)) { if((int)ce->length > (8-offset)) {
printf("Error - Entry %s length overlaps a byte boundry\n", printf("Error - Entry %s length overlaps a byte boundry\n",
ce->name); ce->name);
exit(1); exit(1);
@@ -113,7 +135,7 @@ void test_for_entry_overlaps(void *entry_start, void *entry_end)
} }
/* This routine displays the usage options */ /* This routine displays the usage options */
void display_usage(char *name) static void display_usage(char *name)
{ {
printf("Usage: %s [--config filename]\n", name); printf("Usage: %s [--config filename]\n", name);
printf(" [--option filename]\n"); printf(" [--option filename]\n");
@@ -124,7 +146,6 @@ void display_usage(char *name)
exit(1); exit(1);
} }
static void skip_spaces(char *line, char **ptr) static void skip_spaces(char *line, char **ptr)
{ {
if (!isspace(**ptr)) { if (!isspace(**ptr)) {
@@ -136,6 +157,7 @@ static void skip_spaces(char *line, char **ptr)
} }
return; return;
} }
static unsigned long get_number(char *line, char **ptr, int base) static unsigned long get_number(char *line, char **ptr, int base)
{ {
unsigned long value; unsigned long value;
@@ -210,18 +232,21 @@ static int is_ident(char *str)
return result; return result;
} }
/**
/* This routine builds the cmos definition table from the cmos layout file * This routine builds the cmos definition table from the cmos layout file
input The input comes from the configuration file which contains two parts *
entries and enumerations. Each section is started with the key words * The input comes from the configuration file which contains two parts
entries and enumerations. Records then follow in their respective * entries and enumerations. Each section is started with the key words
formats. * entries and enumerations. Records then follow in their respective
output The output of this program is the cmos definitions table. It is stored * formats.
in the cmos_table array. If this module is called, and the global *
table_file has been implimented by the user, the table is also written * The output of this program is the cmos definitions table. It is stored
to the specified file. * in the cmos_table array. If this module is called, and the global
This program exits on and error. It returns a 1 on successful * table_file has been implimented by the user, the table is also written
completion * to the specified file.
*
* This program exits with a return code of 1 on error. It returns 0 on
* successful completion
*/ */
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
@@ -230,18 +255,17 @@ int main(int argc, char **argv)
char *option=0; char *option=0;
char *header=0; char *header=0;
FILE *fp; FILE *fp;
int tmpfile; int tempfile;
char tmpfilename[TMPFILE_LEN]; char tempfilename[TMPFILE_LEN];
struct cmos_option_table *ct; struct cmos_option_table *ct;
struct cmos_entries *ce; struct cmos_entries *ce;
struct cmos_enums *c_enums, *c_enums_start; struct cmos_enums *c_enums, *c_enums_start;
struct cmos_checksum *cs; struct cmos_checksum *cs, *new_cs;
char line[INPUT_LINE_MAX]; char line[INPUT_LINE_MAX];
unsigned char uc; unsigned char uc;
int entry_mode=0; int entry_mode=0;
int enum_mode=0; int enum_mode=0;
int checksum_mode=0; int checksum_mode=0;
long ptr;
int cnt; int cnt;
char *cptr; char *cptr;
void *entry_start, *entry_end; void *entry_start, *entry_end;
@@ -314,19 +338,23 @@ int main(int argc, char **argv)
for(;;){ /* this section loops through the entry records */ for(;;){ /* this section loops through the entry records */
if(fgets(line,INPUT_LINE_MAX,fp)==NULL) if(fgets(line,INPUT_LINE_MAX,fp)==NULL)
break; /* end if no more input */ break; /* end if no more input */
// FIXME mode should be a single enum.
if(!entry_mode) { /* skip input until the entries key word */ if(!entry_mode) { /* skip input until the entries key word */
if (strstr(line,"entries") != 0) { if (strstr(line,"entries") != 0) {
entry_mode=1; entry_mode=1;
enum_mode=0;
checksum_mode=0;
continue; continue;
} }
} } else { /* Test if we are done with entries and starting enumerations */
else{ /* Test if we are done with entries and starting enumerations */
if (strstr(line,"enumerations") != 0){ if (strstr(line,"enumerations") != 0){
entry_mode=0; entry_mode=0;
enum_mode=1; enum_mode=1;
checksum_mode=0;
break; break;
} }
if (strstr(line, "checksums") != 0) { if (strstr(line, "checksums") != 0) {
entry_mode=0;
enum_mode=0; enum_mode=0;
checksum_mode=1; checksum_mode=1;
break; break;
@@ -379,6 +407,7 @@ int main(int argc, char **argv)
test_for_entry_overlaps(entry_start, entry_end); test_for_entry_overlaps(entry_start, entry_end);
for(;enum_mode;){ /* loop to build the enumerations section */ for(;enum_mode;){ /* loop to build the enumerations section */
long ptr;
if(fgets(line,INPUT_LINE_MAX,fp)==NULL) if(fgets(line,INPUT_LINE_MAX,fp)==NULL)
break; /* go till end of input */ break; /* go till end of input */
@@ -420,8 +449,7 @@ int main(int argc, char **argv)
ct->size=ct->header_length+enum_length+entries_length; ct->size=ct->header_length+enum_length+entries_length;
/* Get the checksum records */ /* Get the checksum records */
cs=(struct cmos_checksum *)(cmos_table+(ct->size)); new_cs = (struct cmos_checksum *)(cmos_table+(ct->size));
cptr = (char*)cs;
for(;checksum_mode;) { /* This section finds the checksums */ for(;checksum_mode;) { /* This section finds the checksums */
char *ptr; char *ptr;
if(fgets(line, INPUT_LINE_MAX,fp)==NULL) if(fgets(line, INPUT_LINE_MAX,fp)==NULL)
@@ -432,6 +460,9 @@ int main(int argc, char **argv)
if (line[strspn(line, " ")]=='\n') continue; if (line[strspn(line, " ")]=='\n') continue;
if (memcmp(line, "checksum", 8) != 0) continue; if (memcmp(line, "checksum", 8) != 0) continue;
/* We actually found a new cmos checksum entry */
cs = new_cs;
/* get the information */ /* get the information */
ptr = line + 8; ptr = line + 8;
skip_spaces(line, &ptr); skip_spaces(line, &ptr);
@@ -476,10 +507,10 @@ int main(int argc, char **argv)
cs->tag = LB_TAG_OPTION_CHECKSUM; cs->tag = LB_TAG_OPTION_CHECKSUM;
cs->size = sizeof(*cs); cs->size = sizeof(*cs);
cs->type = CHECKSUM_PCBIOS; cs->type = CHECKSUM_PCBIOS;
cptr = (char *)cs; cptr = (char *)cs;
cptr += cs->size; cptr += cs->size;
cs = (struct cmos_checksum *)cptr; new_cs = (struct cmos_checksum *)cptr;
} }
ct->size += (cptr - (char *)(cmos_table + ct->size)); ct->size += (cptr - (char *)(cmos_table + ct->size));
fclose(fp); fclose(fp);
@@ -487,17 +518,17 @@ int main(int argc, char **argv)
/* See if we want to output a C source file */ /* See if we want to output a C source file */
if(option) { if(option) {
int err=0; int err=0;
strncpy(tmpfilename, dirname(strdup(option)), TMPFILE_LEN); strncpy(tempfilename, dirname(strdup(option)), TMPFILE_LEN);
strncat(tmpfilename, TMPFILE_TEMPLATE, TMPFILE_LEN); strncat(tempfilename, TMPFILE_TEMPLATE, TMPFILE_LEN);
tmpfile = mkstemp(tmpfilename); tempfile = mkstemp(tempfilename);
if(tmpfile == -1) { if(tempfile == -1) {
perror("Error - Could not create temporary file"); perror("Error - Could not create temporary file");
exit(1); exit(1);
} }
if((fp=fdopen(tmpfile,"w"))==NULL){ if((fp=fdopen(tempfile,"w"))==NULL){
perror("Error - Could not open temporary file"); perror("Error - Could not open temporary file");
unlink(tmpfilename); unlink(tempfilename);
exit(1); exit(1);
} }
@@ -505,11 +536,11 @@ int main(int argc, char **argv)
if(!fwrite("unsigned char option_table[] = {",1,32,fp)) { if(!fwrite("unsigned char option_table[] = {",1,32,fp)) {
perror("Error - Could not write image file"); perror("Error - Could not write image file");
fclose(fp); fclose(fp);
unlink(tmpfilename); unlink(tempfilename);
exit(1); exit(1);
} }
/* write the array values */ /* write the array values */
for(i=0;i<(ct->size-1);i++) { for(i=0; i<(int)(ct->size-1); i++) {
if(!(i%10) && !err) err=!fwrite("\n\t",1,2,fp); if(!(i%10) && !err) err=!fwrite("\n\t",1,2,fp);
sprintf(buf,"0x%02x,",cmos_table[i]); sprintf(buf,"0x%02x,",cmos_table[i]);
if(!err) err=!fwrite(buf,1,5,fp); if(!err) err=!fwrite(buf,1,5,fp);
@@ -520,16 +551,16 @@ int main(int argc, char **argv)
if(!fwrite("};\n",1,3,fp)) { if(!fwrite("};\n",1,3,fp)) {
perror("Error - Could not write image file"); perror("Error - Could not write image file");
fclose(fp); fclose(fp);
unlink(tmpfilename); unlink(tempfilename);
exit(1); exit(1);
} }
fclose(fp); fclose(fp);
UNLINK_IF_NECESSARY(option); UNLINK_IF_NECESSARY(option);
if (rename(tmpfilename, option)) { if (rename(tempfilename, option)) {
fprintf(stderr, "Error - Could not write %s: ", option); fprintf(stderr, "Error - Could not write %s: ", option);
perror(NULL); perror(NULL);
unlink(tmpfilename); unlink(tempfilename);
exit(1); exit(1);
} }
} }
@@ -539,18 +570,18 @@ int main(int argc, char **argv)
struct cmos_option_table *hdr; struct cmos_option_table *hdr;
struct lb_record *ptr, *end; struct lb_record *ptr, *end;
strncpy(tmpfilename, dirname(strdup(option)), TMPFILE_LEN); strncpy(tempfilename, dirname(strdup(option)), TMPFILE_LEN);
strncat(tmpfilename, TMPFILE_TEMPLATE, TMPFILE_LEN); strncat(tempfilename, TMPFILE_TEMPLATE, TMPFILE_LEN);
tmpfile = mkstemp(tmpfilename); tempfile = mkstemp(tempfilename);
if(tmpfile == -1) { if(tempfile == -1) {
perror("Error - Could not create temporary file"); perror("Error - Could not create temporary file");
exit(1); exit(1);
} }
fp = fdopen(tmpfile, "w"); fp = fdopen(tempfile, "w");
if (!fp) { if (!fp) {
perror("Error - Could not open temporary file"); perror("Error - Could not open temporary file");
unlink(tmpfilename); unlink(tempfilename);
exit(1); exit(1);
} }
@@ -569,7 +600,7 @@ int main(int argc, char **argv)
fprintf(stderr, "Invalid identifier: %s\n", fprintf(stderr, "Invalid identifier: %s\n",
ce->name); ce->name);
fclose(fp); fclose(fp);
unlink(tmpfilename); unlink(tempfilename);
exit(1); exit(1);
} }
fprintf(fp, "#define CMOS_VSTART_%s %d\n", fprintf(fp, "#define CMOS_VSTART_%s %d\n",
@@ -577,17 +608,21 @@ int main(int argc, char **argv)
fprintf(fp, "#define CMOS_VLEN_%s %d\n", fprintf(fp, "#define CMOS_VLEN_%s %d\n",
ce->name, ce->length); ce->name, ce->length);
} }
fprintf(fp, "\n#define LB_CKS_RANGE_START %d\n", cs->range_start / 8);
fprintf(fp, "#define LB_CKS_RANGE_END %d\n", cs->range_end / 8);
fprintf(fp, "#define LB_CKS_LOC %d\n", cs->location / 8);
fclose(fp); fclose(fp);
UNLINK_IF_NECESSARY(header); UNLINK_IF_NECESSARY(header);
if (rename(tmpfilename, header)) { if (rename(tempfilename, header)) {
fprintf(stderr, "Error - Could not write %s: ", header); fprintf(stderr, "Error - Could not write %s: ", header);
perror(NULL); perror(NULL);
unlink(tmpfilename); unlink(tempfilename);
exit(1); exit(1);
} }
} }
return(0);
return 0;
} }