PCI code from FreeBSD

Sepherosa Ziehau sepherosa at gmail.com
Thu Jul 2 18:58:41 PDT 2009

On Fri, Jul 3, 2009 at 2:01 AM, Matthew
Dillon<dillon at apollo.backplane.com> wrote:
> :Yep. All the ACPI-related work is here:
> :
> :       http://github.com/polachok/dragonflybsd/tree/acpi2
> :
> :See dmesg attached for example.

It shows ICU works.

>    Ok, how does this integrate with the APIC_IO kernel config
>    option verses not having it?  Will not having APIC_IO still
>    back-off to just using the BIOS intr defaults for the
>    ICU (8259)?

I think before bringing the ACPI code, we have to change our APIC
interrupt handling code:
FreeBSD uses ACPI GSI (ACPI3.0a, page120) concept directly (I think
they apply it to the MP table too).  So more than 24 idt vectors may
be used, if, for example, there are two 24pin I/O APICs.  As far as I
understand our apic_abi.c, we only support 24 idt vectors; and the
gd_[if]pending limit us to 32 vectors.  Before we could sort that out
or at least introduce another mapping layer, bringing in ACPI routing
code from FreeBSD directly will cause trouble, IMHO.

As about the new PCI code, I think we could bring it, but to compat
with our APIC_IO, we probably need to put back the old APIC_IO stuffs
(e.g. config I/O APIC pins during pci_cfgread(intline))

Best Regards,

Live Free or Die

More information about the Kernel mailing list