On Sat, Jul 12, 2014 at 01:00:01PM +0200, Paul Menzel wrote:
Dear SeaBIOS folks,
in the thread *Help for Coreboot project*  on the coreboot mailing
list, Denis Carikli wrote that to get graphics under Linux (not GRUB or
SeaBIOS) with AMD/ATI graphics devices it is enough to place/load(?) the
Video BIOS/VGA Option ROM at the right place and not run it.
The same is needed for some Intel devices (Google Chromebooks) so the
VBT, needed for setting up the panel, is found.
Enabling that option in coreboot (currently only possible by changing
`def_bool` to `y`) and disabling Option ROM handling in SeaBIOS did not
work. I think SeaBIOS overwrote the region (`/proc/iomem`).
Right - SeaBIOS considers itself the sole owner of memory between
0xc0000-0xfffff. It initializes and manages that memory.
Looking for configuration options in SeaBIOS, there is
option `OPTIONROMS_DEPLOYED`, which only available for QEMU though. Also
it uses placed/loaded Option ROMs and still runs them.
As Gerd mentioned, that option is not what you want.
I guess more Kconfig options have to be added to
support my use case. Is
that wanted or should I do as Denis wrote and patch the SeaBIOS locally?
If you don't want the optionrom to be executed I think it would be
better to just modify the optionrom so that it didn't do anything when
run. For example, by modifying the 4th byte of the image to be the
lretw instruction (0xcb), and then updating the checksum. That way
the rom gets loaded into memory but effectively does not execute any
code when loaded. No need for a custom SeaBIOS image.
Another approach which may be possible would be to figure out what
tables Linux wants to read from the optionrom, place those tables in a
coreboot table or cbfs file, and then teach the cbvga SeaVGABIOS code
to load those tables. If that is feasible one could then use
the SeaVGABIOS as a vga optionrom.