Altix I/O code reorganization

From: Pat Gefre <>
Date: 2004-08-05 06:14:08
We have reorganized the I/O layer in the Altix code.

We are posting this code for review before submitting for inclusion in
the 2.5 tree.

The patch set is at:

It is based off the tree

The general changes are:
o added new hardware support
o code cleanup (typedefs, include files, etc.)
o simplified the directory structure (all files were arch/ia64/sn/io/
   are now under arch/ia64/sn/ioif/)
o code size reduced by >50%
o major reorg of the code itself
o copyright updates

The patches and a short comment for each:

#    contains all the files that are no longer needed

#   The io_init.c file replaces the pci_bus_cvlink.c. A diff of the files
#   would not make much sense as the functionalities provided in pci_bus_cvlink.c
#   are no longer needed. The new functions needed are:
#        1. Getting Platform Specific Information for PCI Buses/Devices.
#        2. Getting Hardware Workaround Information.
#        3. Getting I/O Hub Information.
#   The io_init.c file basically contains all the routines that are needed to
#   allow a PCI Device Driver to perform Interrupts, PIOs and DMAs.

#   There are some minor changes in these files. The biggest change is that we have
#   broken up the SN Platform Specific DMA mapping interfaces into 3 different
#   routines:
#        1.  32Bit Direct Mapping.
#        2.  32Bit PMU Mapping.
#        3.  64Bit Direct Mapping.
#   The SN Platform has 3 different PCI/PCIX Bridges. They are not all exactly the
#   same, however they do provide the same functionality. We have abstracted
#   the DMA mapping calls so that the caller will not have to be aware of the
#   hardware differences. Example:
#        *dma_handle = (*provider->dmatrans_direct64)(pcidev_info, phys_addr,
#                                  PCIIO_DMA_CMD | PCIIO_DMA_A64);
#   The Bus Driver for this card, determines the appropriate method.

#   This set of new files supports 2 of our 3 PCI Bridges, PIC and TIOCP.
#   pcibr_dma.c is new and provides the PCI DMA Mapping routines.
#   pcibr_sal_interfaces.c is new and provides the SAL Interfaces.
#   pcibr_provider.c is new and defines the Chipset specific Provider Tables.
#   The rest of the file changes are mostly cleanup.

#   Moved a file, but mostly cleanup

#   Changes needed to remove hwgraph

#   Files needed to provide services for our I/O Hub devices

#   KDB support functions

#   code cleanup
#   ran thru Lindent
#   changes needed for new I/O structure

#   New includes with definitions for PCI devices, buses, and I/O hubs

#   code cleanup
#   misc changes needed for new I/O structure
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to
More majordomo info at
Received on Wed Aug 4 16:17:21 2004

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:29 EST