[U-Boot] [RFC PATCH] x86: Support booting SeaBIOS

Bin Meng bmeng.cn at gmail.com
Mon Nov 2 07:11:07 CET 2015


Hi Simon,

On Mon, Oct 19, 2015 at 10:51 AM, Simon Glass <sjg at chromium.org> wrote:
> Hi Bin,
>
> On 10 October 2015 at 02:57, Bin Meng <bmeng.cn at gmail.com> wrote:
>> Hi Simon,
>>
>> On Sat, Oct 3, 2015 at 10:29 PM, Simon Glass <sjg at chromium.org> wrote:
>>> Hi Bin,
>>>
>>> On 29 September 2015 at 11:17, Bin Meng <bmeng.cn at gmail.com> wrote:
>>>> SeaBIOS is an open source implementation of a 16-bit X86 BIOS.
>>>> It can run in an emulator or natively on X86 hardware with the
>>>> use of coreboot. With SeaBIOS's help, we can boot some OSes
>>>> that require 16-bit BIOS services like Windows/DOS.
>>>>
>>>> As U-Boot, we have to manually create a table where SeaBIOS gets
>>>> system information (eg: E820) from. The table unfortunately has
>>>> to follow the coreboot table format as SeaBIOS currently supports
>>>> booting as a coreboot payload. No U-Boot native support there.
>>>>
>>>> Booting SeaBIOS is done via U-Boot's bootelf command.
>>>>
>>>> This is the initial attempt to support booting SeaBIOS from U-Boot.
>>>> If the basic concept is good, I can spend time working on follow-on
>>>> patches to enable BIOS tables as well as graphics support. One issue
>>>> is that U-Boot x86 does not has a ROM file system like coreboot.
>>>> This brings difficulities to pass PCI option ROM to SeaBIOS, if we
>>>> don't modify SeaBIOS's source codes. Maybe we should promote CBFS
>>>> in U-Boot x86?
>>>>
>>>> This is tested on an Intel Crown Bay board with VGA card, booting
>>>> SeaBIOS then chain loading a GRUB on a USB drive, then Linux kernel
>>>> finally.
>>>
>>> Looks good to me. I think it is OK to use CBFS if needed - are you
>>> thinking of an option to build u-boot.rom as a CBFS filesystem?
>>
>> If using CBFS, that means we may have to abandon ifdtool? Or maybe
>> mixed usage of both tools?
>
> So far I'm not sure of the best approach. At present we have the ROM
> offsets stored mostly in Kconfig, with the MRC area in the SPI flash
> device tree node. The environment is also in Kconfig.
>
> What sort of option ROMs do you want to support? What other options
> does seabios provide?
>

I believe SeaBIOS can run any kind of PCI option ROMs, but I have
never tested other than vgabios. Also per coreboot's documentation,
booting Windows needs SeaBIOS.

> What does SEA stand for?

I guess it's because most of SeaBIOS's source codes are written in
'C', thus a 'C' BIOS.

Regards,
Bin


More information about the U-Boot mailing list