After long post starvation period GuruPlug got chance to be used again.
It seems logical, that all the software needs updated. I’ve checked my old post, and it seems like it has some parts missing, and those links with u-boot images doesn’t have any recent update.
So I’m here to fix that part.
As it’s a follow up to the old uboot install post I won’t get into details.
Don’t forget the disclaimer:
Please, keep in mind, that rewriting U-Boot erases all the environment variables including the ones that contain Your boot parameters, so Your existing OS will become unbootable!
The new OS install will be covered in the next post.
Let’s hookup our GuruPlug JTAG board as described in GuruPlug serial connection post.
And let’s view the version:
Marvell>> version U-Boot 2013.10 (Oct 21 2013 - 20:54:41) Marvell-GuruPlug gcc (Debian 4.8.1-9) 4.8.1 GNU ld (GNU Binutils for Debian) 220.127.116.1130727
We are going to use a testing version. It’s much more recent version.
If You want to use a stable version, You may download it from here.
Also, mark down both ethernet MAC addresses, as those settings seem to be reset after new uboot install, and if You are going to use ethernet ports, You must have those variables set. Well, they should also be printed on the bottom of GuruPlug (at least in my case).
Marvell>> print ethaddr ethaddr=00:50:43:00:00:0E Marvel>> print eth1addr eth1addr=00:50:43:00:00:0F
Download the image, and put it to Your usb flash drive (yep, this time no tftp, or You may use the network as in old post). Flash drive must be fat32!
Put the usb flash into GuruPlug and start the usb:
Marvell>> usb start (Re)start USB... USB0: USB EHCI 1.00 scanning bus 0 for devices... 4 USB Device(s) found scanning usb for storage devices... Device NOT ready Request Sense returned 02 3A 00 Device NOT ready Request Sense returned 02 3A 00 3 Storage Device(s) found
You may check all the available usb partitions with command usb part.
Marvell>> usb part ## Unknown partition table ## Unknown partition table Partition Map for USB device 2 -- Partition Type: DOS Part Start Sector Num Sectors UUID Type 1 2048 7852032 77e6cfe3-01 0b
In my case, it’s USB device 2, so lets load uboot image from root of the 2nd device 1 partition (2:1) into the temporary location:
=> fatload usb 2:1 0xa000000 u-boot.kwb reading u-boot.kwb 492852 bytes read in 44 ms (10.7 MiB/s)
Prepare empty space for its steady location (492852 bytes in hex would be 0x785334, so 0x80000 for our image is going to be enough):
Marvell>> nand erase 0x0 0x80000 NAND erase: device 0 offset 0x0, size 0x80000 Erasing at 0x80000 -- 100% complete. OK
And burn the uboot:
Marvell>> nand write 0xa000000 0x0 0x80000 NAND write: device 0 offset 0x0, size 0x80000 492852 bytes written: OK
Lets check it out:
=> reset resetting ... U-Boot 2016.11+dfsg1-3 (Dec 22 2016 - 04:44:44 +0000) Marvell-GuruPlug SoC: Kirkwood 88F6281_A1 DRAM: 512 MiB WARNING: Caches not enabled NAND: 512 MiB *** Warning - bad CRC, using default environment In: serial Out: serial Err: serial Net: egiga0 Error: egiga0 address not set. , egiga1 Error: egiga1 address not set. 88E1121 Initialized on egiga0 88E1121 Initialized on egiga1 IDE: ide_preinit failed Hit any key to stop autoboot: 0
Ok, version “U-Boot 2016.11+dfsg1-3 (Dec 22 2016 – 04:44:44 +0000)” seems to be much more recent than before, but we still have to fix this part:
Error: egiga0 address not set. , egiga1 Error: egiga1 address not set.
So lets set them to the ones we’ve marked at at the beginning of the process and reset the device:
=> setenv ethaddr 00:50:43:01:90:7E => setenv eth1addr 00:50:43:01:90:7F => saveenv Saving Environment to NAND... Erasing NAND... Erasing at 0xe0000 -- 100% complete. Writing to NAND... OK => reset resetting ... U-Boot 2016.11+dfsg1-3 (Dec 22 2016 - 04:44:44 +0000) Marvell-GuruPlug SoC: Kirkwood 88F6281_A1 DRAM: 512 MiB WARNING: Caches not enabled NAND: 512 MiB In: serial Out: serial Err: serial Net: egiga0, egiga1 88E1121 Initialized on egiga0 88E1121 Initialized on egiga1 IDE: ide_preinit failed Hit any key to stop autoboot: 0
OS install will be covered in the next post.