From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:49704) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RJlPJ-0000yr-B8 for qemu-devel@nongnu.org; Fri, 28 Oct 2011 08:19:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RJlPF-0000pv-AO for qemu-devel@nongnu.org; Fri, 28 Oct 2011 08:19:33 -0400 Received: from mx1.redhat.com ([209.132.183.28]:46054) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RJlPE-0000pj-Vx for qemu-devel@nongnu.org; Fri, 28 Oct 2011 08:19:29 -0400 Date: Fri, 28 Oct 2011 14:19:20 +0200 From: Gleb Natapov Message-ID: <20111028121920.GB22800@redhat.com> References: <4E73200A.7040908@jp.fujitsu.com> <4E76C6AA.9080403@cn.fujitsu.com> <4E7B04DC.1030407@cn.fujitsu.com> <4E7B4B8F.507@siemens.com> <4E7C51E4.2000503@cn.fujitsu.com> <4E7F3585.40108@redhat.com> <4E7F635E.6080009@web.de> <4E8035F9.9080908@redhat.com> <4E928B59.2060906@cn.fujitsu.com> <4EAA9B32.10706@jp.fujitsu.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4EAA9B32.10706@jp.fujitsu.com> Subject: Re: [Qemu-devel] [PATCH 1/2] seabios: Add Local APIC NMI Structure to ACPI MADT List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Kenji Kaneshige Cc: Lai Jiangshan , "kvm@vger.kernel.org" , seabios@seabios.org, "qemu-devel@nongnu.org" , kevin@koconnor.net, Jan Kiszka , Avi Kivity , KAMEZAWA Hiroyuki On Fri, Oct 28, 2011 at 09:08:18PM +0900, Kenji Kaneshige wrote: > Avi, Jan, > > Could you comment on these patches? > > Inject-NMI doesn't work on Windows guest without these patches. Windows seems > to setup LVT based on ACPI NMI structure information which is missing in current > seabios. LVT LINT1 are never unmasked by Windows guest without the patches. > > Those patches were already reviewed by seabios people, but need ack from qemu/kvm > side. > > Regards, > Kenji Kaneshige > > > Acked-by: Gleb Natapov > (2011/10/10 15:06), Lai Jiangshan wrote: > > From: Kenji Kaneshige > > > > ACPI NMI Structure describes LINT pin (LINT0 or LINT1) information to > > which NMI is connected, and it is needed by OS to initialize local APIC. > > > > Signed-off-by: Kenji Kaneshige > > Reviewed-by: Lai Jiangshan > > --- > > src/acpi.c | 22 ++++++++++++++++++++-- > > 1 file changed, 20 insertions(+), 2 deletions(-) > > > > Index: seabios/src/acpi.c > > =================================================================== > > --- seabios.orig/src/acpi.c > > +++ seabios/src/acpi.c > > @@ -134,6 +134,14 @@ struct madt_intsrcovr { > > u16 flags; > > } PACKED; > > > > +struct madt_local_nmi { > > + ACPI_SUB_HEADER_DEF > > + u8 processor_id; /* ACPI processor id */ > > + u16 flags; /* MPS INTI flags */ > > + u8 lint; /* Local APIC LINT# */ > > +} PACKED; > > + > > + > > /* > > * ACPI 2.0 Generic Address Space definition. > > */ > > @@ -288,7 +296,9 @@ build_madt(void) > > int madt_size = (sizeof(struct multiple_apic_table) > > + sizeof(struct madt_processor_apic) * MaxCountCPUs > > + sizeof(struct madt_io_apic) > > - + sizeof(struct madt_intsrcovr) * 16); > > + + sizeof(struct madt_intsrcovr) * 16 > > + + sizeof(struct madt_local_nmi)); > > + > > struct multiple_apic_table *madt = malloc_high(madt_size); > > if (!madt) { > > warn_noalloc(); > > @@ -340,7 +350,15 @@ build_madt(void) > > intsrcovr++; > > } > > > > - build_header((void*)madt, APIC_SIGNATURE, (void*)intsrcovr - (void*)madt, 1); > > + struct madt_local_nmi *local_nmi = (void*)intsrcovr; > > + local_nmi->type = APIC_LOCAL_NMI; > > + local_nmi->length = sizeof(*local_nmi); > > + local_nmi->processor_id = 0xff; /* all processors */ > > + local_nmi->flags = 0; > > + local_nmi->lint = 1; /* LINT1 */ > > + local_nmi++; > > + > > + build_header((void*)madt, APIC_SIGNATURE, (void*)local_nmi - (void*)madt, 1); > > return madt; > > } > > > > -- > > To unsubscribe from this list: send the line "unsubscribe kvm" in > > the body of a message to majordomo@vger.kernel.org > > More majordomo info at http://vger.kernel.org/majordomo-info.html > > > > -- Gleb.