IXP4xx 6.1 KB

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