cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

ixp4xx.rst (6491B)


      1===========================================================
      2Release Notes for Linux on Intel's IXP4xx Network Processor
      3===========================================================
      4
      5Maintained by Deepak Saxena <dsaxena@plexity.net>
      6-------------------------------------------------------------------------
      7
      81. Overview
      9
     10Intel's IXP4xx network processor is a highly integrated SOC that
     11is targeted for network applications, though it has become popular
     12in industrial control and other areas due to low cost and power
     13consumption. The IXP4xx family currently consists of several processors
     14that support different network offload functions such as encryption,
     15routing, firewalling, etc. The IXP46x family is an updated version which
     16supports faster speeds, new memory and flash configurations, and more
     17integration such as an on-chip I2C controller.
     18
     19For more information on the various versions of the CPU, see:
     20
     21   http://developer.intel.com/design/network/products/npfamily/ixp4xx.htm
     22
     23Intel also made the IXCP1100 CPU for sometime which is an IXP4xx
     24stripped of much of the network intelligence.
     25
     262. Linux Support
     27
     28Linux currently supports the following features on the IXP4xx chips:
     29
     30- Dual serial ports
     31- PCI interface
     32- Flash access (MTD/JFFS)
     33- I2C through GPIO on IXP42x
     34- GPIO for input/output/interrupts
     35  See arch/arm/mach-ixp4xx/include/mach/platform.h for access functions.
     36- Timers (watchdog, OS)
     37
     38The following components of the chips are not supported by Linux and
     39require the use of Intel's proprietary CSR software:
     40
     41- USB device interface
     42- Network interfaces (HSS, Utopia, NPEs, etc)
     43- Network offload functionality
     44
     45If you need to use any of the above, you need to download Intel's
     46software from:
     47
     48   http://developer.intel.com/design/network/products/npfamily/ixp425.htm
     49
     50DO NOT POST QUESTIONS TO THE LINUX MAILING LISTS REGARDING THE PROPRIETARY
     51SOFTWARE.
     52
     53There are several websites that provide directions/pointers on using
     54Intel's software:
     55
     56   - http://sourceforge.net/projects/ixp4xx-osdg/
     57     Open Source Developer's Guide for using uClinux and the Intel libraries
     58
     59   - http://gatewaymaker.sourceforge.net/
     60     Simple one page summary of building a gateway using an IXP425 and Linux
     61
     62   - http://ixp425.sourceforge.net/
     63     ATM device driver for IXP425 that relies on Intel's libraries
     64
     653. Known Issues/Limitations
     66
     673a. Limited inbound PCI window
     68
     69The IXP4xx family allows for up to 256MB of memory but the PCI interface
     70can only expose 64MB of that memory to the PCI bus. This means that if
     71you are running with > 64MB, all PCI buffers outside of the accessible
     72range will be bounced using the routines in arch/arm/common/dmabounce.c.
     73
     743b. Limited outbound PCI window
     75
     76IXP4xx provides two methods of accessing PCI memory space:
     77
     781) A direct mapped window from 0x48000000 to 0x4bffffff (64MB).
     79   To access PCI via this space, we simply ioremap() the BAR
     80   into the kernel and we can use the standard read[bwl]/write[bwl]
     81   macros. This is the preffered method due to speed but it
     82   limits the system to just 64MB of PCI memory. This can be
     83   problamatic if using video cards and other memory-heavy devices.
     84
     852) If > 64MB of memory space is required, the IXP4xx can be
     86   configured to use indirect registers to access PCI This allows
     87   for up to 128MB (0x48000000 to 0x4fffffff) of memory on the bus.
     88   The disadvantage of this is that every PCI access requires
     89   three local register accesses plus a spinlock, but in some
     90   cases the performance hit is acceptable. In addition, you cannot
     91   mmap() PCI devices in this case due to the indirect nature
     92   of the PCI window.
     93
     94By default, the direct method is used for performance reasons. If
     95you need more PCI memory, enable the IXP4XX_INDIRECT_PCI config option.
     96
     973c. GPIO as Interrupts
     98
     99Currently the code only handles level-sensitive GPIO interrupts
    100
    1014. Supported platforms
    102
    103ADI Engineering Coyote Gateway Reference Platform
    104http://www.adiengineering.com/productsCoyote.html
    105
    106   The ADI Coyote platform is reference design for those building
    107   small residential/office gateways. One NPE is connected to a 10/100
    108   interface, one to 4-port 10/100 switch, and the third to and ADSL
    109   interface. In addition, it also supports to POTs interfaces connected
    110   via SLICs. Note that those are not supported by Linux ATM. Finally,
    111   the platform has two mini-PCI slots used for 802.11[bga] cards.
    112   Finally, there is an IDE port hanging off the expansion bus.
    113
    114Gateworks Avila Network Platform
    115http://www.gateworks.com/support/overview.php
    116
    117   The Avila platform is basically and IXDP425 with the 4 PCI slots
    118   replaced with mini-PCI slots and a CF IDE interface hanging off
    119   the expansion bus.
    120
    121Intel IXDP425 Development Platform
    122http://www.intel.com/design/network/products/npfamily/ixdpg425.htm
    123
    124   This is Intel's standard reference platform for the IXDP425 and is
    125   also known as the Richfield board. It contains 4 PCI slots, 16MB
    126   of flash, two 10/100 ports and one ADSL port.
    127
    128Intel IXDP465 Development Platform
    129http://www.intel.com/design/network/products/npfamily/ixdp465.htm
    130
    131   This is basically an IXDP425 with an IXP465 and 32M of flash instead
    132   of just 16.
    133
    134Intel IXDPG425 Development Platform
    135
    136   This is basically and ADI Coyote board with a NEC EHCI controller
    137   added. One issue with this board is that the mini-PCI slots only
    138   have the 3.3v line connected, so you can't use a PCI to mini-PCI
    139   adapter with an E100 card. So to NFS root you need to use either
    140   the CSR or a WiFi card and a ramdisk that BOOTPs and then does
    141   a pivot_root to NFS.
    142
    143Motorola PrPMC1100 Processor Mezanine Card
    144http://www.fountainsys.com
    145
    146   The PrPMC1100 is based on the IXCP1100 and is meant to plug into
    147   and IXP2400/2800 system to act as the system controller. It simply
    148   contains a CPU and 16MB of flash on the board and needs to be
    149   plugged into a carrier board to function. Currently Linux only
    150   supports the Motorola PrPMC carrier board for this platform.
    151
    1525. TODO LIST
    153
    154- Add support for Coyote IDE
    155- Add support for edge-based GPIO interrupts
    156- Add support for CF IDE on expansion bus
    157
    1586. Thanks
    159
    160The IXP4xx work has been funded by Intel Corp. and MontaVista Software, Inc.
    161
    162The following people have contributed patches/comments/etc:
    163
    164- Lennerty Buytenhek
    165- Lutz Jaenicke
    166- Justin Mayfield
    167- Robert E. Ranslam
    168
    169[I know I've forgotten others, please email me to be added]
    170
    171-------------------------------------------------------------------------
    172
    173Last Update: 01/04/2005