barebox on x86

Stefan Reinauer stefan.reinauer at
Tue Aug 31 15:09:08 EDT 2010

 On 8/31/10 5:45 PM, Juergen Beisert wrote:
> Hi Stefan,
> Stefan Reinauer wrote:
>> here's some initial work on getting barebox working on x86 (again?).
>> The patch is very ugly, and it makes some assumptions on me using
>> Darwin/Mac OS X to compile barebox.
>> What kind of becomes clear though, is that there is no clear distinction
>> between which set of headers are used for the user space utilities and
>> which set of headers are used for the barebox binary. I think that's the
>> reason why barebox features an include/linux directory which seems to
>> duplicate about half of what Linux usually has in there, but more than
>> barebox uses (or should use, ftm).
>> With the attached patch I get as far as the linking stage.
>>> i386-elf-ld -Map -o barebox -T arch/x86/lib/
>> --start-group common/built-in.o drivers/built-in.o commands/built-in.o
>> lib/built-in.o net/built-in.o fs/built-in.o
>> arch/x86/boards/x86_generic/built-in.o arch/x86/mach-i386/built-in.o
>> arch/x86/lib/built-in.o arch/x86/boot/built-in.o --end-group
>> When I define CONFIG_X86_HDBOOT
>> I get:
>> i386-elf-ld: barebox section `.initcall.8' will not fit in region `mbr'
>> i386-elf-ld: section .initcall.8 loaded at
>> [0000000000000400,000000000000040b] overlaps section .bootstrapping
>> loaded at [0000000000000400,00000000000008e7]
>> i386-elf-ld: region `mbr' overflowed by 12 bytes
> -> MBR -> 16 Bit boot loader.

Yes, I wanted to compile the "known working" version first, but it seems
to choke on the "late_initcall" mechanism somehow.

>> If I choose "native", I get
>> arch/x86/lib/ nonconstant expression for load base
> The 'native' case is not finished yet. It does not use any 16 bit code nor 
> BIOS calls. But need adaptions to get some vital information about the system 
> (for example memory size).
Ok, will try to figure this one out.

>> Since barebox is not really specialized in doing complex hardware
>> initialization like it's needed on x86 machines, and coreboot is not
>> really specialized in providing any kind of user interface I would like
>> to work on making barebox available as a coreboot payload. For that I
>> need to produce an ELF file that does no BIOS calls because coreboot is
>> not a BIOS or UEFI but only does the most necessary hardware
>> initialization on x86 systems.
> The 'native' case is the correct direction to get it work with coreboot.

Great! That's what I assumed. Thanks for the input.

More information about the barebox mailing list