
Dear Stephen Warren,
In message 1320860840-6347-1-git-send-email-swarren@nvidia.com you wrote:
The legacy uImage format includes an absolute load and entry-point address. When bootm operates on a kernel uImage in memory that isn't loaded at the address in the image's load address, U-Boot will copy the image to its address in the header.
Some kernel images can actually be loaded and used at any arbitrary address. An example is an ARM Linux kernel zImage file. To represent
You write: an example is...
Are there other Linux kernel image types in addition to zImage that have this property?
this capability, IH_TYPE_KERNEL_ANYLOAD is implemented, which operates
I don't like this name. "ANYLOAD" doesn't really make sense to me; I would interpet this as "U-Boot is free to load the image to any address it likes" - which is not what I think you mean. I guess "IH_TYPE_KERNEL_NOLOAD" would better mach what the code is supposed to do.
But then, I'd like "IH_TYPE_ZIMAGE" even better - assuming of course that only zImages are used here. Are we sure about this?
- if (images.os.type == IH_TYPE_KERNEL_ANYLOAD) {
images.os.load = images.os.image_start;
images.ep += images.os.load;
- }
I'm not sure if we give up flexibility here without need.
Suggestion: IH_TYPE_KERNEL_NOLOAD images should read the entry point address from the image header, and interpret it as an offset relative to the image_start. This adds basicly no code size, an no effort if you don't want to use it (when running mkimage you will probably always use "-a 0 -e 0" anyway), but in case you ever need a different EP you have it, more or less for free.
- { IH_TYPE_KERNEL_ANYLOAD, "kernel_anyload", "Kernel Image (any load address)", },
...IH_TYPE_KERNEL_NOLOAD ..."Kernel Image (no loading done)" ?
Best regards,
Wolfgang Denk