Home»Projects »Linux for Cisco 2500 routers»Ethernet bug

Ethernet bug

Fixed with 0.1.1 patch

2500 routers may or may not have 2 mb of ram soldered on board, and may have simms in various sizes. A 2500  has no 2mb on-board if next to the simm slot there are four sets of unused solder points. Some 3000 models have 512k on-board ram, others 2mb.


The memory is divided into 'io memory'  and 'main memory'.

From the IOS documentation:
"The router has 2 MB of permanent (fixed) DRAM memory and a DRAM SIMM socket for upgrading the memory. 1 MB of this permanent memory is used by the CPU and is called primary memory. The other 1 MB of memory is used by the network interface ports to store packets and is called shared or packet memory. When a DRAM SIMM is installed in the DRAM SIMM socket, all of the DRAM memory on this SIMM becomes primary memory for the CPU, and the 2 MB of DRAM that is permanent on the board becomes shared memory. "
This doesn't seem to be the complete story.  I/O memory address also varies depending upon which hardware one runs on: The pre-compiled images of the 0.1 release assume i/o memory is located at 0x4000000. This is the case on On these boxes, the ethernet driver in the 0.1 release ought to run fine.

If your system is not one of the above,  "ifconfig eth0" gives a bus error when the ethernet transmit and receive buffers are initialized. You probably have a 2500 with a different i/o memory address. Craig Boston submitted a patch which solves this problem. By following the instructions accompanying the patch and recompiling you can get ethernet to work for your router.


Back to uClinux-cisco2500