Alteon firmware debugging tools


Alteon's ACEnic network cards are no more (although the technology lived on under various other names), and you can no longer get their firmware source from them. Object-code firmware is shipped with the linux drivers.
Alternative firmware for the 1MB Tigon II rev. 5 (Alteon ACEnic 1000BASE-SX) was developed using the tools on this page, as part of the Arsenic project.
Tim Deegan, December 2002.


Update: The firmware source seems to be available from alteon.shareable.org, with some build tools (including another rewrite of the genfw utility).
Tim Deegan, October 2003

These are some tools designed to help develop and debug firmware for Alteon's Gigabit Ethernet cards under Linux. Alteon's own firmware and drivers are developed under Solaris, so their tools weren't a lot of use to us.

Please read the documentation that comes with Alteon's source code (and their license), otherwise these tools won't make much sense.


acenic_ioctls.diff - A patch to the Linux 2.2.6 driver to add two root-only ioctls, to read and write shared memory locations on the card. Debugging tools can be built on these two basic operations, e.g.:

gdb-stubd.tgz - A daemon, run as root on the host with the card in it, to allow a MIPS cross-gdb to treat the network card as a remote target for debugging (you should apply at least the changes to "opcodes/" from Alteon's supplied patch to gdb). gdb-stubd is a more general program, which allows different backends to be added for other similar projects. At the moment, the Alteon backend is the only one we have written.

trace_dump.c - A quick hack to use the debugging ioctls to print out the backtrace from a version of Alteon's firmware compiled with trace support. Needs "acenic_ioctls.h" from the kernel diff.

genfw.pl - A Perl version of the genfw utility supplied with the firmware source. Depends on a cross-objdump (from binutils). I found writing this much simpler than getting genfw to compile and run properly.

These tools are known to work on Linux 2.2.6, with gcc version 2.7.2.3 and binutils 2.9.1. Any feedback is appreciated, but we can't guarantee we can help you with problems - the programs are fairly simple, and anyone trying to write their own firmware should certainly be able to hack this code into shape themselves. The code is distributable under the terms of the GPL and comes with the usual NO WARRANTY WHATSOEVER.

Tim Deegan, Austin Donnelly, May 1999.


$Id: index.html,v 1.6 2004/01/20 10:09:21 tjd21 Exp $
Tim Deegan