Fix initial printk buffer address initialization. This was broken in
r785 (move from explicit asm to implicit C) and unfortunately qemu never
triggered the bug, only real hardware did.
Thanks to Ron for bisecting this.
Signed-off-by: Carl-Daniel Hailfinger <[EMAIL PROTECTED]>
Index: corebootv3-printk_buffer_addr_init/lib/console.c
===================================================================
--- corebootv3-printk_buffer_addr_init/lib/console.c (Revision 856)
+++ corebootv3-printk_buffer_addr_init/lib/console.c (Arbeitskopie)
@@ -82,7 +82,9 @@
void printk_buffer_init(void)
{
- struct printk_buffer *buf = printk_buffer_addr();
+ struct printk_buffer *buf = (struct printk_buffer *)PRINTK_BUF_ADDR_CAR;
+ global_vars()->printk_buffer = buf;
+ buf = printk_buffer_addr();
buf->len = PRINTK_BUF_SIZE_CAR - sizeof(struct printk_buffer);
buf->readoffset = 0;
buf->writeoffset = 0;
--
http://www.hailfinger.org/
Index: corebootv3-printk_buffer_addr_init/lib/console.c
===================================================================
--- corebootv3-printk_buffer_addr_init/lib/console.c (Revision 856)
+++ corebootv3-printk_buffer_addr_init/lib/console.c (Arbeitskopie)
@@ -82,7 +82,9 @@
void printk_buffer_init(void)
{
- struct printk_buffer *buf = printk_buffer_addr();
+ struct printk_buffer *buf = (struct printk_buffer *)PRINTK_BUF_ADDR_CAR;
+ global_vars()->printk_buffer = buf;
+ buf = printk_buffer_addr();
buf->len = PRINTK_BUF_SIZE_CAR - sizeof(struct printk_buffer);
buf->readoffset = 0;
buf->writeoffset = 0;
--
coreboot mailing list
[email protected]
http://www.coreboot.org/mailman/listinfo/coreboot