openwrtv4/target/linux
Alberto Bursi c19f811c4d kirkwood: add pogoplug v4
also known as
POGO-V4-A3-02
or
POGO-V4-A3-01

SoC: Marvell 88F6192 800Mhz
SDRAM memory: 128MB
Gigabit ethernet: 1 Marvell 88E1310
Flash memory: 128MB
2 status LEDs (one green one red)
1 "Eject" button on the back (used as "Reset" button)
1 USB 2.0 port (on upper side)
1 sata slot (power + data) for 2.5'' drives (upper side)
2 USB 3.0 ports from a controller on PCIe x1 of the SoC
1 full-size SDcard slot (fits a whole SD card into it)

This device supports the (linux-only) kwboot tool to send
a new uboot over serial console, so it is easy to unbrick
in case the uboot is erased and the device won't boot.

-----
Install instructions:
-----
Since it's not possible to get ssh access to these
devices, the only way to take control is to
solder pins to get TTL serial access.

Case can 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 pins are those labeled "J11", left
of SD as you face SD opening.
Pins are (from left to right, i.e. the first in the list
is the nearest to the SD slot) GND, Rx, Tx.
Do not connect +V pin if you use a USB (self-powered)
TTL-to-USB dongle. Any USB TTL-to-USB converter will work.
Baud rate is 115200, parity "none", databits "8",
flow control "none".

Stock uboot is unable to read ubi partitions (nor usb)
so we will replace it first with our uboot.

Start a TFTP server at IP address 169.254.254.254, and
place the uboot.kwb file in the folder of the server.

Start the serial session and then power up the device.

As soon as you see text on the serial start pressing random
letter keys to stop the boot process.

If you see something like the following line you can proceed:

CE>>

Otherwise if text is still scrolling by you missed the
opportunity, pull the plug and try again.

write

printenv ethaddr

The uboot will write something like this:

ethaddr=00:50:43:00:02:02

This is the device's MAC address, also present in the sticker
under the device.

Write this down as we will need to add it in the
new uboot configuration.

Use the following commands to load the new uboot:

tftp 0x20000 u-boot.kwb

If the uboot confirms that the transfer was successful,
then you can write it to flash with the following commands:

nand erase 0 0x200000
nand write 0x20000 0 0x1c0000

if after the last command the uboot wrote
"xxxx bytes written: OK"
then it was written correctly and we can proceed.

If it did not go well, try again or ask assistence in forums.
Shutting down or rebooting at this time will brick
the device, to unbrick it you will need to use the kwboot
tool from a Linux PC or Virtual Machine.

Now write:

reset

and press enter, the device will reboot and you should see
again text scrolling by.
Press a random key to stop it, and now you should see

pogoplugv4>

We now add the MAC address back, write:

setenv ethaddr '00:50:43:00:02:02'

Confirm that the uboot has understood by writing

printenv ethaddr

If all looks ok, save the setting with

saveenv

At this point the uboot is configured, and we only need to load
the firmware in the flash memory.

Follow the steps below in "Firmware recovery procedure".

----
Firmware recovery procedure
----
The new uboot allows easy recovery from a bad firmware upgrade
where you can't access the device anymore over ssh or luci.

Take a USB flash drive formatted as FAT32, and copy the
initramfs image file in it (it will have "initramfs" in the
file name), then rename it as "initramfs.bin".

Insert the USB drive in the USB 2.0 port of the pogoplug
(the port at the top).

Power up the device, and wait for it to finish booting.

The uboot should find and load the "initramfs.bin"
from usb and if you are connected with serial you should
see the linux kernel boot log (text scrolling by).
Once it is done, press Enter and you will be greeted by
the OpenWRT banner.

If you were not connected with serial just wait a bit and,
you will be able to access it with ssh or luci web interface
(once you find its IP).

The recovery "initramfs" images are run from RAM, so you will
have to do a normal sysupgrade (firmware upgrade) to write
a firmware image to flash memory.

