Patchwork Upstream QEMU and Xen unstable not working

login
register
mail settings
Submitter Wei Liu
Date July 18, 2011, 9:51 a.m.
Message ID <CAOsiSVWWub_fHOPym3RrOtHuVEeo24yfVcCE-nZT=FChqq8=DQ@mail.gmail.com>
Download mbox | patch
Permalink /patch/105240/
State New
Headers show

Comments

Wei Liu - July 18, 2011, 9:51 a.m.
Bug resend.

This bug was reported about one month ago. QEMU fails to start with
Xen unstable. I found that it has not been fix with latest Xen
unstable. BIOS is Seabios (with Xen patch).

Xen-unstable a2457fc25c83872a5646c93f1e31958a2f5951e9
    libxl: add LIBXL_MAC_{FMT,FMTLEN,BYTES}

    Modelled after LIBXL_UUID_... (where I also add FMTLEN).

    signed-off-by: Ian Campbell <ian.campbell@citrix.com>
    Committed-by: Ian Jackson <ian.jackson.citrix.com>

QEMU         cf973e469bd9d47c0460347764c1315a6180e13c
    set ELF_HWCAP for SPARC and SPARC64

    setting ELF_HWCAP fixes dynamic library loading for Linux/sparc64
    This patch allows loading busybox from Debian 6 initrd

    Signed-off-by: Artyom Tarasenko <atar4qemu@gmail.com>
    Signed-off-by: Blue Swirl <blauwirbel@gmail.com>


These are not the problematic commits, I didn't do a regression
test. I just choose my latest commits as testing base.

Also, please note that
Xen-unstable a8f9242a7021a1febdc2ff7f8c6f6b66ee7e6745
does not trigger this bug.

Stefano and Anthony, you once said that you were going to setup a
public QEMU repository for Xen, how is it going now?

Wei.

------QEMU log------

char device redirected to /dev/pts/2
Warning: more nics requested than this machine supports; some have been ignored
qemu: hardware error: register_ioport_write: invalid opaque for address 0xc000
CPU #0:
EAX=00000000 EBX=00000000 ECX=00000000 EDX=00000633
ESI=00000000 EDI=00000000 EBP=00000000 ESP=00000000
EIP=0000fff0 EFL=00000002 [-------] CPL=0 II=0 A20=1 SMM=0 HLT=1
ES =0000 00000000 0000ffff 00009300
CS =f000 ffff0000 0000ffff 00009b00
SS =0000 00000000 0000ffff 00009300
DS =0000 00000000 0000ffff 00009300
FS =0000 00000000 0000ffff 00009300
GS =0000 00000000 0000ffff 00009300
LDT=0000 00000000 0000ffff 00008200
TR =0000 00000000 0000ffff 00008b00
GDT=     00000000 0000ffff
IDT=     00000000 0000ffff
CR0=60000010 CR2=00000000 CR3=00000000 CR4=00000000
DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000
DR6=ffff0ff0 DR7=00000400
EFER=0000000000000000
FCW=037f FSW=0000 [ST=0] FTW=00 MXCSR=00001f80
FPR0=0000000000000000 0000 FPR1=0000000000000000 0000
FPR2=0000000000000000 0000 FPR3=0000000000000000 0000
FPR4=0000000000000000 0000 FPR5=0000000000000000 0000
FPR6=0000000000000000 0000 FPR7=0000000000000000 0000
XMM00=00000000000000000000000000000000 XMM01=00000000000000000000000000000000
XMM02=00000000000000000000000000000000 XMM03=00000000000000000000000000000000
XMM04=00000000000000000000000000000000 XMM05=00000000000000000000000000000000
XMM06=00000000000000000000000000000000 XMM07=00000000000000000000000000000000

------Seabios patch------
     dprintf(3, "enabling shadow ram\n");
