1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-25 11:37:56 +00:00
freebsd/sys/amd64/vmm/io
John Baldwin b3e9732a76 Implement a PCI interrupt router to route PCI legacy INTx interrupts to
the legacy 8259A PICs.
- Implement an ICH-comptabile PCI interrupt router on the lpc device with
  8 steerable pins configured via config space access to byte-wide
  registers at 0x60-63 and 0x68-6b.
- For each configured PCI INTx interrupt, route it to both an I/O APIC
  pin and a PCI interrupt router pin.  When a PCI INTx interrupt is
  asserted, ensure that both pins are asserted.
- Provide an initial routing of PCI interrupt router (PIRQ) pins to
  8259A pins (ISA IRQs) and initialize the interrupt line config register
  for the corresponding PCI function with the ISA IRQ as this matches
  existing hardware.
- Add a global _PIC method for OSPM to select the desired interrupt routing
  configuration.
- Update the _PRT methods for PCI bridges to provide both APIC and legacy
  PRT tables and return the appropriate table based on the configured
  routing configuration.  Note that if the lpc device is not configured, no
  routing information is provided.
- When the lpc device is enabled, provide ACPI PCI link devices corresponding
  to each PIRQ pin.
- Add a VMM ioctl to adjust the trigger mode (edge vs level) for 8259A
  pins via the ELCR.
- Mark the power management SCI as level triggered.
- Don't hardcode the number of elements in Packages in the source for
  the DSDT.  iasl(8) will fill in the actual number of elements, and
  this makes it simpler to generate a Package with a variable number of
  elements.

Reviewed by:	tycho
2014-05-15 14:16:55 +00:00
..
iommu.c Re-write bhyve's I/O MMU handling in terms of PCI RID. 2014-04-01 15:54:03 +00:00
iommu.h Re-write bhyve's I/O MMU handling in terms of PCI RID. 2014-04-01 15:54:03 +00:00
ppt.c Re-write bhyve's I/O MMU handling in terms of PCI RID. 2014-04-01 15:54:03 +00:00
ppt.h There is no need to initialize the IOMMU if no passthru devices have been 2014-01-21 03:01:34 +00:00
vatpic.c Implement a PCI interrupt router to route PCI legacy INTx interrupts to 2014-05-15 14:16:55 +00:00
vatpic.h Implement a PCI interrupt router to route PCI legacy INTx interrupts to 2014-05-15 14:16:55 +00:00
vatpit.c Add support for the PIT 'readback' command -- based on a patch by grehan@. 2014-04-18 16:05:12 +00:00
vatpit.h Respect the destination operand size of the 'Input from Port' instruction. 2014-04-18 15:22:56 +00:00
vhpet.c Replace the userspace atpic stub with a more functional vmm.ko model. 2014-03-11 16:56:00 +00:00
vhpet.h Add HPET device emulation to bhyve. 2013-11-25 19:04:51 +00:00
vioapic.c Use spinlocks to lock accesses to the vioapic. 2014-02-17 22:57:51 +00:00
vioapic.h Add support for level triggered interrupt pins on the vioapic. Prior to this 2013-11-27 22:18:08 +00:00
vlapic_priv.h Fix a race wherein the source of an interrupt vector is wrongly 2014-03-15 23:09:34 +00:00
vlapic.c Change the vlapic timer frequency to be in the ballpark of contemporary 2014-04-23 16:50:40 +00:00
vlapic.h Add support for x2APIC virtualization assist in Intel VT-x. 2014-02-21 06:03:54 +00:00