[U-Boot] DreamPlug bootloader replacement

Drassal, Allan drasal at wsu.edu
Wed Apr 20 21:57:10 CEST 2011


I have posted instructions in the following place, please take a look.
I have been able to do a full dump and reload of the DreamPlug.
I would be more than happy to entertain any questions.

http://www.newit.co.uk/forum/index.php/topic,1977.0.html

I have also built a current version of openocd (0.4.0) with the correct config files.
The trick with the DreamPlug is that openocd does not know how to write to the SPI NOR flash, however, you can startup off a previous bootloader using the JTAG, and also use the JTAG to place the bootloader you want to replace in memory at a location, then use the "sf erase" "sf write" commands to replace it.

Please take a look at the post, let me know if you need any of the original files from it, or the openocd.
What I would REALLY like to do is know how to get U-Boot to build me a new bootloader, if you have accomplished this, please share.  I don't know how to edit the board/guruplug.cfg file in the U-Boot source tree to match the configuration on the DreamPlug, It always freezes on boot right after detecting the DRAM size (and it is incorrect).

My first "dump" from the original bootloader was using the "md" command and copying it from the terminal window, and using a Perl script, convert that to a .bin file.  So I have the original original bootloader, the one offered for download is dated 2011-03-28 while the one shipped is dated 2011-03-01, if I recall correctly.

--Allan


-----Original Message-----
From: u-boot-bounces at lists.denx.de on behalf of Jason
Sent: Wed 4/20/2011 7:12 AM
To: u-boot at lists.denx.de
Subject: [U-Boot] DreamPlug bootloader replacement
 
All,

I'm attempting to replace u-boot on the new dreamplug.  This is
different from the guruplug and sheevaplug in that the bootloader is
stored in a 1MB (!) flash connected via SPI.  I was able to dump the
factory u-boot to a file, and it's header looks strikingly similar to
the u-boot.kwb image I used on my guruplug.  However, the first 32 bits,
supposedly the magic number, are different.  Is that important?

Here's the first 0x100 bytes starting at 0x0.

### factory dreamplug image ###########################################
0000000: 5a 00 00 00 54 49 02 00 00 00 00 00 00 02 00 00
0000010: 00 00 60 00 00 00 60 00 00 00 00 00 00 00 01 bc
0000020: 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0000040: e0 00 d1 ff 9b 9b 1b 1b 00 14 d0 ff 30 0c 00 43
0000050: 04 14 d0 ff 00 30 54 37 08 14 d0 ff 51 54 12 22
0000060: 0c 14 d0 ff 33 0a 00 00 10 14 d0 ff cc 00 00 00
0000070: 14 14 d0 ff 00 00 00 00 18 14 d0 ff 00 00 00 00
0000080: 1c 14 d0 ff 52 0c 00 00 20 14 d0 ff 40 00 00 00
0000090: 24 14 d0 ff 7f f1 00 00 28 14 d0 ff 20 55 08 00
00000a0: 7c 14 d0 ff 52 85 00 00 00 15 d0 ff 00 00 00 00
00000b0: 04 15 d0 ff f1 ff ff 0f 08 15 d0 ff 00 00 00 10
00000c0: 0c 15 d0 ff f5 ff ff 0f 14 15 d0 ff 00 00 00 00
00000d0: 1c 15 d0 ff 00 00 00 00 94 14 d0 ff 00 00 03 00
00000e0: 98 14 d0 ff 00 00 00 00 9c 14 d0 ff 03 e8 00 00
00000f0: 80 14 d0 ff 01 00 00 00 00 00 00 00 00 00 00 00
### end factory dreamplug image #######################################

And, here's my u-boot.kwb:

### my u-boot.kwb #####################################################
0000000: 8b 00 00 08 58 9d 03 00 00 00 00 00 00 02 00 00
0000010: 00 00 60 00 00 00 60 00 00 00 00 00 00 00 01 4e
0000020: 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0000040: e0 00 d1 ff 9b 9b 1b 1b 00 14 d0 ff 30 0c 00 43
0000050: 04 14 d0 ff 00 30 54 37 08 14 d0 ff 51 54 12 22
0000060: 0c 14 d0 ff 33 0a 00 00 10 14 d0 ff cc 00 00 00
0000070: 14 14 d0 ff 00 00 00 00 18 14 d0 ff 00 00 00 00
0000080: 1c 14 d0 ff 52 0c 00 00 20 14 d0 ff 40 00 00 00
0000090: 24 14 d0 ff 7f f1 00 00 28 14 d0 ff 20 55 08 00
00000a0: 7c 14 d0 ff 52 85 00 00 00 15 d0 ff 00 00 00 00
00000b0: 04 15 d0 ff f1 ff ff 0f 08 15 d0 ff 00 00 00 10
00000c0: 0c 15 d0 ff f5 ff ff 0f 14 15 d0 ff 00 00 00 00
00000d0: 1c 15 d0 ff 00 00 00 00 94 14 d0 ff 00 00 03 00
00000e0: 98 14 d0 ff 00 00 00 00 9c 14 d0 ff 03 e8 00 00
00000f0: 80 14 d0 ff 01 00 00 00 00 00 00 00 00 00 00 00
### end my u-boot.kwb #################################################

Also, before I do a 'sf erase...; sf write...' I'd like to know I can
recover via the jtag, if necessary.  In theory, I should be able to load
the factory image into RAM via jtag, and run it.  Then, use tftpload and
'sf write' to restore the factory bootloader.  What I'm missing is how
to directly burn the spi flash from openocd.  Has anyone done this?  Is
there a config I can reference?

thx,

Jason. 
_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot



More information about the U-Boot mailing list