Seagate FreeAgent DockStar

part no: 9VE5A0-520

serial no: 2GEP09GW

MAC address: 0010751A2435

I bought a Seagate FreeAgent DockStar. usb-to-serial cable: a TTL-232R-5V bought from Adafruit.

Links

FreeBSD installation on the DockStar, FreeBSD wiki: Marvell, Update uBoot on your Dockstar, Install Debian Lenny on a Seagate Dockstar, Using Linux on a DockStar, OpenWrt Dockstar, Links: Dockstar debricking JTAG with BusPirate, with Wiggler JTAG, JTAG interface, How to restore a locked up Dockstar, Dockstar rescure tips, unbrick dockstar with buspirate, Debricking Segate Dockstar,

Local links

EK-LM4F120XL, FreeBSD ARM build, GoodFET42, Bus Pirate,

OS testing: FreeBSD, Linux,

back to machines page.

History

2017-12-12: new u-boot - a 2017 version of u-boot is available, see this thread.

2017-12-12: to do - download rescue images and upload them via tftp (also in this article), or perhaps I could boot from a Linux usb plug and fix it all from there.

2017-12-12: u-boot - erase nand and rewrite u-boot erase

Marvell>> nand erase

NAND erase: device 0 whole chip
Skipping bad block at  0x00500000                                         
Skipping bad block at  0x00ae0000                                         
Skipping bad block at  0x014e0000                                         
Skipping bad block at  0x01740000                                         
Skipping bad block at  0x02a80000                                         
Skipping bad block at  0x02d80000                                         
Skipping bad block at  0x030a0000                                         
Skipping bad block at  0x03940000                                         
Skipping bad block at  0x04480000                                         
Skipping bad block at  0x04620000                                         
Skipping bad block at  0x046c0000                                         
Skipping bad block at  0x04840000                                         
Skipping bad block at  0x04a60000                                         
Skipping bad block at  0x05be0000                                         
Skipping bad block at  0x06280000                                         
Skipping bad block at  0x06440000                                         
Skipping bad block at  0x064c0000                                         
Skipping bad block at  0x06c80000                                         
Skipping bad block at  0x071e0000                                         
Skipping bad block at  0x08080000                                         
Skipping bad block at  0x09340000                                         
Skipping bad block at  0x0a9e0000                                         
Skipping bad block at  0x0be60000                                         
Skipping bad block at  0x0d560000                                         
Skipping bad block at  0x0de40000                                         
Skipping bad block at  0x0de60000                                         
Skipping bad block at  0x0e940000                                         
Erasing at 0xffe0000 -- 100% complete.
OK

write new image to nand

Marvell>> nand write.e 0x800000 0x0 0x80000

NAND write: device 0 offset 0x0, size 0x80000
 524288 bytes written: OK
good. Now a reset.
Marvell>> reset

(it resets, boots)

U-Boot 2010.09 (Oct 23 2010 - 11:49:22)
Marvell-Dockstar/Pogoplug by Jeff Doozan

SoC:   Kirkwood 88F6281_A0
DRAM:  128 MiB
NAND:  256 MiB
*** Warning - bad CRC or NAND, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   egiga0
88E1116 Initialized on egiga0
Hit any key to stop autoboot:  0
Marvell>>

and then it goes into a boot loop, because it can't find what it needs on nand

2017-12-12: ok, it turns out that cu wasn't accepting my input for some reason (perhaps my serial config correct for 3-wire). I changed to screen, and now this:

U-Boot 2010.09 (Oct 23 2010 - 11:49:22)
Marvell-Dockstar/Pogoplug by Jeff Doozan

SoC:   Kirkwood 88F6281_A0
DRAM:  128 MiB
NAND:  256 MiB
In:    serial
Out:   serial
Err:   serial
Net:   egiga0
88E1116 Initialized on egiga0
Hit any key to stop autoboot:  0
Marvell>>

good.

2017-12-12: openocd - try again

> init
> soft_reset_halt
requesting target halt and executing a soft reset
target halted in ARM state due to debug-request, current mode: Supervisor
cpsr: 0x000000d3 pc: 0x00000000
MMU: disabled, D-Cache: disabled, I-Cache: disabled
looks much better. Continue debrick
> dockstar_init
> load_image uboot.kwb 0x800000
524288 bytes written at address 0x00800000
downloaded 524288 bytes in 208.011993s (2.461 KiB/s)
>
resume (and be ready to stop autoboot)
> resume 0x800200
but I couldn't stop anything from the serial terminal.
Check if the nand is there
> nand probe 0
NAND flash device 'NAND 256MiB 3.3V 8-bit (Micron)' found
> nand list
#0: NAND 256MiB 3.3V 8-bit (Micron) pagesize: 2048, buswidth: 8,
    blocksize: 131072, blocks: 2048
check for bad blocks
> nand check_bad_blocks 0
bad block: 40
bad block: 87
bad block: 167
bad block: 186
bad block: 340
bad block: 364
bad block: 389
bad block: 458
bad block: 548
bad block: 561
bad block: 566
bad block: 578
bad block: 595
bad block: 735
bad block: 788
bad block: 802
bad block: 806
bad block: 868
bad block: 911
bad block: 1028
bad block: 1178
bad block: 1359
bad block: 1523
bad block: 1707
bad block: 1778
bad block: 1779
bad block: 1866
checked NAND flash device for bad blocks, use "nand info" command to list blocks

hmm, try it

2017-12-12: jtag - I rechecked my connections with this schematic, from this article. It turns out the clock from the DockStar was connected to the wrong pin on the Bus Pirate. Fixed that.

2017-12-12: start openocd

[tingo@kg-elitebook DockStar]$ openocd -f ./dockstar.cfg
Open On-Chip Debugger 0.10.0
Licensed under GNU GPL v2
For bug reports, read
    http://openocd.org/doc/doxygen/bugs.html
Warn : Adapter driver 'buspirate' did not declare which transports it allows; assuming legacy JTAG-only
Info : only one transport option; autoselect 'jtag'
srst_only separate srst_gates_jtag srst_open_drain connect_deassert_srst
trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain connect_deassert_srst
adapter_nsrst_delay: 200
jtag_ntrst_delay: 200
adapter speed: 500 kHz
adapter_nsrst_delay: 500
Warn : use 'feroceon.cpu' as target identifier, not '0'
dockstar_reset_cpu
Info : Buspirate switched to FAST mode
Info : Buspirate Interface ready!
Info : This adapter doesn't support configurable speed
Error: JTAG scan chain interrogation failed: all zeroes
Error: Check JTAG interface, timings, target power, etc.
Error: Trying to use configured scan chain anyway...
Error: feroceon.cpu: IR capture error; saw 0x00 not 0x01
Warn : Bypassing JTAG setup events due to errors
Info : Embedded ICE version 0
Info : feroceon.cpu: hardware has 1 breakpoint/watchpoint unit
Error: unexpected Feroceon EICE version signature
Info : accepting 'telnet' connection on tcp/4444
in telnet console
Open On-Chip Debugger
> init
> halt
Halt timed out, wake up GDB.
timed out while waiting for target halted

bummer

2017-12-12: the "Dockstar Debricking - JTAG with BusPirate" article has vanished. Luckily, archive.org have it: Dockstar Debricking - JTAG with BusPirate.

2017-12-12:connections

DockStar  Bus Pirate
VCC     nc
-TRST  AUX
TDI      TDI (MOSI)
TMS    TMS (CS)
TCK    TCK (CLK)
TDO    TDO
-SRST nc
RX      (serial adapter) TXD
TX      (serial adapter) RXD
GND  GND

nc = not connected

2017-12-12: Bus Pirate JTAG connector

GND  +3V3
+5V  ADC
Vpu  AUX
CLK  MOSI
 CS  MISO

2017-12-12: Dockstar JTAG connector:

TCK  TMS TDI -TRST VCC
  9   7    5    3  1
 10   8    6    4  2
TDO -SRST RX   TX  GND 3.3V!

2017-12-11: perhaps I should give OpenOCD and the Bus Pirate a go at debricking this DockStar?

2014-05-07: I use v7 as the test machine, running FreeBSD 10.0-release:

tingo@kg-v7$ uname -a
FreeBSD kg-v7.kg4.no 10.0-RELEASE FreeBSD 10.0-RELEASE #0 r260789: Thu Jan 16 22:34:59 UTC 2014     root@snap.freebsd.org:/usr/obj/usr/src/sys/GENERIC  amd64

I connect the serial adapter (I use a MicroFTX) first, it shows up as /dev/cuaU0 and /dev/ttyU0:

tingo@kg-v7$ ls -l /dev/cuaU* /dev/ttyU*
crw-rw----  1 uucp  dialer  0xc0 May  7 22:24 /dev/cuaU0
crw-rw----  1 uucp  dialer  0xc1 May  7 22:24 /dev/cuaU0.init
crw-rw----  1 uucp  dialer  0xc2 May  7 22:24 /dev/cuaU0.lock
crw-------  1 root  wheel   0xbd May  7 22:24 /dev/ttyU0
crw-------  1 root  wheel   0xbe May  7 22:24 /dev/ttyU0.init
crw-------  1 root  wheel   0xbf May  7 22:24 /dev/ttyU0.lock

I turn off hardware handshaking:

tingo@kg-v7$ stty -f /dev/cuaU0 -crtscts

and connect via screen:

tingo@kg-v7$ screen /dev/cuaU0 115200

Next up is the config file for OpenOCD:

tingo@kg-v7$ pwd
/usr/home/tingo/work/dockstar_unbrick
tingo@kg-v7$ ls -l
total 4
-rw-r--r--  1 tingo  users  486 May  7 22:57 dockstar.cfg

contents:

tingo@kg-v7$ more dockstar.cfg
# Marvell SheevaPlug

# I'm using a Stellaris LaunchPad (EK-LM4F120XL) which has TI's ICDI interface
source [find interface/ti-icdi.cfg]
source [find target/feroceon.cfg]

$_TARGETNAME configure \
        -work-area-phys 0x100000 \
        -work-area-size 65536 \
        -work-area-backup 0

# Disabled for the dockstar    
#arm7_9 dcc_downloads enable

# this assumes the hardware default peripherals location before u-Boot moves it
set _FLASHNAME $_CHIPNAME.flash
nand device $_FLASHNAME orion 0 0xd8000000

not sure it will work, but I'll try. I connect the JTAG adapter (EK-LM4F120XL), it shows up as cuaU1 and ttyU1 (not that it matters, OpenOCD will find it, I think):

root@kg-v7# ls -l /dev/cuaU1* /dev/ttyU1*
crw-rw----  1 uucp  dialer  0xcd May  7 23:00 /dev/cuaU1
crw-rw----  1 uucp  dialer  0xce May  7 23:00 /dev/cuaU1.init
crw-rw----  1 uucp  dialer  0xcf May  7 23:00 /dev/cuaU1.lock
crw-------  1 root  wheel   0xca May  7 23:00 /dev/ttyU1
crw-------  1 root  wheel   0xcb May  7 23:00 /dev/ttyU1.init
crw-------  1 root  wheel   0xcc May  7 23:00 /dev/ttyU1.lock

Next up, OpenOCD server:

tingo@kg-v7$ openocd -f ./dockstar.cfg
Open On-Chip Debugger 0.7.0 (2014-05-04-20:48)
Licensed under GNU GPL v2
For bug reports, read
    http://openocd.sourceforge.net/doc/doxygen/bugs.html
Runtime Error: /usr/local/share/openocd/scripts/target/feroceon.cfg:23: invalid command name "jtag"
in procedure 'script'
at file "embedded:startup.tcl", line 58
at file "./dockstar.cfg", line 5
at file "/usr/local/share/openocd/scripts/target/feroceon.cfg", line 23

Ok, perhaps I actually need to power up and connect the Dockstar first. So I connect power to the Dockstar, and connect the JTAG connector. Try OpenOCD again, nope, still the same message. In case therer is an error with my cfg file, let's try this:

