Re: [PATCH 1/2] seabios: Add Local APIC NMI Structure to ACPI MADT

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

 



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 <gleb@xxxxxxxxxx>

> (2011/10/10 15:06), Lai Jiangshan wrote:
> > From: Kenji Kaneshige<kaneshige.kenji@xxxxxxxxxxxxxx>
> > 
> > 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<kaneshige.kenji@xxxxxxxxxxxxxx>
> > Reviewed-by: Lai Jiangshan<laijs@xxxxxxxxxxxxxx>
> > ---
> >   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@xxxxxxxxxxxxxxx
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> > 
> > 

--
			Gleb.
--
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