Add timestamp table pointer to the coreboot table.
[coreboot.git] / src / include / boot / coreboot_tables.h
index cec394e474d27b41a562607f7362a42452033506..46d64898b47cbcd6284ba2f3f7e068d799cca3b3 100644 (file)
@@ -33,7 +33,7 @@
 
 /* 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, 
+ * 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
@@ -74,10 +74,10 @@ struct lb_header
        uint32_t table_entries;
 };
 
-/* Every entry in the boot enviroment list will correspond to a boot
+/* Every entry in the boot environment 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
+ * boot environment record if you don't know what it easy.  This allows
  * forward compatibility with records not yet defined.
  */
 struct lb_record {
@@ -85,9 +85,9 @@ struct lb_record {
        uint32_t size;          /* size of record (in bytes) */
 };
 
-#define LB_TAG_UNUSED  0x0000
+#define LB_TAG_UNUSED          0x0000
 
-#define LB_TAG_MEMORY  0x0001
+#define LB_TAG_MEMORY          0x0001
 
 struct lb_memory_range {
        struct lb_uint64 start;
@@ -108,7 +108,7 @@ struct lb_memory {
        struct lb_memory_range map[0];
 };
 
-#define LB_TAG_HWRPB   0x0002
+#define LB_TAG_HWRPB           0x0002
 struct lb_hwrpb {
        uint32_t tag;
        uint32_t size;
@@ -146,7 +146,10 @@ struct lb_string {
 struct lb_serial {
        uint32_t tag;
        uint32_t size;
-       uint16_t ioport;
+#define LB_SERIAL_TYPE_IO_MAPPED     1
+#define LB_SERIAL_TYPE_MEMORY_MAPPED 2
+       uint32_t type;
+       uint32_t baseaddr;
        uint32_t baud;
 };
 
@@ -158,11 +161,12 @@ struct lb_console {
 };
 
 #define LB_TAG_CONSOLE_SERIAL8250      0
-#define LB_TAG_CONSOLE_VGA             1
-#define LB_TAG_CONSOLE_BTEXT           2
+#define LB_TAG_CONSOLE_VGA             1 // OBSOLETE
+#define LB_TAG_CONSOLE_BTEXT           2 // OBSOLETE
 #define LB_TAG_CONSOLE_LOGBUF          3
-#define LB_TAG_CONSOLE_SROM            4
+#define LB_TAG_CONSOLE_SROM            4 // OBSOLETE
 #define LB_TAG_CONSOLE_EHCI            5
+#define LB_TAG_CONSOLE_SERIAL8250MEM   6
 
 #define LB_TAG_FORWARD         0x0011
 struct lb_forward {
@@ -191,6 +195,14 @@ struct lb_framebuffer {
        uint8_t reserved_mask_size;
 };
 
+#define LB_TAG_TIMESTAMPS      0x0016
+struct lb_tstamp {
+       uint32_t tag;
+       uint32_t size;
+
+       void    *tstamp_tab;
+};
+
 /* The following structures are for the cmos definitions table */
 #define LB_TAG_CMOS_OPTION_TABLE 200
 /* cmos header record */
@@ -216,7 +228,7 @@ struct cmos_entries {
        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, 
+       uint8_t name[CMOS_MAX_NAME_LENGTH]; /* name of entry in ascii,
                                               variable length int aligned */
 };
 
@@ -232,7 +244,7 @@ struct cmos_enums {
        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, 
+       uint8_t text[CMOS_MAX_TEXT_LENGTH]; /* enum description in ascii,
                                                variable length int aligned */
 };