mirror of
https://xff.cz/git/u-boot/
synced 2025-10-22 10:31:56 +02:00
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>
This commit is contained in:
@@ -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
|
||||
|
||||
|
Reference in New Issue
Block a user