Actiontec MI424-WR

The Actiontec MI424-WR router is based on the Intel X-Scale 533MHz IXP425. It has a coax interface and IEEE 802.11g support.

There are also Rev E and Rev F, and Rev I hardware available. This page doesn't cover those versions (yet).

Hardware Highlights

CPU Ram Flash Network WiFi Serial JTag
IXP425 32MB 8MB 4x1 Yes Yes1) Yes2)

Hardware

  • WAN interface connected to a dedicated port.
  • LAN interface connected to Micrel KSZ8995MA switch via SPI.
  • 3 PCI slots - 2 used for coax interface.
  • Wireless MiniPCI.

There are also two Entropic MoCA controllers for the coax interface. Because of the proprietary nature of these devices, they are not supported.

Ethernet

Revision A, C configuration:

  • NPEB - WAN interface with separate Micrel KS8721 PHY; PHY address: 17.
  • NPEC - LAN interface connected to Micrel KSZ8995MA switch via SPI; PHY addresses: 1, 2, 3, 4.

Revision D configuration:

  • NPEB - LAN interface PHY addresses: 1, 2, 3, 4.
  • NPEC - WAN interface PHY address: 5.

WiFi

  • Revision A: RT2500
  • Revision C, D: Atheros

GPIO

Pin I/O Description
0 O HW Reset
2 O SPI CLK
3 I SPI RxD
4 O SPI TxD
6 I PCI INTA (MoCA WAN)
7 I PCI INTB (Mini-PCI)
8 I PCI INTC (MoCA LAN)
9 O SPI CS
10 I Button
11 O MoCA WAN LED
14 O PCI CLK Pin

Latches

There's a latch accessible via CS1 that is 16-bits wide.

Bit Function
0 Power alarm (red)
1 Power
2 Wireless
3 Internet alarm (red)
4 Internet active
5 MoCA LAN
6 MoCA WAN alarm (red)
7 PCI reset
8 VOIP Phone 1 LED (green) (Unused)
9 VOIP Phone 2 LED (green) (Unused)
10 VOIP ready LED (green) (Unused)
11 PSTN Relay 1 Control (Unused)
12 PSTN Relay 2 Control (Unused)
13 (Unused)
14 (Unused)
15 (Unused)

Serial Port

There's an internal serial port available on the J20 pins. It's found on the side. It's possible to connect a TTL 3.3V serial converter (e.g. this) and have access to the console for both redboot and linux. Remember that pin 1 has a square pad on the PCB.

Pin Function
1 Gnd
2 Tx
3 Rx
4 ?
5 VCC 3.3V
6 ?

Software

Jungo OpenRG

The unit comes standard with a customized version Jungo's OpenRG firmware. This is a Linux-based distribution with some proprietary packages such as drivers for the MoCA and Wifi devices.

Installation of RedBoot can be accomplished with the jungo-image.py script. The script uses the telnet interface into the router to accomplish it's task. Depending on the version of the firmware, it may have to be manually enabled in the advanced tab under local administration. The script can be used to first make a backup of the current flash image; this procedure takes about 4 minutes. Use -h to get help on all the options. If there's some failure during the write portion, the only recourse may be to install a JTAG header and restore the firmware via JTAG; so, use at your own risk!

Here's the basic usage:

  • Backup existing image: python jungo-image.py -p <password> <ip address>
  • Write new image: python jungo-image.py -p <password> <ip address> <image file>

RedBoot

A custom version of RedBoot has been built and can be found here: rb-mi424wr-ROM.bin . The RedBoot prompt is accessible via telnet 192.168.1.1 9000 on the WAN port. The WAN port is configured to obtain an address via DHCP; if this fails it defaults to 192.168.1.1. RedBoot does initialize the LAN switch so no special action on Linux is required.

Note that this version of RedBoot has the option of bypassing the boot script if the reset button is pressed during the power-on sequence. This always allows access to RedBoot via telnet on the WAN port. When RedBoot is ready to accept commands, it sets the Internet LED red.

