X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=src%2Farch%2Fx86%2Fboot%2Fcoreboot_table.c;h=53ff3d36d43f94763568909357dfe90199113dce;hb=2e43867a20107014cba1f32137adfee8af35a05d;hp=b0dcc9e65aa57d109328f5e12d17ec1642422c5c;hpb=66ecdc52e1ed09b116fd47a59e0aa8905bffef09;p=coreboot.git diff --git a/src/arch/x86/boot/coreboot_table.c b/src/arch/x86/boot/coreboot_table.c index b0dcc9e65..53ff3d36d 100644 --- a/src/arch/x86/boot/coreboot_table.c +++ b/src/arch/x86/boot/coreboot_table.c @@ -30,6 +30,7 @@ #include #include #include +#include #if CONFIG_USE_OPTION_TABLE #include #endif @@ -117,16 +118,20 @@ static struct lb_serial *lb_serial(struct lb_header *header) serial->baud = CONFIG_TTYS0_BAUD; return serial; #elif CONFIG_CONSOLE_SERIAL8250MEM - 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->type = LB_SERIAL_TYPE_MEMORY_MAPPED; - serial->baseaddr = uartmem_getbaseaddr(); - serial->baud = CONFIG_TTYS0_BAUD; - return serial; + if (uartmem_getbaseaddr()) { + 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->type = LB_SERIAL_TYPE_MEMORY_MAPPED; + serial->baseaddr = uartmem_getbaseaddr(); + serial->baud = CONFIG_TTYS0_BAUD; + return serial; + } else { + return NULL; + } #else return NULL; #endif @@ -174,6 +179,23 @@ static void lb_framebuffer(struct lb_header *header) #endif } +#if CONFIG_COLLECT_TIMESTAMPS +static void lb_tsamp(struct lb_header *header) +{ + struct lb_tstamp *tstamp; + void *tstamp_table = cbmem_find(CBMEM_ID_TIMESTAMP); + + if (!tstamp_table) + return; + + tstamp = (struct lb_tstamp *)lb_new_record(header); + tstamp->tag = LB_TAG_TIMESTAMPS; + tstamp->size = sizeof(*tstamp); + tstamp->tstamp_tab = tstamp_table; + +} +#endif + static struct lb_mainboard *lb_mainboard(struct lb_header *header) { struct lb_record *rec; @@ -513,10 +535,6 @@ static void add_lb_reserved(struct lb_memory *mem) lb_add_rsvd_range, mem); } -#if CONFIG_WRITE_HIGH_TABLES -extern uint64_t high_tables_base, high_tables_size; -#endif - unsigned long write_coreboot_table( unsigned long low_table_start, unsigned long low_table_end, unsigned long rom_table_start, unsigned long rom_table_end) @@ -619,6 +637,9 @@ unsigned long write_coreboot_table( /* Record our framebuffer */ lb_framebuffer(head); +#if CONFIG_COLLECT_TIMESTAMPS + lb_tsamp(head); +#endif /* Remember where my valid memory ranges are */ return lb_table_fini(head, 1);