diff options
author | Stephen Warren <swarren@nvidia.com> | 2011-11-10 20:17:53 (GMT) |
---|---|---|
committer | Stefan Roese <sr@denx.de> | 2011-12-01 08:45:35 (GMT) |
commit | b9b50e89d317c58becd0e2d7fac2e21e3a81dd0a (patch) | |
tree | 3d232af9ba19de272563e24d8f12fc8293b6a2bf /tools | |
parent | a63d9652757605ec5f7104addc5d38bf10ba8671 (diff) | |
download | u-boot-b9b50e89d317c58becd0e2d7fac2e21e3a81dd0a.tar.xz |
image: Implement IH_TYPE_KERNEL_NOLOAD
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
this capability, IH_TYPE_KERNEL_NOLOAD is implemented, which operates
just like IH_TYPE_KERNEL, except that the load address header is
ignored, and U-Boot does not copy the image to its load address, but
rather uses it in-place.
This is useful when sharing a single (uImage-wrapped) zImage across
multiple boards with different memory layouts; in this case, a specific
load address need not be picked when creating the uImage, but instead
is selected by the board-specific U-Boot environment used to load and
boot that image.
v2: Rename from IH_TYPE_KERNEL_ANYLOAD to IH_TYPE_KERNEL_NOLOAD.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Stefan Roese <sr@denx.de>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/default_image.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/tools/default_image.c b/tools/default_image.c index 6ea3b46..e9d0729 100644 --- a/tools/default_image.c +++ b/tools/default_image.c @@ -35,7 +35,8 @@ static image_header_t header; static int image_check_image_types(uint8_t type) { - if ((type > IH_TYPE_INVALID) && (type < IH_TYPE_FLATDT)) + if (((type > IH_TYPE_INVALID) && (type < IH_TYPE_FLATDT)) || + (type == IH_TYPE_KERNEL_NOLOAD)) return EXIT_SUCCESS; else return EXIT_FAILURE; |