Blame view

Documentation/arm/ixp4xx.rst 6.34 KB
dc7a12bdf   Mauro Carvalho Chehab   docs: arm: conver...
1
  ===========================================================
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
2
  Release Notes for Linux on Intel's IXP4xx Network Processor
dc7a12bdf   Mauro Carvalho Chehab   docs: arm: conver...
3
  ===========================================================
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
4
5
6
7
8
9
10
  
  Maintained by Deepak Saxena <dsaxena@plexity.net>
  -------------------------------------------------------------------------
  
  1. Overview
  
  Intel's IXP4xx network processor is a highly integrated SOC that
dc7a12bdf   Mauro Carvalho Chehab   docs: arm: conver...
11
  is targeted for network applications, though it has become popular
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
12
13
14
15
16
17
18
19
20
21
  in industrial control and other areas due to low cost and power
  consumption. The IXP4xx family currently consists of several processors
  that support different network offload functions such as encryption,
  routing, firewalling, etc. The IXP46x family is an updated version which
  supports faster speeds, new memory and flash configurations, and more
  integration such as an on-chip I2C controller.
  
  For more information on the various versions of the CPU, see:
  
     http://developer.intel.com/design/network/products/npfamily/ixp4xx.htm
dc7a12bdf   Mauro Carvalho Chehab   docs: arm: conver...
22
  Intel also made the IXCP1100 CPU for sometime which is an IXP4xx
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
23
24
25
26
27
28
29
30
31
32
  stripped of much of the network intelligence.
  
  2. Linux Support
  
  Linux currently supports the following features on the IXP4xx chips:
  
  - Dual serial ports
  - PCI interface
  - Flash access (MTD/JFFS)
  - I2C through GPIO on IXP42x
dc7a12bdf   Mauro Carvalho Chehab   docs: arm: conver...
33
  - GPIO for input/output/interrupts
a09e64fbc   Russell King   [ARM] Move includ...
34
    See arch/arm/mach-ixp4xx/include/mach/platform.h for access functions.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
35
36
37
  - Timers (watchdog, OS)
  
  The following components of the chips are not supported by Linux and
6d1ee2cef   Stefan Huber   Documentation/arm...
38
  require the use of Intel's proprietary CSR software:
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
39
40
41
42
43
44
45
  
  - USB device interface
  - Network interfaces (HSS, Utopia, NPEs, etc)
  - Network offload functionality
  
  If you need to use any of the above, you need to download Intel's
  software from:
dc7a12bdf   Mauro Carvalho Chehab   docs: arm: conver...
46
     http://developer.intel.com/design/network/products/npfamily/ixp425.htm
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
47

25985edce   Lucas De Marchi   Fix common misspe...
48
  DO NOT POST QUESTIONS TO THE LINUX MAILING LISTS REGARDING THE PROPRIETARY
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
49
50
51
52
  SOFTWARE.
  
  There are several websites that provide directions/pointers on using
  Intel's software:
dc7a12bdf   Mauro Carvalho Chehab   docs: arm: conver...
53
54
     - http://sourceforge.net/projects/ixp4xx-osdg/
       Open Source Developer's Guide for using uClinux and the Intel libraries
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
55

dc7a12bdf   Mauro Carvalho Chehab   docs: arm: conver...
56
57
     - http://gatewaymaker.sourceforge.net/
       Simple one page summary of building a gateway using an IXP425 and Linux
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
58

dc7a12bdf   Mauro Carvalho Chehab   docs: arm: conver...
59
60
     - http://ixp425.sourceforge.net/
       ATM device driver for IXP425 that relies on Intel's libraries
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
61
62
63
64
65
66
67
68
69
  
  3. Known Issues/Limitations
  
  3a. Limited inbound PCI window
  
  The IXP4xx family allows for up to 256MB of memory but the PCI interface
  can only expose 64MB of that memory to the PCI bus. This means that if
  you are running with > 64MB, all PCI buffers outside of the accessible
  range will be bounced using the routines in arch/arm/common/dmabounce.c.
dc7a12bdf   Mauro Carvalho Chehab   docs: arm: conver...
70

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
71
72
73
74
75
76
77
78
  3b. Limited outbound PCI window
  
  IXP4xx provides two methods of accessing PCI memory space:
  
  1) A direct mapped window from 0x48000000 to 0x4bffffff (64MB).
     To access PCI via this space, we simply ioremap() the BAR
     into the kernel and we can use the standard read[bwl]/write[bwl]
     macros. This is the preffered method due to speed but it
dc7a12bdf   Mauro Carvalho Chehab   docs: arm: conver...
79
     limits the system to just 64MB of PCI memory. This can be
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
80
     problamatic if using video cards and other memory-heavy devices.
