Re: [PATCH 1/5] BIOS changes for configuring irq0->inti2 override (v4)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Beth Kon wrote:
Sebastian Herbszt wrote:
Beth Kon wrote:
These patches resolve the irq0->inti2 override issue, and get the hpet working
on kvm.

Override and HPET changes are sent as a series because HPET depends on the override. Win2k8 expects the HPET interrupt on inti2, regardless of whether an override exists in the BIOS. And the HPET spec states that in legacy mode,
timer interrupt is on inti2.

The irq0->inti2 override will always be used unless the kernel cannot do irq routing (i.e., compatibility with old kernels). So if the kernel is capable, userspace sets up irq0->inti2 via the irq routing interface, and adds the
irq0->inti2 override to the MADT interrupt source override table,
and the mp table (for the no-acpi case).

Changes from v3:

- changes based on comments from Avi and Gleb.
- corrected legacy enable/disable for in-kernel PIT. The code now best
approximates a multiplexer that disables PIT interrupts when HPET is in legacy mode (as described by HPET spec). Any changes to the PIT that may occur while HPET is operating in legacy mode are saved, so if HPET leaves legacy mode, the PIT is just reenabled, with mode set to whatever the last setting from guest was. Legacy mode is disabled at least during crash and shutdown (in Linux), so this needs to be handled properly.


---
kvm/bios/rombios32.c | 60 ++++++++++++++++++++++++++++++++++++-------------
1 files changed, 44 insertions(+), 16 deletions(-)

What about the mptable entry count?
Think it would need something like

#ifdef BX_QEMU
 if (irq0_override)
   putle16(&q, smp_cpus + 17); /* entry count */
 else
   putle16(&q, smp_cpus + 18); /* entry count */
#else
 putle16(&q, smp_cpus + 18); /* entry count */
#endif

Your patch "Fix non-ACPI Timer Interrupt Routing - v3" [1] included such a change.

[1] http://lists.gnu.org/archive/html/qemu-devel/2009-04/msg01396.html
Yes, I lost that somehow! Thanks (again!).
Actually, it isn't that simple. That patch that you referred to was a qemu patch. But I still don't see it in qemu-patched bochs bios. Apparently, I did neglect to add it to the kvm bios patches that I had waiting.

Anthony, do you know what happened to this patch?


- Sebastian


--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux