User Tools

Site Tools


toh:cloudengines:pogo-v4

Pogoplug v4/mobile

The Pogoplug Series 4 (POGO-V4-A3-01) and Pogoplug Mobile (POGO-V4-A1-01) are low-cost backup and media sharing devices based on the Marvell Kirkwood (ARM) CPU. The Pogoplug Mobile is notable for its low cost (< $10 USD).

OpenWrt forum thread: Pogoplug Mobile - Potentially the Best OpenWRT Platform @ $10 shipped

Supported Versions

Version/Model Launch Date S/N OpenWrt Version Supported Model Specific Notes
POGO-V4-A1-01 - - BB+ blue-ish logo
POGO-V4-A3-01 - - CC red-ish logo

Hardware Highlights

SoC Ram Flash Network USB Serial JTag
Marvel 88F6192@800MHz 128MiB 128MiB 1 x 1Gbit 1x 2.0 Yes Yes

Photos

Don't mix up the POGO-V4-A1-01 (blue-ish logo, see above) with the POGO-V4-A3-01 (redish logo), which is shown here:

Case may be opened by removing screws beneath two rubber feet at back of device, then lifting while prying the sides of the upper part out to unhook a latch on each side about 2/3rds of the way toward the front.

Serial connection is at J11, left of SD as you face SD opening. Pins are 0V, Rx, Tx (moving right to left from SD). Do not connect +V pin. Make sure your serial device is 3.3V, not 5V. Baud rate is 115200.

GPIO

There are at least 12 usable GPIO on this board excluding the serial console pins. Below is an image with the ones I've found so far.

pogoplug_mobile_gpio_large.jpg

