[SeaBIOS] Real mode kexec failure with non-IDE disk

Kevin O'Connor kevin at koconnor.net
Tue Apr 30 19:56:01 PDT 2019


On Mon, Apr 29, 2019 at 12:05:33AM +0300, David Woodhouse wrote:
> When I kexec either Xen or Linux in real mode, from either Xen or
> Linux, it fails.
> 
> The last thing I see looks like SeaBIOS trying to use SMM for call32:
> 
> ----------------
> IN: 
> 0x00000000000f70ec:  mov    %eax,%esi
> 0x00000000000f70ef:  mov    $0xb5,%eax
> 0x00000000000f70f5:  mov    $0x1234,%ecx
> 0x00000000000f70fb:  mov    $0xef3dc,%ebx
> 0x00000000000f7101:  out    %al,$0xb2
> 0x00000000000f7103:  pause  
> 
> ----------------
> IN: 
> 0x00000000000ef3db:  hlt    
> 
> This happens when the real mode boot code calls INT 13h to read from
> the disk. It seems to happen with virtio and SATA disks.
> 
> This is with the Ubuntu-packaged 1.10.2-1ubuntu1 SeaBIOS. Switching to
> an IDE disk, or booting with 'edd=skipmbr', makes Xen work and Linux
> get a little further before it dies anyway.

Hi David,

That call trace certainly looks odd.  The SeaBIOS debugging info would
help - try compiling SeaBIOS with debug level 8 and grab the log (as
described at: https://www.seabios.org/Debugging#Diagnostic_information
).

-Kevin



More information about the kexec mailing list