Hardware
- PCB Front:
- PCB Front photo
- Marvell 88E1318 Gigabit Ethernet PHY
- A bunch of physical connectors and chrystals
- PCB Back:
- PCB Back photo
- Marvell 88F6192 A1 SoC
- Fresco Logic FL1009 USB 3.0 Host Controller (rev 02) at PCIE 1,0
- Hynix H27U1G8F2BTR BC Flash memory, 128 MiB
- Hynix H5PS1G63EFR S5C RAM, 128 MiB
- TI TPS65251 Voltage controller
Install OpenWrt
OpenWrt supports this device fine, and it is what I am using these days. Check the device page at OpenWrt for more information.
Stuff I install:
opkg update opkg install luci ksmbd-server kmod-usb-storage block-mount yt-dlp e2fsprogs cryptsetup openssh-sftp-server unrar hdparm
# SPDX-License-Identifier: GPL-2.0-only # Spin down drives after one minute if inactive if [ ! -n "$(command -v hdparm)" ]; then exit 0 fi DISKS=$(find /dev/sd[a-z] 2>/dev/null) for DISK in $DISKS do if [ -b $DISK ] ; then hdparm -S 12 $DISK > /dev/null fi done
Install ArchLinux
WARNING: this is historical information. The ARMv5 support was deleted from ArchLinuxARM and they no longer support the target.
This page at ArchLinux details how to install a system from scratch. They make some assumptions, and for example try to download the whole distribution archive into /tmp which will not work. Download it to the target device and untar it there instead.
What ArchLinux finally does when you run the script ppv4-install.sh is to write a second U-Boot at offset 0x100000 (halfway into the U-boot partition in flash, see below) and making the factory-installed U-Boot first look for IDE and USB devices to boot fromm and if that fails (typically because they are not formatted with ext2) load and run this second U-Boot, provided by ArchLinux. The second U-Boot has extended capabilities. It modifies the bootloader parameters using /usr/local/cloudengines/bin/blparam which comes with CloudEngines installation.
- Login with alarm/alarm type su password root to get to the root account.
- If the network does not come up, type dhcpcd
- Upgrade the newly booted system with pacman -Syu
- The flash is formatted with UBIFS, you may want to access it? pacman -S mtd-utils
- You may want device mapper encryption: pacman -S cryptsetup
- Change root and alarm passwords
- hostnamectl set-hostname PogoPlug
- systemctl enable dhcpcd.service
- systemctl start dhcpcd.service
- Edit /etc/systemd/timesyncd.conf adding some local NTP time server(s)
- timedatectl set-ntp true
Setting up swap: a locale-gen problem
Sometimes locale-gen dies under update because it runs out of memory. This can happen if you're just running samba or minidlna as well. So better safe than sorry. Set up swap. Solve this by enabling a temporary swap file (as root):
- su
- cd
- dd if=/dev/zero of=swapfile bs=1024 count=1M
- chmod 0600 swapfile
- mkswap swapfile
- swapon swapfile
- swapon -s
- locale-gen
- swapoff swapfile
- rm swapfile
Make the change permanent by not disabling adding the swapfile your /etc/fstab like this:
/swapfile none swap defaults 0 0
Installing and starting SAMBA
If you want to use the pogoplug as a NAS then you want SAMBA installed.
- pacman -Sy samba
- Edit /etc/samba/smb.conf (this is the hard part)
- systemctl enable smb.service
- systemctl start smb.service
Installing and starting ReadyMedia/minidlna
If you want to access your media files from a DLNA device such as a Samsung TV.
- pacman -Sy minidlna
- Edit /etc/minidlna.conf set:
- user=nobody
- logdir=/var/tmp
- The directory for the database has the wrong owner, so issue:
- cd /var/cache/private
- chown nobody minidlna
- chgrp nobody minidlna
- systemctl enable minidlna.service
- systemctl start minidlna.service
Build a custom kernel
- Get a proper crosscompiler. I use a prebuilt cross compiler from Arm
- Clone the official Linux kernel tree and checkout the latest sharp release or -rc or even use the HEAD if you like.
- Build it like I do in my makefile
- Example uImage-5.14-rc5 that works fine so you have something to test with if you need. This can be installed into the flash as described below.
- found a regression 2021-08-15 patch should be merged soon after
Boot with a custom kernel
Using the serial port, I hit ENTER when the U-Boot prompt comes up like this:
U-Boot 1.1.4 (Oct 1 2011 - 12:06:06) 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: PPV4A3 Streaming disabled Write allocate disabled USB 0: host mode PEX 0: PCI Express Root Complex Interface PEX interface detected Link X1 Net: egiga0 [PRIME] Hit any key to stop autoboot: 0 CE>> CE>>
At this CE>> prompt copy/paste a commandline like this:
CE>> setenv bootargs console=ttyS0,115200n8 root=/dev/sda1 rw rootwait rootfstype=ext4;setenv serverip 192.168.1.1;setenv ipaddr 192.168.1.2;setenv bootfile uImage;tftpboot 0x00800000;bootm 0x00800000
This will set up the boot arguments so that we use /dev/sda1 as root filesystem, then load the kernel from a TFTP server and boot it. If you have both USB and SATA devices plugged in, either can become sda or sdb figure it out.
Poke around in flash
The flash partitions should appear as /dev/mtd0 .. /dev/mtd4 and physically look like displayed in dmesg:
[ 0.857554] nand: device found, Manufacturer ID: 0xad, Chip ID: 0xf1 [ 0.862580] nand: Hynix H27U1G8F2BTR-BC [ 0.865097] nand: 128 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64 [ 0.871526] Scanning device for bad blocks [ 0.969082] 5 ofpart partitions found on MTD device orion_nand [ 0.973587] Creating 5 MTD partitions on "orion_nand": [ 0.977425] 0x000000000000-0x000000200000 : "u-boot" [ 0.982870] 0x000000200000-0x000000500000 : "uImage" [ 0.988115] 0x000000500000-0x000000800000 : "uImage2" [ 0.993329] 0x000000800000-0x000001000000 : "failsafe" [ 0.998763] 0x000001000000-0x000008000000 : "root"
The first two are pretty self-explanatory. uImage2 is a rescue/fallback kernel (just a copy of the first uImage), I have no clue about failsafe, but it contains UBIFS markers. root is obviously the root filesystem in UBIFS format.
Poke around in UBIFS
The onboard 128MiB flash has a rootfs with the CloudEngine default firmware. Maybe you just want to leave that sitting there, because the flash is too small to host ArchLinux (which is around 1-2 GiB) or any other full distribution. Of course you can make a smallish BusyBox installation just like CloudEngine does.
- As mentioned the flash is formatted with UBIFS: pacman -S mtd-utils
- Attach the UBIFS root volume in flash like this: ubiattach -p /dev/mtd4 -O 2048
- Mount it like this: mount -t ubifs /dev/ubi0_0 /mnt
- Look around in /mnt...
You find a boring filesystem with Busybox, Dropbear (SSH), gdbserver (!), and some custom CloudEngine software in /mnt/usr/local/cloudengines/bin, where you can just from filenames tell that they have spent some time on supporting HFS, NTFS 3g, ffmpeg (thumbnails? transcoding?), ppsync (which I guess is what connects to their cloud service), and for some reason MediaTek RT3070 wireless USB adapters. There is also the custom kernel module XCE, which seems (to me) like a completely needless replacement for proper userspace ABIs that already exist, e.g. reimplementation of the already existing Marvell "poweroff" and watchdog by poking directly in the Marvell system controller, and a GPIO interface reimplemting /sys/class/gpio/* export. Maybe some of it is due to this old kernel lacking some of that support, but I don't know. Actually it seems it would be simple to take the latest mainline kernel and compile XCE for it and run this CloudEngine application.
Install the custom kernel into flash
Do you care about the original Cloudengines firmware? Do you like their nifty cloud service and Android apps to access files? Then this is obviously not for you. I just see this box as a piece of hardware that I wanna play around with and get to do my stuff.
However, CloudEngines have cleverly put two copies of their kernel into the flash. One copy at 0x200000-0x500000 and another copy at 0x500000-0x800000. So if you overwrite one of them with your custom kernel, the other one will still be there.
The two partitions used for uImages are too small for an upstream Marvell Kirkwood kernel. We could try to strip our kernel down but .... aecch. Too much work. I like my 4.1 MB kernel. Since I'm not using the root filesystem, I'm just going to overwrite that. Maybe make a backup first.
Needless to say this procedure require serial console access.
- It is simple to read out the primary uImage from the flash, just dd if=/dev/mtd1 of=/tmp/uImage, this is a good test to make sure things work.
- dd if=/dev/mtd4 of=rootfs-backup.bin
- Reboot, enter U-Boot (hammer enter)
- Load the kernel into memory with something like
setenv serverip 192.168.1.1;setenv ipaddr 192.168.1.2;setenv bootfile uImage;tftpboot 0x00800000
- The prompt says something like: Bytes transferred = 5793604 (586744 hex)
- The kernel you want to use now resides in memory from 0x00800000 to 0xd86744, well it is roughly 0x590000 so let's flash that. NOTE! if it becomes more than 0x590000 you will need to bump up the size, as you probably understand.
- Clean the flash we're gonna use (NB: of course this destroys the rootfs!):
nand erase 0x1000000 0x590000 NAND erase: device 0 offset 0x1000000, size 0x590000 Erasing at 0x1560000 -- 100% complete. OK
- Flash the kernel in memory over the rootfs partition:
nand write 0x800000 0x1000000 0x590000 NAND write: device 0 offset 0x1000000, size 0x590000 5832704 bytes written: OK
- Test that the kernel loads from NAND:
nboot 0x800000 0 0x1000000 Loading from NAND 128MB 3,3V 8-bit, offset 0x1000000 Image Name: Kirkwood Linux kernel Created: 2015-11-27 12:40:04 UTC Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 4147795 Bytes = 4 MB Load Address: 00008000 Entry Point: 00008000
- printenv We should already have:
load_nand=nboot 0x800000 0 0x200000 load_nand2=nboot 0x800000 0 0x500000 boot=bootm 0x800000 boot_nand=run load_nand boot || run load_nand2 boot (...)
- Okay let's set up this to boot from our root partition
istead:
setenv load_nand4 nboot 0x800000 0 0x1000000 setenv bootcmd run load_nand4 boot setenv bootargs console=ttyS0,115200n8 root=/dev/sda1 rw rootwait rootfstype=ext4 printenv saveenv reset
Using the hardware crypto engine
The crypographic AES engine in the Marvell Kirkwood SoC will accelerate and offload cryptographic operations on the PogoPlug, but then think about using the right cipher. This works to encrypt an entire drive on /dev/sdb:
cryptsetup -v --cipher aes-cbc-plain /dev/sdb cryptsetup open /dev/sdb storage dd if=/dev/zero of=/dev/mapper/storage bs=1M mkfs.ext4 /dev/mapper/storage mkdir /mnt/storage mount /dev/mapper/storage /mnt/storage
As you can see the key is to use cipher type aes-cbc-plain since the LUKS default aes-xtc-plain64 isn't properly supported by the hardware engine.
Kernel TODO
- Modify the Marvell CESA driver in drivers/crypto/mv_cesa.c to use CRYPTO_ENGINE as OMAP does
Unmodified firmware logs:
uname -a:
Linux Pogoplug 2.6.31.8 #5 Wed Sep 28 12:09:12 PDT 2011 armv5tel GNU/Linux
cat /proc/cpuinfo:
/proc # cat cpuinfo Processor: Feroceon 88FR131 rev 1 (v5l) BogoMIPS: 799.53 Features: swp half thumb fastmult edsp CPU implementer: 0x56 CPU architecture: 5TE CPU variant: 0x2 CPU part: 0x131 CPU revision: 1 Hardware: Feroceon-KW Revision: 0000 Serial: 0000000000000000
dmesg:
0:rootfs ubi.mtd=4,2048 rootfstype=ubifs [ 0.000000] PID hash table entries: 512 (order: 9, 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: 128MB = 128MB total [ 0.000000] Memory: 118356KB available (3852K code, 261K data, 124K init, 0K highmem) [ 0.000000] Hierarchical RCU implementation. [ 0.000000] NR_IRQS:128 [ 0.000000] Console: colour dummy device 80x30 [ 0.000000] Calibrating delay loop... 799.53 BogoMIPS (lpj=3997696) [ 0.230000] Mount-cache hash table entries: 512 [ 0.230000] CPU: Testing write buffer coherency: ok [ 0.230000] NET: Registered protocol family 16 [ 0.230000] Feroceon L2: Enabling L2 [ 0.230000] Feroceon L2: Cache support initialised. [ 0.230000] [ 0.230000] CPU Interface [ 0.230000] ------------- [ 0.230000] SDRAM_CS0 ....base 00000000, size 128MB [ 0.230000] SDRAM_CS1 ....disable [ 0.230000] SDRAM_CS2 ....disable [ 0.230000] SDRAM_CS3 ....disable [ 0.230000] PEX0_MEM ....base e0000000, size 128MB [ 0.230000] PEX0_IO ....base f2000000, size 1MB [ 0.230000] PEX1_MEM ....no such [ 0.230000] PEX1_IO ....no such [ 0.230000] INTER_REGS ....base f1000000, size 1MB [ 0.230000] NFLASH_CS ....base fa000000, size 2MB [ 0.230000] SPI_CS ....base f4000000, size 16MB [ 0.230000] BOOT_ROM_CS ....no such [ 0.230000] DEV_BOOTCS ....no such [ 0.230000] CRYPT_ENG ....base f0000000, size 2MB [ 0.230000] [ 0.230000] Marvell Development Board (LSP Version KW_LSP_5.1.3_patch18)-- RD-88F6192A-NAS Soc: 88F6192 A1 LE [ 0.230000] [ 0.230000] Detected Tclk 166666667 and SysClk 200000000 [ 0.230000] Marvell USB EHCI Host controller #0: c403e740 [ 0.730000] PEX0 interface detected Link X1 [ 0.730000] pci 0000:00:01.0: reg 10 64bit mmio: [0x40000000-0x4000ffff] [ 0.730000] pci 0000:00:01.0: reg 18 64bit mmio: [0x40010000-0x40010fff] [ 0.730000] pci 0000:00:01.0: reg 20 64bit mmio: [0x40011000-0x40011fff] [ 0.740000] pci 0000:00:01.0: supports D1 [ 0.740000] pci 0000:00:01.0: PME# supported from D0 D1 D3hot [ 0.740000] pci 0000:00:01.0: PME# disabled [ 0.740000] PCI: bus0: Fast back to back transfers disabled [ 0.740000] mvPexLocalBusNumSet: ERR. Invalid PEX interface 1 [ 0.750000] bio: create slabat 0 [ 0.750000] SCSI subsystem initialized [ 0.750000] usbcore: registered new interface driver usbfs [ 0.750000] usbcore: registered new interface driver hub [ 0.750000] usbcore: registered new device driver usb [ 0.750000] NET: Registered protocol family 2 [ 0.750000] IP route cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.750000] TCP established hash table entries: 4096 (order: 3, 32768 bytes) [ 0.750000] TCP bind hash table entries: 4096 (order: 2, 16384 bytes) [ 0.750000] TCP: Hash tables configured (established 4096 bind 4096) [ 0.750000] TCP reno registered [ 0.750000] NET: Registered protocol family 1 [ 0.750000] cpufreq: Init kirkwood cpufreq driver [ 0.750000] cpufreq: High frequency: 800000KHz - Low frequency: 200000KHz [ 0.750000] cpufreq: Setting CPU Frequency to 800000 KHz [ 0.750000] cpufreq: Setting PowerSaveState to off [ 0.760000] XOR registered 4 channels [ 0.760000] XOR 2nd invalidate WA enabled [ 0.760000] cesadev_init(c000d7fc) [ 0.760000] mvCesaInit: sessions=640, queue=64, pSram=f0000000 [ 0.760000] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 0.770000] msgmni has been set to 231 [ 0.770000] alg: No test for cipher_null (cipher_null-generic) [ 0.770000] alg: No test for ecb(cipher_null) (ecb-cipher_null) [ 0.770000] alg: No test for digest_null (digest_null-generic) [ 0.770000] alg: No test for compress_null (compress_null-generic) [ 0.780000] alg: No test for stdrng (krng) [ 0.780000] alg: No test for hmac(digest_null) (hmac(digest_null-generic)) [ 0.790000] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253) [ 0.790000] io scheduler noop registered [ 0.790000] io scheduler anticipatory registered (default) [ 0.790000] Initializing ths8200_init [ 0.790000] Initializing dove_adi9889_init [ 0.810000] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled [ 0.810000] serial8250.0: ttyS0 at MMIO 0xf1012000 (irq = 33) is a 16550A [ 0.810000] console [ttyS0] enabled [ 0.820000] Integrated Sata device found [ 0.830000] IRQ 21/mvSata: IRQF_DISABLED is not guaranteed on shared IRQs [ 0.850000] scsi0 : Marvell SCSI to SATA adapter [ 0.860000] scsi1 : Marvell SCSI to SATA adapter [ 0.870000] Loading Marvell Ethernet Driver: [ 0.870000] o Cached descriptors in DRAM [ 0.880000] o DRAM SW cache-coherency [ 0.880000] o 1 Giga ports supported [ 0.880000] o Single RX Queue support - ETH_DEF_RXQ=0 [ 0.890000] o Single TX Queue support - ETH_DEF_TXQ=0 [ 0.890000] o TCP segmentation offload (TSO) supported [ 0.900000] o Large Receive offload (LRO) supported [ 0.900000] o Receive checksum offload supported [ 0.910000] o Transmit checksum offload supported [ 0.910000] o Network Fast Processing (Routing) supported - (Disabled) [ 0.920000] o Driver ERROR statistics enabled [ 0.930000] o Proc tool API enabled [ 0.930000] o SKB Reuse supported - (Disabled) [ 0.930000] o SKB Recycle supported - (Disabled) [ 0.940000] o Rx descripors: q0=128 [ 0.940000] o Tx descripors: q0=532 [ 0.950000] o Loading network interface(s): [ 0.950000] o register under mv88fx_eth platform [ 0.960000] o eth0, ifindex = 2, GbE port = 0 [ 0.960000] [ 0.960000] mvFpRuleDb (c45b2000): 1024 entries, 4096 bytes [ 0.970000] Counter=0, opIdx=6, overhead=16 [ 0.970000] Counter=1, opIdx=2, overhead=0 [ 0.980000] Counter=2, opIdx=1, overhead=18 [ 0.980000] Counter=3, opIdx=2, overhead=0 [ 0.990000] tun: Universal TUN/TAP device driver, 1.6 [ 0.990000] tun: (C) 1999-2004 Max Krasnyansky [ 1.000000] NAND device: Manufacturer ID: 0xad, Chip ID: 0xf1 (Hynix NAND 128MiB 3,3V 8-bit) [ 1.010000] Scanning device for bad blocks [ 1.060000] Using static partition definition [ 1.060000] Creating 5 MTD partitions on "nand_mtd": [ 1.070000] 0x000000000000-0x000000200000 : "u-boot" [ 1.070000] 0x000000200000-0x000000500000 : "uImage" [ 1.080000] 0x000000500000-0x000000800000 : "uImage2" [ 1.080000] 0x000000800000-0x000001000000 : "failsafe" [ 1.090000] 0x000001000000-0x000008000000 : "root" [ 1.100000] UBI: attaching mtd4 to ubi0 [ 1.100000] UBI: physical eraseblock size: 131072 bytes (128 KiB) [ 1.110000] UBI: logical eraseblock size: 126976 bytes [ 1.110000] UBI: smallest flash I/O unit: 2048 [ 1.120000] UBI: sub-page size: 512 [ 1.120000] UBI: VID header offset: 2048 (aligned 2048) [ 1.130000] UBI: data offset: 4096 [ 1.350000] UBI: attached mtd4 to ubi0 [ 1.350000] UBI: MTD device name: "root" [ 1.360000] UBI: MTD device size: 112 MiB [ 1.360000] UBI: number of good PEBs: 896 [ 1.370000] UBI: number of bad PEBs: 0 [ 1.370000] UBI: max. allowed volumes: 128 [ 1.380000] UBI: wear-leveling threshold: 4096 [ 1.380000] UBI: number of internal volumes: 1 [ 1.390000] UBI: number of user volumes: 1 [ 1.390000] UBI: available PEBs: 0 [ 1.400000] UBI: total number of reserved PEBs: 896 [ 1.400000] UBI: number of PEBs reserved for bad PEB handling: 8 [ 1.410000] UBI: max/mean erase counter: 1/0 [ 1.410000] UBI: image sequence number: 0 [ 1.420000] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 1.420000] ehci_marvell ehci_marvell.70059: Marvell Orion EHCI [ 1.430000] ehci_marvell ehci_marvell.70059: new USB bus registered, assigned bus number 1 [ 1.440000] UBI: background thread "ubi_bgt0d" started, PID 452 [ 1.470000] ehci_marvell ehci_marvell.70059: irq 19, io base 0xf1050100 [ 1.490000] ehci_marvell ehci_marvell.70059: USB 2.0 started, EHCI 1.00 [ 1.490000] usb usb1: configuration #1 chosen from 1 choice [ 1.500000] hub 1-0:1.0: USB hub found [ 1.500000] hub 1-0:1.0: 1 port detected [ 1.510000] xhci_hcd 0000:00:01.0: xHCI Host Controller [ 1.510000] xhci_hcd 0000:00:01.0: new USB bus registered, assigned bus number 2 [ 1.520000] xhci_hcd 0000:00:01.0: irq 9, io mem 0xe0000000 [ 1.530000] usb usb2: config 1 interface 0 altsetting 0 endpoint 0x81 has no SuperSpeed companion descriptor [ 1.540000] usb usb2: configuration #1 chosen from 1 choice [ 1.540000] xHCI xhci_add_endpoint called for root hub [ 1.540000] xHCI xhci_check_bandwidth called for root hub [ 1.540000] hub 2-0:1.0: USB hub found [ 1.550000] hub 2-0:1.0: 4 ports detected [ 1.550000] Initializing USB Mass Storage driver... [ 1.550000] usbcore: registered new interface driver usb-storage [ 1.560000] USB Mass Storage support registered. [ 1.570000] usbcore: registered new interface driver ums-datafab [ 1.570000] usbcore: registered new interface driver ums-freecom [ 1.580000] usbcore: registered new interface driver ums-jumpshot [ 1.580000] usbcore: registered new interface driver ums-sddr09 [ 1.590000] usbcore: registered new interface driver ums-sddr55 [ 1.600000] usbcore: registered new interface driver ums-usbat [ 1.600000] mice: PS/2 mouse device common for all mice [ 1.610000] i2c /dev entries driver [ 1.610000] cpufreq: Setting CPU Frequency to 800000 KHz [ 1.610000] cpufreq: Setting PowerSaveState to off [ 1.620000] sdhci: Secure Digital Host Controller Interface driver [ 1.620000] sdhci: Copyright(c) Pierre Ossman [ 1.630000] mmc0: mvsdio driver initialized, using GPIO 27 for card detection [ 1.640000] usbcore: registered new interface driver usbhid [ 1.640000] usbhid: v2.6:USB HID core driver [ 1.650000] TCP cubic registered [ 1.650000] NET: Registered protocol family 17 [ 1.660000] RPC: Registered udp transport module. [ 1.660000] RPC: Registered tcp transport module. [ 1.670000] drivers/rtc/hctosys.c: unable to open rtc device (rtc0) [ 1.820000] UBIFS: mounted UBI device 0, volume 0, name "rootfs" [ 1.820000] UBIFS: file system size: 110850048 bytes (108252 KiB, 105 MiB, 873 LEBs) [ 1.830000] UBIFS: journal size: 9023488 bytes (8812 KiB, 8 MiB, 72 LEBs) [ 1.840000] UBIFS: media format: w4/r0 (latest is w4/r0) [ 1.840000] UBIFS: default compressor: lzo [ 1.850000] UBIFS: reserved for root: 0 bytes (0 KiB) [ 1.850000] VFS: Mounted root (ubifs filesystem) on device 0:11. [ 1.860000] Freeing init memory: 124K [ 1.930000] usb 2-1: new high speed USB device using xhci_hcd and address 0 [ 1.980000] usb 2-1: configuration #1 chosen from 1 choice [ 2.000000] scsi2 : SCSI emulation for USB Mass Storage devices [ 2.020000] usb-storage: device found at 2 [ 2.020000] usb-storage: waiting for device to settle before scanning [ 4.280000] eth0: link down [ 4.280000] eth0: started [ 5.810000] eth0: link up, full duplex, speed 1 Gbps [ 7.020000] scsi 2:0:0:0: Direct-Access USB Flash Disk 1.00 PQ: 0 ANSI: 2 [ 7.040000] sd 2:0:0:0: [sda] 7900336 512-byte logical blocks: (4.04 GB/3.76 GiB) [ 7.040000] sd 2:0:0:0: [sda] Write Protect is off [ 7.050000] sd 2:0:0:0: [sda] Mode Sense: 0b 00 00 08 [ 7.050000] sd 2:0:0:0: [sda] Assuming drive cache: write through [ 7.060000] sd 2:0:0:0: [sda] Assuming drive cache: write through [ 7.060000] sda: sda1 [ 7.080000] sd 2:0:0:0: Attached scsi generic sg0 type 0 [ 7.090000] usb-storage: device scan complete [ 7.100000] sd 2:0:0:0: [sda] Assuming drive cache: write through [ 7.100000] sd 2:0:0:0: [sda] Attached SCSI removable disk [ 7.890000] IRQ 93 uses trigger mode 0; requested 3 [ 7.900000] input: gpio-keys as /devices/platform/gpio-keys.0/input/input0 [ 7.910000] xce_ebtn: Pogoplug series V4 eject button initialized. [ 8.050000] ufsd: module license 'Commercial product' taints kernel. [ 8.060000] Disabling lock debugging due to kernel taint [ 8.090000] ufsd: driver (8.6 (U86_S[2012-02-28-18:39:23]), LBD=ON, delalloc, ioctl) loaded at bf00c000 [ 8.090000] NTFS support included [ 8.090000] Hfs+/HfsX support included [ 8.090000] For 'CloudEngines_PogoPlug_2011-08-03' [ 8.430000] rtusb init rt2870 ---> [ 8.440000] usbcore: registered new interface driver rt2870 [ 8.470000] Cloud Engines XCE Init [Version: 3.9.0.4] [ 8.470000] XCE: CPU MEMORY MAP: [ 8.470000] XCE: -- 0x00001000 - 0xbeffffff (3055 MB) User Space Mappings [ 8.480000] XCE: -- 0xbf000000 - 0xbfffffff ( 16 MB) Kernel module space [ 8.490000] XCE: -- 0xc0000000 - 0xc7ffffff ( 128 MB) Kernel direct-mapped ram [ 8.490000] XCE: -- 0xc8800000 - 0xe7ffffff ( 504 MB) Kernel vmalloc space [ 8.500000] XCE: -- 0xe8000000 - 0xfeffffff ( 367 MB) Kernel platform space [ 8.510000] XCE: CPU FEATURES: [ 8.510000] XCE: -- I Cache: enabled [ 8.520000] XCE: -- D Cache: enabled [ 8.520000] XCE: -- Branch Predict: disabled [ 8.530000] XCE: -- MMU: enabled [ 8.530000] XCE: -- Alignment Abort: enabled [ 8.540000] XCE: BLPARAMS: -- Loading properties [c4d43efc]. [ 8.540000] XCE: BLPARAMS: -- MTD @ [c45c1c00]. [ 8.550000] XCE: BLPARAMS: Locating parameter block... [ 8.550000] XCE: BLPARAMS: reading 2048 bytes @ a0000 [ 8.560000] XCE: Loaded Property Size: 2048 [ 8.570000] XCE: - 'cesvcid' -> '9MATQKRVSFSQ42R95T2MRDHMHN' [ 8.570000] XCE: - 'ceboardver' -> 'PPV4A3' [ 8.580000] XCE: -- ICache Prefetch: enabled [ 8.580000] XCE: -- DCache Prefetch: enabled [ 8.590000] XCE: -- L2 Cache: enabled [ 8.590000] XCE: -- L2 Prefetch: disabled [ 8.590000] XCE: -- L2 Writethrough: disabled [ 8.600000] XCE: -- Write Allocate: disabled [ 8.600000] XCE: -- Streaming: disabled [ 8.610000] XCE: Current GPIO State: [ 8.610000] XCE: GPIO L OUT: 0x01f18400 [ 8.620000] XCE: GPIO L OE: 0xfe004800 [ 8.620000] XCE: GPIO L BLINK: 0x00000000 [ 8.620000] XCE: GPIO L POL: 0x28000000 [ 8.630000] XCE: GPIO L IN: 0x11f00000 [ 8.630000] XCE: GPIO H OUT: 0x00000008 [ 8.640000] XCE: GPIO H OE: 0x00000005 [ 8.640000] XCE: GPIO H BLINK: 0x00000000 [ 8.640000] XCE: GPIO H POL: 0x00000000 [ 8.650000] XCE: GPIO H IN: 0x00000008 [ 8.830000] XCE: BLPARAMS: -- Loading properties [c4bbfecc]. [ 8.830000] XCE: BLPARAMS: -- MTD @ [c45c1c00]. [ 8.840000] XCE: BLPARAMS: Locating parameter block... [ 8.840000] XCE: BLPARAMS: reading 2048 bytes @ a0000 [ 8.850000] XCE: BLPARAMS: reading 2048 bytes @ a0800 [ 8.860000] XCE: BLPARAMS: reading 2048 bytes @ a1000 [ 8.860000] XCE: BLPARAMS: reading 2048 bytes @ a1800 [ 14.210000] XCE: XCE: LED -> CONNECTED [ 27.670000] usb 2-1: usbfs: USBDEVFS_CONTROL failed cmd hbplug rqt 128 rq 6 len 255 ret -110 [ 32.670000] usb 2-1: usbfs: USBDEVFS_CONTROL failed cmd hbplug rqt 128 rq 6 len 255 ret -110 [ 37.670000] usb 2-1: usbfs: USBDEVFS_CONTROL failed cmd hbplug rqt 128 rq 6 len 255 ret -110 [ 42.670000] usb 2-1: usbfs: USBDEVFS_CONTROL failed cmd hbplug rqt 128 rq 6 len 255 ret -110
cat /proc/interrupts:
CPU0 1: 53724 - kw_tick 9: 23953 - xhci_hcd:usb2 11: 1074 - mv_ethernet 19: 0 - ehci_hcd:usb1 21: 0 - mvSata 22: 0 - cesa 28: 11 - mvsdio 29: 0 - mv64xxx_i2c 33: 57 - serial 44: 0 - error_pex0 91: 0 - mvsdio cd 93: 0 - eject button polarity, eject Err: 0
cat /proc/iomem:
00000000-07ffffff : System RAM 00027000-003e9fff : Kernel text 003ea000-0042b59b : Kernel data e0000000-e7ffffff : PEX0 Memory e0000000-e000ffff : 0000:00:01.0 e0000000-e000ffff : xhci_hcd e0010000-e0010fff : 0000:00:01.0 e0011000-e0011fff : 0000:00:01.0 f1011000-f101101f : i2c base f1011000-f101101f : mv64xxx_i2c adapter f1012000-f10120ff : serial8250.0 f1012000-f101201f : serial f1090000-f10903ff : mvsdio f1090000-f10903ff : mvsdio
busybox:
BusyBox v1.16.1 (2011-09-28 14:52:05 PDT) multi-call binary. Copyright (C) 1998-2009 Erik Andersen, Rob Landley, Denys Vlasenko and others. Licensed under GPLv2. See source distribution for full notice. (...) Currently defined functions: [, [[, arp, ash, awk, basename, brctl, bunzip2, bzcat, bzip2, cat, chattr, chgrp, chmod, chown, chroot, clear, cmp, cp, crond, cut, date, dd, depmod, df, diff, dirname, dmesg, dnsdomainname, du, echo, egrep, eject, env, expr, false, fdflush, fdisk, fgrep, fsck, fuser, getty, grep, gunzip, gzip, halt, head, hexdump, hostname, hush, ifconfig, ifdown, ifplugd, ifup, init, insmod, ionice, ip, ipaddr, iplink, iproute, iprule, iptunnel, kill, killall, less, ln, login, losetup, ls, lsattr, lsmod, lspci, lsusb, lzop, lzopcat, md5sum, mkdir, mkdosfs, mke2fs, mkfifo, mkfs.ext2, mkfs.vfat, mknod, modprobe, more, mount, mv, nc, netstat, nice, nmeter, nohup, nslookup, od, passwd, pidof, ping, ping6, pivot_root, poweroff, printf, ps, pwd, rdev, readlink, realpath, reboot, renice, reset, rm, rmdir, rmmod, route, sed, seq, sh, sha1sum, sleep, sort, split, stat, strings, stty, su, sulogin, sum, swapoff, swapon, sync, sysctl, tail, tar, taskset, tee, telnet, telnetd, test, time, top, touch, tr, traceroute, traceroute6, true, tty, tune2fs, udhcpc, umount, uname, uniq, unlzop, uptime, usleep, vi, wc, wget, which, who, whoami, xargs, yes, zcat, zcip
Initial pinstate register read-out (before applying any other pin mappings):
[ 0.254133] kirkwood-pinctrl f1010000.pin-controller: initial pin states: [ 0.254148] kirkwood-pinctrl f1010000.pin-controller: pin 0: config 0x00000001 [ 0.254159] kirkwood-pinctrl f1010000.pin-controller: pin 1: config 0x00000001 [ 0.254169] kirkwood-pinctrl f1010000.pin-controller: pin 2: config 0x00000001 [ 0.254179] kirkwood-pinctrl f1010000.pin-controller: pin 3: config 0x00000001 [ 0.254190] kirkwood-pinctrl f1010000.pin-controller: pin 4: config 0x00000001 [ 0.254200] kirkwood-pinctrl f1010000.pin-controller: pin 5: config 0x00000001 [ 0.254211] kirkwood-pinctrl f1010000.pin-controller: pin 6: config 0x00000001 [ 0.254221] kirkwood-pinctrl f1010000.pin-controller: pin 7: config 0x00000002 [ 0.254231] kirkwood-pinctrl f1010000.pin-controller: pin 8: config 0x00000001 [ 0.254242] kirkwood-pinctrl f1010000.pin-controller: pin 9: config 0x00000001 [ 0.254253] kirkwood-pinctrl f1010000.pin-controller: pin 10: config 0x00000003 [ 0.254263] kirkwood-pinctrl f1010000.pin-controller: pin 11: config 0x00000003 [ 0.254274] kirkwood-pinctrl f1010000.pin-controller: pin 12: config 0x00000000 [ 0.254284] kirkwood-pinctrl f1010000.pin-controller: pin 13: config 0x00000003 [ 0.254295] kirkwood-pinctrl f1010000.pin-controller: pin 14: config 0x00000003 [ 0.254305] kirkwood-pinctrl f1010000.pin-controller: pin 15: config 0x00000000 [ 0.254316] kirkwood-pinctrl f1010000.pin-controller: pin 16: config 0x00000000 [ 0.254326] kirkwood-pinctrl f1010000.pin-controller: pin 17: config 0x00000000 [ 0.254337] kirkwood-pinctrl f1010000.pin-controller: pin 18: config 0x00000001 [ 0.254347] kirkwood-pinctrl f1010000.pin-controller: pin 19: config 0x00000001 [ 0.254358] kirkwood-pinctrl f1010000.pin-controller: pin 20: config 0x00000005 [ 0.254368] kirkwood-pinctrl f1010000.pin-controller: pin 21: config 0x00000005 [ 0.254379] kirkwood-pinctrl f1010000.pin-controller: pin 22: config 0x00000000 [ 0.254389] kirkwood-pinctrl f1010000.pin-controller: pin 23: config 0x00000000 [ 0.254400] kirkwood-pinctrl f1010000.pin-controller: pin 24: config 0x00000000 [ 0.254410] kirkwood-pinctrl f1010000.pin-controller: pin 25: config 0x00000000 [ 0.254421] kirkwood-pinctrl f1010000.pin-controller: pin 26: config 0x00000000 [ 0.254431] kirkwood-pinctrl f1010000.pin-controller: pin 27: config 0x00000000 [ 0.254442] kirkwood-pinctrl f1010000.pin-controller: pin 28: config 0x00000000 [ 0.254452] kirkwood-pinctrl f1010000.pin-controller: pin 29: config 0x00000000 [ 0.254463] kirkwood-pinctrl f1010000.pin-controller: pin 30: config 0x00000000 [ 0.254473] kirkwood-pinctrl f1010000.pin-controller: pin 31: config 0x00000000 [ 0.254484] kirkwood-pinctrl f1010000.pin-controller: pin 32: config 0x00000000 [ 0.254494] kirkwood-pinctrl f1010000.pin-controller: pin 33: config 0x00000000 [ 0.254505] kirkwood-pinctrl f1010000.pin-controller: pin 34: config 0x00000000 [ 0.254515] kirkwood-pinctrl f1010000.pin-controller: pin 35: config 0x00000000