Commit 8c9f42f3 authored by Paolo Bonzini's avatar Paolo Bonzini
Browse files

tco: do not generate an NMI



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: default avatarLaszlo Ersek <lersek@redhat.com>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent 87cc4c61
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -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);
+0 −5
Original line number Diff line number Diff line
@@ -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] &
+0 −1
Original line number Diff line number Diff line
@@ -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 */