tco: do not generate an NMI
authorPaolo Bonzini <pbonzini@redhat.com>
Wed, 5 Apr 2017 08:11:36 +0000 (10:11 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 5 Apr 2017 15:23:52 +0000 (17:23 +0200)
This behavior is not indicated in the datasheet and can confuse the OS.
The TCO can trap NMIs from SERR# or IOCHK# and convert them to SMIs; but
any other TCO event is either delivered as an SMI or completely disabled.

Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
hw/acpi/tco.c
hw/isa/lpc_ich9.c
include/hw/i386/ich9.h

index b4adac88cd80585661b022e60c8ebcd00c40db0f..05b9d7ba3635a349de9514df8b1c2cd12c899700 100644 (file)
@@ -75,8 +75,6 @@ static void tco_timer_expired(void *opaque)
 
     if (pm->smi_en & ICH9_PMIO_SMI_EN_TCO_EN) {
         ich9_generate_smi();
-    } else {
-        ich9_generate_nmi();
     }
     tr->tco.rld = tr->tco.tmr;
     tco_timer_reload(tr);
index 59930dd9d09d32285b4950ab604a6c2f64e31b10..a0866c3856b5d6c998466db6c56eef3ff99e99ac 100644 (file)
@@ -312,11 +312,6 @@ void ich9_generate_smi(void)
     cpu_interrupt(first_cpu, CPU_INTERRUPT_SMI);
 }
 
-void ich9_generate_nmi(void)
-{
-    cpu_interrupt(first_cpu, CPU_INTERRUPT_NMI);
-}
-
 static int ich9_lpc_sci_irq(ICH9LPCState *lpc)
 {
     switch (lpc->d.config[ICH9_LPC_ACPI_CTRL] &
index 18dcca7ebcbfe6539bffad4149a3de22a88668ed..673d13d28f2bdc9111ce29d4252e8bdba48c9bf8 100644 (file)
@@ -21,7 +21,6 @@ void ich9_lpc_pm_init(PCIDevice *pci_lpc, bool smm_enabled);
 I2CBus *ich9_smb_init(PCIBus *bus, int devfn, uint32_t smb_io_base);
 
 void ich9_generate_smi(void);
-void ich9_generate_nmi(void);
 
 #define ICH9_CC_SIZE (16 * 1024) /* 16KB. Chipset configuration registers */