Friday, June 03, 2011

Promise SmartStor NS4600 Serial Port Connector Pinout

I have problems with a Promise NS4600 which seems to suffer from corruptions of its flash memory. For debugging, it's useful to be able to access the NS4600's serial port.

For this you have to get to the PCB: Remove the single screw that locks the black right cover in place, then slide the cover to the front. With the cover removed, loosen the 5 screws that hold the PCB in place. Lift the PCB up. The connectors to the harddisk backplane and the LED/button part on the front should part easily.

The signals are on a 4pin connector marked CN11 (2mm spacing, not 1/10"!). As I didn't have a compatible plug, I just soldered a 4-pin cable to the bottom of the PCB that goes through the small void in the cutout for the SATA port.

From chris' blog
From chris' blog

The port uses 3.3V levels and runs at the usual 115200 bps. Promise has chosen to use the u-boot bootloader. This is how a normal powerup of the device looks, up to the point where the linux-kernel takes over (output continues, I just stopped pasting). I'm using a FT232RL breakout board as a 3.3V serial port, but any other should do.

$ !cu
cu -l ttyUSB0 -s115200
Connected.


U-Boot 1.3.3 (NS4600 - 021) (May 26 2009 - 11:16:20)

U-Boot code: FFF90000 -> FFFC8E17  data: 00070000 -> 00072993
        BSS: 00072994 -> 00088CDB stack: 00088CDC -> 00098CDB
     malloc: 00098CDC -> 000DCCDC
CPU Freq: 600 Mhz
FSB Freq: 400 Mhz
DRAM size: 256 MB
DRAM Configuration:
Bank #0: 00000000 256 MB
Bank #1: 10000000  0 kB
        00  01  8086  5023  0880  0b
        00  02  8086  5024  0604  0b
        02  00  105a  3f20  0104  0b
        00  03  8086  5025  0604  0b
        03  00  8086  5040  0200  0b
        03  01  8086  5044  0200  0f
        03  03  8086  503e  ff00  00
        03  07  8086  503c  1110  0b
        03  08  8086  503d  0680  0b
        03  09  8086  502c  0b40  0b
        03  0a  8086  503f  0880  0b
        03  0c  8086  5030  1101  0b
        00  04  8086  5037  0604  00
        00  0a  8086  5038  ff00  00
        00  1d  8086  5033  0c03  0b
        00  1d  8086  5035  0c03  0b
        00  1f  8086  5031  0601  00
        00  1f  8086  502b  0104  0f
        00  1f  8086  5032  0c05  0f
        00  1f  8086  5036  1101  07
In:    serial
Out:   serial
Err:   serial
I2C:   Ready
NAND:  128 MiB
Net:   e1000: 00:01:55:11:8a:76
1000 Mbs, Full Duplex
Valid link established!!!
GbE#0
Hit Ctrl + C to stop autoboot:  0 

NAND read: device 0 offset 0xa20000, size 0x200000

Reading data from 0xc1f800 -- 100% complete.
 2097152 bytes read: OK

NAND read: device 0 offset 0xc20000, size 0x800000

Reading data from 0x141f800 -- 100% complete.
 8388608 bytes read: OK
## Booting kernel from Legacy Image at 01100000 ...
   Image Name:   linux
   Created:      2009-09-03   8:38:23 UTC
   Image Type:   Intel x86 Linux Kernel Image (uncompressed)
   Data Size:    2014136 Bytes =  1.9 MB
   Load Address: 00500000
   Entry Point:  00500040
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK
## Loading init Ramdisk from Legacy Image at 01600000 ...
   Image Name:   02.01.0000.06
   Created:      2009-12-31   2:57:40 UTC
   Image Type:   Intel x86 Linux RAMDisk Image (gzip compressed)
   Data Size:    4792129 Bytes =  4.6 MB
   Load Address: 00900000
   Entry Point:  00900040
   Verifying Checksum ... OK
Using boot protocol version 2.05
Linux kernel version 2.6.20.21-4600 (root@johnny) #32 PREEMPT Mon Aug 31 17:15:48 CST 2009
Initial RAM disk at linear address 0x01600040, size 4792129 bytes
Kernel command line: "root=/dev/ram rw mtdparts=nand0:2048K(safe-k),8320K(safe-r),2048K(kernel),8192K(rootfs),16512K(usr),2048K(data),91776K(app) console=ttyS0,115200"
Loading bzImage at address 0x00100000 (2008504 bytes)

Starting kernel ...

No comments: