mirror of
https://github.com/fail0verflow/switch-coreboot.git
synced 2025-05-04 01:39:18 -04:00
Implements console and serial lbtable records compatible to cbv2 as of r3396
Signed-Off-By: Patrick Georgi <patrick@georgi-clan.de> Acked-by: Stefan Reinauer <stepan@coresystems.de> git-svn-id: svn://coreboot.org/repository/coreboot-v3@691 f3766cd6-281f-0410-b1cd-43a5c92072e9
This commit is contained in:
parent
ae2520e4bd
commit
ef90e728ab
2 changed files with 68 additions and 0 deletions
|
@ -25,6 +25,7 @@
|
|||
#include <device/device.h>
|
||||
#include <tables.h>
|
||||
#include <mc146818rtc.h>
|
||||
#include <uart8250.h>
|
||||
#include <lib.h>
|
||||
//#include <cpu/cpu.h>
|
||||
//#include <pirq_routing.h>
|
||||
|
@ -98,6 +99,45 @@ struct lb_memory *lb_memory(struct lb_header *header)
|
|||
return mem;
|
||||
}
|
||||
|
||||
struct lb_serial *lb_serial(struct lb_header *header)
|
||||
{
|
||||
#if defined(TTYSx_BASE)
|
||||
struct lb_record *rec;
|
||||
struct lb_serial *serial;
|
||||
rec = lb_new_record(header);
|
||||
serial = (struct lb_serial *)rec;
|
||||
serial->tag = LB_TAG_SERIAL;
|
||||
serial->size = sizeof(*serial);
|
||||
serial->ioport = TTYSx_BASE;
|
||||
serial->baud = TTYSx_BAUD;
|
||||
return serial;
|
||||
#else
|
||||
return header;
|
||||
#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_SERIAL
|
||||
add_console(header, LB_TAG_CONSOLE_SERIAL8250);
|
||||
#endif
|
||||
/* FIXME when we have a proper vga console ourself */
|
||||
#ifdef CONFIG_PCI_OPTION_ROM_RUN
|
||||
add_console(header, LB_TAG_CONSOLE_VGA);
|
||||
#endif
|
||||
}
|
||||
|
||||
struct lb_mainboard *lb_mainboard(struct lb_header *header)
|
||||
{
|
||||
struct lb_record *rec;
|
||||
|
@ -454,6 +494,12 @@ unsigned long write_coreboot_table(
|
|||
/* Record our motherboard */
|
||||
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);
|
||||
|
||||
|
|
|
@ -175,6 +175,28 @@ struct lb_devtree {
|
|||
u32 dev_root_ptr; /* Pointer to the root device */
|
||||
};
|
||||
|
||||
#define LB_TAG_SERIAL 0x000f
|
||||
struct lb_serial {
|
||||
u32 tag;
|
||||
u32 size;
|
||||
u16 ioport;
|
||||
u32 baud;
|
||||
};
|
||||
|
||||
#define LB_TAG_CONSOLE 0x0010
|
||||
struct lb_console {
|
||||
u32 tag;
|
||||
u32 size;
|
||||
u16 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 */
|
||||
|
|
Loading…
Add table
Reference in a new issue