[U-Boot] Save flash from U-Boot

Szabolcs Sipos labuwx at balfug.com
Tue Jun 25 21:09:53 CEST 2013


Dear Wolfgang Denk,

My ISP doesn't have the source of U-Boot because they left the original one (from ZTE) on the router. They modified the main firmware only. I want to make a dump from the hall flash and then install a new main firmware. I tried md but it made the router restart (except with address 0x00000000).

Szabolcs Sipos

-----Original Message-----
From: Wolfgang Denk [mailto:wd at denx.de] 
Sent: Tuesday, June 25, 2013 8:32 PM
To: Szabolcs Sipos
Cc: u-boot at lists.denx.de
Subject: Re: [U-Boot] Save flash from U-Boot

Dear "Szabolcs Sipos",

In message <000101ce71cd$34a620a0$9df261e0$@balfug.com> you wrote:
> 
> Unfortunately the bootloader isn't modified by the ISP, only the main 
> firmware. If a knew that the main firmware was also covered by GPL, I 
> would ask them but I am sure they would tell me nothing, they don't 
> tell even my VOIP password.

I'm afraid I don't understand your situation.  If you have the U-Boot code, you could add the missing commands, and just install teh new U-Boot, leaving the rest of the firmware untouched?


As for backup, if everything else goes wrong, you can just run a "md"
over the whole U-Boot code area, and capture the outpput to a file (say, by running your terminal program in a "script" session if it does not support recording directly).  Recoding the "md" output into a binary blob is a trivial thing to do; a quick & dirty hack could look like that:

--------------------------- snip --------------------------- #!/usr/bin/perl -w

# Un-dump hexdump listing and write binary image to stdout.
#	002044F4  3C353E5B 20202020 302E3030 30303030  <5>[    0.000000
#	00204504  5D204C69 6E757820 76657273 696F6E20  ] Linux version
#	00204514  322E362E 32322E36 20286D61 7263656C  2.6.22.6 (marcel
#	00204524  40736861 646F776C 61702920 28676363  @shadowlap) (gcc
#	00204534  20766572 73696F6E 20342E31 2E322028   version 4.1.2 (
#	...
#

while (<>) {
	chomp;
	my (@tmp) = split;
	for ($i=1; $i<5; $i++) {
		syswrite(STDOUT, pack ("N", hex ($tmp[$i])));
	}
}
--------------------------- snip ---------------------------

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de Here is an Appalachian version of management's answer  to  those  who are  concerned  with  the fate of the project: "Don't worry about the
mule. Just load the wagon."         - Mike Dennison's hillbilly uncle



More information about the U-Boot mailing list