[SeaBIOS] [BUG?] Doesn't retrieve control after coreboot payload return

Kevin O'Connor kevin at koconnor.net
Tue Aug 2 16:39:30 CEST 2016


On Tue, Aug 02, 2016 at 03:37:44PM +0200, Antonello Dettori wrote:
> Hi everyone.
> 
> I'm currently working on coreboot but I stumbled on a strange SeaBIOS
> behaviour.
> After executing a payload and returning control to the caller SeaBIOS
> crashes.
> 
> The problem is currently solved by rebooting before the payload returns but
> doing so also makes chaining multiple payloads impossible so I'm trying to
> look into a solution.

The SeaBIOS payload support was not designed to robustly handle
returns from a payload.  It will crash if the payload alters the GDT,
overwrite the stack, or otherwise messes up the SeaBIOS state.  As far
as I know, payloads in general aren't designed to handle returns to
their caller.

> I tried to increment the debug level to 8 to get more information and the
> attached log is what I got.

That log isn't from SeaBIOS.  It's unclear what hardware you have.  In
general, a serial port is the most robust way of obtaining a log.  See
also: http://www.seabios.org/Debugging

-Kevin



More information about the SeaBIOS mailing list