@@ -127,7 +127,7 @@ static const struct pci_device_id
dram_controller_make_readonly_tbl[] = {
 void
 make_bios_readonly(void)
 {
-    if (CONFIG_COREBOOT)
+    if (CONFIG_COREBOOT || CONFIG_XEN)
         return;

     dprintf(3, "locking shadow ram\n");

------Xen seabios config------
#
# Automatically generated make config: don't edit
# SeaBIOS Configuration
# Wed Apr 20 00:09:35 2011
#

#
# General Features
#
# CONFIG_COREBOOT is not set
CONFIG_XEN=y
CONFIG_THREADS=y
CONFIG_THREAD_OPTIONROMS=y
CONFIG_RELOCATE_INIT=y
CONFIG_BOOTMENU=y
CONFIG_BOOTMENU_WAIT=1000
# CONFIG_BOOTSPLASH is not set

#
# Hardware support
#
CONFIG_ATA=y
CONFIG_ATA_DMA=y
CONFIG_ATA_PIO32=y
CONFIG_AHCI=y
CONFIG_VIRTIO_BLK=y
CONFIG_FLOPPY=y
CONFIG_PS2PORT=y
CONFIG_USB=y
CONFIG_USB_UHCI=y
CONFIG_USB_OHCI=y
CONFIG_USB_EHCI=y
CONFIG_USB_MSC=y
CONFIG_USB_HUB=y
CONFIG_USB_KEYBOARD=y
CONFIG_USB_MOUSE=y
CONFIG_SERIAL=y
CONFIG_LPT=y
# CONFIG_EXTRA_PCI_ROOTS is not set
# CONFIG_USE_SMM is not set
CONFIG_MTRR_INIT=y

#
# BIOS interfaces
#
CONFIG_DRIVES=y
# CONFIG_CDROM_BOOT is not set
CONFIG_PCIBIOS=y
CONFIG_APMBIOS=y
CONFIG_PNPBIOS=y
CONFIG_OPTIONROMS=y
CONFIG_OPTIONROMS_DEPLOYED=y
CONFIG_OPTIONROMS_CHECKSUM=y
CONFIG_PMM=y
CONFIG_BOOT=y
CONFIG_KEYBOARD=y
CONFIG_KBD_CALL_INT15_4F=y
CONFIG_MOUSE=y
CONFIG_S3_RESUME=y
# CONFIG_S3_RESUME_VGA_INIT is not set
# CONFIG_DISABLE_A20 is not set

#
# BIOS Tables
#
CONFIG_PIRTABLE=y
CONFIG_MPTABLE=y
CONFIG_SMBIOS=y
CONFIG_ACPI=y

#
# Debugging
#
CONFIG_DEBUG_LEVEL=9
CONFIG_DEBUG_SERIAL=y
# CONFIG_SCREEN_AND_DEBUG is not set
Ian Campbell - July 18, 2011, 10:03 a.m.
On Mon, 2011-07-18 at 10:51 +0100, Wei Liu wrote:
> Bug resend.
> 
> This bug was reported about one month ago. QEMU fails to start with
> Xen unstable. I found that it has not been fix with latest Xen
> unstable. BIOS is Seabios (with Xen patch).

Please use current mainline seabios.git -- it does not require any
additional patches.

http://wiki.xensource.com/xenwiki/QEMUUpstream also includes an updated
SeaBIOS .config which you might try.

Ian.

> 
> Xen-unstable a2457fc25c83872a5646c93f1e31958a2f5951e9
>     libxl: add LIBXL_MAC_{FMT,FMTLEN,BYTES}
> 
>     Modelled after LIBXL_UUID_... (where I also add FMTLEN).
> 
>     signed-off-by: Ian Campbell <ian.campbell@citrix.com>
>     Committed-by: Ian Jackson <ian.jackson.citrix.com>
> 
> QEMU         cf973e469bd9d47c0460347764c1315a6180e13c
>     set ELF_HWCAP for SPARC and SPARC64
> 
>     setting ELF_HWCAP fixes dynamic library loading for Linux/sparc64
>     This patch allows loading busybox from Debian 6 initrd
> 
>     Signed-off-by: Artyom Tarasenko <atar4qemu@gmail.com>
>     Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
> 
> 
> These are not the problematic commits, I didn't do a regression
> test. I just choose my latest commits as testing base.
> 
> Also, please note that
> Xen-unstable a8f9242a7021a1febdc2ff7f8c6f6b66ee7e6745
> does not trigger this bug.
> 
> Stefano and Anthony, you once said that you were going to setup a
> public QEMU repository for Xen, how is it going now?
> 
> Wei.
> 
> ------QEMU log------
> 
> char device redirected to /dev/pts/2
> Warning: more nics requested than this machine supports; some have been ignored
> qemu: hardware error: register_ioport_write: invalid opaque for address 0xc000
> CPU #0:
> EAX=00000000 EBX=00000000 ECX=00000000 EDX=00000633
> ESI=00000000 EDI=00000000 EBP=00000000 ESP=00000000
> EIP=0000fff0 EFL=00000002 [-------] CPL=0 II=0 A20=1 SMM=0 HLT=1
> ES =0000 00000000 0000ffff 00009300
> CS =f000 ffff0000 0000ffff 00009b00
> SS =0000 00000000 0000ffff 00009300
> DS =0000 00000000 0000ffff 00009300
> FS =0000 00000000 0000ffff 00009300
> GS =0000 00000000 0000ffff 00009300
> LDT=0000 00000000 0000ffff 00008200
> TR =0000 00000000 0000ffff 00008b00
> GDT=     00000000 0000ffff
> IDT=     00000000 0000ffff
> CR0=60000010 CR2=00000000 CR3=00000000 CR4=00000000
> DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000
> DR6=ffff0ff0 DR7=00000400
> EFER=0000000000000000
> FCW=037f FSW=0000 [ST=0] FTW=00 MXCSR=00001f80
> FPR0=0000000000000000 0000 FPR1=0000000000000000 0000
> FPR2=0000000000000000 0000 FPR3=0000000000000000 0000
> FPR4=0000000000000000 0000 FPR5=0000000000000000 0000
> FPR6=0000000000000000 0000 FPR7=0000000000000000 0000
> XMM00=00000000000000000000000000000000 XMM01=00000000000000000000000000000000
> XMM02=00000000000000000000000000000000 XMM03=00000000000000000000000000000000
> XMM04=00000000000000000000000000000000 XMM05=00000000000000000000000000000000
> XMM06=00000000000000000000000000000000 XMM07=00000000000000000000000000000000
> 
> ------Seabios patch------
> diff --git a/src/Kconfig b/src/Kconfig
> index 6d55b23..6829f71 100644
> --- a/src/Kconfig
> +++ b/src/Kconfig
> @@ -10,6 +10,12 @@ menu "General Features"
>          help
>              Configure as a coreboot payload.
> 
> +    config XEN
> +        bool "Build for Xen HVM"
> +        default n
> +        help
> +            Configure to be used by xen hvmloader, for a HVM guest.
> +
>      config THREADS
>          bool "Parallelize hardware init"
>          default y
> diff --git a/src/shadow.c b/src/shadow.c
> index ed530e0..a778701 100644
> --- a/src/shadow.c
> +++ b/src/shadow.c
> @@ -102,7 +102,7 @@ static const struct pci_device_id
> dram_controller_make_writable_tbl[] = {
>  void
>  make_bios_writable(void)
>  {
> -    if (CONFIG_COREBOOT)
> +    if (CONFIG_COREBOOT || CONFIG_XEN)
>          return;
> 
>      dprintf(3, "enabling shadow ram\n");
> @@ -127,7 +127,7 @@ static const struct pci_device_id
> dram_controller_make_readonly_tbl[] = {
>  void
>  make_bios_readonly(void)
>  {
> -    if (CONFIG_COREBOOT)
> +    if (CONFIG_COREBOOT || CONFIG_XEN)
>          return;
> 
>      dprintf(3, "locking shadow ram\n");
> 
> ------Xen seabios config------
> #
> # Automatically generated make config: don't edit
> # SeaBIOS Configuration
> # Wed Apr 20 00:09:35 2011
> #
> 
> #
> # General Features
> #
> # CONFIG_COREBOOT is not set
> CONFIG_XEN=y
> CONFIG_THREADS=y
> CONFIG_THREAD_OPTIONROMS=y
> CONFIG_RELOCATE_INIT=y
> CONFIG_BOOTMENU=y
> CONFIG_BOOTMENU_WAIT=1000
> # CONFIG_BOOTSPLASH is not set
> 
> #
> # Hardware support
> #
> CONFIG_ATA=y
> CONFIG_ATA_DMA=y
> CONFIG_ATA_PIO32=y
> CONFIG_AHCI=y
> CONFIG_VIRTIO_BLK=y
> CONFIG_FLOPPY=y
> CONFIG_PS2PORT=y
> CONFIG_USB=y
> CONFIG_USB_UHCI=y
> CONFIG_USB_OHCI=y
> CONFIG_USB_EHCI=y
> CONFIG_USB_MSC=y
> CONFIG_USB_HUB=y
> CONFIG_USB_KEYBOARD=y
> CONFIG_USB_MOUSE=y
> CONFIG_SERIAL=y
> CONFIG_LPT=y
> # CONFIG_EXTRA_PCI_ROOTS is not set
> # CONFIG_USE_SMM is not set
> CONFIG_MTRR_INIT=y
> 
> #
> # BIOS interfaces
> #
> CONFIG_DRIVES=y
> # CONFIG_CDROM_BOOT is not set
> CONFIG_PCIBIOS=y
> CONFIG_APMBIOS=y
> CONFIG_PNPBIOS=y
> CONFIG_OPTIONROMS=y
> CONFIG_OPTIONROMS_DEPLOYED=y
> CONFIG_OPTIONROMS_CHECKSUM=y
> CONFIG_PMM=y
> CONFIG_BOOT=y
> CONFIG_KEYBOARD=y
> CONFIG_KBD_CALL_INT15_4F=y
> CONFIG_MOUSE=y
> CONFIG_S3_RESUME=y
> # CONFIG_S3_RESUME_VGA_INIT is not set
> # CONFIG_DISABLE_A20 is not set
> 
> #
> # BIOS Tables
> #
> CONFIG_PIRTABLE=y
> CONFIG_MPTABLE=y
> CONFIG_SMBIOS=y
> CONFIG_ACPI=y
> 
> #
> # Debugging
> #
> CONFIG_DEBUG_LEVEL=9
> CONFIG_DEBUG_SERIAL=y
> # CONFIG_SCREEN_AND_DEBUG is not set
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xensource.com
> http://lists.xensource.com/xen-devel
Stefano Stabellini - July 18, 2011, 4:17 p.m.
On Mon, 18 Jul 2011, Wei Liu wrote:
> Bug resend.
> 
> This bug was reported about one month ago. QEMU fails to start with
> Xen unstable. I found that it has not been fix with latest Xen
> unstable. BIOS is Seabios (with Xen patch).
> 
> Xen-unstable a2457fc25c83872a5646c93f1e31958a2f5951e9
>     libxl: add LIBXL_MAC_{FMT,FMTLEN,BYTES}
> 
>     Modelled after LIBXL_UUID_... (where I also add FMTLEN).
> 
>     signed-off-by: Ian Campbell <ian.campbell@citrix.com>
>     Committed-by: Ian Jackson <ian.jackson.citrix.com>
> 
> QEMU         cf973e469bd9d47c0460347764c1315a6180e13c
>     set ELF_HWCAP for SPARC and SPARC64
> 
>     setting ELF_HWCAP fixes dynamic library loading for Linux/sparc64
>     This patch allows loading busybox from Debian 6 initrd
> 
>     Signed-off-by: Artyom Tarasenko <atar4qemu@gmail.com>
>     Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
> 
> 
> These are not the problematic commits, I didn't do a regression
> test. I just choose my latest commits as testing base.
> 
> Also, please note that
> Xen-unstable a8f9242a7021a1febdc2ff7f8c6f6b66ee7e6745
> does not trigger this bug.
> 
> Stefano and Anthony, you once said that you were going to setup a
> public QEMU repository for Xen, how is it going now?

We are getting there, but there are still too many xen patches floating
around qemu-devel at the moment to announce a new qemu xen tree.
However you can try the following branch for now:

git://xenbits.xen.org/people/sstabellini/qemu-dm.git xen-next
Wei Liu - July 19, 2011, 2:53 a.m.
On Mon, 2011-07-18 at 11:03 +0100, Ian Campbell wrote:
> On Mon, 2011-07-18 at 10:51 +0100, Wei Liu wrote:
> > Bug resend.
> > 
> > This bug was reported about one month ago. QEMU fails to start with
> > Xen unstable. I found that it has not been fix with latest Xen
> > unstable. BIOS is Seabios (with Xen patch).
> 
> Please use current mainline seabios.git -- it does not require any
> additional patches.
> 
> http://wiki.xensource.com/xenwiki/QEMUUpstream also includes an updated
> SeaBIOS .config which you might try.
> 
> Ian.
> 

Thanks Ian. This bug is fixed. But I spot new bug with Stefano's
xen-next QEMU.

------mainline seabios with xen-next------
(XEN) HVM7: HVM Loader
(XEN) HVM7: Detected Xen v4.2-unstable
(XEN) HVM7: Xenbus rings @0xfeffc000, event channel 2
(XEN) HVM7: System requested SeaBIOS
(XEN) HVM7: CPU speed is 2993 MHz
(XEN) irq.c:264: Dom7 PCI link 0 changed 0 -> 5
(XEN) HVM7: PCI-ISA link 0 routed to IRQ5
(XEN) irq.c:264: Dom7 PCI link 1 changed 0 -> 10
(XEN) HVM7: PCI-ISA link 1 routed to IRQ10
(XEN) irq.c:264: Dom7 PCI link 2 changed 0 -> 11
(XEN) HVM7: PCI-ISA link 2 routed to IRQ11
(XEN) irq.c:264: Dom7 PCI link 3 changed 0 -> 5
(XEN) HVM7: PCI-ISA link 3 routed to IRQ5
(XEN) HVM7: *** HVMLoader assertion '(devfn != PCI_ISA_DEVFN) ||
((vendor_id == 0x8086) &&
(XEN) HVM7:  (device_id == 0x7000))' failed at pci.c:78
(XEN) HVM7: *** HVMLoader crashed.

If I use Anthony's old QEMU tree, qemu-dm-15, HVM boots up. But there
are issues with irq binding.

------mainline seabios with qemu-dm-15------
(XEN) irq.c:344: Dom6 callback via changed to Direct Vector 0xf3
(XEN) irq.c:1979: dom6: pirq 16 or emuirq 8 already mapped
(XEN) irq.c:1979: dom6: pirq 16 or emuirq 12 already mapped
(XEN) irq.c:1979: dom6: pirq 16 or emuirq 1 already mapped
(XEN) irq.c:1979: dom6: pirq 16 or emuirq 6 already mapped
(XEN) irq.c:1979: dom6: pirq 16 or emuirq 4 already mapped
(XEN) irq.c:1979: dom6: pirq 16 or emuirq 7 already mapped
(XEN) event_channel.c:341:d6 EVTCHNOP failure: error -17
(XEN) event_channel.c:341:d6 EVTCHNOP failure: error -17
(XEN) event_channel.c:341:d6 EVTCHNOP failure: error -17
(XEN) event_channel.c:341:d6 EVTCHNOP failure: error -17


Wei.
Ian Campbell - July 19, 2011, 7:14 a.m.
On Tue, 2011-07-19 at 03:53 +0100, Wei Liu wrote:
> On Mon, 2011-07-18 at 11:03 +0100, Ian Campbell wrote:
> > On Mon, 2011-07-18 at 10:51 +0100, Wei Liu wrote:
> > > Bug resend.
> > > 
> > > This bug was reported about one month ago. QEMU fails to start with
> > > Xen unstable. I found that it has not been fix with latest Xen
> > > unstable. BIOS is Seabios (with Xen patch).
> > 
> > Please use current mainline seabios.git -- it does not require any
> > additional patches.
> > 
> > http://wiki.xensource.com/xenwiki/QEMUUpstream also includes an updated
> > SeaBIOS .config which you might try.
> > 
> > Ian.
> > 
> 
> Thanks Ian. This bug is fixed. But I spot new bug with Stefano's
> xen-next QEMU.
> 
> ------mainline seabios with xen-next------
> (XEN) HVM7: HVM Loader
> (XEN) HVM7: Detected Xen v4.2-unstable
> (XEN) HVM7: Xenbus rings @0xfeffc000, event channel 2
> (XEN) HVM7: System requested SeaBIOS
> (XEN) HVM7: CPU speed is 2993 MHz
> (XEN) irq.c:264: Dom7 PCI link 0 changed 0 -> 5
> (XEN) HVM7: PCI-ISA link 0 routed to IRQ5
> (XEN) irq.c:264: Dom7 PCI link 1 changed 0 -> 10
> (XEN) HVM7: PCI-ISA link 1 routed to IRQ10
> (XEN) irq.c:264: Dom7 PCI link 2 changed 0 -> 11
> (XEN) HVM7: PCI-ISA link 2 routed to IRQ11
> (XEN) irq.c:264: Dom7 PCI link 3 changed 0 -> 5
> (XEN) HVM7: PCI-ISA link 3 routed to IRQ5
> (XEN) HVM7: *** HVMLoader assertion '(devfn != PCI_ISA_DEVFN) ||
> ((vendor_id == 0x8086) &&
> (XEN) HVM7:  (device_id == 0x7000))' failed at pci.c:78
> (XEN) HVM7: *** HVMLoader crashed.

Anthony posted a patch for this to qemu-devel a few weeks back, I think
it was "hw/piix_pci.c: Fix PIIX3-xen to initialize ids" (did I see a
pull request for it recently? If so then it might be in the main tree by
now...)

> If I use Anthony's old QEMU tree, qemu-dm-15, HVM boots up. But there
> are issues with irq binding.

I don't know about this one I'm afraid.

Ian.

> ------mainline seabios with qemu-dm-15------
> (XEN) irq.c:344: Dom6 callback via changed to Direct Vector 0xf3
> (XEN) irq.c:1979: dom6: pirq 16 or emuirq 8 already mapped
> (XEN) irq.c:1979: dom6: pirq 16 or emuirq 12 already mapped
> (XEN) irq.c:1979: dom6: pirq 16 or emuirq 1 already mapped
> (XEN) irq.c:1979: dom6: pirq 16 or emuirq 6 already mapped
> (XEN) irq.c:1979: dom6: pirq 16 or emuirq 4 already mapped
> (XEN) irq.c:1979: dom6: pirq 16 or emuirq 7 already mapped
> (XEN) event_channel.c:341:d6 EVTCHNOP failure: error -17
> (XEN) event_channel.c:341:d6 EVTCHNOP failure: error -17
> (XEN) event_channel.c:341:d6 EVTCHNOP failure: error -17
> (XEN) event_channel.c:341:d6 EVTCHNOP failure: error -17
> 
> 
> Wei.
> 
>
Wei Liu - July 19, 2011, 8:45 a.m.
On Tue, 2011-07-19 at 08:14 +0100, Ian Campbell wrote:
> On Tue, 2011-07-19 at 03:53 +0100, Wei Liu wrote:
> > On Mon, 2011-07-18 at 11:03 +0100, Ian Campbell wrote:
> > > On Mon, 2011-07-18 at 10:51 +0100, Wei Liu wrote:
> > > > Bug resend.
> > > > 
> > > > This bug was reported about one month ago. QEMU fails to start with
> > > > Xen unstable. I found that it has not been fix with latest Xen
> > > > unstable. BIOS is Seabios (with Xen patch).
> > > 
> > > Please use current mainline seabios.git -- it does not require any
> > > additional patches.
> > > 
> > > http://wiki.xensource.com/xenwiki/QEMUUpstream also includes an updated
> > > SeaBIOS .config which you might try.
> > > 
> > > Ian.
> > > 
> > 
> > Thanks Ian. This bug is fixed. But I spot new bug with Stefano's
> > xen-next QEMU.
> > 
> > ------mainline seabios with xen-next------
> > (XEN) HVM7: HVM Loader
> > (XEN) HVM7: Detected Xen v4.2-unstable
> > (XEN) HVM7: Xenbus rings @0xfeffc000, event channel 2
> > (XEN) HVM7: System requested SeaBIOS
> > (XEN) HVM7: CPU speed is 2993 MHz
> > (XEN) irq.c:264: Dom7 PCI link 0 changed 0 -> 5
> > (XEN) HVM7: PCI-ISA link 0 routed to IRQ5
> > (XEN) irq.c:264: Dom7 PCI link 1 changed 0 -> 10
> > (XEN) HVM7: PCI-ISA link 1 routed to IRQ10
> > (XEN) irq.c:264: Dom7 PCI link 2 changed 0 -> 11
> > (XEN) HVM7: PCI-ISA link 2 routed to IRQ11
> > (XEN) irq.c:264: Dom7 PCI link 3 changed 0 -> 5
> > (XEN) HVM7: PCI-ISA link 3 routed to IRQ5
> > (XEN) HVM7: *** HVMLoader assertion '(devfn != PCI_ISA_DEVFN) ||
> > ((vendor_id == 0x8086) &&
> > (XEN) HVM7:  (device_id == 0x7000))' failed at pci.c:78
> > (XEN) HVM7: *** HVMLoader crashed.
> 
> Anthony posted a patch for this to qemu-devel a few weeks back, I think
> it was "hw/piix_pci.c: Fix PIIX3-xen to initialize ids" (did I see a
> pull request for it recently? If so then it might be in the main tree by
> now...)
> 

Good, this is it.

But this patch is not yet pulled in the tree.

Wei.
Ian Campbell - July 19, 2011, 10:44 a.m.
On Mon, 2011-07-18 at 17:17 +0100, Stefano Stabellini wrote:
> On Mon, 18 Jul 2011, Wei Liu wrote:
> > Stefano and Anthony, you once said that you were going to setup a
> > public QEMU repository for Xen, how is it going now?
> 
> We are getting there, but there are still too many xen patches floating
> around qemu-devel at the moment to announce a new qemu xen tree.

Isn't the presence of all those patches floating around qemu-devel and
the need for people to trawl around collecting so as to have a working
build exactly the problem such a tree would be intended to solve? i.e. a
one stop place to pick up pending patches before they hit the main tree.

> However you can try the following branch for now:
> 
> git://xenbits.xen.org/people/sstabellini/qemu-dm.git xen-next

Ian.
Stefano Stabellini - July 19, 2011, 11:09 a.m.
On Tue, 19 Jul 2011, Wei Liu wrote:
> Good, this is it.
> 
> But this patch is not yet pulled in the tree.
 
I pushed few commits that I had in my local tree, they should be in
xen-next now.
Stefano Stabellini - July 19, 2011, 11:11 a.m.
On Tue, 19 Jul 2011, Ian Campbell wrote:
> On Mon, 2011-07-18 at 17:17 +0100, Stefano Stabellini wrote:
> > On Mon, 18 Jul 2011, Wei Liu wrote:
> > > Stefano and Anthony, you once said that you were going to setup a
> > > public QEMU repository for Xen, how is it going now?
> > 
> > We are getting there, but there are still too many xen patches floating
> > around qemu-devel at the moment to announce a new qemu xen tree.
> 
> Isn't the presence of all those patches floating around qemu-devel and
> the need for people to trawl around collecting so as to have a working
> build exactly the problem such a tree would be intended to solve? i.e. a
> one stop place to pick up pending patches before they hit the main tree.
> 

Yes, however the "base" hasn't been stable enough so far even collecting
all the patches together.
With Anthony's latest patch series we are almost there.
Wei Liu - July 19, 2011, 11:25 a.m.
On Tue, 2011-07-19 at 12:09 +0100, Stefano Stabellini wrote:
> On Tue, 19 Jul 2011, Wei Liu wrote:
> > Good, this is it.
> > 
> > But this patch is not yet pulled in the tree.
>  
> I pushed few commits that I had in my local tree, they should be in
> xen-next now.

The commit 2aa8f492c85604b91b263350560042d632fcdeb2 in your xen-next
tree.

Author: Anthony PERARD <anthony.perard@citrix.com>
Date:   Wed Jul 6 18:58:14 2011 +0100

    hw/piix_pci.c: Fix PIIX3-xen to initialize ids
    
    Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>

The content mismatch with description.

It patches hw/ide/piix.c, which doesn't solve the problem. It should be
hw/piix_pci.c .

Seems that you got the wrong patch. The right one is here.

http://marc.info/?l=qemu-devel&m=130876651402847&w=2

Wei.
Stefano Stabellini - July 19, 2011, 12:04 p.m.
On Tue, 19 Jul 2011, Wei Liu wrote:
> On Tue, 2011-07-19 at 12:09 +0100, Stefano Stabellini wrote:
> > On Tue, 19 Jul 2011, Wei Liu wrote:
> > > Good, this is it.
> > > 
> > > But this patch is not yet pulled in the tree.
> >  
> > I pushed few commits that I had in my local tree, they should be in
> > xen-next now.
> 
> The commit 2aa8f492c85604b91b263350560042d632fcdeb2 in your xen-next
> tree.
> 
> Author: Anthony PERARD <anthony.perard@citrix.com>
> Date:   Wed Jul 6 18:58:14 2011 +0100
> 
>     hw/piix_pci.c: Fix PIIX3-xen to initialize ids
>     
>     Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
> 
> The content mismatch with description.
> 
> It patches hw/ide/piix.c, which doesn't solve the problem. It should be
> hw/piix_pci.c .
> 
> Seems that you got the wrong patch. The right one is here.
> 
> http://marc.info/?l=qemu-devel&m=130876651402847&w=2
> 

Yeah, I realized it right after sending the email.

Unfortunately there is also a regression in Xen, similar to the one
fixed by 23550, that causes PV on HVM guests to hang during boot at the
moment.
The offending commit is CS 23573:

"replace d->nr_pirqs sized arrays with radix tree"

Patch

diff --git a/src/Kconfig b/src/Kconfig
index 6d55b23..6829f71 100644
--- a/src/Kconfig
+++ b/src/Kconfig
@@ -10,6 +10,12 @@  menu "General Features"
         help
             Configure as a coreboot payload.

+    config XEN
+        bool "Build for Xen HVM"
+        default n
+        help
+            Configure to be used by xen hvmloader, for a HVM guest.
+
     config THREADS
         bool "Parallelize hardware init"
         default y
diff --git a/src/shadow.c b/src/shadow.c
index ed530e0..a778701 100644
--- a/src/shadow.c
+++ b/src/shadow.c
@@ -102,7 +102,7 @@  static const struct pci_device_id
dram_controller_make_writable_tbl[] = {
 void
 make_bios_writable(void)
 {
-    if (CONFIG_COREBOOT)
+    if (CONFIG_COREBOOT || CONFIG_XEN)
         return;