dc7a12bdf   Mauro Carvalho Chehab   docs: arm: conver...
81
82
83
84
85
86
87
  
  2) If > 64MB of memory space is required, the IXP4xx can be
     configured to use indirect registers to access PCI This allows
     for up to 128MB (0x48000000 to 0x4fffffff) of memory on the bus.
     The disadvantage of this is that every PCI access requires
     three local register accesses plus a spinlock, but in some
     cases the performance hit is acceptable. In addition, you cannot
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
88
89
90
91
92
93
94
     mmap() PCI devices in this case due to the indirect nature
     of the PCI window.
  
  By default, the direct method is used for performance reasons. If
  you need more PCI memory, enable the IXP4XX_INDIRECT_PCI config option.
  
  3c. GPIO as Interrupts
dc7a12bdf   Mauro Carvalho Chehab   docs: arm: conver...
95
  Currently the code only handles level-sensitive GPIO interrupts
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
96
97
98
99
100
  
  4. Supported platforms
  
  ADI Engineering Coyote Gateway Reference Platform
  http://www.adiengineering.com/productsCoyote.html
dc7a12bdf   Mauro Carvalho Chehab   docs: arm: conver...
101
     The ADI Coyote platform is reference design for those building
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
102
103
104
105
106
107
108
109
     small residential/office gateways. One NPE is connected to a 10/100
     interface, one to 4-port 10/100 switch, and the third to and ADSL
     interface. In addition, it also supports to POTs interfaces connected
     via SLICs. Note that those are not supported by Linux ATM. Finally,
     the platform has two mini-PCI slots used for 802.11[bga] cards.
     Finally, there is an IDE port hanging off the expansion bus.
  
  Gateworks Avila Network Platform
0ea6e6112   Justin P. Mattock   Documentation: up...
110
  http://www.gateworks.com/support/overview.php
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
111
112
113
114
115
116
  
     The Avila platform is basically and IXDP425 with the 4 PCI slots
     replaced with mini-PCI slots and a CF IDE interface hanging off
     the expansion bus.
  
  Intel IXDP425 Development Platform
dc7a12bdf   Mauro Carvalho Chehab   docs: arm: conver...
117
  http://www.intel.com/design/network/products/npfamily/ixdpg425.htm
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
118

dc7a12bdf   Mauro Carvalho Chehab   docs: arm: conver...
119
     This is Intel's standard reference platform for the IXDP425 and is
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
120
121
122
123
     also known as the Richfield board. It contains 4 PCI slots, 16MB
     of flash, two 10/100 ports and one ADSL port.
  
  Intel IXDP465 Development Platform
0ea6e6112   Justin P. Mattock   Documentation: up...
124
  http://www.intel.com/design/network/products/npfamily/ixdp465.htm
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
125
126
127
128
129
130
131
132
133
134
135
136
137
138
  
     This is basically an IXDP425 with an IXP465 and 32M of flash instead
     of just 16.
  
  Intel IXDPG425 Development Platform
  
     This is basically and ADI Coyote board with a NEC EHCI controller
     added. One issue with this board is that the mini-PCI slots only
     have the 3.3v line connected, so you can't use a PCI to mini-PCI
     adapter with an E100 card. So to NFS root you need to use either
     the CSR or a WiFi card and a ramdisk that BOOTPs and then does
     a pivot_root to NFS.
  
  Motorola PrPMC1100 Processor Mezanine Card
0ea6e6112   Justin P. Mattock   Documentation: up...
139
  http://www.fountainsys.com
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
140
141
142
143
144
145
  
     The PrPMC1100 is based on the IXCP1100 and is meant to plug into
     and IXP2400/2800 system to act as the system controller. It simply
     contains a CPU and 16MB of flash on the board and needs to be
     plugged into a carrier board to function. Currently Linux only
     supports the Motorola PrPMC carrier board for this platform.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
146
147
148
149
150
151
152
153
154
155
156
157
  
  5. TODO LIST
  
  - Add support for Coyote IDE
  - Add support for edge-based GPIO interrupts
  - Add support for CF IDE on expansion bus
  
  6. Thanks
  
  The IXP4xx work has been funded by Intel Corp. and MontaVista Software, Inc.
  
  The following people have contributed patches/comments/etc:
dc7a12bdf   Mauro Carvalho Chehab   docs: arm: conver...
158
159
160
161
162
163
  - Lennerty Buytenhek
  - Lutz Jaenicke
  - Justin Mayfield
  - Robert E. Ranslam
  
  [I know I've forgotten others, please email me to be added]
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
164
165
166
167
  
  -------------------------------------------------------------------------
  
  Last Update: 01/04/2005