tingo@kg-v7$ openocd -f interface/ti-icdi.cfg -f target/feroceon.cfg
Open On-Chip Debugger 0.7.0 (2014-05-04-20:48)
Licensed under GNU GPL v2
For bug reports, read
    http://openocd.sourceforge.net/doc/doxygen/bugs.html
Runtime Error: /usr/local/share/openocd/scripts/target/feroceon.cfg:23: invalid command name "jtag"
in procedure 'script'
at file "embedded:startup.tcl", line 58
at file "/usr/local/share/openocd/scripts/target/feroceon.cfg", line 23

No go.

root@kg-v7# openocd -f dockstar.cfg
Open On-Chip Debugger 0.7.0 (2014-05-04-20:48)
Licensed under GNU GPL v2
For bug reports, read
    http://openocd.sourceforge.net/doc/doxygen/bugs.html
Runtime Error: /usr/local/share/openocd/scripts/target/feroceon.cfg:23: invalid command name "jtag"
in procedure 'script'
at file "embedded:startup.tcl", line 58
at file "dockstar.cfg", line 5
at file "/usr/local/share/openocd/scripts/target/feroceon.cfg", line 23

running as root doesn't help either. Crap. Let's modify the target file, see if that helps:

tingo@kg-v7$ cp /usr/local/share/openocd/scripts/target/feroceon.cfg feroceon-icdi.cfg

modify (using stellaris-icdi.cfg as a guide). Contents:

root@kg-v7# more feroceon-icdi.cfg
######################################
# Target:    Marvell Feroceon CPU core
######################################

if { [info exists CHIPNAME] } {
   set _CHIPNAME $CHIPNAME
} else {
   set _CHIPNAME feroceon
}

if { [info exists ENDIAN] } {
   set _ENDIAN $ENDIAN
} else {
   set _ENDIAN little
}

if { [info exists CPUTAPID] } {
   set _CPUTAPID $CPUTAPID
} else {
   set _CPUTAPID 0x20a023d3
}

# possible value are hla_jtag
transport select hla_jtag

jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID

set _TARGETNAME $_CHIPNAME.cpu
target create $_TARGETNAME feroceon -endian $_ENDIAN -chain-position $_TARGETNAME

reset_config trst_and_srst
adapter_nsrst_delay 200
jtag_ntrst_delay 200

And try:

tingo@kg-v7$ openocd -f interface/ti-icdi.cfg -f feroceon-icdi.cfg
Open On-Chip Debugger 0.7.0 (2014-05-04-20:48)
Licensed under GNU GPL v2
For bug reports, read
    http://openocd.sourceforge.net/doc/doxygen/bugs.html
Runtime Error: feroceon-icdi.cfg:26: jtag newtap feroceon cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id 0x20a023d3: command requires more arguments
in procedure 'script'
at file "embedded:startup.tcl", line 58
in procedure 'jtag' called at file "feroceon-icdi.cfg", line 26

as root:

root@kg-v7# openocd -f interface/ti-icdi.cfg -f feroceon-icdi.cfg
Open On-Chip Debugger 0.7.0 (2014-05-04-20:48)
Licensed under GNU GPL v2
For bug reports, read
    http://openocd.sourceforge.net/doc/doxygen/bugs.html
Runtime Error: feroceon-icdi.cfg:26: jtag newtap feroceon cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id 0x20a023d3: command requires more arguments
in procedure 'script'
at file "embedded:startup.tcl", line 58
in procedure 'jtag' called at file "feroceon-icdi.cfg", line 26

well, at least I got a different error. In feroceon-icdi.cfg, change the line

jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID

into

hla newtap $_CHIPNAME cpu -expected-id 0

does it make a difference? Try:

tingo@kg-v7$ openocd -f interface/ti-icdi.cfg -f feroceon-icdi.cfg
Open On-Chip Debugger 0.7.0 (2014-05-04-20:48)
Licensed under GNU GPL v2
For bug reports, read
    http://openocd.sourceforge.net/doc/doxygen/bugs.html
trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain connect_deassert_srst
adapter_nsrst_delay: 200
Runtime Error: feroceon-icdi.cfg:35: invalid command name "jtag_ntrst_delay"
in procedure 'script'
at file "embedded:startup.tcl", line 58
at file "feroceon-icdi.cfg", line 35

Ok, comment out that line, try again:

tingo@kg-v7$ openocd -f interface/ti-icdi.cfg -f feroceon-icdi.cfg
Open On-Chip Debugger 0.7.0 (2014-05-04-20:48)
Licensed under GNU GPL v2
For bug reports, read
    http://openocd.sourceforge.net/doc/doxygen/bugs.html
trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain connect_deassert_srst
adapter_nsrst_delay: 200
Info : This adapter doesn't support configurable speed
Info : ICDI Firmware version: 9270
Error: query supported failed: 0x4
in procedure 'transport'
in procedure 'init'

Better, try as root:

root@kg-v7# openocd -f interface/ti-icdi.cfg -f feroceon-icdi.cfg
Open On-Chip Debugger 0.7.0 (2014-05-04-20:48)
Licensed under GNU GPL v2
For bug reports, read
    http://openocd.sourceforge.net/doc/doxygen/bugs.html
trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain connect_deassert_srst
adapter_nsrst_delay: 200
Info : This adapter doesn't support configurable speed
in procedure 'transport'
in procedure 'init'

Hmm, this is hard. After modifying the dockstar.cfg file a bit:

root@kg-v7# openocd -f dockstar.cfg
Open On-Chip Debugger 0.7.0 (2014-05-04-20:48)
Licensed under GNU GPL v2
For bug reports, read
    http://openocd.sourceforge.net/doc/doxygen/bugs.html
trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain connect_deassert_srst
Warn : use 'feroceon.cpu' as target identifier, not '0'
dockstar_reset_cpu
Info : This adapter doesn't support configurable speed
in procedure 'transport'
in procedure 'init'
root@kg-v7# openocd -f dockstar.cfg
Open On-Chip Debugger 0.7.0 (2014-05-04-20:48)
Licensed under GNU GPL v2
For bug reports, read
    http://openocd.sourceforge.net/doc/doxygen/bugs.html
trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain connect_deassert_srst
Warn : use 'feroceon.cpu' as target identifier, not '0'
dockstar_reset_cpu
Info : This adapter doesn't support configurable speed
Info : ICDI Firmware version: 9270
Error: query supported failed: 0x4
in procedure 'transport'
in procedure 'init'

I don't like that it changes between runs.

2014-05-07: the JTAG connector on the Stellaris LaunchPad has the following signals: TCK, TMS, TDO, TDI, EXT-DBG, TXD, RXD, RESET. In addition GND is required (which you can take from the BoosterPack Expansion headers). I connected the signals like this:

LM4F120 Dockstar TCK - TCK TMS - TMS TDO - TDO TDI - TDI RESET - TRST (active low) GND - GND

the serial signals go to my usb-to-serial adapter (it takes ground from the LaunchPad)
Note: on the Dockstar, the following signals are not connected: VCC, SRST (active low)

2014-05-07: Dockstar JTAG connector:

TCK TMS TDI -TRST VCC 9 7 5 3 1 10 8 6 4 2 TDO -SRST RX TX GND 3.3V! VCC = from Dockstar to JTAG adapter? or to Dockstar? TRST = Test Reset, active low TDI = Test Data input TMS = Test Mode Select TCK = Test Clock TDO = Test Data Output SRST = System Reset, active low RX = RX serial (3.3 V) TX = TX serial (3.3 V) GND = Ground

2014-05-06: Ok, it looks like the Stellaris LM4F120 LaunchPad (EK-LM4F120XL) can be used as a JTAG adapter. And it should be supported in OpenOCD 0.7.0. And I hav e 2 x LM4F120's.

2014-05-04: oops, it looks like I managed to brick my Dockstar. No output on serial port. Hmm, I need a JTAG adapter to unbrick it.

2011-07-21: config of usb-serial cable: 1 x TTL-232R-5V with the following pinout:

1 - black - GND 2 - brown - CTS 3 - red - VCC 4 - orange - TXD 5 - yellow - RXD 6 - green - RTS

which is connected to a cable with the following connector:

GND - black RXD - black TXD - red

The connector of the DockStar looks like this seen from the front (with the ethernet jack away from you):

9 7 5 3 1 10 8 6 4 2 RX TX GND 3.3V!

2011-02-06: Installed a new uBoot:

U-Boot 2010.09 (Oct 23 2010 - 11:49:22) Marvell-Dockstar/Pogoplug by Jeff Doozan

SoC: Kirkwood 88F6281_A0 DRAM: 128 MiB NAND: 256 MiB In: serial Out: serial Err: serial Net: egiga0 88E1116 Initialized on egiga0 Hit any key to stop autoboot: 0 Marvell>> version

U-Boot 2010.09 (Oct 23 2010 - 11:49:22) Marvell-Dockstar/Pogoplug by Jeff Doozan Marvell>>

2011-02-05: today I opened up the DockStar and connected a usb-ttl cable to the internal serial port. I only had a 5V usb-ttl cable, but it works. From my Linux workstation I did this:

tingo@kg-u35jc:~$ screen /dev/ttyUSB0 115200

and then I powered up the DockStar. Note: to quit screen use ctrl-a, followed by shift-k. Output:

DRAM CAS Latency = 5 tRP = 5 tRAS = 18 tRCD=6 DRAM CS[0] base 0x00000000 size 128MB DRAM Total size 128MB 16bit width Flash: 0 kB Addresses 8M - 0M are saved for the U-Boot usage. Mem malloc Initialization (8M - 7M): Done NAND:256 MB

CPU : Marvell Feroceon (Rev 1) CLOUD ENGINES BOARD: REDSTONE:1.0

Streaming disabled Write allocate disabled

USB 0: host mode PEX 0: interface detected no Link. Net: egiga0 [PRIME], egiga1 Hit any key to stop autoboot: 0

NAND read: device 0 offset 0x100000, size 0x300000

Reading data from 0x3ff800 -- 100% complete. 3145728 bytes read: OK

Booting image at 00800000 ...

Image Name: Linux-2.6.22.18 Created: 2009-08-31 23:31:05 UTC Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 1976384 Bytes = 1.9 MB Load Address: 00008000 Entry Point: 00008000 Verifying Checksum ... Bad Data CRC CE>>

Ok, so the firmware is corrupted. More info:

CE>> printenv baudrate=115200 loads_echo=0 ipaddr=169.254.254.253 serverip=169.254.254.254 rootpath=/mnt/ARM_FS/ netmask=255.255.0.0 run_diag=yes console=console=ttyS0,115200 CASset=min MALLOC_len=1 ethprime=egiga0 bootargs_root=root=/dev/mtdblock2 ro ethmtu=1500 usb0Mode=host nandEcc=1bit ethact=egiga0 ethaddr=00:10:75:1A:24:35 cesvcid=VUDUHXMCLK3TL4MJZUZZP8UP62 ceserialno=2GEP09GW ceboardver=REDSTONE:1.0 bootcmd=nand read.e 0x800000 0x100000 0x300000; setenv bootargs $(console) $(bootargs_root); bootm 0x800000 stdin=serial stdout=serial stderr=serial mainlineLinux=no enaMonExt=no enaCpuStream=no enaWrAllo=no pexMode=RC disL2Cache=no setL2CacheWT=yes disL2Prefetch=yes enaICPref=yes enaDCPref=yes sata_dma_mode=yes netbsd_en=no vxworks_en=no bootdelay=3 disaMvPnp=no bootargs=console=ttyS0,115200 root=/dev/mtdblock2 ro