In addition to these the two LEDs can also be repurposed. The green LED is GPIO22 and the red LED is GPIO24. There are also two unpopulated LEDs on the bottom of the board close to the 6192 processor marked LED7 and LED8. LED7 is GPIO23 and LED8 is GPIO21. The pad closest to the processor is tied to the pin. Here is the hardware peripheral mapping (http://free-electrons.com/kerneldoc//latest/devicetree/bindings/pinctrl/marvell,kirkwood-pinctrl.txt). Can anyone verify this? Seems strange to have MISO as output only, could be other errors?

* Marvell Kirkwood 88f6192

name          pins     functions
================================================================================
mpp0          0        gpio, nand(io2), spi(cs)
mpp1          1        gpo, nand(io3), spi(mosi)
mpp2          2        gpo, nand(io4), spi(sck)
mpp3          3        gpo, nand(io5), spi(miso)
mpp4          4        gpio, nand(io6), uart0(rxd), ptp(clk), sata1(act)
mpp5          5        gpo, nand(io7), uart0(txd), ptp(trig), sata0(act)
mpp6          6        sysrst(out), spi(mosi), ptp(trig)
mpp7          7        gpo, pex(rsto), spi(cs), ptp(trig)
mpp8          8        gpio, twsi0(sda), uart0(rts), uart1(rts), ptp(clk),
                       mii(col), mii-1(rxerr), sata1(prsnt)
mpp9          9        gpio, twsi(sck), uart0(cts), uart1(cts), ptp(evreq),
                       mii(crs), sata0(prsnt)
mpp10         10       gpo, spi(sck), uart0(txd), ptp(trig), sata1(act)
mpp11         11       gpio, spi(miso), uart0(rxd), ptp(clk), ptp-1(evreq),
                       ptp-2(trig), sata0(act)
mpp12         12       gpo, sdio(clk)
mpp13         13       gpio, sdio(cmd), uart1(txd)
mpp14         14       gpio, sdio(d0), uart1(rxd), mii(col), sata1(prsnt)
mpp15         15       gpio, sdio(d1), uart0(rts), uart1(txd), sata0(act)
mpp16         16       gpio, sdio(d2), uart0(cts), uart1(rxd), mii(crs),
                       sata1(act)
mpp17         17       gpio, sdio(d3), sata0(prsnt)
mpp18         18       gpo, nand(io0)
mpp19         19       gpo, nand(io1)
mpp20         20       gpio, ge1(txd0), ts(mp0), tdm(tx0ql), audio(spdifi),
                       sata1(act)
mpp21         21       gpio, ge1(txd1), sata0(act), ts(mp1), tdm(rx0ql),
                       audio(spdifo)
mpp22         22       gpio, ge1(txd2), ts(mp2), tdm(tx2ql), audio(rmclk),
                       sata1(prsnt)
mpp23         23       gpio, ge1(txd3), sata0(prsnt), ts(mp3), tdm(rx2ql),
                       audio(bclk)
mpp24         24       gpio, ge1(rxd0), ts(mp4), tdm(spi-cs0), audio(sdo)
mpp25         25       gpio, ge1(rxd1), ts(mp5), tdm(spi-sck), audio(lrclk)
mpp26         26       gpio, ge1(rxd2), ts(mp6), tdm(spi-miso), audio(mclk)
mpp27         27       gpio, ge1(rxd3), ts(mp7), tdm(spi-mosi), audio(sdi)
mpp28         28       gpio, ge1(col), ts(mp8), tdm(int), audio(extclk)
mpp29         29       gpio, ge1(txclk), ts(mp9), tdm(rst)
mpp30         30       gpio, ge1(rxclk), ts(mp10), tdm(pclk)
mpp31         31       gpio, ge1(rxclk), ts(mp11), tdm(fs)
mpp32         32       gpio, ge1(txclko), ts(mp12), tdm(drx)
mpp33         33       gpo, ge1(txclk), tdm(drx)
mpp34         34       gpio, ge1(txen), tdm(spi-cs1)
mpp35         35       gpio, ge1(rxerr), sata0(act), mii(rxerr), tdm(tx0ql)

Installation

Warning: This information has been compiled from various sources and has not been verified. Proceed with caution as you risk bricking your device.

OpenWrt installation for the Pogoplug Mobile uses the image for the (older) Pogoplug E02 and largely follows the procedure for the Seagate Dockstar.

Installation for booting from USB

According to this forum thread, the steps for installing OpenWrt on the Pogoplug Mobile (and booting from USB) are:

  1. Follow this guide up to (and including) the step "Boot default Pogoplug OS when USB/SD Card not attached (optional)"
  2. Follow the section "Installing OpenWRT onto a USB stick or HDD" in this guide to install onto USB but:
    • use ext3 (not ext2)
    • place the uImage file in the /boot folder.

Note that if you have serial console, you don't need the ssh access which the above instructions call for.

Installation for booting from NAND

  • NAND installation for the E02 works, and the same process works for the Pogoplug Mobile.
  • This link has some good information on writing the kernel to the nand, and this link shows how to write a ubifs image from u-boot. Don't forget to add ${mtdparts} to your bootcmd, excluding this and an errant ubiattach -p /dev/mtd0 meant I had the pleasure of figuring out JTAG on these devices.
  • Nand installation of ubifs (Instructions for trunk, but also work for CC 15.05)

Not working/tested

  • Eject button

OpenWrt bootlog

U-Boot 1.1.4 (Oct 1 2011 - 12:21:35) Cloud Engines 1.1.2 (3.4.27) PHYADDR=0 U-Boot code: 00600000 -> 0067FFF0 BSS: -> 006918B4 Soc: 88F6192 A1 (DDR2) CPU running @ 800Mhz L2 running @ 400Mhz SysClock = 200Mhz , TClock = 166Mhz DRAM CAS Latency = 3 tRP = 3 tRAS = 8 tRCD=3 DRAM CS[0] base 0x00000000 size 128MB DRAM Total size 128MB 16bit width Addresses 8M - 0M are saved for the U-Boot usage. Mem malloc Initialization (8M - 7M): Done NAND:128 MB Flash: 0 kB CPU : Marvell Feroceon (Rev 1) CLOUD ENGINES BOARD: PPV4A1 Streaming disabled Write allocate disabled USB 0: host mode PEX 0: interface detected no Link. Net: egiga0 [PRIME] Hit any key to stop autoboot: 0 Unknown command 'usb' - try 'help' NAND read: device 0 offset 0x100000, size 0x73d0c 474380 bytes read: OK ## Starting application at 0x00800000 ... U-Boot 1.1.4 (Jan 13 2012 - 22:33:21) Arch Linux ARM (PPV4 r1) PHYADDR=0 U-Boot code: 00600000 -> 0067FFF0 BSS: -> 006CFD60 Soc: 88F6192 A1 (DDR2) CPU running @ 800Mhz L2 running @ 400Mhz SysClock = 200Mhz , TClock = 166Mhz DRAM CAS Latency = 3 tRP = 3 tRAS = 8 tRCD=3 DRAM CS[0] base 0x00000000 size 128MB DRAM Total size 128MB 16bit width Addresses 8M - 0M are saved for the U-Boot usage. Mem malloc Initialization (8M - 7M): Done NAND:128 MB Flash: 0 kB CPU : Marvell Feroceon (Rev 1) CLOUD ENGINES BOARD: PPV4A1 Streaming disabled Write allocate disabled USB 0: host mode PEX 0: interface detected no Link. Net: egiga0 [PRIME] Hit any key to stop autoboot: 0 (Re)start USB... USB: scanning bus for devices... 2 USB Device(s) found Waiting for storage device(s) to settle before scanning... 1 Storage Device(s) found Reset IDE: Marvell Serial ATA Adapter Integrated Sata device found No Fat FS detected IDE device 0 not available . .... ...... ............ . ........................ . ......................... ........................ . ......................... ......................... . 1601190 bytes read ## Booting image at 00800000 ... Image Name: ARM OpenWrt Linux-3.14.16 Created: 2014-09-02 17:50:15 UTC Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 1601126 Bytes = 1.5 MB Load Address: 00008000 Entry Point: 00008000 Verifying Checksum ... OK OK Starting kernel ... Uncompressing Linux... done, booting the kernel. [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 3.14.16 (dp@P5Q-DELUXE) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r41887) ) #1 Tue Sep 2 12:50:02 CDT 2014 [ 0.000000] CPU: Feroceon 88FR131 [56251311] revision 1 (ARMv5TE), cr=00053977 [ 0.000000] CPU: VIVT data cache, VIVT instruction cache [ 0.000000] Machine model: Cloud Engines Pogoplug E02 [ 0.000000] Memory policy: Data cache writeback [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512 [ 0.000000] Kernel command line: console=ttyS0,115200 root=/dev/sda1 rootwait rootfstype=ext3 [ 0.000000] PID hash table entries: 512 (order: -1, 2048 bytes) [ 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: 125244K/131072K available (3218K kernel code, 150K rwdata, 912K rodata, 132K init, 181K bss, 5828K reserved) [ 0.000000] Virtual kernel memory layout: [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB) [ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB) [ 0.000000] vmalloc : 0xc8800000 - 0xff000000 ( 872 MB) [ 0.000000] lowmem : 0xc0000000 - 0xc8000000 ( 128 MB) [ 0.000000] modules : 0xbf000000 - 0xc0000000 ( 16 MB) [ 0.000000] .text : 0xc0008000 - 0xc0410d5c (4132 kB) [ 0.000000] .init : 0xc0411000 - 0xc0432364 ( 133 kB) [ 0.000000] .data : 0xc0434000 - 0xc045990c ( 151 kB) [ 0.000000] .bss : 0xc045990c - 0xc0486d58 ( 182 kB) [ 0.000000] NR_IRQS:114 [ 0.000023] sched_clock: 32 bits at 166MHz, resolution 6ns, wraps every 25769803770ns [ 0.000200] Calibrating delay loop... 795.44 BogoMIPS (lpj=3977216) [ 0.040120] pid_max: default: 32768 minimum: 301 [ 0.040281] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.040306] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.043251] CPU: Testing write buffer coherency: ok [ 0.043710] Setting up static identity map for 0x11168 - 0x111a4 [ 0.046269] pinctrl core: initialized pinctrl subsystem [ 0.047661] regulator-dummy: no parameters [ 0.048380] NET: Registered protocol family 16 [ 0.048959] DMA: preallocated 256 KiB pool for atomic coherent allocations [ 0.052723] cpuidle: using governor ladder [ 0.052810] Kirkwood: MV88F6281-A1. [ 0.053010] Feroceon L2: Enabling L2 [ 0.053063] Feroceon L2: Cache support initialised. [ 0.053692] [Firmware Info]: /ocp@f1000000/ethernet-controller@72000/ethernet0-port@0: local-mac-address is not set [ 0.070607] bio: create slab <bio-0> at 0 [ 0.071430] USB Power: Failed to request enable GPIO29: -517 [ 0.071639] reg-fixed-voltage 1.regulator: Failed to register regulator: -517 [ 0.071666] platform 1.regulator: Driver reg-fixed-voltage requests probe deferral [ 0.072772] SCSI subsystem initialized [ 0.073833] usbcore: registered new interface driver usbfs [ 0.074041] usbcore: registered new interface driver hub [ 0.074278] usbcore: registered new device driver usb [ 0.076264] Switched to clocksource orion_clocksource [ 0.078768] NET: Registered protocol family 2 [ 0.079350] TCP established hash table entries: 1024 (order: 0, 4096 bytes) [ 0.079387] TCP bind hash table entries: 1024 (order: 0, 4096 bytes) [ 0.079415] TCP: Hash tables configured (established 1024 bind 1024) [ 0.079498] TCP: reno registered [ 0.079515] UDP hash table entries: 256 (order: 0, 4096 bytes) [ 0.079546] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) [ 0.079781] NET: Registered protocol family 1 [ 0.081606] futex hash table entries: 256 (order: -1, 3072 bytes) [ 0.082267] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 0.082281] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc. [ 0.082592] msgmni has been set to 244 [ 0.083467] io scheduler noop registered [ 0.083481] io scheduler deadline registered (default) [ 0.085427] kirkwood-pinctrl f1010000.pinctrl: registered pinctrl driver [ 0.186764] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled [ 0.188674] f1012000.serial: ttyS0 at MMIO 0xf1012000 (irq = 33, base_baud = 10416666) is a 16550A [ 0.571410] console [ttyS0] enabled [ 0.577561] nand: device found, Manufacturer ID: 0xad, Chip ID: 0xf1 [ 0.583892] nand: Hynix H27U1G8F2BTR-BC [ 0.587741] nand: 128MiB, SLC, page size: 2048, OOB size: 64 [ 0.593378] Scanning device for bad blocks [ 0.690446] 4 ofpart partitions found on MTD device orion_nand [ 0.696273] Creating 4 MTD partitions on "orion_nand": [ 0.701396] 0x000000000000-0x000000100000 : "u-boot" [ 0.707866] 0x000000100000-0x000000500000 : "uImage" [ 0.714113] 0x000000500000-0x000002500000 : "pogoplug" [ 0.720584] 0x000002500000-0x000008000000 : "root" [ 0.727655] libphy: orion_mdio_bus: probed [ 0.732644] mv643xx_eth: MV-643xx 10/100/1000 ethernet driver version 1.4 [ 0.817550] mv643xx_eth_port mv643xx_eth_port.0 eth0: port 0 with MAC address XX:XX:XX:XX:XX:XX [ 0.826421] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 0.832923] ehci-pci: EHCI PCI platform driver [ 0.837583] ehci-platform: EHCI generic platform driver [ 0.843042] ehci-orion: EHCI orion driver [ 0.847193] orion-ehci f1050000.ehci: EHCI Host Controller [ 0.852688] orion-ehci f1050000.ehci: new USB bus registered, assigned bus number 1 [ 0.860550] orion-ehci f1050000.ehci: irq 24, io mem 0xf1050000 [ 0.886285] orion-ehci f1050000.ehci: USB 2.0 started, EHCI 1.00 [ 0.893296] hub 1-0:1.0: USB hub found [ 0.897098] hub 1-0:1.0: 1 port detected [ 0.901766] usbcore: registered new interface driver usb-storage [ 0.910289] TCP: cubic registered [ 0.913598] NET: Registered protocol family 17 [ 0.918404] 8021q: 802.1Q VLAN Support v1.8 [ 0.924040] regulator-dummy: disabling [ 0.928398] USB Power: 5000 mV [ 0.932125] drivers/rtc/hctosys.c: unable to open rtc device (rtc0) [ 0.939914] Waiting for root device /dev/sda1... [ 1.216307] usb 1-1: new high-speed USB device number 2 using orion-ehci [ 1.369338] usb-storage 1-1:1.0: USB Mass Storage device detected [ 1.375711] scsi0 : usb-storage 1-1:1.0 [ 2.377828] scsi 0:0:0:0: Direct-Access LEXAR JD FIREFLY 3000 PQ: 0 ANSI: 0 CCS [ 2.388233] sd 0:0:0:0: [sda] 1014784 512-byte logical blocks: (519 MB/495 MiB) [ 2.396343] sd 0:0:0:0: [sda] Write Protect is off [ 2.401841] sd 0:0:0:0: [sda] No Caching mode page found [ 2.407160] sd 0:0:0:0: [sda] Assuming drive cache: write through [ 2.417467] sd 0:0:0:0: [sda] No Caching mode page found [ 2.422781] sd 0:0:0:0: [sda] Assuming drive cache: write through [ 2.430029] sda: sda1 [ 2.435717] sd 0:0:0:0: [sda] No Caching mode page found [ 2.441050] sd 0:0:0:0: [sda] Assuming drive cache: write through [ 2.447154] sd 0:0:0:0: [sda] Attached SCSI removable disk [ 2.476348] UBIFS error (pid 1): ubifs_mount: cannot open "ubi0:rootfs", error -19 [ 2.484976] EXT4-fs (sda1): mounting ext3 file system using the ext4 subsystem [ 2.499712] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null) [ 2.507421] VFS: Mounted root (ext3 filesystem) readonly on device 8:1. [ 2.514633] Freeing unused kernel memory: 132K (c0411000 - c0432000) procd: Console is alive procd: - preinit - [ 2.854142] random: mktemp urandom read with 27 bits of entropy available Press the [f] key and hit [enter] to enter failsafe mode Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level mounting /dev/root [ 4.958382] EXT4-fs (sda1): re-mounted. Opts: (null) procd: - early - procd: - ubus - procd: - init - Please press Enter to activate this console. [ 9.806507] NET: Registered protocol family 10 [ 9.830193] nf_conntrack version 0.5.0 (1959 buckets, 7836 max) [ 9.855919] ip6_tables: (C) 2000-2006 Netfilter Core Team [ 9.908134] ip_tables: (C) 2000-2006 Netfilter Core Team [ 10.058859] xt_time: kernel timezone is -0000 [ 10.079085] PPP generic driver version 2.4.2 [ 10.096504] NET: Registered protocol family 24 [ 12.652384] random: nonblocking pool is initialized [ 13.049131] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready procd: - init complete - [ 14.902142] mv643xx_eth_port mv643xx_eth_port.0 eth0: link up, 100 Mb/s, half duplex, flow control disabled [ 14.912072] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready


JTAG

JTAG access points are available on the back side of the board.

TDI = TP19
TDO = TP20
TCK = TP18
TMS_CPU = TP21
RSTn = TP17

There is also TMS_CORE on TP22 but I didn't need this. Instructions for the dockstar devices worked for me.

Hardware mods

Currently none.

Adding SATA

Resources

Tags

toh/cloudengines/pogo-v4.txt · Last modified: 2017/01/02 22:43 by tmomas