[U-Boot] [RFC] skip area in flash/memory commands (cp, cmp, ...)

Andreas Pretzsch apr at cn-eng.de
Mon Apr 11 20:52:09 CEST 2011


Objective: Skip an area in memory commands

Example use case: Skip over embedded environment when updating U-Boot

In case of an embedded environment, a complete U-Boot binary consists of
two code sections and an environment block in between. In an update flow
tftp/erase/cp/cmp conveniently using the complete image, the environment
is also overwritten. As the env might contain device specific data, this
is not always desirable.
Of course, one could overcome this with several approaches, e.g.
  - provide two distinct U-Boot parts on the tftp server
  - load the complete image and erase/cp/cmp only the desired parts,
    either via hardcoded addresses and sizes or via some setexpr magic
  - other ways I simply missed

While this is sufficent, I'd find it handy to be able to skip an area in
the above commands.
Possible approaches:
  - explicit via additional parameters to cp, cmp, etc.
  - implicit for the embedded environment (confusing and less generic)
  - based on e.g. some skip_addr, skip_len environment variables or
    even sets (addr1,addr2 + len1,len2)

There might be other use cases I didn't thought of by now. Also, the
command list is probably not complete.

What do you think, worth the effort, acceptable in mainline or
over-engineering ?


-- 

carpe noctem engineering
Ingenieurbuero fuer Hard- & Software-Entwicklung Andreas Pretzsch
Dipl.-Ing. (FH) Andreas Pretzsch          Tel. +49-(0)731-5521572
Hahnengasse 3                             Fax: +49-(0)731-5521573
89073 Ulm, Germany                        email: apr at cn-eng.de



More information about the U-Boot mailing list