
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 ?