Re: [tip:x86/boot] x86/boot: Early parse RSDP and save it in boot_params

From: Guenter Roeck
Date: Mon Feb 11 2019 - 09:08:25 EST


On 2/11/19 2:08 AM, Borislav Petkov wrote:
On Mon, Feb 11, 2019 at 05:30:33PM +0800, Chao Fan wrote:
Yes, I download your ovmf file in linux-build-test/rootfs/firmware/ from
your link. There are two files, efi32 and efi64. Then I try to run:

You need both OVMF-pure-efi-32.fd and rootfs.squashfs from the repo. And
then this works here. Just put the script below and the two files in a
directory and point to the kernel where you're building with -kernel.

---
#!/bin/bash

qemu-system-x86_64 -kernel ~/kernel/linux/arch/x86/boot/bzImage -M q35 -cpu SandyBridge \
-no-reboot -snapshot -smp 1 \
-gdb tcp::1235 \
-bios OVMF-pure-efi-32.fd \
-m 1G \
-net nic,model=rtl8139,macaddr=12:34:56:78:12:34 \
-usb -device usb-storage,drive=d0 \
-drive file=rootfs.squashfs,if=none,id=d0,format=raw \
--append 'earlycon=uart8250,io,0x3f8,9600n8 root=/dev/sda rootwait panic=-1 earlyprintk=ttyS0,115200,keep console=ttyS0,115200' \
-monitor pty \
-serial file:log

I've added some options for debugging.


If you use my rootfs, you can also add "noreboot" as boot parameter and it
won't reboot but stay in a shell. You can also use any of the other root
file systems in the repository - it doesn't have to be squashfs.

The whole point of booting with OVMF-pure-efi-32.fd is just that. I have
other test runs which boot with the 64 bit efi version. The idea is to
test as many combinations as possible. This is also why this specific
boot is from USB drive and with squashfs/q35/SandyBridge.

Thanks,
Guenter