SMC7004ABR (v2)

Note: v1 use different hardware
Vendor: SMC
Product Page SMC70004ABR - Barricade 4-Port 10/100Mbps Broadband Router
Description The Barricade is an ideal all-in-one networking solution for home and small business users. This platform independent multi-functional broadband router combines a 4-port 10/100 Mbps dual-speed switch, a built-in print server, an RS232 COM port for fail-over dial-up or modem connections, an Internet firewall for security against hackers and other unauthorized users, and simultaneous Internet access for up to 253 users.
OEM Info Made by Accton as most other SMC gear
FCC ID (not assigned, as it has no RF parts)
Inside Photo SMC7004ABRrev2
See Also tbd

Internal Components

CPU Samsung S5N8947 (ARM7TDMI@72 MHz, 2x Ethernet, 1 UART, USB, ADSL, PCMCIA)
The Samsung S5N8947 is similar to the S3C4510B, but has many more peripherals. However, the peripherals shared with the S3C4510B are not identical and all code written for S3C4510B needs to be reviewed and modified.
- The S5N8947 has 2 operating modes: 1 with 2 independent Ethernet MACs (and a limited range of other peripherals)and the other with only 1 Ethernet MAC.
- The SMC7004ABRV2 uses the single MAC mode, the LAN and WAN side Ethernets are realized using a VLAN setup of the ADMtek ADM6996 switch
- The ADSL Utopia, USB, I2C and some other interface are unconnected and do not seem to be available on any headers. The ADSL requires several other VLSI chips, but the I2C and potentially the USB would be useable without major circuitry.
- There is one full wired serial port with full modem control available on the DB9 connector. There is 1 more such port on the SuperIO chip, which requires only the voltage shifter; the serial port built into the main SOC is connected to the header connector
- the builtin parallel port is compatible with modern PC parallel ports (all the new modes plus the good old Centronics mode) and can be used directly to control relays and other stuff typically connected to PC parallel ports in hobby projects
Flash memory 1 Mbyte
Intel TE28F800
SDRAM memory 8 MBytes
Winbond W986432DH-5
Ethernet Switch ADMTEK ADM6996
Connectors JP3 - 2x7 - JTAG, usual pinout
JP4 - 2x5 - builtin UART, standard SMC pinout with pin 9 GND, pin 10 VCC, pin 5 TXD and pin 3 RXD
Other ports SMSC SP37E760 2xUART + 1x Parallel
NS DS14c335 RS232 voltage shifter for the DB9 external RS232 port, connected to the SMSC i/o chip the send port of the SMSC I/O chip is unconnected


J3 : a standard 14-pin ARM7TDMI JTAG connector
1 vddh ( positive 3.3) 2 vss (ground)
3 nTRST 4 vss (ground)
5 TDI 6 vss (ground)
7 TMS 8 vss (ground)
9 TCK 10 vss (ground)
11 TDO 12 nRESET ( not implemented ??)
13 vddh (positive 3.3) 14 vss (ground)

UART connector header internal to the unit

J4 : 10-pin UART connector
1 2
3 RXD 4 -----
5 TXD 6
7 ----- 8 -----
9 vss (ground) 10 vddh (positive 3.3v)

Software Information

Original Firmware

Firmware upgrade for PN 750.9818 is available from SMC website
Latest Firmware version is 1.011
Firmware packaged using PKZIP compression and could be downloaded using web interface (or TFTP protocol???).

Reflash factory default procedure Reflash linux procedure

Reverse Engineering

Flash details (bootloader, initialisation and so on)

Linux Source

There is a working port of uClinux 2.4.22-uc1 on this box. The later versions of uClinux-2.4.x did not work, but recently I have found and fixed the problem, so there is a new patch which works with the most recent versions of uClinux.

The patch against the uClinux-2.4.22-uc1 kernel is available here. To apply this patch, you need to check out uClinux-2.4.22-uc1 from the uClinux CVS repository. The tag for this release is uClinux-2_4_22-uc1, so that the check out command might look like this:

	cvs -z4 co -ruClinux-2_4_22-uc1 uClinux-2.4.x

The patch against the uClinux-2.4.x HEAD kernel is available here. To apply this patch, you need to check out uClinux-2.4.x from the uClinux CVS repository. The tag for the latest release is HEAD and is the default. To get it, do:

	cvs -z4 co uClinux-2.4.x

For reference, the kernel .config file which was used to build the binary Linux image for this device released in January 2004 is here. For the later kernels, just run make oldconfig before doing anything else.

Loader Source

There is a need for a very small piece of loader which is executed by the device bootloader just before the control is passed to the Linux kernel. This loader performs the setup of certain peripherals and hands over the kernel parameters to the Linux kernel.

The sources of this loader, as well as a top level Makefile which builds the loadable firmware image ready to be flashed into the SMC7004ABRV2 is available here.

Sample loadable image

There is a sample complete loadable image available, which is based on uClinux-dist and the uClinux-2.4.26-uc0 kernel. Download it for testing here.

$Id: index.html,v 1.10 2004/06/26 06:22:11 pendobnet Exp $