Author: stepan
Date: 2008-01-18 17:17:44 +0100 (Fri, 18 Jan 2008)
New Revision: 3058

Added:
   trunk/util/flashrom/cbtable.c
   trunk/util/flashrom/coreboot_tables.h
   trunk/util/lxbios/coreboot_tables.h
Removed:
   trunk/util/flashrom/lbtable.c
   trunk/util/flashrom/linuxbios_tables.h
   trunk/util/lxbios/linuxbios_tables.h
Modified:
   trunk/util/flashrom/Makefile
   trunk/util/lxbios/Makefile
   trunk/util/lxbios/layout.h
   trunk/util/lxbios/layout_file.h
   trunk/util/lxbios/lbtable.c
   trunk/util/mptable/mptable.c
Log:
rename linuxbios_* files in utils repository.
Signed-off-by: Stefan Reinauer <[EMAIL PROTECTED]>
Acked-by: Stefan Reinauer <[EMAIL PROTECTED]>



Modified: trunk/util/flashrom/Makefile
===================================================================
--- trunk/util/flashrom/Makefile        2008-01-18 16:16:45 UTC (rev 3057)
+++ trunk/util/flashrom/Makefile        2008-01-18 16:17:44 UTC (rev 3058)
@@ -23,7 +23,7 @@
 OBJS = chipset_enable.o board_enable.o udelay.o jedec.o sst28sf040.o \
        am29f040b.o mx29f002.o sst39sf020.o m29f400bt.o w49f002u.o \
        82802ab.o msys_doc.o pm49fl004.o sst49lf040.o sst49lfxxxc.o \
-       sst_fwhub.o layout.o lbtable.o flashchips.o flashrom.o \
+       sst_fwhub.o layout.o cbtable.o flashchips.o flashrom.o \
        sharplhf00l04.o w29ee011.o spi.o
 
 all: pciutils dep $(PROGRAM)

Copied: trunk/util/flashrom/cbtable.c (from rev 3056, 
trunk/util/flashrom/lbtable.c)
===================================================================
--- trunk/util/flashrom/cbtable.c                               (rev 0)
+++ trunk/util/flashrom/cbtable.c       2008-01-18 16:17:44 UTC (rev 3058)
@@ -0,0 +1,218 @@
+/*
+ * This file is part of the flashrom project.
+ *
+ * Copyright (C) 2002 Steven James <[EMAIL PROTECTED]>
+ * Copyright (C) 2002 Linux Networx
+ * (Written by Eric Biederman <[EMAIL PROTECTED]> for Linux Networx)
+ * Copyright (C) 2006-2007 coresystems GmbH
+ * (Written by Stefan Reinauer <[EMAIL PROTECTED]> for 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 <stdint.h>
+#include <stdlib.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <string.h>
+#include <errno.h>
+#include <sys/mman.h>
+#include "flash.h"
+#include "coreboot_tables.h"
+
+char *lb_part = NULL, *lb_vendor = NULL;
+
+static unsigned long compute_checksum(void *addr, unsigned long length)
+{
+       uint8_t *ptr;
+       volatile union {
+               uint8_t byte[2];
+               uint16_t word;
+       } value;
+       unsigned long sum;
+       unsigned long i;
+
+       /* In the most straight forward way possible,
+        * compute an ip style checksum.
+        */
+       sum = 0;
+       ptr = addr;
+       for (i = 0; i < length; i++) {
+               unsigned long value;
+               value = ptr[i];
+               if (i & 1) {
+                       value <<= 8;
+               }
+               /* Add the new value */
+               sum += value;
+               /* Wrap around the carry */
+               if (sum > 0xFFFF) {
+                       sum = (sum + (sum >> 16)) & 0xFFFF;
+               }
+       }
+       value.byte[0] = sum & 0xff;
+       value.byte[1] = (sum >> 8) & 0xff;
+
+       return (~value.word) & 0xFFFF;
+}
+
+#define for_each_lbrec(head, rec) \
+       for(rec = (struct lb_record *)(((char *)head) + sizeof(*head)); \
+               (((char *)rec) < (((char *)head) + sizeof(*head) + 
head->table_bytes))  && \
+               (rec->size >= 1) && \
+               ((((char *)rec) + rec->size) <= (((char *)head) + sizeof(*head) 
+ head->table_bytes)); \
+               rec = (struct lb_record *)(((char *)rec) + rec->size))
+
+static int count_lb_records(struct lb_header *head)
+{
+       struct lb_record *rec;
+       int count;
+
+       count = 0;
+       for_each_lbrec(head, rec) {
+               count++;
+       }
+
+       return count;
+}
+
+static struct lb_header *find_lb_table(void *base, unsigned long start,
+                                      unsigned long end)
+{
+       unsigned long addr;
+
+       /* For now be stupid.... */
+       for (addr = start; addr < end; addr += 16) {
+               struct lb_header *head =
+                   (struct lb_header *)(((char *)base) + addr);
+               struct lb_record *recs =
+                   (struct lb_record *)(((char *)base) + addr + sizeof(*head));
+               if (memcmp(head->signature, "LBIO", 4) != 0)
+                       continue;
+               printf_debug("Found canidate at: %08lx-%08lx\n",
+                            addr, addr + head->table_bytes);
+               if (head->header_bytes != sizeof(*head)) {
+                       fprintf(stderr, "Header bytes of %d are incorrect.\n",
+                               head->header_bytes);
+                       continue;
+               }
+               if (count_lb_records(head) != head->table_entries) {
+                       fprintf(stderr, "Bad record count: %d.\n",
+                               head->table_entries);
+                       continue;
+               }
+               if (compute_checksum((uint8_t *) head, sizeof(*head)) != 0) {
+                       fprintf(stderr, "Bad header checksum.\n");
+                       continue;
+               }
+               if (compute_checksum(recs, head->table_bytes)
+                   != head->table_checksum) {
+                       fprintf(stderr, "Bad table checksum: %04x.\n",
+                               head->table_checksum);
+                       continue;
+               }
+               fprintf(stdout, "Found coreboot table at 0x%08lx.\n", addr);
+               return head;
+
+       };
+
+       return 0;
+}
+
+static void find_mainboard(struct lb_record *ptr, unsigned long addr)
+{
+       struct lb_mainboard *rec;
+       int max_size;
+       char vendor[256], part[256];
+
+       rec = (struct lb_mainboard *)ptr;
+       max_size = rec->size - sizeof(*rec);
+       printf("Vendor ID: %.*s, part ID: %.*s\n",
+              max_size - rec->vendor_idx,
+              rec->strings + rec->vendor_idx,
+              max_size - rec->part_number_idx,
+              rec->strings + rec->part_number_idx);
+       snprintf(vendor, 255, "%.*s", max_size - rec->vendor_idx,
+                rec->strings + rec->vendor_idx);
+       snprintf(part, 255, "%.*s", max_size - rec->part_number_idx,
+                rec->strings + rec->part_number_idx);
+
+       if (lb_part) {
+               printf("Overwritten by command line, vendor ID: %s, part ID: 
%s.\n", lb_vendor, lb_part);
+       } else {
+               lb_part = strdup(part);
+               lb_vendor = strdup(vendor);
+       }
+}
+
+static struct lb_record *next_record(struct lb_record *rec)
+{
+       return (struct lb_record *)(((char *)rec) + rec->size);
+}
+
+static void search_lb_records(struct lb_record *rec, struct lb_record *last,
+                             unsigned long addr)
+{
+       struct lb_record *next;
+       int count;
+       count = 0;
+
+       for (next = next_record(rec); (rec < last) && (next <= last);
+            rec = next, addr += rec->size) {
+               next = next_record(rec);
+               count++;
+               if (rec->tag == LB_TAG_MAINBOARD) {
+                       find_mainboard(rec, addr);
+                       break;
+               }
+       }
+}
+
+int coreboot_init(void)
+{
+       uint8_t *low_1MB;
+       struct lb_header *lb_table;
+       struct lb_record *rec, *last;
+
+       low_1MB = mmap(0, 1024 * 1024, PROT_READ, MAP_SHARED, fd_mem,
+                      0x00000000);
+       if (low_1MB == MAP_FAILED) {
+               perror("Can't mmap memory using " MEM_DEV);
+               exit(-2);
+       }
+       lb_table = 0;
+       if (!lb_table)
+               lb_table = find_lb_table(low_1MB, 0x00000, 0x1000);
+       if (!lb_table)
+               lb_table = find_lb_table(low_1MB, 0xf0000, 1024 * 1024);
+       if (lb_table) {
+               unsigned long addr;
+               addr = ((char *)lb_table) - ((char *)low_1MB);
+               printf_debug("Coreboot table found at %p.\n", lb_table);
+               rec = (struct lb_record *)(((char *)lb_table) + 
lb_table->header_bytes);
+               last = (struct lb_record *)(((char *)rec) + 
lb_table->table_bytes);
+               printf_debug("Coreboot header(%d) checksum: %04x table(%d) 
checksum: %04x entries: %d\n",
+                    lb_table->header_bytes, lb_table->header_checksum,
+                    lb_table->table_bytes, lb_table->table_checksum,
+                    lb_table->table_entries);
+               search_lb_records(rec, last, addr + lb_table->header_bytes);
+       } else {
+               printf("No coreboot table found.\n");
+               return -1;
+       }
+
+       return 0;
+}

Copied: trunk/util/flashrom/coreboot_tables.h (from rev 3056, 
trunk/util/flashrom/linuxbios_tables.h)
===================================================================
--- trunk/util/flashrom/coreboot_tables.h                               (rev 0)
+++ trunk/util/flashrom/coreboot_tables.h       2008-01-18 16:17:44 UTC (rev 
3058)
@@ -0,0 +1,210 @@
+#ifndef COREBOOT_TABLES_H
+#define COREBOOT_TABLES_H
+
+#include <stdint.h>
+
+/* The coreboot table information is for conveying information
+ * from the firmware to the loaded OS image.  Primarily this
+ * is expected to be information that cannot be discovered by
+ * other means, such as quering the hardware directly.
+ *
+ * All of the information should be Position Independent Data.  
+ * That is it should be safe to relocated any of the information
+ * without it's meaning/correctnes changing.   For table that
+ * can reasonably be used on multiple architectures the data
+ * size should be fixed.  This should ease the transition between
+ * 32 bit and 64 bit architectures etc.
+ *
+ * The completeness test for the information in this table is:
+ * - Can all of the hardware be detected?
+ * - Are the per motherboard constants available?
+ * - Is there enough to allow a kernel to run that was written before
+ *   a particular motherboard is constructed? (Assuming the kernel
+ *   has drivers for all of the hardware but it does not have
+ *   assumptions on how the hardware is connected together).
+ *
+ * With this test it should be straight forward to determine if a
+ * table entry is required or not.  This should remove much of the
+ * long term compatibility burden as table entries which are
+ * irrelevant or have been replaced by better alternatives may be
+ * dropped.  Of course it is polite and expidite to include extra
+ * table entries and be backwards compatible, but it is not required.
+ */
+
+/* Since coreboot is usually compiled 32bit, gcc will align 64bit 
+ * types to 32bit boundaries. If the coreboot table is dumped on a 
+ * 64bit system, a uint64_t would be aligned to 64bit boundaries, 
+ * breaking the table format.
+ *
+ * lb_uint64 will keep 64bit coreboot table values aligned to 32bit
+ * to ensure compatibility. They can be accessed with the two functions
+ * below: unpack_lb64() and pack_lb64()
+ *
+ * See also: util/lbtdump/lbtdump.c
+ */
+
+struct lb_uint64 {
+       uint32_t lo;
+       uint32_t hi;
+};
+
+static inline uint64_t unpack_lb64(struct lb_uint64 value)
+{
+       uint64_t result;
+       result = value.hi;
+       result = (result << 32) + value.lo;
+       return result;
+}
+
+static inline struct lb_uint64 pack_lb64(uint64_t value)
+{
+       struct lb_uint64 result;
+       result.lo = (value >> 0) & 0xffffffff;
+       result.hi = (value >> 32) & 0xffffffff;
+       return result;
+}
+
+struct lb_header {
+       uint8_t signature[4];   /* LBIO */
+       uint32_t header_bytes;
+       uint32_t header_checksum;
+       uint32_t table_bytes;
+       uint32_t table_checksum;
+       uint32_t table_entries;
+};
+
+/* Every entry in the boot enviroment list will correspond to a boot
+ * info record.  Encoding both type and size.  The type is obviously
+ * so you can tell what it is.  The size allows you to skip that
+ * boot enviroment record if you don't know what it easy.  This allows
+ * forward compatibility with records not yet defined.
+ */
+struct lb_record {
+       uint32_t tag;           /* tag ID */
+       uint32_t size;          /* size of record (in bytes) */
+};
+
+#define LB_TAG_UNUSED  0x0000
+
+#define LB_TAG_MEMORY  0x0001
+
+struct lb_memory_range {
+       struct lb_uint64 start;
+       struct lb_uint64 size;
+       uint32_t type;
+#define LB_MEM_RAM       1     /* Memory anyone can use */
+#define LB_MEM_RESERVED  2     /* Don't use this memory region */
+#define LB_MEM_TABLE     16    /* Ram configuration tables are kept in */
+};
+
+struct lb_memory {
+       uint32_t tag;
+       uint32_t size;
+       struct lb_memory_range map[0];
+};
+
+#define LB_TAG_HWRPB   0x0002
+struct lb_hwrpb {
+       uint32_t tag;
+       uint32_t size;
+       uint64_t hwrpb;
+};
+
+#define LB_TAG_MAINBOARD       0x0003
+struct lb_mainboard {
+       uint32_t tag;
+       uint32_t size;
+       uint8_t vendor_idx;
+       uint8_t part_number_idx;
+       uint8_t strings[0];
+};
+
+#define LB_TAG_VERSION         0x0004
+#define LB_TAG_EXTRA_VERSION   0x0005
+#define LB_TAG_BUILD           0x0006
+#define LB_TAG_COMPILE_TIME    0x0007
+#define LB_TAG_COMPILE_BY      0x0008
+#define LB_TAG_COMPILE_HOST    0x0009
+#define LB_TAG_COMPILE_DOMAIN  0x000a
+#define LB_TAG_COMPILER                0x000b
+#define LB_TAG_LINKER          0x000c
+#define LB_TAG_ASSEMBLER       0x000d
+struct lb_string {
+       uint32_t tag;
+       uint32_t size;
+       uint8_t string[0];
+};
+
+/* The following structures are for the cmos definitions table */
+#define LB_TAG_CMOS_OPTION_TABLE 200
+/* cmos header record */
+struct cmos_option_table {
+       uint32_t tag;           /* CMOS definitions table type */
+       uint32_t size;          /* size of the entire table */
+       uint32_t header_length; /* length of header */
+};
+
+/* cmos entry record
+        This record is variable length.  The name field may be
+        shorter than CMOS_MAX_NAME_LENGTH. The entry may start
+        anywhere in the byte, but can not span bytes unless it
+        starts at the beginning of the byte and the length is
+        fills complete bytes.
+*/
+#define LB_TAG_OPTION 201
+struct cmos_entries {
+       uint32_t tag;           /* entry type */
+       uint32_t size;          /* length of this record */
+       uint32_t bit;           /* starting bit from start of image */
+       uint32_t length;        /* length of field in bits */
+       uint32_t config;        /* e=enumeration, h=hex, r=reserved */
+       uint32_t config_id;     /* a number linking to an enumeration record */
+#define CMOS_MAX_NAME_LENGTH 32
+       uint8_t name[CMOS_MAX_NAME_LENGTH];     /* name of entry in ascii, 
+                                                  variable length int aligned 
*/
+};
+
+/* cmos enumerations record
+        This record is variable length.  The text field may be
+        shorter than CMOS_MAX_TEXT_LENGTH.
+*/
+#define LB_TAG_OPTION_ENUM 202
+struct cmos_enums {
+       uint32_t tag;           /* enumeration type */
+       uint32_t size;          /* length of this record */
+       uint32_t config_id;     /* a number identifying the config id */
+       uint32_t value;         /* the value associated with the text */
+#define CMOS_MAX_TEXT_LENGTH 32
+       uint8_t text[CMOS_MAX_TEXT_LENGTH];     /* enum description in ascii, 
+                                                  variable length int aligned 
*/
+};
+
+/* cmos defaults record
+        This record contains default settings for the cmos ram.
+*/
+#define LB_TAG_OPTION_DEFAULTS 203
+struct cmos_defaults {
+       uint32_t tag;           /* default type */
+       uint32_t size;          /* length of this record */
+       uint32_t name_length;   /* length of the following name field */
+       uint8_t name[CMOS_MAX_NAME_LENGTH];     /* name identifying the default 
*/
+#define CMOS_IMAGE_BUFFER_SIZE 128
+       uint8_t default_set[CMOS_IMAGE_BUFFER_SIZE];    /* default settings */
+};
+
+#define LB_TAG_OPTION_CHECKSUM 204
+struct cmos_checksum {
+       uint32_t tag;
+       uint32_t size;
+       /* In practice everything is byte aligned, but things are measured
+        * in bits to be consistent.
+        */
+       uint32_t range_start;   /* First bit that is checksummed (byte aligned) 
*/
+       uint32_t range_end;     /* Last bit that is checksummed (byte aligned) 
*/
+       uint32_t location;      /* First bit of the checksum (byte aligned) */
+       uint32_t type;          /* Checksum algorithm that is used */
+#define CHECKSUM_NONE  0
+#define CHECKSUM_PCBIOS        1
+};
+
+#endif                         /* COREBOOT_TABLES_H */

Deleted: trunk/util/flashrom/lbtable.c
===================================================================
--- trunk/util/flashrom/lbtable.c       2008-01-18 16:16:45 UTC (rev 3057)
+++ trunk/util/flashrom/lbtable.c       2008-01-18 16:17:44 UTC (rev 3058)
@@ -1,218 +0,0 @@
-/*
- * This file is part of the flashrom project.
- *
- * Copyright (C) 2002 Steven James <[EMAIL PROTECTED]>
- * Copyright (C) 2002 Linux Networx
- * (Written by Eric Biederman <[EMAIL PROTECTED]> for Linux Networx)
- * Copyright (C) 2006-2007 coresystems GmbH
- * (Written by Stefan Reinauer <[EMAIL PROTECTED]> for 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 <stdint.h>
-#include <stdlib.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <string.h>
-#include <errno.h>
-#include <sys/mman.h>
-#include "flash.h"
-#include "linuxbios_tables.h"
-
-char *lb_part = NULL, *lb_vendor = NULL;
-
-static unsigned long compute_checksum(void *addr, unsigned long length)
-{
-       uint8_t *ptr;
-       volatile union {
-               uint8_t byte[2];
-               uint16_t word;
-       } value;
-       unsigned long sum;
-       unsigned long i;
-
-       /* In the most straight forward way possible,
-        * compute an ip style checksum.
-        */
-       sum = 0;
-       ptr = addr;
-       for (i = 0; i < length; i++) {
-               unsigned long value;
-               value = ptr[i];
-               if (i & 1) {
-                       value <<= 8;
-               }
-               /* Add the new value */
-               sum += value;
-               /* Wrap around the carry */
-               if (sum > 0xFFFF) {
-                       sum = (sum + (sum >> 16)) & 0xFFFF;
-               }
-       }
-       value.byte[0] = sum & 0xff;
-       value.byte[1] = (sum >> 8) & 0xff;
-
-       return (~value.word) & 0xFFFF;
-}
-
-#define for_each_lbrec(head, rec) \
-       for(rec = (struct lb_record *)(((char *)head) + sizeof(*head)); \
-               (((char *)rec) < (((char *)head) + sizeof(*head) + 
head->table_bytes))  && \
-               (rec->size >= 1) && \
-               ((((char *)rec) + rec->size) <= (((char *)head) + sizeof(*head) 
+ head->table_bytes)); \
-               rec = (struct lb_record *)(((char *)rec) + rec->size))
-
-static int count_lb_records(struct lb_header *head)
-{
-       struct lb_record *rec;
-       int count;
-
-       count = 0;
-       for_each_lbrec(head, rec) {
-               count++;
-       }
-
-       return count;
-}
-
-static struct lb_header *find_lb_table(void *base, unsigned long start,
-                                      unsigned long end)
-{
-       unsigned long addr;
-
-       /* For now be stupid.... */
-       for (addr = start; addr < end; addr += 16) {
-               struct lb_header *head =
-                   (struct lb_header *)(((char *)base) + addr);
-               struct lb_record *recs =
-                   (struct lb_record *)(((char *)base) + addr + sizeof(*head));
-               if (memcmp(head->signature, "LBIO", 4) != 0)
-                       continue;
-               printf_debug("Found canidate at: %08lx-%08lx\n",
-                            addr, addr + head->table_bytes);
-               if (head->header_bytes != sizeof(*head)) {
-                       fprintf(stderr, "Header bytes of %d are incorrect.\n",
-                               head->header_bytes);
-                       continue;
-               }
-               if (count_lb_records(head) != head->table_entries) {
-                       fprintf(stderr, "Bad record count: %d.\n",
-                               head->table_entries);
-                       continue;
-               }
-               if (compute_checksum((uint8_t *) head, sizeof(*head)) != 0) {
-                       fprintf(stderr, "Bad header checksum.\n");
-                       continue;
-               }
-               if (compute_checksum(recs, head->table_bytes)
-                   != head->table_checksum) {
-                       fprintf(stderr, "Bad table checksum: %04x.\n",
-                               head->table_checksum);
-                       continue;
-               }
-               fprintf(stdout, "Found coreboot table at 0x%08lx.\n", addr);
-               return head;
-
-       };
-
-       return 0;
-}
-
-static void find_mainboard(struct lb_record *ptr, unsigned long addr)
-{
-       struct lb_mainboard *rec;
-       int max_size;
-       char vendor[256], part[256];
-
-       rec = (struct lb_mainboard *)ptr;
-       max_size = rec->size - sizeof(*rec);
-       printf("Vendor ID: %.*s, part ID: %.*s\n",
-              max_size - rec->vendor_idx,
-              rec->strings + rec->vendor_idx,
-              max_size - rec->part_number_idx,
-              rec->strings + rec->part_number_idx);
-       snprintf(vendor, 255, "%.*s", max_size - rec->vendor_idx,
-                rec->strings + rec->vendor_idx);
-       snprintf(part, 255, "%.*s", max_size - rec->part_number_idx,
-                rec->strings + rec->part_number_idx);
-
-       if (lb_part) {
-               printf("Overwritten by command line, vendor ID: %s, part ID: 
%s.\n", lb_vendor, lb_part);
-       } else {
-               lb_part = strdup(part);
-               lb_vendor = strdup(vendor);
-       }
-}
-
-static struct lb_record *next_record(struct lb_record *rec)
-{
-       return (struct lb_record *)(((char *)rec) + rec->size);
-}
-
-static void search_lb_records(struct lb_record *rec, struct lb_record *last,
-                             unsigned long addr)
-{
-       struct lb_record *next;
-       int count;
-       count = 0;
-
-       for (next = next_record(rec); (rec < last) && (next <= last);
-            rec = next, addr += rec->size) {
-               next = next_record(rec);
-               count++;
-               if (rec->tag == LB_TAG_MAINBOARD) {
-                       find_mainboard(rec, addr);
-                       break;
-               }
-       }
-}
-
-int coreboot_init(void)
-{
-       uint8_t *low_1MB;
-       struct lb_header *lb_table;
-       struct lb_record *rec, *last;
-
-       low_1MB = mmap(0, 1024 * 1024, PROT_READ, MAP_SHARED, fd_mem,
-                      0x00000000);
-       if (low_1MB == MAP_FAILED) {
-               perror("Can't mmap memory using " MEM_DEV);
-               exit(-2);
-       }
-       lb_table = 0;
-       if (!lb_table)
-               lb_table = find_lb_table(low_1MB, 0x00000, 0x1000);
-       if (!lb_table)
-               lb_table = find_lb_table(low_1MB, 0xf0000, 1024 * 1024);
-       if (lb_table) {
-               unsigned long addr;
-               addr = ((char *)lb_table) - ((char *)low_1MB);
-               printf_debug("Coreboot table found at %p.\n", lb_table);
-               rec = (struct lb_record *)(((char *)lb_table) + 
lb_table->header_bytes);
-               last = (struct lb_record *)(((char *)rec) + 
lb_table->table_bytes);
-               printf_debug("Coreboot header(%d) checksum: %04x table(%d) 
checksum: %04x entries: %d\n",
-                    lb_table->header_bytes, lb_table->header_checksum,
-                    lb_table->table_bytes, lb_table->table_checksum,
-                    lb_table->table_entries);
-               search_lb_records(rec, last, addr + lb_table->header_bytes);
-       } else {
-               printf("No coreboot table found.\n");
-               return -1;
-       }
-
-       return 0;
-}

Deleted: trunk/util/flashrom/linuxbios_tables.h
===================================================================
--- trunk/util/flashrom/linuxbios_tables.h      2008-01-18 16:16:45 UTC (rev 
3057)
+++ trunk/util/flashrom/linuxbios_tables.h      2008-01-18 16:17:44 UTC (rev 
3058)
@@ -1,210 +0,0 @@
-#ifndef COREBOOT_TABLES_H
-#define COREBOOT_TABLES_H
-
-#include <stdint.h>
-
-/* The coreboot table information is for conveying information
- * from the firmware to the loaded OS image.  Primarily this
- * is expected to be information that cannot be discovered by
- * other means, such as quering the hardware directly.
- *
- * All of the information should be Position Independent Data.  
- * That is it should be safe to relocated any of the information
- * without it's meaning/correctnes changing.   For table that
- * can reasonably be used on multiple architectures the data
- * size should be fixed.  This should ease the transition between
- * 32 bit and 64 bit architectures etc.
- *
- * The completeness test for the information in this table is:
- * - Can all of the hardware be detected?
- * - Are the per motherboard constants available?
- * - Is there enough to allow a kernel to run that was written before
- *   a particular motherboard is constructed? (Assuming the kernel
- *   has drivers for all of the hardware but it does not have
- *   assumptions on how the hardware is connected together).
- *
- * With this test it should be straight forward to determine if a
- * table entry is required or not.  This should remove much of the
- * long term compatibility burden as table entries which are
- * irrelevant or have been replaced by better alternatives may be
- * dropped.  Of course it is polite and expidite to include extra
- * table entries and be backwards compatible, but it is not required.
- */
-
-/* Since coreboot is usually compiled 32bit, gcc will align 64bit 
- * types to 32bit boundaries. If the coreboot table is dumped on a 
- * 64bit system, a uint64_t would be aligned to 64bit boundaries, 
- * breaking the table format.
- *
- * lb_uint64 will keep 64bit coreboot table values aligned to 32bit
- * to ensure compatibility. They can be accessed with the two functions
- * below: unpack_lb64() and pack_lb64()
- *
- * See also: util/lbtdump/lbtdump.c
- */
-
-struct lb_uint64 {
-       uint32_t lo;
-       uint32_t hi;
-};
-
-static inline uint64_t unpack_lb64(struct lb_uint64 value)
-{
-       uint64_t result;
-       result = value.hi;
-       result = (result << 32) + value.lo;
-       return result;
-}
-
-static inline struct lb_uint64 pack_lb64(uint64_t value)
-{
-       struct lb_uint64 result;
-       result.lo = (value >> 0) & 0xffffffff;
-       result.hi = (value >> 32) & 0xffffffff;
-       return result;
-}
-
-struct lb_header {
-       uint8_t signature[4];   /* LBIO */
-       uint32_t header_bytes;
-       uint32_t header_checksum;
-       uint32_t table_bytes;
-       uint32_t table_checksum;
-       uint32_t table_entries;
-};
-
-/* Every entry in the boot enviroment list will correspond to a boot
- * info record.  Encoding both type and size.  The type is obviously
- * so you can tell what it is.  The size allows you to skip that
- * boot enviroment record if you don't know what it easy.  This allows
- * forward compatibility with records not yet defined.
- */
-struct lb_record {
-       uint32_t tag;           /* tag ID */
-       uint32_t size;          /* size of record (in bytes) */
-};
-
-#define LB_TAG_UNUSED  0x0000
-
-#define LB_TAG_MEMORY  0x0001
-
-struct lb_memory_range {
-       struct lb_uint64 start;
-       struct lb_uint64 size;
-       uint32_t type;
-#define LB_MEM_RAM       1     /* Memory anyone can use */
-#define LB_MEM_RESERVED  2     /* Don't use this memory region */
-#define LB_MEM_TABLE     16    /* Ram configuration tables are kept in */
-};
-
-struct lb_memory {
-       uint32_t tag;
-       uint32_t size;
-       struct lb_memory_range map[0];
-};
-
-#define LB_TAG_HWRPB   0x0002
-struct lb_hwrpb {
-       uint32_t tag;
-       uint32_t size;
-       uint64_t hwrpb;
-};
-
-#define LB_TAG_MAINBOARD       0x0003
-struct lb_mainboard {
-       uint32_t tag;
-       uint32_t size;
-       uint8_t vendor_idx;
-       uint8_t part_number_idx;
-       uint8_t strings[0];
-};
-
-#define LB_TAG_VERSION         0x0004
-#define LB_TAG_EXTRA_VERSION   0x0005
-#define LB_TAG_BUILD           0x0006
-#define LB_TAG_COMPILE_TIME    0x0007
-#define LB_TAG_COMPILE_BY      0x0008
-#define LB_TAG_COMPILE_HOST    0x0009
-#define LB_TAG_COMPILE_DOMAIN  0x000a
-#define LB_TAG_COMPILER                0x000b
-#define LB_TAG_LINKER          0x000c
-#define LB_TAG_ASSEMBLER       0x000d
-struct lb_string {
-       uint32_t tag;
-       uint32_t size;
-       uint8_t string[0];
-};
-
-/* The following structures are for the cmos definitions table */
-#define LB_TAG_CMOS_OPTION_TABLE 200
-/* cmos header record */
-struct cmos_option_table {
-       uint32_t tag;           /* CMOS definitions table type */
-       uint32_t size;          /* size of the entire table */
-       uint32_t header_length; /* length of header */
-};
-
-/* cmos entry record
-        This record is variable length.  The name field may be
-        shorter than CMOS_MAX_NAME_LENGTH. The entry may start
-        anywhere in the byte, but can not span bytes unless it
-        starts at the beginning of the byte and the length is
-        fills complete bytes.
-*/
-#define LB_TAG_OPTION 201
-struct cmos_entries {
-       uint32_t tag;           /* entry type */
-       uint32_t size;          /* length of this record */
-       uint32_t bit;           /* starting bit from start of image */
-       uint32_t length;        /* length of field in bits */
-       uint32_t config;        /* e=enumeration, h=hex, r=reserved */
-       uint32_t config_id;     /* a number linking to an enumeration record */
-#define CMOS_MAX_NAME_LENGTH 32
-       uint8_t name[CMOS_MAX_NAME_LENGTH];     /* name of entry in ascii, 
-                                                  variable length int aligned 
*/
-};
-
-/* cmos enumerations record
-        This record is variable length.  The text field may be
-        shorter than CMOS_MAX_TEXT_LENGTH.
-*/
-#define LB_TAG_OPTION_ENUM 202
-struct cmos_enums {
-       uint32_t tag;           /* enumeration type */
-       uint32_t size;          /* length of this record */
-       uint32_t config_id;     /* a number identifying the config id */
-       uint32_t value;         /* the value associated with the text */
-#define CMOS_MAX_TEXT_LENGTH 32
-       uint8_t text[CMOS_MAX_TEXT_LENGTH];     /* enum description in ascii, 
-                                                  variable length int aligned 
*/
-};
-
-/* cmos defaults record
-        This record contains default settings for the cmos ram.
-*/
-#define LB_TAG_OPTION_DEFAULTS 203
-struct cmos_defaults {
-       uint32_t tag;           /* default type */
-       uint32_t size;          /* length of this record */
-       uint32_t name_length;   /* length of the following name field */
-       uint8_t name[CMOS_MAX_NAME_LENGTH];     /* name identifying the default 
*/
-#define CMOS_IMAGE_BUFFER_SIZE 128
-       uint8_t default_set[CMOS_IMAGE_BUFFER_SIZE];    /* default settings */
-};
-
-#define LB_TAG_OPTION_CHECKSUM 204
-struct cmos_checksum {
-       uint32_t tag;
-       uint32_t size;
-       /* In practice everything is byte aligned, but things are measured
-        * in bits to be consistent.
-        */
-       uint32_t range_start;   /* First bit that is checksummed (byte aligned) 
*/
-       uint32_t range_end;     /* Last bit that is checksummed (byte aligned) 
*/
-       uint32_t location;      /* First bit of the checksum (byte aligned) */
-       uint32_t type;          /* Checksum algorithm that is used */
-#define CHECKSUM_NONE  0
-#define CHECKSUM_PCBIOS        1
-};
-
-#endif                         /* COREBOOT_TABLES_H */

Modified: trunk/util/lxbios/Makefile
===================================================================
--- trunk/util/lxbios/Makefile  2008-01-18 16:16:45 UTC (rev 3057)
+++ trunk/util/lxbios/Makefile  2008-01-18 16:17:44 UTC (rev 3058)
@@ -7,7 +7,7 @@
 OBJS = common.o compute_ip_checksum.o hexdump.o cmos_lowlevel.o \
        reg_expr.o layout.o layout_file.o lbtable.o cmos_ops.o input_file.o \
        opts.o lxbios.o
-HEADERS = common.h ip_checksum.h linuxbios_tables.h hexdump.h \
+HEADERS = common.h ip_checksum.h coreboot_tables.h hexdump.h \
           cmos_lowlevel.h reg_expr.h layout.h layout_file.h lbtable.h \
           cmos_ops.h input_file.h opts.h
 

Copied: trunk/util/lxbios/coreboot_tables.h (from rev 3056, 
trunk/util/lxbios/linuxbios_tables.h)
===================================================================
--- trunk/util/lxbios/coreboot_tables.h                         (rev 0)
+++ trunk/util/lxbios/coreboot_tables.h 2008-01-18 16:17:44 UTC (rev 3058)
@@ -0,0 +1,225 @@
+/*****************************************************************************\
+ * coreboot_tables.h
+\*****************************************************************************/
+
+#ifndef COREBOOT_TABLES_H
+#define COREBOOT_TABLES_H
+
+#include <stdint.h>
+
+/* Note: The contents of this file were borrowed from the coreboot source
+ *       code which may be obtained from http://www.coreboot.org/.
+ *       Specifically, this code was obtained from LinuxBIOS version 1.1.8.
+ */
+
+/* The coreboot table information is for conveying information
+ * from the firmware to the loaded OS image.  Primarily this
+ * is expected to be information that cannot be discovered by
+ * other means, such as quering the hardware directly.
+ *
+ * All of the information should be Position Independent Data.  
+ * That is it should be safe to relocated any of the information
+ * without it's meaning/correctnes changing.   For table that
+ * can reasonably be used on multiple architectures the data
+ * size should be fixed.  This should ease the transition between
+ * 32 bit and 64 bit architectures etc.
+ *
+ * The completeness test for the information in this table is:
+ * - Can all of the hardware be detected?
+ * - Are the per motherboard constants available?
+ * - Is there enough to allow a kernel to run that was written before
+ *   a particular motherboard is constructed? (Assuming the kernel
+ *   has drivers for all of the hardware but it does not have
+ *   assumptions on how the hardware is connected together).
+ *
+ * With this test it should be straight forward to determine if a
+ * table entry is required or not.  This should remove much of the
+ * long term compatibility burden as table entries which are
+ * irrelevant or have been replaced by better alternatives may be
+ * dropped.  Of course it is polite and expidite to include extra
+ * table entries and be backwards compatible, but it is not required.
+ */
+
+/* Since coreboot is usually compiled 32bit, gcc will align 64bit 
+ * types to 32bit boundaries. If the coreboot table is dumped on a 
+ * 64bit system, a uint64_t would be aligned to 64bit boundaries, 
+ * breaking the table format.
+ *
+ * lb_uint64 will keep 64bit coreboot table values aligned to 32bit
+ * to ensure compatibility. They can be accessed with the two functions
+ * below: unpack_lb64() and pack_lb64()
+ *
+ * See also: util/lbtdump/lbtdump.c
+ */
+
+struct lb_uint64 {
+       uint32_t lo;
+       uint32_t hi;
+};
+
+static inline uint64_t unpack_lb64(struct lb_uint64 value)
+{
+        uint64_t result;
+        result = value.hi;
+        result = (result << 32) + value.lo;
+        return result;
+}
+
+static inline struct lb_uint64 pack_lb64(uint64_t value)
+{
+        struct lb_uint64 result;
+        result.lo = (value >> 0) & 0xffffffff;
+        result.hi = (value >> 32) & 0xffffffff;
+        return result;
+}
+
+
+
+struct lb_header
+{
+        uint8_t  signature[4]; /* LBIO */
+        uint32_t header_bytes;
+        uint32_t header_checksum;
+        uint32_t table_bytes;
+        uint32_t table_checksum;
+        uint32_t table_entries;
+};
+
+/* Every entry in the boot enviroment list will correspond to a boot
+ * info record.  Encoding both type and size.  The type is obviously
+ * so you can tell what it is.  The size allows you to skip that
+ * boot enviroment record if you don't know what it easy.  This allows
+ * forward compatibility with records not yet defined.
+ */
+struct lb_record {
+        uint32_t tag;                /* tag ID */
+        uint32_t size;                /* size of record (in bytes) */
+};
+
+#define LB_TAG_UNUSED        0x0000
+
+#define LB_TAG_MEMORY        0x0001
+
+struct lb_memory_range {
+       struct lb_uint64 start;
+       struct lb_uint64 size;
+        uint32_t type;
+#define LB_MEM_RAM       1        /* Memory anyone can use */
+#define LB_MEM_RESERVED  2        /* Don't use this memory region */
+#define LB_MEM_TABLE     16        /* Ram configuration tables are kept in */
+};
+
+struct lb_memory {
+        uint32_t tag;
+        uint32_t size;
+        struct lb_memory_range map[0];
+};
+
+#define LB_TAG_HWRPB        0x0002
+struct lb_hwrpb {
+        uint32_t tag;
+        uint32_t size;
+        uint64_t hwrpb;
+};
+
+#define LB_TAG_MAINBOARD        0x0003
+struct lb_mainboard {
+        uint32_t tag;
+        uint32_t size;
+        uint8_t  vendor_idx;
+        uint8_t  part_number_idx;
+        uint8_t  strings[0];
+};
+
+#define LB_TAG_VERSION                0x0004
+#define LB_TAG_EXTRA_VERSION        0x0005
+#define LB_TAG_BUILD                0x0006
+#define LB_TAG_COMPILE_TIME        0x0007
+#define LB_TAG_COMPILE_BY        0x0008
+#define LB_TAG_COMPILE_HOST        0x0009
+#define LB_TAG_COMPILE_DOMAIN        0x000a
+#define LB_TAG_COMPILER                0x000b
+#define LB_TAG_LINKER                0x000c
+#define LB_TAG_ASSEMBLER        0x000d
+struct lb_string {
+        uint32_t tag;
+        uint32_t size;
+        uint8_t  string[0];
+};
+
+/* The following structures are for the cmos definitions table */
+#define LB_TAG_CMOS_OPTION_TABLE 200
+/* cmos header record */
+struct cmos_option_table {
+        uint32_t tag;               /* CMOS definitions table type */
+        uint32_t size;               /* size of the entire table */
+        uint32_t header_length;      /* length of header */
+};
+
+/* cmos entry record
+        This record is variable length.  The name field may be
+        shorter than CMOS_MAX_NAME_LENGTH. The entry may start
+        anywhere in the byte, but can not span bytes unless it
+        starts at the beginning of the byte and the length is
+        fills complete bytes.
+*/
+#define LB_TAG_OPTION 201
+struct cmos_entries {
+        uint32_t tag;                /* entry type */
+        uint32_t size;               /* length of this record */
+        uint32_t bit;                /* starting bit from start of image */
+        uint32_t length;             /* length of field in bits */
+        uint32_t config;             /* e=enumeration, h=hex, r=reserved */
+        uint32_t config_id;          /* a number linking to an enumeration 
record */
+#define CMOS_MAX_NAME_LENGTH 32
+        uint8_t name[CMOS_MAX_NAME_LENGTH]; /* name of entry in ascii, 
+                                               variable length int aligned */
+};
+
+
+/* cmos enumerations record
+        This record is variable length.  The text field may be
+        shorter than CMOS_MAX_TEXT_LENGTH.
+*/
+#define LB_TAG_OPTION_ENUM 202
+struct cmos_enums {
+        uint32_t tag;                     /* enumeration type */
+        uint32_t size;                      /* length of this record */
+        uint32_t config_id;          /* a number identifying the config id */
+        uint32_t value;              /* the value associated with the text */
+#define CMOS_MAX_TEXT_LENGTH 32
+        uint8_t text[CMOS_MAX_TEXT_LENGTH]; /* enum description in ascii, 
+                                                variable length int aligned */
+};
+
+/* cmos defaults record
+        This record contains default settings for the cmos ram.
+*/
+#define LB_TAG_OPTION_DEFAULTS 203
+struct cmos_defaults {
+        uint32_t tag;                /* default type */
+        uint32_t size;               /* length of this record */
+        uint32_t name_length;        /* length of the following name field */
+        uint8_t name[CMOS_MAX_NAME_LENGTH]; /* name identifying the default */
+#define CMOS_IMAGE_BUFFER_SIZE 128
+        uint8_t default_set[CMOS_IMAGE_BUFFER_SIZE]; /* default settings */
+};
+
+#define LB_TAG_OPTION_CHECKSUM 204
+struct cmos_checksum {
+       uint32_t tag;
+       uint32_t size;
+       /* In practice everything is byte aligned, but things are measured
+        * in bits to be consistent.
+        */
+       uint32_t range_start;   /* First bit that is checksummed (byte aligned) 
*/
+       uint32_t range_end;     /* Last bit that is checksummed (byte aligned) 
*/
+       uint32_t location;      /* First bit of the checksum (byte aligned) */
+       uint32_t type;          /* Checksum algorithm that is used */
+#define CHECKSUM_NONE  0
+#define CHECKSUM_PCBIOS        1
+};
+
+
+
+#endif /* COREBOOT_TABLES_H */

Modified: trunk/util/lxbios/layout.h
===================================================================
--- trunk/util/lxbios/layout.h  2008-01-18 16:16:45 UTC (rev 3057)
+++ trunk/util/lxbios/layout.h  2008-01-18 16:17:44 UTC (rev 3058)
@@ -33,7 +33,7 @@
 #define LXBIOS_LAYOUT_H
 
 #include "common.h"
-#include "linuxbios_tables.h"
+#include "coreboot_tables.h"
 
 #define LAYOUT_ENTRY_OVERLAP (LAYOUT_RESULT_START + 0)
 #define LAYOUT_ENTRY_BAD_LENGTH (LAYOUT_RESULT_START + 1)

Modified: trunk/util/lxbios/layout_file.h
===================================================================
--- trunk/util/lxbios/layout_file.h     2008-01-18 16:16:45 UTC (rev 3057)
+++ trunk/util/lxbios/layout_file.h     2008-01-18 16:17:44 UTC (rev 3058)
@@ -33,7 +33,7 @@
 #define LXBIOS_LAYOUT_FILE_H
 
 #include "common.h"
-#include "linuxbios_tables.h"
+#include "coreboot_tables.h"
 
 void set_layout_filename (const char filename[]);
 void get_layout_from_file (void);

Modified: trunk/util/lxbios/lbtable.c
===================================================================
--- trunk/util/lxbios/lbtable.c 2008-01-18 16:16:45 UTC (rev 3057)
+++ trunk/util/lxbios/lbtable.c 2008-01-18 16:17:44 UTC (rev 3058)
@@ -32,7 +32,7 @@
 
 #include <sys/mman.h>
 #include "common.h"
-#include "linuxbios_tables.h"
+#include "coreboot_tables.h"
 #include "ip_checksum.h"
 #include "lbtable.h"
 #include "layout.h"

Deleted: trunk/util/lxbios/linuxbios_tables.h
===================================================================
--- trunk/util/lxbios/linuxbios_tables.h        2008-01-18 16:16:45 UTC (rev 
3057)
+++ trunk/util/lxbios/linuxbios_tables.h        2008-01-18 16:17:44 UTC (rev 
3058)
@@ -1,226 +0,0 @@
-/*****************************************************************************\
- * linuxbios_tables.h
- * $Id: linuxbios_tables.h,v 1.1.1.1 2005/12/02 22:35:19 dsp_llnl Exp $
-\*****************************************************************************/
-
-#ifndef COREBOOT_TABLES_H
-#define COREBOOT_TABLES_H
-
-#include <stdint.h>
-
-/* Note: The contents of this file were borrowed from the coreboot source
- *       code which may be obtained from http://www.coreboot.org/.
- *       Specifically, this code was obtained from LinuxBIOS version 1.1.8.
- */
-
-/* The coreboot table information is for conveying information
- * from the firmware to the loaded OS image.  Primarily this
- * is expected to be information that cannot be discovered by
- * other means, such as quering the hardware directly.
- *
- * All of the information should be Position Independent Data.  
- * That is it should be safe to relocated any of the information
- * without it's meaning/correctnes changing.   For table that
- * can reasonably be used on multiple architectures the data
- * size should be fixed.  This should ease the transition between
- * 32 bit and 64 bit architectures etc.
- *
- * The completeness test for the information in this table is:
- * - Can all of the hardware be detected?
- * - Are the per motherboard constants available?
- * - Is there enough to allow a kernel to run that was written before
- *   a particular motherboard is constructed? (Assuming the kernel
- *   has drivers for all of the hardware but it does not have
- *   assumptions on how the hardware is connected together).
- *
- * With this test it should be straight forward to determine if a
- * table entry is required or not.  This should remove much of the
- * long term compatibility burden as table entries which are
- * irrelevant or have been replaced by better alternatives may be
- * dropped.  Of course it is polite and expidite to include extra
- * table entries and be backwards compatible, but it is not required.
- */
-
-/* Since coreboot is usually compiled 32bit, gcc will align 64bit 
- * types to 32bit boundaries. If the coreboot table is dumped on a 
- * 64bit system, a uint64_t would be aligned to 64bit boundaries, 
- * breaking the table format.
- *
- * lb_uint64 will keep 64bit coreboot table values aligned to 32bit
- * to ensure compatibility. They can be accessed with the two functions
- * below: unpack_lb64() and pack_lb64()
- *
- * See also: util/lbtdump/lbtdump.c
- */
-
-struct lb_uint64 {
-       uint32_t lo;
-       uint32_t hi;
-};
-
-static inline uint64_t unpack_lb64(struct lb_uint64 value)
-{
-        uint64_t result;
-        result = value.hi;
-        result = (result << 32) + value.lo;
-        return result;
-}
-
-static inline struct lb_uint64 pack_lb64(uint64_t value)
-{
-        struct lb_uint64 result;
-        result.lo = (value >> 0) & 0xffffffff;
-        result.hi = (value >> 32) & 0xffffffff;
-        return result;
-}
-
-
-
-struct lb_header
-{
-        uint8_t  signature[4]; /* LBIO */
-        uint32_t header_bytes;
-        uint32_t header_checksum;
-        uint32_t table_bytes;
-        uint32_t table_checksum;
-        uint32_t table_entries;
-};
-
-/* Every entry in the boot enviroment list will correspond to a boot
- * info record.  Encoding both type and size.  The type is obviously
- * so you can tell what it is.  The size allows you to skip that
- * boot enviroment record if you don't know what it easy.  This allows
- * forward compatibility with records not yet defined.
- */
-struct lb_record {
-        uint32_t tag;                /* tag ID */
-        uint32_t size;                /* size of record (in bytes) */
-};
-
-#define LB_TAG_UNUSED        0x0000
-
-#define LB_TAG_MEMORY        0x0001
-
-struct lb_memory_range {
-       struct lb_uint64 start;
-       struct lb_uint64 size;
-        uint32_t type;
-#define LB_MEM_RAM       1        /* Memory anyone can use */
-#define LB_MEM_RESERVED  2        /* Don't use this memory region */
-#define LB_MEM_TABLE     16        /* Ram configuration tables are kept in */
-};
-
-struct lb_memory {
-        uint32_t tag;
-        uint32_t size;
-        struct lb_memory_range map[0];
-};
-
-#define LB_TAG_HWRPB        0x0002
-struct lb_hwrpb {
-        uint32_t tag;
-        uint32_t size;
-        uint64_t hwrpb;
-};
-
-#define LB_TAG_MAINBOARD        0x0003
-struct lb_mainboard {
-        uint32_t tag;
-        uint32_t size;
-        uint8_t  vendor_idx;
-        uint8_t  part_number_idx;
-        uint8_t  strings[0];
-};
-
-#define LB_TAG_VERSION                0x0004
-#define LB_TAG_EXTRA_VERSION        0x0005
-#define LB_TAG_BUILD                0x0006
-#define LB_TAG_COMPILE_TIME        0x0007
-#define LB_TAG_COMPILE_BY        0x0008
-#define LB_TAG_COMPILE_HOST        0x0009
-#define LB_TAG_COMPILE_DOMAIN        0x000a
-#define LB_TAG_COMPILER                0x000b
-#define LB_TAG_LINKER                0x000c
-#define LB_TAG_ASSEMBLER        0x000d
-struct lb_string {
-        uint32_t tag;
-        uint32_t size;
-        uint8_t  string[0];
-};
-
-/* The following structures are for the cmos definitions table */
-#define LB_TAG_CMOS_OPTION_TABLE 200
-/* cmos header record */
-struct cmos_option_table {
-        uint32_t tag;               /* CMOS definitions table type */
-        uint32_t size;               /* size of the entire table */
-        uint32_t header_length;      /* length of header */
-};
-
-/* cmos entry record
-        This record is variable length.  The name field may be
-        shorter than CMOS_MAX_NAME_LENGTH. The entry may start
-        anywhere in the byte, but can not span bytes unless it
-        starts at the beginning of the byte and the length is
-        fills complete bytes.
-*/
-#define LB_TAG_OPTION 201
-struct cmos_entries {
-        uint32_t tag;                /* entry type */
-        uint32_t size;               /* length of this record */
-        uint32_t bit;                /* starting bit from start of image */
-        uint32_t length;             /* length of field in bits */
-        uint32_t config;             /* e=enumeration, h=hex, r=reserved */
-        uint32_t config_id;          /* a number linking to an enumeration 
record */
-#define CMOS_MAX_NAME_LENGTH 32
-        uint8_t name[CMOS_MAX_NAME_LENGTH]; /* name of entry in ascii, 
-                                               variable length int aligned */
-};
-
-
-/* cmos enumerations record
-        This record is variable length.  The text field may be
-        shorter than CMOS_MAX_TEXT_LENGTH.
-*/
-#define LB_TAG_OPTION_ENUM 202
-struct cmos_enums {
-        uint32_t tag;                     /* enumeration type */
-        uint32_t size;                      /* length of this record */
-        uint32_t config_id;          /* a number identifying the config id */
-        uint32_t value;              /* the value associated with the text */
-#define CMOS_MAX_TEXT_LENGTH 32
-        uint8_t text[CMOS_MAX_TEXT_LENGTH]; /* enum description in ascii, 
-                                                variable length int aligned */
-};
-
-/* cmos defaults record
-        This record contains default settings for the cmos ram.
-*/
-#define LB_TAG_OPTION_DEFAULTS 203
-struct cmos_defaults {
-        uint32_t tag;                /* default type */
-        uint32_t size;               /* length of this record */
-        uint32_t name_length;        /* length of the following name field */
-        uint8_t name[CMOS_MAX_NAME_LENGTH]; /* name identifying the default */
-#define CMOS_IMAGE_BUFFER_SIZE 128
-        uint8_t default_set[CMOS_IMAGE_BUFFER_SIZE]; /* default settings */
-};
-
-#define LB_TAG_OPTION_CHECKSUM 204
-struct cmos_checksum {
-       uint32_t tag;
-       uint32_t size;
-       /* In practice everything is byte aligned, but things are measured
-        * in bits to be consistent.
-        */
-       uint32_t range_start;   /* First bit that is checksummed (byte aligned) 
*/
-       uint32_t range_end;     /* Last bit that is checksummed (byte aligned) 
*/
-       uint32_t location;      /* First bit of the checksum (byte aligned) */
-       uint32_t type;          /* Checksum algorithm that is used */
-#define CHECKSUM_NONE  0
-#define CHECKSUM_PCBIOS        1
-};
-
-
-
-#endif /* COREBOOT_TABLES_H */

Modified: trunk/util/mptable/mptable.c
===================================================================
--- trunk/util/mptable/mptable.c        2008-01-18 16:16:45 UTC (rev 3057)
+++ trunk/util/mptable/mptable.c        2008-01-18 16:17:44 UTC (rev 3058)
@@ -83,7 +83,7 @@
 
 #define MAXPNSTR               132
 
-#define LINUXBIOS_MP_TABLE      0
+#define COREBOOT_MP_TABLE      0
 
 enum busTypes {
     CBUS = 1,
@@ -299,7 +299,7 @@
 int    grope = 0;
 int    verbose = 0;
 int    noisy = 0;
-/* preamble to the mptable. This is fixed for all linuxbioses */
+/* preamble to the mptable. This is fixed for all coreboots */
  
 char *preamble[] = {
 "#include <arch/smp/mpspec.h>",
@@ -422,7 +422,7 @@
     if (verbose) puts( SEP_LINE2 );
 
     printf( "/* generatred by MPTable, version %d.%d.%d*/\n", VMAJOR, VMINOR, 
VDELTA );
-    printf("/* as modified by RGM for LinuxBIOS */\n");
+    printf("/* as modified by RGM for coreboot */\n");
     write_code(preamble);
 
     /* Ron hates getopt() */
@@ -536,7 +536,7 @@
     target = 0;
     segment = 0;
     if ( verbose )
-        printf( " searching for LinuxBIOS MP table  @ 0x%08x (%dK)\n",
+        printf( " searching for coreboot MP table  @ 0x%08x (%dK)\n",
                target, segment );
     seekEntry( target );
     readEntry( buffer, ONE_KBYTE );


-- 
coreboot mailing list
[email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to