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