Hi,
Doing this in seabios looks appealing too as seabios needs the code for fw_cfg support anyway and it is already written in C. It needs some more care through so things like bootorder and pxeboot continue to work. Maybe seabios could match the rom name (the one which appears in the boot menu) to figure whenever it should kick a direct kernel boot.
Have you looked at the other email thread?: http://www.seabios.org/pipermail/seabios/2015-August/009603.html
There's some work missing, but a basic sketch of this ROM problem is here: http://www.seabios.org/pipermail/seabios/2015-August/009606.html
Yep, saw that. pxe roms are IPL_TYPE_BEV too, so taking over this way will break network boot.
qemu_cfg_dma_boot_linux() itself looks sane to me. Just the way it gets kicked needs some refining. And in the future we probably want split qemu_cfg_dma_boot_linux() into smaller functions for stuff like booting the kernel from flash.
cheers, Gerd