On Thu, 2013-02-14 at 17:11 +0000, Ian Campbell wrote:
On Thu, 2013-02-14 at 16:47 +0000, David Woodhouse wrote:
On Thu, 2013-02-14 at 16:41 +0000, Ian Campbell wrote:
On Thu, 2013-02-14 at 13:05 +0000, David Woodhouse wrote:
Anyway, I appear to have established that the qemu fw_cfg *doesn't* exist in your domains — so how you pass bootorder to the guest, if
you
successfully do so at all, I have no idea.
Asking around no one seems to have any idea how this works, other than we pass it to qemu.
*Does* it work?
People seem to think so, but I'm starting to wonder. I'm going to go and check for myself now.
I can indeed select between disk, network and cdrom using the boot="c" (or "d" or "n") option.
And — more to the point, since this is my only real reason for caring about it at all — does it *stop* working if you build SeaBIOS from my tree at git.infradead.org/users/dwmw2/seabios.git ?
I will give that a go second.
I tested: HEAD is now at e62d172 Make Xen one of the top-level build target choices with the attached config and I'm afraid it booted from the cdrom no matter what I did in my config file.
I enabled CONFIG_QEMU_HARDWARE (seabios2.config) and that didn't help (which surprised me because I associate that option with fw_cfg).
The following quick hack didn't help, so something deeper must be up, I can have another poke tomorrow and see if I can work out how this ever worked...
BTW, the disk stanza for a cdrom is 'file:/scratch/mini.iso,hdc:cdrom,r'
Ian.
diff --git a/src/paravirt.c b/src/paravirt.c index cc64094..c4ffd32 100644 --- a/src/paravirt.c +++ b/src/paravirt.c @@ -157,7 +157,7 @@ void qemu_cfg_preinit(void) char *sig = "QEMU"; int i;
- if (!CONFIG_QEMU) + if (!CONFIG_QEMU&&!CONFIG_XEN) return;
qemu_cfg_present = 1; @@ -433,7 +433,7 @@ struct QemuCfgFile {
void qemu_romfile_init(void) { - if (!CONFIG_QEMU || !qemu_cfg_present) + if ((!CONFIG_QEMU && !CONFIG_XEN) || !qemu_cfg_present) return;
u32 count;