Linux on Intel IXP4xx 網路處理器發行說明

維護者:Deepak Saxena <dsaxena@plexity.net>

  1. 概述

Intel 的 IXP4xx 網路處理器是一款高度整合的 SOC,主要面向網路應用,但由於其低成本和低功耗,已在工業控制和其他領域變得流行。IXP4xx 系列目前包含多個處理器,這些處理器支援不同的網路解除安裝功能,例如加密、路由、防火牆等。IXP46x 系列是更新的版本,支援更快的速度、新的記憶體和快閃記憶體配置以及更多的整合,例如片上 I2C 控制器。

有關 CPU 的各種版本的更多資訊,請參見

Intel 還製造了 IXCP1100 CPU 一段時間,它是 IXP4xx 的精簡版,去除了許多網路智慧。

  1. 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 軟體的說明/指標

  1. 已知問題/限制

3a. 有限的入站 PCI 視窗

IXP4xx 系列允許最大 256MB 的記憶體,但 PCI 介面只能將其中 64MB 的記憶體暴露給 PCI 匯流排。這意味著,如果您執行的記憶體 > 64MB,則超出可訪問範圍的所有 PCI 緩衝區都將使用 arch/arm/common/dmabounce.c 中的例程進行反彈。

3b. 有限的出站 PCI 視窗

IXP4xx 提供了兩種訪問 PCI 記憶體空間的方法

  1. 從 0x48000000 到 0x4bffffff (64MB) 的直接對映視窗。要透過此空間訪問 PCI,我們只需使用 ioremap() 將 BAR 重新對映到核心,然後我們可以使用標準 read[bwl]/write[bwl] 宏。由於速度原因,這是首選方法,但它將系統限制為僅 64MB 的 PCI 記憶體。如果使用影片卡和其他記憶體密集型裝置,這可能會有問題。

  2. 如果需要 > 64MB 的記憶體空間,則可以將 IXP4xx 配置為使用間接暫存器來訪問 PCI。這允許總線上最多 128MB(0x48000000 到 0x4fffffff)的記憶體。缺點是每次 PCI 訪問都需要三個本地暫存器訪問和一個自旋鎖,但在某些情況下,效能損失是可以接受的。此外,在這種情況下,您無法 mmap() PCI 裝置,因為 PCI 視窗是間接的。

預設情況下,出於效能原因,使用直接方法。如果您需要更多 PCI 記憶體,請啟用 IXP4XX_INDIRECT_PCI 配置選項。

3c. GPIO 作為中斷

當前程式碼僅處理電平敏感的 GPIO 中斷

  1. 支援的平臺

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 載板。

  1. TODO 列表

  • 新增對 Coyote IDE 的支援

  • 新增對基於邊緣的 GPIO 中斷的支援

  • 新增對擴充套件總線上 CF IDE 的支援

  1. 致謝

IXP4xx 工作由 Intel Corp. 和 MontaVista Software, Inc. 資助。

以下人員貢獻了補丁/評論等

  • Lennerty Buytenhek

  • Lutz Jaenicke

  • Justin Mayfield

  • Robert E. Ranslam

[我知道我忘記了其他人,請給我傳送電子郵件以新增]


上次更新時間:2005 年 1 月 4 日