WOOOOOT, awesome, thanks John. BTW, have this code up and
running here also now, will be new features that build on it forthcoming.

Jack


On 11/13/06, John Baldwin <[EMAIL PROTECTED]> wrote:
jhb         2006-11-13 22:23:34 UTC

  FreeBSD src repository

  Modified files:
    sys/amd64/amd64      local_apic.c mptable_pci.c nexus.c
    sys/amd64/include    apicvar.h intr_machdep.h
    sys/amd64/pci        pci_bus.c
    sys/conf             files.amd64 files.i386
    sys/i386/i386        local_apic.c mptable_pci.c nexus.c
    sys/i386/include     apicvar.h intr_machdep.h
    sys/i386/pci         pci_bus.c
  Added files:
    sys/amd64/amd64      msi.c
    sys/i386/i386        msi.c
  Log:
  MD support for PCI Message Signalled Interrupts on amd64 and i386:
  - Add a new apic_alloc_vectors() method to the local APIC support code
    to allocate N contiguous IDT vectors (aligned on a M >= N boundary).
    This function is used to allocate IDT vectors for a group of MSI
    messages.
  - Add MSI and MSI-X PICs.  The PIC code here provides methods to manage
    edge-triggered MSI messages as x86 interrupt sources.  In addition to
    the PIC methods, msi.c also includes methods to allocate and release
    MSI and MSI-X messages.  For x86, we allow for up to 128 different
    MSI IRQs starting at IRQ 256 (IRQs 0-15 are reserved for ISA IRQs,
    16-254 for APIC PCI IRQs, and IRQ 255 is reserved).
  - Add pcib_(alloc|release)_msi[x]() methods to the MD x86 PCI bridge
    drivers to bubble the request up to the nexus driver.
  - Add pcib_(alloc|release)_msi[x]() methods to the x86 nexus drivers that
    ask the MSI PIC code to allocate resources and IDT vectors.

  MFC after:      2 months

  Revision  Changes    Path
  1.33      +62 -0     src/sys/amd64/amd64/local_apic.c
  1.5       +8 -0      src/sys/amd64/amd64/mptable_pci.c
  1.1       +511 -0    src/sys/amd64/amd64/msi.c (new)
  1.70      +53 -0     src/sys/amd64/amd64/nexus.c
  1.20      +1 -0      src/sys/amd64/include/apicvar.h
  1.12      +17 -4     src/sys/amd64/include/intr_machdep.h
  1.118     +4 -0      src/sys/amd64/pci/pci_bus.c
  1.99      +1 -0      src/sys/conf/files.amd64
  1.571     +1 -0      src/sys/conf/files.i386
  1.35      +62 -0     src/sys/i386/i386/local_apic.c
  1.5       +8 -0      src/sys/i386/i386/mptable_pci.c
  1.1       +511 -0    src/sys/i386/i386/msi.c (new)
  1.65      +62 -0     src/sys/i386/i386/nexus.c
  1.20      +1 -0      src/sys/i386/include/apicvar.h
  1.14      +17 -4     src/sys/i386/include/intr_machdep.h
  1.124     +8 -0      src/sys/i386/pci/pci_bus.c

_______________________________________________
cvs-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to