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:
Simon Glass
2025-03-05 17:25:08 -07:00
committed by Tom Rini
parent 7f10a7fe12
commit 3c7b13b075
2 changed files with 24 additions and 20 deletions

View File

@@ -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) {

View File

@@ -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);
/** /**