summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorKumar Gala <galak@kernel.crashing.org>2008-08-15 08:24:41 -0500
committerWolfgang Denk <wd@denx.de>2008-08-26 23:41:43 +0200
commit396f635b8ff3ccbc38d75d5eda98444c6466810a (patch)
treeb819dfe09006f81737958700fc697458568c0c12 /include
parente906cfae08e8cc2447f59b1bc4c22ab9c3c286d2 (diff)
downloadbootable_bootloader_goldelico_gta04-396f635b8ff3ccbc38d75d5eda98444c6466810a.zip
bootable_bootloader_goldelico_gta04-396f635b8ff3ccbc38d75d5eda98444c6466810a.tar.gz
bootable_bootloader_goldelico_gta04-396f635b8ff3ccbc38d75d5eda98444c6466810a.tar.bz2
bootm: refactor image detection and os load steps
Created a bootm_start() that handles the parsing and detection of all the images that will be used by the bootm command (OS, ramdisk, fdt). As part of this we now tract all the relevant image offsets in the bootm_headers_t struct. This will allow us to have all the needed state for future sub-commands and lets us reduce a bit of arch specific code on SPARC. Created a bootm_load_os() that deals with decompression and loading the OS image. Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Diffstat (limited to 'include')
-rw-r--r--include/image.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/image.h b/include/image.h
index c1acd7b..9be806e 100644
--- a/include/image.h
+++ b/include/image.h
@@ -187,6 +187,13 @@ typedef struct image_header {
uint8_t ih_name[IH_NMLEN]; /* Image Name */
} image_header_t;
+typedef struct image_info {
+ ulong start, end; /* start/end of blob */
+ ulong image_start, image_len; /* start of image within blob, len of image */
+ ulong load; /* load addr for the image */
+ uint8_t comp, type, os; /* compression, type of image, os type */
+} image_info_t;
+
/*
* Legacy and FIT format headers used by do_bootm() and do_bootm_<os>()
* routines.
@@ -219,6 +226,7 @@ typedef struct bootm_headers {
#endif
#endif
+ image_info_t os; /* os image info */
ulong ep; /* entry point of OS */
ulong rd_start, rd_end;/* ramdisk start/end */
@@ -229,6 +237,7 @@ typedef struct bootm_headers {
ulong ft_len; /* length of flat device tree */
int verify; /* getenv("verify")[0] != 'n' */
+ int valid; /* set to 1 if we've set values in the header */
#ifndef USE_HOSTCC
struct lmb lmb; /* for memory mgmt */
#endif