After establishing a telnet session to RedBoot, the flash must be initialized and configured:

  1. Initialize flash: fis init
  2. Configure MAC addresses: fconfig npe_eth0_esa 0x00:0x01:0x02:0x03:0x04:0x05. Use MAC address at the bottom of the unit plus 3. The one printed on the bottom is really for the lan… but we need to tell RedBoot what the WAN port MAC address is. You should probably verify what each MAC address is, and write them down somewhere, before installing OpenWRT.
  3. Write openwrt-mi424wr-zImage image to flash: load -r -b %{FREEMEMLO} -h <hostip> openwrt-mi424wr-zImage followed by: fis create linux
  4. Write openwrt-mi424wr-squashfs.img to flash: load -r -b %{FREEMEMLO} -h <hostip> openwrt-mi424wr-squashfs.img followed by: fis create rootfs

In order to autonomously boot to the openwrt kernel just installed, a boot script needs to be added to RedBoot:

  1. Open RedBoot's configuration: fconfig -d
  2. When prompted with Run script at boot, change the value to true
  3. Enter the following in the first line of the script enter: fis load linux
  4. Enter the second line: exec. Note: for rev D, use exec -v 4.
  5. Hit enter to finish the script with an empty line.
  6. You last entry is the timeout for loading the script. it shouldn't take longer than 1 or 2 seconds.
  7. Keep hitting enter until you get this prompt: Update RedBoot non-volatile configuration - continue (y/n)?
  8. Type y and enter.
  9. Power cycle the router and openwrt should boot. As long as everything installed properly, you can access Luci in about 50 seconds from switching on the power.

The original image can be restored using the following procedure:

  1. Get a copy of rb-mi424wr-RAM.img .
  2. load -h <ipaddress> rb-mi424wr-RAM.img
  3. go
  4. Close telnet session and start another one; may require setting IP address on host. Verify that RAM version is running with version command.
  5. load -h <ipaddress> -r -b %{FREEMEMLO} mi424wr-xxxxxxxxxx.bin
  6. fis unlock RedBoot
  7. fis write -b %{FREEMEMLO} -l 0x800000 -f 0x50000000
  8. Close telnet session and power cycle.

A similar sequence is used to upgrade RedBoot. Load the RAM image, then load mi424wr-ROM.bin; after unlocking, do a fis write with a length of 0x40000.

Building RedBoot

RedBoot can be built from the Intel RedBoot sources found in the Intel IXP400 Software site. You'll need the RedBoot source code as well as the RedBoot NPE microcode. This mi424wr.epk adds support for the MI424-WR. The procedure for building RedBoot is as follows:

  1. export ECOS_REPOSTIORY=/path/to/ecos/packages
  2. cd ${ECOS_REPOSITORY}; ./ecosadmin.tcl add mi424wr.epk
  3. cd <build_dir>; ecosconfig new mi424wr_npe redboot
  4. ecosconfig add memalloc io fileio error linux_compat kernel crc zlib
  5. ecosconfig import ${ECOS_REPOSITORY}/hal/arm/xscale/mi424wr/current/misc/redboot_ROM.ecm
  6. ecosconfig tree
  7. make

The resulting redboot.bin image can be found in the install/bin direcoctory.

Linux

Board id 1778 has been registered for this device. The attached MI424-WR images have been built from the OpenWrt trunk with various patches and tweaks. Basic support for the MI424-WR is found in target/linux/ixp4xx/patches-2.6.xx/185-mi424wr_support.patch. Building from source requires using make kernel_menuconfig and selecting the MI424-WR board type (it's not set by default). After building, the resulting image openwrt-ixp4xx-zImage can be downloaded to the board as described above.

Support for the wifi rt2500pci card on revision A units is still experimental. It works in client mode but there are problems in AP mode. It is best to replace with an Atheros card.

Firmware

The original firmware can be downloaded from Actiontec Support, and the GPL'd source code can be downloaded from Actiontec GPL Code Download Center

TODO

Debug ap (master) mode for rt2500 driver.

Basic configuration

Since this part is identical for all devices, see Basic configuration.

Hardware modifications

Advanced users have doubled the RAM and ROM as well as add peripherals like USB host port. Check the forums for details.

1) Requires opening the unit.
2) Not available on rev D.

Back to top

toh/actiontec/mi424wr.txt · Last modified: 2014/10/18 03:45 by risacher