diff options
author | Simon Glass <sjg@chromium.org> | 2014-10-19 21:11:24 -0600 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2014-10-22 09:03:06 -0600 |
commit | 90268b878bd830f2fc9b1e225d96009efe331cd1 (patch) | |
tree | 680cddba7c37d284971ff23d0b4b66611b4cf019 /include/image.h | |
parent | 381197788dbf8bb94f96ec9e03b6b81618187260 (diff) | |
download | u-boot-90268b878bd830f2fc9b1e225d96009efe331cd1.zip u-boot-90268b878bd830f2fc9b1e225d96009efe331cd1.tar.gz u-boot-90268b878bd830f2fc9b1e225d96009efe331cd1.tar.bz2 |
x86: Support loading kernel setup from a FIT
Add a new setup@ section to the FIT which can be used to provide a setup
binary for booting Linux on x86. This makes it possible to boot x86 from
a FIT.
Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'include/image.h')
-rw-r--r-- | include/image.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/include/image.h b/include/image.h index 4347532..a13a302 100644 --- a/include/image.h +++ b/include/image.h @@ -233,6 +233,7 @@ struct lmb; #define IH_TYPE_GPIMAGE 17 /* TI Keystone GPHeader Image */ #define IH_TYPE_ATMELIMAGE 18 /* ATMEL ROM bootable Image */ #define IH_TYPE_SOCFPGAIMAGE 19 /* Altera SOCFPGA Preloader */ +#define IH_TYPE_X86_SETUP 20 /* x86 setup.bin Image */ /* * Compression Types @@ -273,6 +274,7 @@ typedef struct image_info { 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 */ + uint8_t arch; /* CPU architecture */ } image_info_t; /* @@ -303,6 +305,10 @@ typedef struct bootm_headers { void *fit_hdr_fdt; /* FDT blob FIT image header */ const char *fit_uname_fdt; /* FDT blob subimage node unit name */ int fit_noffset_fdt;/* FDT blob subimage node offset */ + + void *fit_hdr_setup; /* x86 setup FIT image header */ + const char *fit_uname_setup; /* x86 setup subimage node name */ + int fit_noffset_setup;/* x86 setup subimage node offset */ #endif #ifndef USE_HOSTCC @@ -417,6 +423,9 @@ enum fit_load_op { FIT_LOAD_REQUIRED, /* Must be provided */ }; +int boot_get_setup(bootm_headers_t *images, uint8_t arch, ulong *setup_start, + ulong *setup_len); + #ifndef USE_HOSTCC /* Image format types, returned by _get_format() routine */ #define IMAGE_FORMAT_INVALID 0x00 @@ -438,6 +447,9 @@ int boot_get_ramdisk(int argc, char * const argv[], bootm_headers_t *images, uint8_t arch, ulong *rd_start, ulong *rd_end); #endif +int boot_get_setup_fit(bootm_headers_t *images, uint8_t arch, + ulong *setup_start, ulong *setup_len); + /** * fit_image_load() - load an image from a FIT * @@ -721,6 +733,7 @@ int bootz_setup(ulong image, ulong *start, ulong *end); #define FIT_RAMDISK_PROP "ramdisk" #define FIT_FDT_PROP "fdt" #define FIT_DEFAULT_PROP "default" +#define FIT_SETUP_PROP "setup" #define FIT_MAX_HASH_LEN HASH_MAX_DIGEST_SIZE |