Environment size: 815/131068 bytes Commands: CE>> help ? - alias for 'help' base - print or set address offset boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootext2 dev:boot_part1,boot_part2 addr boot_image linux_dev_name bootm - boot application image from memory bootp - boot image via network using BootP/TFTP protocol bubt - Burn an image on the Boot Nand Flash. chpart - change active partition cmp - memory compare cmpm - Compare Memory cp - memory copy cpumap - Display CPU memory mapping settings. crc32 - checksum calculation date - get/set/reset date & time dclk - Display the MV device CLKs. dhcp - invoke DHCP client to obtain IP/boot params diskboot- boot from IDE device echo - echo args to console eeprom - EEPROM sub-system erase - erase FLASH memory ext2load- load binary file from a Ext2 filesystem ext2ls - list files in a directory (default /) fi - Find value in the memory. flinfo - print FLASH memory information fsinfo - print information about filesystems fsload - load binary file from a filesystem image g - start application at cached address 'addr'(default addr 0x40000) go - start application at address 'addr' help - print online help icrc32 - checksum calculation ide - IDE sub-system iloop - infinite loop on address range imd - i2c memory display imm[.b, .s, .w, .l] - i2c memory modify (auto-incrementing) imw - memory write (fill) inm - memory modify (constant address) iprobe - probe to discover valid I2C chip addresses ir - reading and changing MV internal register values. loop - infinite loop on address range ls - list files in a directory (default /) map - Diasplay address decode windows md - memory display me - PCI master enable mm - memory modify (auto-incrementing) mp - map PCI BAR mtdparts- define flash/nand partitions mtest - simple RAM test mv_diag - perform board diagnostics mw - memory write (fill) nand - NAND sub-system nboot - boot from NAND device nbubt - Burn a boot loader image on the Boot Nand Flash. nm - memory modify (constant address) pci - list and access PCI Configuration Space phyRead - Read PCI-E Phy register pciePhyWrite - Write PCI-E Phy register phyRead - Read Phy register phyWrite - Write Phy register ping - send ICMP ECHO_REQUEST to network host printenv- print environment variables protect - enable or disable FLASH write protection rarpboot- boot image via network using RARP/TFTP protocol reset - Perform RESET of the CPU resetenv - Return all environment variable to default. run - run commands in an environment variable saveenv - save environment variables to persistent storage se - PCI Slave enable setenv - set environment variables sflash - read, write or erase the external SPI Flash. sg - scanning the PHYs status sp - Scan PCI bus. tftpboot- boot image via network using TFTP protocol version - print monitor version

More info.

CE>> version

U-Boot 1.1.4 (Jul 16 2009 - 21:02:16) Cloud Engines (3.4.16) Ok. More info: CE>> map

CPU Interface

SDRAM_CS0 ....base 00000000, size 128MB SDRAM_CS1 ....disable SDRAM_CS2 ....disable SDRAM_CS3 ....disable PEX0_MEM ....base 90000000, size 256MB PEX0_IO ....base f0000000, size 16MB INTER_REGS ....base f1000000, size 1MB NFLASH_CS ....base f9000000, size 8MB SPI_CS ....base f8000000, size 16MB BOOT_ROM_CS ....base ff000000, size 16MB DEV_BOOTCS ....base ff000000, size 16MB CRYPT_ENG ....base fb000000, size 64KB

AHB To MBUS Bridge:

win0 - PEX0_MEM base 90000000, ....size 256MB win1 - NFLASH_CS base f9000000, ....size 8MB win2 - PEX0_IO base f0000000, ....size 16MB win3 - SPI_CS base f8000000, ....size 16MB win4 - BOOT_ROM_CS base ff000000, ....size 16MB win5 - disable win6 - disable win7 - CRYPT_ENG base fb000000, ....size 64KB win8 - INTER_REGS base f1000000, ....size 1MB

PEX0:

Pex Bars

Internal Regs Bar0.... base f1000000, size 1MB DRAM Bar1............. base 00000000, size 128MB Devices Bar2.......... disable

Pex Decode Windows

win0 - SDRAM_CS0 base 00000000, ....size 128MB win1 - disable win2 - disable win3 - disable win4 - disable win5 - disable default win - target unknown Expansion ROM - NFLASH_CS

USB:

Device 0: win0 - SDRAM_CS0 base 00000000, size 128MB win1 - PEX0_MEM base 90000000, size 256MB win2 - disable win3 - disable

ETH 0:

win0 - SDRAM_CS0 base 00000000, ....size 128MB win1 - NFLASH_CS base f9000000, ....size 8MB win2 - SPI_CS base f8000000, ....size 16MB win3 - BOOT_ROM_CS base ff000000, ....size 16MB win4 - disable win5 - disable

ETH 1:

win0 - SDRAM_CS0 base 00000000, ....size 128MB win1 - NFLASH_CS base f9000000, ....size 8MB win2 - SPI_CS base f8000000, ....size 16MB win3 - BOOT_ROM_CS base ff000000, ....size 16MB win4 - disable win5 - disable

XOR 0:

win0 - NFLASH_CS base f9000000, size 8MB win1 - PEX0_MEM base 90000000, size 256MB win2 - SDRAM_CS0 base 0, size 128MB win3 - SPI_CS base f8000000, size 16MB win4 - CRYPT_ENG base fb000000, size 64KB win5 - disable win6 - disable win7 - disable

XOR 1:

win0 - NFLASH_CS base f9000000, size 8MB win1 - PEX0_MEM base 90000000, size 256MB win2 - SDRAM_CS0 base 0, size 128MB win3 - SPI_CS base f8000000, size 16MB win4 - CRYPT_ENG base fb000000, size 64KB win5 - disable win6 - disable win7 - disable

AUDIO:

win0 - SDRAM_CS0 base 00000000, ....size 256MB win1 - SDRAM_CS1 base 10000000, ....size 256MB CE>>

Much info there.

2010-10-29: It appears that the DockStar is bricked - it doesn't want to get an ip address from dhcp anymore.

2010-08-25: nand (mtd) partitions:

