svn commit: r219964 - projects/altix/sys/ia64/sgisn

John Baldwin jhb at freebsd.org
Thu Mar 24 17:19:20 UTC 2011


On Thursday, March 24, 2011 12:56:34 pm Marcel Moolenaar wrote:
> Author: marcel
> Date: Thu Mar 24 16:56:33 2011
> New Revision: 219964
> URL: http://svn.freebsd.org/changeset/base/219964
> 
> Log:
>   Add necessary address space mapping. The Altix architecture has distinct
>   address spaces for PCI devices and CPUs. That is, the S-Hub translates
>   addresses on the FSB and coming from CPUs to addresses valid on the PCI bus.
>   This is abstracted and implemented in FreeBSD by having the handle contain the
>   CPU address, while the resource itself describes the PCI bus address. Since
>   devices are mapped when resources are activated and the bus handle is derived
>   from that, have the SGI PCI bus driver handle the activation of resources
>   instead of passing it up to the nexus.
>   
>   Note that the Altix architecture allows for IRQ values larger than 255 even
>   though the intline register in the PCI configuration space does not. FreeBSD
>   also doesn't support it by virtue of having an IRQ resource space that's
>   limited. On my machines the IRQ values are within bounds so I'm not going to
>   worry about this detail. It may very well be theoretical.

FreeBSD certainly supports any arbitrary range of unsigned long values as IRQ
resources.  MSI on x86 uses IRQs > 255 for example.  The PCI bus code does
assume that IRQ 255 is a cookie value that can be used for an invalid INTx
IRQ, but that's the only assumption it makes.

The limit on the IRQ rman in the nexus is put in place by each platform.  If
you want a larger range, just fix the initialization of your rman.

-- 
John Baldwin


More information about the svn-src-projects mailing list