[SeaBIOS] Real mode kexec failure with non-IDE disk
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:
> 0x00000000000f70ec: mov %eax,%esi
> 0x00000000000f70ef: mov $0xb5,%eax
> 0x00000000000f70f5: mov $0x1234,%ecx
> 0x00000000000f70fb: mov $0xef3dc,%ebx
> 0x00000000000f7101: out %al,$0xb2
> 0x00000000000f7103: pause
> 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.
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
More information about the kexec