-bash-3.2# cat /proc/mtd dev: size erasesize name mtd0: 00100000 00020000 "u-boot" mtd1: 00400000 00020000 "uImage" mtd2: 02000000 00020000 "root" mtd3: 0db00000 00020000 "data" -bash-3.2# mount rootfs on / type rootfs (rw) /dev/root on / type jffs2 (ro) none on /proc type proc (rw) none on /sys type sysfs (rw) none on /dev/pts type devpts (rw) none on /tmp type tmpfs (rw) 2010-08-25: more info from the Linux side. -bash-3.2# cat /proc/cmdline console=ttyS0,115200 root=/dev/mtdblock2 ro -bash-3.2# cat /proc/cpuinfo Processor : ARM926EJ-S rev 1 (v5l) BogoMIPS : 1192.75 Features : swp half thumb fastmult edsp CPU implementer : 0x56 CPU architecture: 5TE CPU variant : 0x2 CPU part : 0x131 CPU revision : 1 Cache type : write-back Cache clean : cp15 c7 ops Cache lockdown : format C Cache format : Harvard I size : 16384 I assoc : 4 I line length : 32 I sets : 128 D size : 16384 D assoc : 4 D line length : 32 D sets : 128

Hardware : Feroceon-KW Revision : 0000 Serial : 0000000000000000 -bash-3.2# cat /proc/modules xce 18368 0 - Live 0xbf0d2000 tun 9152 1 - Live 0xbf0ce000 ufsd 573512 0 - Live 0xbf040000 (P) fuse 43156 0 - Live 0xbf034000 hfsplus 81188 0 - Live 0xbf01f000 hfs 50980 0 - Live 0xbf011000 vfat 10784 0 - Live 0xbf00d000 fat 48828 1 vfat, Live 0xbf000000

2010-08-25: I connected the DockStar and powered it up. By watching my dhcp server I got the IP address, and could do a ssh login with root and the default password (stxadmin). No motd, just logged straight into a bash shell.

