Nortel Contivity 1010 (aka C1010) Hardware Notes
Background:
My company recently de-installed and discarded dozens of these little Nortel Contivity 1010
VPN devices. I pulled one apart and discovered it's basically a tiny Intel Celeron PC with
no keyboard/mouse interface, one serial console port, and two 10/100 Ethernet ports.
I decided it would be fun to get Linux to run on one so I could play with it... maybe use
it as a small firewall, router, or OpenVPN endpoint.
My "pre-rolled" Slackware Linux installation for these devices can be found at:
http://phreakmonkey.com/projects/Slackware-c1010/
In case you want to "roll your own" distro (or OS) for it, my notes from installing Slackware Linux are
below:
Hardware:
CPU Info:
- Processor: Intel Celeron (Mendocino)
- Speed: 300MHz
- cpu family: 6
- model: 6
- cache: 128 KB
System board info:
- APIC: None
- APM/ACPI: None
- RAM: Single SO-DIMM 144 PIN PC100 slot (128MB Default. Haven't tried larger)
- IDE: Intel piix- soldered-on Compact Flash (CF) card interface. NO DMA! Tested up to 4GB.
- Serial: 2x 16550 RS232 ports. 1 RJ45 "Nortel" console port. Other unwired(?)
- Ethernet: 2x Intel Pro/100 "E100" ports* (See E100 notes below!)
On-board Intel Pro/100 "E100" Notes:
The on-board Ethernet ports have some idiosyncrasies:
| Intel Pro/100 Problem | Solution |
| Mismapped Interrupts |
Must use "irqpoll" on Linux Kernel command line |
| Proprietary EEPROMs |
Must use "eeprom_bad_csum_allow=1" when loading e100 module |
LAN1 / eth1 has no HW mac address (Shows up as FF:FF:FF:FF:FF:FF) |
Assign MAC address manually upon boot |
Because of these issues, I couldn't get the 2.4.x kernel series to recognize the E100 ports at all.
Support for these particular interfaces gets better somewhere in the 2.6.x Kernel tree.
RS232 Console Port:
The console port is mapped in the BIOS for output at 9600,N,8,1. It will come online at this bitrate
during POST test and stay there until the Kernel loads. Because of this, there is no need to enable
Serial IO in the boot loader itself (in fact, doing so will cause ddoouubbllee oouuttppuutt during
the boot loader process.)
Once the Kernel starts, however, the BIOS relenquishes the serial port. So setting
"console=ttyS0,9600n8" on the kernel command line is advised. (As is configuring a serial tty in
/etc/inittab.)
NOTE: The RS232 pinout of the Contivity is different from "standard" or Cisco RJ45 ports!!
You will need a "Nortel" console cable, or make your own.
Pinouts of the RJ45 port:
| RJ45 | DB9 | Function |
| 1 | 8 | CTS |
| 2 | 6 | DSR |
| 3 | 3 | TxD |
| 4 | 1 | DCD |
| 5 | 2 | RxD |
| 6 | 5 | GND |
| 7 | 4 | DTR |
| 8 | 7 | RTS |
| N/C | 9 | |
Other oddities:
- Motherboard "Cold Boot" function hangs forever.
Use "reboot=k,w" on Kernel command line to force "warm boots" or reboot won't work
- IDE CF interface doesn't support DMA.
Use "ide-core.nodma=0.0" on Kernel command line, or disable IDE DMA in Kernel config.
- No APM/ACPI support. Leave it out of the Kernel.
My final Linux Kernel 'append=' line from my lilo.conf file looks like this:
append="ide-core.nodma=0.0 ide-core.nodma=0.1 console=ttyS0,9600n8 vt.default_utf8=0 irqpoll reboot=k,w"
Other than that, the box seems fairly standard. {smirk}
Have fun!
-PhreakMonkey