boot: Convert IMAGE_FORMAT into an enum
Use an enum so it is clearer that these options are related. Update genimg_get_format(), tidy up the function comment and move it to the header file, since it is exported. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
@@ -234,21 +234,7 @@ ulong genimg_get_kernel_addr(char * const img_addr)
|
|||||||
&fit_uname_kernel);
|
&fit_uname_kernel);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
enum image_fmt_t genimg_get_format(const void *img_addr)
|
||||||
* genimg_get_format - get image format type
|
|
||||||
* @img_addr: image start address
|
|
||||||
*
|
|
||||||
* genimg_get_format() checks whether provided address points to a valid
|
|
||||||
* legacy or FIT image.
|
|
||||||
*
|
|
||||||
* New uImage format and FDT blob are based on a libfdt. FDT blob
|
|
||||||
* may be passed directly or embedded in a FIT image. In both situations
|
|
||||||
* genimg_get_format() must be able to dectect libfdt header.
|
|
||||||
*
|
|
||||||
* returns:
|
|
||||||
* image format type or IMAGE_FORMAT_INVALID if no image is present
|
|
||||||
*/
|
|
||||||
int genimg_get_format(const void *img_addr)
|
|
||||||
{
|
{
|
||||||
if (CONFIG_IS_ENABLED(LEGACY_IMAGE_FORMAT)) {
|
if (CONFIG_IS_ENABLED(LEGACY_IMAGE_FORMAT)) {
|
||||||
const struct legacy_img_hdr *hdr;
|
const struct legacy_img_hdr *hdr;
|
||||||
@@ -434,6 +420,8 @@ static int select_ramdisk(struct bootm_headers *images, const char *select, u8 a
|
|||||||
done = true;
|
done = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case IMAGE_FORMAT_INVALID:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!done) {
|
if (!done) {
|
||||||
|
@@ -598,10 +598,12 @@ int boot_get_setup(struct bootm_headers *images, uint8_t arch, ulong *setup_star
|
|||||||
ulong *setup_len);
|
ulong *setup_len);
|
||||||
|
|
||||||
/* Image format types, returned by _get_format() routine */
|
/* Image format types, returned by _get_format() routine */
|
||||||
#define IMAGE_FORMAT_INVALID 0x00
|
enum image_fmt_t {
|
||||||
#define IMAGE_FORMAT_LEGACY 0x01 /* legacy image_header based format */
|
IMAGE_FORMAT_INVALID,
|
||||||
#define IMAGE_FORMAT_FIT 0x02 /* new, libfdt based format */
|
IMAGE_FORMAT_LEGACY, /* legacy image_header based format */
|
||||||
#define IMAGE_FORMAT_ANDROID 0x03 /* Android boot image */
|
IMAGE_FORMAT_FIT, /* new, libfdt based format */
|
||||||
|
IMAGE_FORMAT_ANDROID, /* Android boot image */
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* genimg_get_kernel_addr_fit() - Parse FIT specifier
|
* genimg_get_kernel_addr_fit() - Parse FIT specifier
|
||||||
@@ -630,7 +632,21 @@ ulong genimg_get_kernel_addr_fit(const char *const img_addr,
|
|||||||
const char **fit_uname_kernel);
|
const char **fit_uname_kernel);
|
||||||
|
|
||||||
ulong genimg_get_kernel_addr(char * const img_addr);
|
ulong genimg_get_kernel_addr(char * const img_addr);
|
||||||
int genimg_get_format(const void *img_addr);
|
|
||||||
|
/**
|
||||||
|
* genimg_get_format - get image format type
|
||||||
|
* @img_addr: image start address
|
||||||
|
* Return: image format type or IMAGE_FORMAT_INVALID if no image is present
|
||||||
|
*
|
||||||
|
* genimg_get_format() checks whether provided address points to a valid
|
||||||
|
* legacy or FIT image.
|
||||||
|
*
|
||||||
|
* New uImage format and FDT blob are based on a libfdt. FDT blob
|
||||||
|
* may be passed directly or embedded in a FIT image. In both situations
|
||||||
|
* genimg_get_format() must be able to dectect libfdt header.
|
||||||
|
*/
|
||||||
|
enum image_fmt_t genimg_get_format(const void *img_addr);
|
||||||
|
|
||||||
int genimg_has_config(struct bootm_headers *images);
|
int genimg_has_config(struct bootm_headers *images);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user