Linux on Intel IXP4xx 網路處理器發行說明¶
維護者:Deepak Saxena <dsaxena@plexity.net>¶
概述
Intel 的 IXP4xx 網路處理器是一款高度整合的 SOC,主要面向網路應用,但由於其低成本和低功耗,已在工業控制和其他領域變得流行。IXP4xx 系列目前包含多個處理器,這些處理器支援不同的網路解除安裝功能,例如加密、路由、防火牆等。IXP46x 系列是更新的版本,支援更快的速度、新的記憶體和快閃記憶體配置以及更多的整合,例如片上 I2C 控制器。
有關 CPU 的各種版本的更多資訊,請參見
Intel 還製造了 IXCP1100 CPU 一段時間,它是 IXP4xx 的精簡版,去除了許多網路智慧。
Linux 支援
Linux 目前在 IXP4xx 晶片上支援以下功能
雙序列埠
PCI 介面
快閃記憶體訪問 (MTD/JFFS)
IXP42x 上透過 GPIO 的 I2C
用於輸入/輸出/中斷的 GPIO。有關訪問函式,請參見 arch/arm/mach-ixp4xx/include/mach/platform.h。
定時器(看門狗、OS)
晶片的以下元件不受 Linux 支援,需要使用 Intel 的專有 CSR 軟體
USB 裝置介面
網路介面(HSS、Utopia、NPE 等)
網路解除安裝功能
如果您需要使用上述任何一項,則需要從以下位置下載 Intel 的軟體
請勿將有關專有軟體的問題釋出到 LINUX 郵件列表。
有幾個網站提供了有關使用 Intel 軟體的說明/指標
http://sourceforge.net/projects/ixp4xx-osdg/ 使用 uClinux 和 Intel 庫的開源開發者指南
http://gatewaymaker.sourceforge.net/ 使用 IXP425 和 Linux 構建閘道器的簡單單頁摘要
http://ixp425.sourceforge.net/ 依賴於 Intel 庫的 IXP425 ATM 裝置驅動程式
已知問題/限制
3a. 有限的入站 PCI 視窗
IXP4xx 系列允許最大 256MB 的記憶體,但 PCI 介面只能將其中 64MB 的記憶體暴露給 PCI 匯流排。這意味著,如果您執行的記憶體 > 64MB,則超出可訪問範圍的所有 PCI 緩衝區都將使用 arch/arm/common/dmabounce.c 中的例程進行反彈。
3b. 有限的出站 PCI 視窗
IXP4xx 提供了兩種訪問 PCI 記憶體空間的方法
從 0x48000000 到 0x4bffffff (64MB) 的直接對映視窗。要透過此空間訪問 PCI,我們只需使用
ioremap()將 BAR 重新對映到核心,然後我們可以使用標準 read[bwl]/write[bwl] 宏。由於速度原因,這是首選方法,但它將系統限制為僅 64MB 的 PCI 記憶體。如果使用影片卡和其他記憶體密集型裝置,這可能會有問題。如果需要 > 64MB 的記憶體空間,則可以將 IXP4xx 配置為使用間接暫存器來訪問 PCI。這允許總線上最多 128MB(0x48000000 到 0x4fffffff)的記憶體。缺點是每次 PCI 訪問都需要三個本地暫存器訪問和一個自旋鎖,但在某些情況下,效能損失是可以接受的。此外,在這種情況下,您無法 mmap() PCI 裝置,因為 PCI 視窗是間接的。
預設情況下,出於效能原因,使用直接方法。如果您需要更多 PCI 記憶體,請啟用 IXP4XX_INDIRECT_PCI 配置選項。
3c. GPIO 作為中斷
當前程式碼僅處理電平敏感的 GPIO 中斷
支援的平臺
ADI Engineering Coyote 閘道器參考平臺 http://www.adiengineering.com/productsCoyote.html
ADI Coyote 平臺是為構建小型住宅/辦公室閘道器的使用者提供的參考設計。一個 NPE 連線到 10/100 介面,一個連線到 4 埠 10/100 交換機,第三個連線到 ADSL 介面。此外,它還支援透過 SLIC 連線的 POT 介面。請注意,Linux ATM 不支援這些介面。最後,該平臺有兩個用於 802.11[bga] 卡的 mini-PCI 插槽。最後,有一個 IDE 埠掛在擴充套件總線上。
Gateworks Avila 網路平臺 http://www.gateworks.com/support/overview.php
Avila 平臺基本上是一個 IXDP425,其中 4 個 PCI 插槽被 mini-PCI 插槽取代,並且有一個 CF IDE 介面掛在擴充套件總線上。
Intel IXDP425 開發平臺 http://www.intel.com/design/network/products/npfamily/ixdpg425.htm
這是 Intel 用於 IXDP425 的標準參考平臺,也稱為 Richfield 板。它包含 4 個 PCI 插槽、16MB 快閃記憶體、兩個 10/100 埠和一個 ADSL 埠。
Intel IXDP465 開發平臺 http://www.intel.com/design/network/products/npfamily/ixdp465.htm
這基本上是一個帶有 IXP465 的 IXDP425,具有 32M 快閃記憶體而不是 16M。
Intel IXDPG425 開發平臺
這基本上是一個添加了 NEC EHCI 控制器的 ADI Coyote 板。此板的一個問題是 mini-PCI 插槽僅連線了 3.3v 線,因此您不能將帶有 E100 卡的 PCI 轉 mini-PCI 介面卡一起使用。因此,要 NFS root,您需要使用 CSR 或 WiFi 卡和一個 ramdisk,該 ramdisk 執行 BOOTP,然後執行 pivot_root 到 NFS。
Motorola PrPMC1100 處理器夾層卡 http://www.fountainsys.com
PrPMC1100 基於 IXCP1100,旨在插入 IXP2400/2800 系統以充當系統控制器。它僅包含一個 CPU 和板上的 16MB 快閃記憶體,需要插入載板才能執行。目前,Linux 僅支援此平臺的 Motorola PrPMC 載板。
TODO 列表
新增對 Coyote IDE 的支援
新增對基於邊緣的 GPIO 中斷的支援
新增對擴充套件總線上 CF IDE 的支援
致謝
IXP4xx 工作由 Intel Corp. 和 MontaVista Software, Inc. 資助。
以下人員貢獻了補丁/評論等
Lennerty Buytenhek
Lutz Jaenicke
Justin Mayfield
Robert E. Ranslam
[我知道我忘記了其他人,請給我傳送電子郵件以新增]
上次更新時間:2005 年 1 月 4 日