-bash-3.2# uname -a Linux Pogoplug 2.6.22.18 #57 Mon Aug 31 16:31:01 PDT 2009 armv5tejl unknown Not very exciting. -bash-3.2# df -h Filesystem Size Used Available Use% Mounted on /dev/mtdblock2 32.0M 15.4M 16.6M 48% / none 61.6M 8.0k 61.5M 0% /tmp -bash-3.2# dmesg [ 0.000000] Linux version 2.6.22.18 (bdietrich@brad-ux) (gcc version 4.2.1) #57 Mon Aug 31 16:31:01 PDT 2009 [ 0.000000] CPU: ARM926EJ-S [56251311] revision 1 (ARMv5TE), cr=00053177 [ 0.000000] Machine: Feroceon-KW [ 0.000000] Using UBoot passing parameters structure [ 0.000000] Memory policy: ECC disabled, Data cache writeback [ 0.000000] On node 0 totalpages: 32768 [ 0.000000] DMA zone: 256 pages used for memmap [ 0.000000] DMA zone: 0 pages reserved [ 0.000000] DMA zone: 32512 pages, LIFO batch:7 [ 0.000000] Normal zone: 0 pages used for memmap [ 0.000000] CPU0: D VIVT write-back cache [ 0.000000] CPU0: I cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets [ 0.000000] CPU0: D cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets [ 0.000000] Built 1 zonelists. Total pages: 32512 [ 0.000000] Kernel command line: console=ttyS0,115200 root=/dev/mtdblock2 ro [ 0.000000] PID hash table entries: 512 (order: 9, 2048 bytes) [ 0.000000] Console: colour dummy device 80x30 [ 0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) [ 0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) [ 0.000000] Memory: 128MB 0MB 0MB 0MB = 128MB total [ 0.000000] Memory: 125824KB available (3588K code, 252K data, 120K init) [ 0.000000] Calibrating delay loop... 1192.75 BogoMIPS (lpj=5963776) [ 0.240000] Mount-cache hash table entries: 512 [ 0.240000] CPU: Testing write buffer coherency: ok [ 0.240000] NET: Registered protocol family 16 [ 0.240000] [ 0.240000] CPU Interface [ 0.240000] ------------- [ 0.240000] SDRAM_CS0 ....base 00000000, size 128MB [ 0.240000] SDRAM_CS1 ....disable [ 0.240000] SDRAM_CS2 ....disable [ 0.240000] SDRAM_CS3 ....disable [ 0.240000] PEX0_MEM ....base e8000000, size 128MB [ 0.240000] PEX0_IO ....base f2000000, size 1MB [ 0.240000] INTER_REGS ....base f1000000, size 1MB [ 0.240000] NFLASH_CS ....base fa000000, size 2MB [ 0.240000] SPI_CS ....base f4000000, size 16MB [ 0.240000] BOOT_ROM_CS ....no such [ 0.240000] DEV_BOOTCS ....no such [ 0.240000] CRYPT_ENG ....base f0000000, size 2MB [ 0.240000] [ 0.240000] Marvell Development Board (LSP Version KW_LSP_4.2.7_patch21_with_rx_desc_tuned)-- SHEEVA PLUG Soc: 88F6281 A0 LE [ 0.240000] [ 0.240000] Detected Tclk 200000000 and SysClk 400000000 [ 0.240000] MV Buttons Device Load [ 0.240000] Marvell USB EHCI Host controller #0: c0537600 [ 0.740000] PEX0 interface detected no Link. [ 0.740000] PCI: bus0: Fast back to back transfers enabled [ 0.740000] SCSI subsystem initialized [ 0.740000] usbcore: registered new interface driver usbfs [ 0.740000] usbcore: registered new interface driver hub [ 0.740000] usbcore: registered new device driver usb [ 0.740000] NET: Registered protocol family 2 [ 0.750000] Time: kw_clocksource clocksource has been installed. [ 0.840000] IP route cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.840000] TCP established hash table entries: 4096 (order: 3, 32768 bytes) [ 0.840000] TCP bind hash table entries: 4096 (order: 2, 16384 bytes) [ 0.840000] TCP: Hash tables configured (established 4096 bind 4096) [ 0.840000] TCP reno registered [ 0.870000] RTC has been updated!!! [ 0.870000] RTC registered [ 0.870000] Use the XOR engines (acceleration) for enhancing the following functions: [ 0.870000] o RAID 5 Xor calculation [ 0.870000] o kernel memcpy [ 0.870000] o kenrel memzero [ 0.870000] Number of XOR engines to use: 4 [ 0.870000] cesadev_init(c00116b4) [ 0.870000] mvCesaInit: sessions=640, queue=64, pSram=f0000000 [ 0.870000] MV Buttons Driver Load [ 0.870000] squashfs: version 3.3 (2007/10/31) Phillip Lougher [ 0.870000] squashfs: LZMA suppport for slax.org by jro [ 0.870000] JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc. [ 0.870000] io scheduler noop registered [ 0.870000] io scheduler anticipatory registered (default) [ 0.890000] Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled [ 0.890000] serial8250.0: ttyS0 at MMIO 0xf1012000 (irq = 33) is a 16550A [ 0.900000] serial8250.0: ttyS1 at MMIO 0xf1012100 (irq = 34) is a 16550A [ 0.900000] RAMDISK driver initialized: 16 RAM disks of 16384K size 1024 blocksize [ 0.910000] Loading Marvell Ethernet Driver: [ 0.920000] o Cached descriptors in DRAM [ 0.920000] o DRAM SW cache-coherency [ 0.920000] o Single RX Queue support - ETH_DEF_RXQ=0 [ 0.930000] o Single TX Queue support - ETH_DEF_TXQ=0 [ 0.940000] o TCP segmentation offload enabled [ 0.940000] o Receive checksum offload enabled [ 0.940000] o Transmit checksum offload enabled [ 0.950000] o Network Fast Processing (Routing) supported [ 0.960000] o Driver ERROR statistics enabled [ 0.960000] o Driver INFO statistics enabled [ 0.960000] o Proc tool API enabled [ 0.970000] o Rx descripors: q0=128 [ 0.970000] o Tx descripors: q0=532 [ 0.980000] o Loading network interface(s): [ 0.980000] o eth0, ifindex = 1, GbE port = 0 [ 0.990000] o eth1, ifindex = 2, GbE port = 1 [ 0.990000] [ 1.000000] mvFpRuleDb (c7ed5000): 1024 entries, 4096 bytes [ 1.000000] Intel(R) PRO/1000 Network Driver - version 7.3.20-k2-NAPI [ 1.010000] Copyright (c) 1999-2006 Intel Corporation. [ 1.010000] e100: Intel(R) PRO/100 Network Driver, 3.5.17-k4-NAPI [ 1.020000] e100: Copyright(c) 1999-2006 Intel Corporation [ 1.020000] [ 1.020000] Warning Sata is Powered Off [ 1.030000] NFTL driver: nftlcore.c $Revision: 1.98 $, nftlmount.c $Revision: 1.41 $ [ 1.040000] NAND device: Manufacturer ID: 0x2c, Chip ID: 0xda (Micron NAND 256MiB 3,3V 8-bit) [ 1.050000] Scanning device for bad blocks [ 1.050000] Bad eraseblock 40 at 0x00500000 [ 1.060000] Bad eraseblock 87 at 0x00ae0000 [ 1.070000] Bad eraseblock 167 at 0x014e0000 [ 1.070000] Bad eraseblock 186 at 0x01740000 [ 1.080000] Bad eraseblock 340 at 0x02a80000 [ 1.090000] Bad eraseblock 364 at 0x02d80000 [ 1.100000] Bad eraseblock 389 at 0x030a0000 [ 1.100000] Bad eraseblock 458 at 0x03940000 [ 1.110000] Bad eraseblock 548 at 0x04480000 [ 1.120000] Bad eraseblock 561 at 0x04620000 [ 1.120000] Bad eraseblock 566 at 0x046c0000 [ 1.130000] Bad eraseblock 578 at 0x04840000 [ 1.130000] Bad eraseblock 595 at 0x04a60000 [ 1.140000] Bad eraseblock 735 at 0x05be0000 [ 1.150000] Bad eraseblock 788 at 0x06280000 [ 1.150000] Bad eraseblock 802 at 0x06440000 [ 1.160000] Bad eraseblock 806 at 0x064c0000 [ 1.170000] Bad eraseblock 868 at 0x06c80000 [ 1.170000] Bad eraseblock 911 at 0x071e0000 [ 1.180000] Bad eraseblock 1028 at 0x08080000 [ 1.190000] Bad eraseblock 1178 at 0x09340000 [ 1.210000] Bad eraseblock 1359 at 0x0a9e0000 [ 1.220000] Bad eraseblock 1523 at 0x0be60000 [ 1.230000] Bad eraseblock 1707 at 0x0d560000 [ 1.240000] Bad eraseblock 1778 at 0x0de40000 [ 1.240000] Bad eraseblock 1779 at 0x0de60000 [ 1.250000] Bad eraseblock 1866 at 0x0e940000 [ 1.270000] Using static partition definition [ 1.270000] Creating 4 MTD partitions on "nand_mtd": [ 1.280000] 0x00000000-0x00100000 : "u-boot" [ 1.280000] 0x00100000-0x00500000 : "uImage" [ 1.280000] 0x00500000-0x02500000 : "root" [ 1.290000] 0x02500000-0x10000000 : "data" [ 1.290000] ehci_marvell ehci_marvell.70059: Marvell Orion EHCI [ 1.300000] ehci_marvell ehci_marvell.70059: new USB bus registered, assigned bus number 1 [ 1.340000] ehci_marvell ehci_marvell.70059: irq 19, io base 0xf1050100 [ 1.360000] ehci_marvell ehci_marvell.70059: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004 [ 1.360000] usb usb1: configuration #1 chosen from 1 choice [ 1.370000] hub 1-0:1.0: USB hub found [ 1.370000] hub 1-0:1.0: 1 port detected [ 1.490000] ohci_hcd: 2006 August 04 USB 1.1 'Open' Host Controller (OHCI) Driver [ 1.490000] USB Universal Host Controller Interface driver v3.0 [ 1.770000] usb 1-1: new high speed USB device using ehci_marvell and address 2 [ 1.920000] usb 1-1: configuration #1 chosen from 1 choice [ 1.920000] hub 1-1:1.0: USB hub found [ 1.930000] hub 1-1:1.0: 4 ports detected [ 2.040000] usbcore: registered new interface driver usblp [ 2.040000] drivers/usb/class/usblp.c: v0.13: USB Printer Device Class driver [ 2.050000] Initializing USB Mass Storage driver... [ 2.050000] usbcore: registered new interface driver usb-storage [ 2.060000] USB Mass Storage support registered. [ 2.070000] mice: PS/2 mouse device common for all mice [ 2.070000] i2c /dev entries driver [ 2.070000] Linux telephony interface: v1.00 [ 2.080000] md: linear personality registered for level -1 [ 2.080000] md: raid0 personality registered for level 0 [ 2.090000] md: raid1 personality registered for level 1 [ 2.260000] raid6: int32x1 97 MB/s [ 2.430000] raid6: int32x2 114 MB/s [ 2.600000] raid6: int32x4 122 MB/s [ 2.770000] raid6: int32x8 110 MB/s [ 2.770000] raid6: using algorithm int32x4 (122 MB/s) [ 2.770000] md: raid6 personality registered for level 6 [ 2.780000] md: raid5 personality registered for level 5 [ 2.780000] md: raid4 personality registered for level 4 [ 2.790000] raid5: measuring checksumming speed [ 2.840000] arm4regs : 1071.200 MB/sec [ 2.890000] 8regs : 754.800 MB/sec [ 2.940000] 32regs : 890.400 MB/sec [ 2.940000] raid5: using function: arm4regs (1071.200 MB/sec) [ 2.950000] device-mapper: ioctl: 4.11.0-ioctl (2006-10-12) initialised: dm-devel@redhat.com [ 2.950000] dm_crypt using the OCF package. [ 2.960000] sdhci: Secure Digital Host Controller Interface driver [ 2.960000] sdhci: Copyright(c) Pierre Ossman [ 2.970000] usbcore: registered new interface driver usbhid [ 2.970000] drivers/hid/usbhid/hid-core.c: v2.6:USB HID core driver [ 2.980000] TCP cubic registered [ 2.980000] NET: Registered protocol family 1 [ 2.990000] NET: Registered protocol family 17 [ 2.990000] md: Autodetecting RAID arrays. [ 3.000000] md: autorun ... [ 3.000000] md: ... autorun DONE. [ 3.000000] end_request: I/O error, dev mtdblock2, sector 2 [ 3.010000] EXT3-fs: unable to read superblock [ 7.630000] Empty flash at 0x00e28e44 ends at 0x00e29000 [ 7.780000] VFS: Mounted root (jffs2 filesystem) readonly. [ 7.790000] Freeing init memory: 120K [ 9.890000] eth0: link down [ 9.890000] eth0: started [ 11.680000] eth0: link up, full duplex, speed 100 Mbps [ 14.170000] fuse init (API version 7.8) [ 14.550000] ufsd: module license 'Commercial product' taints kernel. [ 14.710000] ufsd: driver loaded at bf040000 built on Aug 5 2009 15:35:26 [ 14.710000] UFSD version 7.07 (Aug 5 2009, 15:29:19) [ 14.710000] NTFS read/write support included [ 14.710000] Hfs+/HfsX read/write support included [ 14.710000] $Id: ufsdvfs.c,v 1.226 2009/07/30 16:04:07 shura Exp $ (LBD=ON) [ 14.730000] tun: Universal TUN/TAP device driver, 1.6 [ 14.740000] tun: (C) 1999-2004 Max Krasnyansky maxk@qualcomm.com [ 14.760000] Cloud Engines XCE Init [Version: 1.0.0.20] [ 14.770000] XCE: CPU MEMORY MAP: [ 14.770000] XCE: -- 0x00001000 - 0xbeffffff (3055 MB) User Space Mappings [ 14.780000] XCE: -- 0xbf000000 - 0xbfffffff ( 16 MB) Kernel module space [ 14.790000] XCE: -- 0xc0000000 - 0xc7ffffff ( 128 MB) Kernel direct-mapped ram [ 14.790000] XCE: -- 0xc8800000 - 0xe7ffffff ( 504 MB) Kernel vmalloc space [ 14.800000] XCE: -- 0xe8000000 - 0xfeffffff ( 367 MB) Kernel platform space [ 14.810000] XCE: Current GPIO State: [ 14.810000] XCE: GPIO L OUT: 0xeff00000 [ 14.820000] XCE: GPIO L OE: 0xefffffff [ 14.820000] XCE: GPIO L BLINK: 0x00000000 [ 14.820000] XCE: GPIO L POL: 0x00000000 [ 14.830000] XCE: GPIO L IN: 0xeff00080 [ 14.830000] XCE: GPIO H OUT: 0xfffeffff [ 14.840000] XCE: GPIO H OE: 0xfffc3fff [ 14.840000] XCE: GPIO H BLINK: 0x00000000 [ 14.840000] XCE: GPIO H POL: 0x00000000 [ 14.850000] XCE: GPIO H IN: 0x0002fffd [ 14.850000] XCE: Kernel thread starting PID: 343 [ 14.860000] XCE: -- 'wdog=off [ 14.860000] ' [ 15.940000] XCE: BLPARAMS: -- Loading properties [c70f1f04]. [ 15.940000] XCE: BLPARAMS: reading 2048 bytes @ a0000 [ 15.950000] XCE: BLPARAMS: reading 2048 bytes @ a0800 [ 15.950000] XCE: BLPARAMS: reading 2048 bytes @ a1000 [ 15.960000] XCE: BLPARAMS: reading 2048 bytes @ a1800 [ 21.140000] XCE: -- 'led0=0' -bash-3.2# cat /proc/version Linux version 2.6.22.18 (bdietrich@brad-ux) (gcc version 4.2.1) #57 Mon Aug 31 16:31:01 PDT 2009 ```

2010-08-20: I received the DockStar.