S***, I have the worst luck - broken just 4 days ago, and I started looking at this 2 days later. Of course I assumed it was somehow my idiocy... Somebody's getting their memory ranges muddled up.
Many thanks Jouni.
Biff.
--- On Sun, 17/5/09, Jouni Mettälä jtmettala@gmail.com wrote:
From: Jouni Mettälä jtmettala@gmail.com Subject: Re: [coreboot] FILO Compilation failure To: "bifferos" bifferos@yahoo.co.uk Cc: coreboot@coreboot.org Date: Sunday, 17 May, 2009, 12:26 PM
2009/5/16 bifferos bifferos@yahoo.co.uk
I've tried to build FILO following instructions at
http://www.coreboot.org/FILO, but it doesn't seem to work. Can anyone
give any hints? 0.5 compiles fine.
Here's what I typed (snipped the uninteresting info):
wrt@cent:~/coreboot/filo$ svn co svn://coreboot.org/filo/trunk/filo
Checked out external at revision 4289.
Checked out revision 95.
wrt@cent:~/coreboot/filo$ cd filo/
wrt@cent:~/coreboot/filo/filo$ cd libpayload/
wrt@cent:~/coreboot/filo/filo/libpayload$ make defconfig
wrt@cent:~/coreboot/filo/filo/libpayload$ make
wrt@cent:~/coreboot/filo/filo/libpayload$ make DESTDIR=../build install
wrt@cent:~/coreboot/filo/filo/libpayload$ cd ..
wrt@cent:~/coreboot/filo/filo$ make menuconfig
wrt@cent:~/coreboot/filo/filo$ make
....
CC build/i386/context.o
AS build/i386/switch.S.o
CC build/i386/segment.o
/home/wrt/coreboot/filo/filo/i386/segment.c: In function 'relocate':
/home/wrt/coreboot/filo/filo/i386/segment.c:77: error: 'struct memrange' has no member named 'type'
make: *** [/home/wrt/coreboot/filo/filo/build/i386/segment.o] Error 1
thanks,
Biff. Does revision 94 work? I am getting same error but revision 94 works for me. svn co svn://coreboot.org/filo/trunk/filo -r 94
-----Inline Attachment Follows-----
-- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
bifferos wrote:
Somebody's getting their memory ranges muddled up.
Patrick, in r95 you're using a type member in struct memrange (itself a member of libpayload sysinfo_t) but the type member only exists in the coreboot table, not in libpayload's sysinfo_t.memrange.
What is the good fix? Add the type member to libpayload sysinfo_t.memrange, work with coreboot tables directly or ignore everything but than CB_MEM_RAM when copying entires from coreboot table into sysinfo_t.memrange, making the changes in r95 no longer neccessary?
//Peter
On 17.05.2009 15:14 Uhr, Peter Stuge wrote:
Patrick, in r95 you're using a type member in struct memrange (itself a member of libpayload sysinfo_t) but the type member only exists in the coreboot table, not in libpayload's sysinfo_t.memrange.
What is the good fix? Add the type member to libpayload sysinfo_t.memrange
yes.
work with coreboot tables directly
Not so good, because this indirection makes things work without coreboot but multiboot (grub).
or ignore everything but than CB_MEM_RAM when copying entires from coreboot table into sysinfo_t.memrange, making the changes in r95 no longer neccessary?
Not so good either, because FILO uses the libpayload structures to produce an e820 map. If High Tables and PCIe memory ranges are not marked in what is passed to the OS as E820, the OS (Linux at least) will show errors/weird symptoms.
We have a patch for libpayload. Let me dig it out and get it to the list.
Stefan
Am 17.05.2009 15:14, schrieb Peter Stuge:
bifferos wrote:
Somebody's getting their memory ranges muddled up.
Patrick, in r95 you're using a type member in struct memrange (itself a member of libpayload sysinfo_t) but the type member only exists in the coreboot table, not in libpayload's sysinfo_t.memrange.
What is the good fix? Add the type member to libpayload sysinfo_t.memrange, work with coreboot tables directly or ignore everything but than CB_MEM_RAM when copying entires from coreboot table into sysinfo_t.memrange, making the changes in r95 no longer neccessary?
I extracted the type field support from our repo. See attached patch.
The MEMMAP_RAM_ONLY define is a way to allow a payload to opt for only having CB_MEM_RAM type fields, which might be helpful to support older payloads easily (just add the define, and it won't encounter "weird" fields)
Signed-off-by: Patrick Georgi patrick.georgi@coresystems.de
Sorry for the mess, Patrick
Patrick Georgi wrote:
I extracted the type field support from our repo. See attached patch.
The MEMMAP_RAM_ONLY define is a way to allow a payload to opt for only having CB_MEM_RAM type fields, which might be helpful to support older payloads easily (just add the define, and it won't encounter "weird" fields)
Signed-off-by: Patrick Georgi patrick.georgi@coresystems.de
Acked-by: Peter Stuge peter@stuge.se