On Wed, Aug 20, 2014 at 11:27:41AM +0100, Stefan Hajnoczi wrote: > The QEMU -initrd option loads the initrd at the top of RAM. There is > a 64 KB safety region for ACPI tables in hw/i386/pc.c:load_linux(): > > initrd_max = max_ram_size-ACPI_DATA_SIZE-1; > > QEMU's bios-256k.bin SeaBIOS build reserves 128 KB at the top of > memory so the 64 KB ACPI data size has become too small.
Just to clarify, SeaBIOS uses a variable amount of data at the top of ram. SeaBIOS isn't changing the allocation because of its build parameters, but because QEMU is passing more ACPI tables to it. > Perhaps QEMU -> SeaBIOS -> linuxboot.bin can be simplified so QEMU > doesn't have to guess what e820 region SeaBIOS will reserve. > linuxboot.bin would probably be the place to do it unless SeaBIOS has > Linux loading functionality that could be reused. There is no current functionality in SeaBIOS to deploy a Linux kernel from fw_cfg. However, it looks like it would be pretty simple to add if someone wants to give it a try. -Kevin