seabios already supports DMA.
It's easy to add more config options for seabios
if you are so inclined.
Yes, I tried that, the fw_cfg overhead in SeaBios/linuxboot optrom is
already not a big issue for us. However, there are still some other
code in SeaBIOS needs to be investigated.
Also a few suggestions:
* Try the seabios master branch. There have been some improvements
recently which are not in the 1.9 release.
* Use a stripped down config. When booting a kernel directly you
don't need storage and usb drivers, also no keyboard. That all
reduces init time.
* Initializing all pci devices (placing bars in address space and
programming them) can probably be skipped and left to the linux
kernel to handle. But when trying take care that the effect might
be that we shift just startup time from seabios to linux kernel,
the placement needs to happen somewhere after all.
* When discussing these things add the seabios list
(seabios(a)seabios.org) to cc: Added the list now.