qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] Emulation of ICH PIRQ#16~23


From: liu ping fan
Subject: [Qemu-devel] Emulation of ICH PIRQ#16~23
Date: Wed, 21 Aug 2013 10:49:24 +0800

When I debug the hpet with linux v3.10. I found it can not work with
linux-2.6/Documentation/timers/hpet_example.c. But on bare metal,
hpet_example can work!
After tracing, I found the trouble is caused by
drivers/char/hpet.c  hpet_timer_set_irq()
                gsi = acpi_register_gsi(NULL, irq, ACPI_LEVEL_SENSITIVE,
                                        ACPI_ACTIVE_LOW); --->
According to ICH spec, #PIRQ16~23 will be low-active. And there is an
internal inversion in ICH before the input of ioapic. But in qemu, we
lack the emulation of this  inversion.
To fix the hpet problem, I have some solutions.
--Emulation the inversion only in hpet. This will keep current PCI
INTx# logic unchanged.
--Emulation the inversion in ioapic (both qemu and kernel), so PCI
INTx# logic will change.

Any suggestion?

Thx,
Pingfan



reply via email to

[Prev in Thread] Current Thread [Next in Thread]