Signed-off-by: Alberto Bursi <alberto.bursi@outlook.it>
2018-01-09 22:06:55 +01:00
..
adm5120 treewide: populate boardname and model earlier 2017-07-15 23:13:34 +02:00
adm8668 build: fix subtarget descriptions 2016-09-04 13:35:11 +02:00
apm821xx apm821xx: convert to device-tree board detection 2017-12-21 01:05:16 +01:00
ar7 kernel: Update kernel 4.9 to 4.9.70 2017-12-19 22:45:27 +01:00
ar71xx ar71xx: fix Archer C7v4 5GHz MAC-address 2018-01-09 22:05:46 +01:00
arc770 arc770: mark as source-only 2017-10-28 13:59:03 +02:00
archs38 treewide: drop target board_name functions 2017-07-15 23:13:34 +02:00
armvirt armvirt: bump to v4.14 2018-01-09 14:40:54 +01:00
at91 at91: sama5: activate fpu 2018-01-02 07:14:09 +01:00
ath25 kernel: cleanup CONFIG_SCHED_HRTICK 2017-06-29 04:46:59 +02:00
au1000 kernel: update kernel 3.18 to version 3.18.43 2016-10-24 20:25:14 +03:00
bcm53xx bcm53xx: use iflag=skip_bytes for dd command during sysupgrade 2017-12-29 23:18:45 +01:00
brcm47xx brcm47xx: image: build firmware for Asus WL-500g Deluxe 2017-12-29 23:18:19 +01:00
brcm63xx kernel: bump 4.4 to 4.4.107 2017-12-23 15:36:01 +01:00
brcm2708 kernel: move CONFIG_KASAN to generic config 2018-01-02 21:55:46 +02:00
cns3xxx kernel: bump 4.9 to 4.9.72 2017-12-26 23:31:00 +01:00
gemini kernel: Update kernel 4.4 to 4.4.100 2017-11-25 19:48:39 +01:00
generic kernel: bump 4.14 to 4.14.11 2018-01-03 00:07:10 +02:00
imx6 treewide: add only one device when appending to TARGET_DEVICES 2017-12-12 18:47:26 +01:00
ipq806x ipq806x: drop kernel 4.4 leftovers 2018-01-09 22:06:37 +01:00
ixp4xx kernel: bump 4.4 to 4.4.107 2017-12-23 15:36:01 +01:00
kirkwood kirkwood: add pogoplug v4 2018-01-09 22:06:55 +01:00
lantiq lantiq: fix wbmr-hp-g300h image metadata 2018-01-04 21:23:59 +01:00
layerscape kernel: move CONFIG_KASAN to generic config 2018-01-02 21:55:46 +02:00
malta malta: bump tp v4.14 2018-01-09 10:26:16 +01:00
mcs814x merge: targets: update image generation and targets 2017-12-08 19:41:18 +01:00
mediatek kernel: bump 4.9 to 4.9.72 2017-12-26 23:31:00 +01:00
mpc85xx mpc85xx: use image metadata 2017-10-25 09:22:13 +02:00
mvebu kernel: bump 4.9 to 4.9.73 2018-01-02 07:14:09 +01:00
mxs treewide: drop target board_name functions 2017-07-15 23:13:34 +02:00
octeon octeon: add support for kernel 4.14 2018-01-08 20:14:57 +02:00
omap omap: clean up configuration 2017-10-18 21:46:05 +02:00
omap24xx merge: ssid: update default ssid 2017-12-08 19:41:18 +01:00
orion orion: Switch to 4.9 kernel 2017-10-24 18:39:17 -07:00
oxnas kernel: bump 4.4 to 4.4.107 2017-12-23 15:36:01 +01:00
pistachio kernel: bump 4.9 to 4.9.67 2017-12-07 01:41:09 +02:00
ppc40x treewide: drop target board_name functions 2017-07-15 23:13:34 +02:00
ppc44x ppc44x: mark as broken 2017-01-10 12:49:34 +01:00
ramips ramips: fix lenovo newifi-y1 switch and LED config 2018-01-09 22:05:46 +01:00
rb532 treewide: drop obsolete kernel config options 2017-10-04 20:08:15 +02:00
sunxi kernel: move CONFIG_KASAN to generic config 2018-01-02 21:55:46 +02:00
uml merge: targets: update image generation and targets 2017-12-08 19:41:18 +01:00
x86 x86: preinit: use board_name on Sm Super Servers 2018-01-04 13:44:42 +01:00
xburst xburst: enable high-res timers, refresh kernel config 2017-06-07 18:31:10 +02:00
zynq treewide: use only board_name function to get name 2017-07-15 23:13:34 +02:00
Makefile