Chris Kilgour <[EMAIL PROTECTED]> wrote
> >> http://www.whiterocker.com/gpxe/
> >>
> >>     
> 
> FYI - libpayload-lplconsole.patch was put together against libpayload r
> 3345.  I'm pretty sure the patch doesn't apply cleanly to the latest
> libpayload.
> 
> Chris.
> 

I can provide an almost complete aliment in that direction.
The patch provided below is constructed against todays trunk,
and it solves everything except the build step

    build/lib/lplconsole.o(.text+0x9c3): I funktionen "cb_parse_header":
    : undefined reference to `strncmp'

arising at the very last "ls -N -T ....." command. I had no really good
idea as to the best inclusion path to "strncmp()", and therefore I had
to leave the patchwork at that point. Most of you are more clever than
me in this respect.

Please forgive me for intruding,

Mats Erik Andersson

----


Index: libpayload/curses/tinycurses.c
===================================================================
--- libpayload/curses/tinycurses.c      (revision 3623)
+++ libpayload/curses/tinycurses.c      (arbetskopia)
@@ -736,8 +736,10 @@
                for (x = win->_line[y].firstchar; x <= win->_line[y].lastchar; 
x++) {
                        attr_t attr = win->_line[y].text[x].attr;
 
+#ifdef CONFIG_VIDEO_CONSOLE
                        unsigned int c =
                                ((int)color_pairs[PAIR_NUMBER(attr)]) << 8;
+#endif
 
 #ifdef CONFIG_SERIAL_CONSOLE
                        if (curses_flags & F_ENABLE_SERIAL) {
Index: libpayload/Makefile
===================================================================
--- libpayload/Makefile (revision 3623)
+++ libpayload/Makefile (arbetskopia)
@@ -95,12 +95,45 @@
 STACKPROTECT += $(call cc-option, -fno-stack-protector,)
 
 # TODO: Re-add -Os as soon as we find out why it caused problems.
-CFLAGS := -Wall -Werror $(STACKPROTECT) -nostdinc $(INCLUDES) -ffreestanding
+CFLAGS := -Wall -Werror $(STACKPROTECT) -ggdb -nostdinc $(INCLUDES) 
-ffreestanding
 
 all: lib
 
-lib: prepare $(obj)/lib/libpayload.a copystuff
+lib: prepare $(obj)/lib/libpayload.a copystuff $(obj)/lib/lplconsole.o
 
+LPL_CONSOLE_OBJS = $(obj)/libc/console.o $(obj)/drivers/pci.o \
+       $(obj)/i386/timer.o $(obj)/i386/sysinfo.o $(obj)/i386/coreboot.o \
+       $(obj)/libc/ipchecksum.o $(obj)/i386/virtual.o
+
+ifeq ($(CONFIG_SERIAL_CONSOLE),y)
+LPL_CONSOLE_OBJS += $(obj)/drivers/serial.o
+endif
+
+ifeq ($(CONFIG_PC_KEYBOARD),y)
+LPL_CONSOLE_OBJS += $(obj)/drivers/keyboard.o
+endif
+
+ifeq ($(CONFIG_VIDEO_CONSOLE),y)
+LPL_CONSOLE_OBJS += $(obj)/drivers/video/font8x16.o \
+       $(obj)/drivers/video/video.o 
+endif
+
+ifeq ($(CONFIG_VGA_VIDEO_CONSOLE),y)
+LPL_CONSOLE_OBJS += $(obj)/drivers/video/vga.o
+endif
+
+ifeq ($(CONFIG_GEODE_VIDEO_CONSOLE),y)
+LPL_CONSOLE_OBJS += $(obj)/drivers/video/geode.o
+endif
+
+$(obj)/lib/lplconsole.o: $(LPL_CONSOLE_OBJS)
+       $(LD) -r -o [EMAIL PROTECTED] $(LPL_CONSOLE_OBJS)
+       objcopy --redefine-sym putchar=lpl_putchar --redefine-sym 
getchar=lpl_getchar \
+               --redefine-sym havekey=lpl_havekey --redefine-sym 
console_init=lpl_console_init \
+               --redefine-sym udelay=lpl_udelay --redefine-sym 
mdelay=lpl_mdelay \
+               --redefine-sym ndelay=lpl_ndelay \
+               [EMAIL PROTECTED] $@
+
 # Copy libpayload.a and head.o into $(src)/lib where lpgcc et al expect them.
 copystuff: $(obj)/$(ARCHDIR-y)/head.S.o $(obj)/lib/libpayload.a
        $(Q)cp $(obj)/$(ARCHDIR-y)/head.S.o $(src)/lib/$(ARCHDIR-y)/head.o

--
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to