#endif
}
+void add_console(struct lb_header *header, u16 consoletype)
+{
+ struct lb_record *rec;
+ struct lb_console *console;
+ rec = lb_new_record(header);
+ console = (struct lb_console *)lb_new_record(header);
+ console->tag = LB_TAG_CONSOLE;
+ console->size = sizeof(*console);
+ console->type = consoletype;
+}
+
+void lb_console(struct lb_header *header)
+{
+#ifdef CONFIG_CONSOLE_SERIAL8250
+ add_console(header, LB_TAG_CONSOLE_SERIAL8250);
+#endif
+#ifdef CONFIG_CONSOLE_VGA
+ add_console(header, LB_TAG_CONSOLE_VGA);
+#endif
+#ifdef CONFIG_CONSOLE_BTEXT
+ add_console(header, LB_TAG_CONSOLE_BTEXT);
+#endif
+#ifdef CONFIG_CONSOLE_LOGBUF
+ add_console(header, LB_TAG_CONSOLE_LOGBUF);
+#endif
+#ifdef CONFIG_CONSOLE_SROM
+ add_console(header, LB_TAG_CONSOLE_SROM);
+#endif
+#ifdef CONFIG_USBDEBUG_DIRECT
+ add_console(header, LB_TAG_CONSOLE_EHCI);
+#endif
+}
+
struct lb_mainboard *lb_mainboard(struct lb_header *header)
{
struct lb_record *rec;
lb_mainboard(head);
/* Record the serial port, if present */
lb_serial(head);
+ /* Record our console setup */
+ lb_console(head);
/* Record our various random string information */
lb_strings(head);
uint8_t string[0];
};
+/* 0xe is taken by v3 */
+
#define LB_TAG_SERIAL 0x000f
struct lb_serial {
uint32_t tag;
uint16_t ioport;
};
+#define LB_TAG_CONSOLE 0x0010
+struct lb_console {
+ uint32_t tag;
+ uint32_t size;
+ uint16_t type;
+};
+
+#define LB_TAG_CONSOLE_SERIAL8250 0
+#define LB_TAG_CONSOLE_VGA 1
+#define LB_TAG_CONSOLE_BTEXT 2
+#define LB_TAG_CONSOLE_LOGBUF 3
+#define LB_TAG_CONSOLE_SROM 4
+#define LB_TAG_CONSOLE_EHCI 5
+
/* The following structures are for the cmos definitions table */
#define LB_TAG_CMOS_OPTION_TABLE 200
/* cmos header record */