image: Drop most #ifdefs in image-board.c
Remove ifdefs in this file, so far as possible without too much refactoring. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
78740bcce8
commit
1df654a6af
@ -227,16 +227,16 @@ ulong genimg_get_kernel_addr_fit(char * const img_addr,
|
|||||||
kernel_addr = image_load_addr;
|
kernel_addr = image_load_addr;
|
||||||
debug("* kernel: default image load address = 0x%08lx\n",
|
debug("* kernel: default image load address = 0x%08lx\n",
|
||||||
image_load_addr);
|
image_load_addr);
|
||||||
#if CONFIG_IS_ENABLED(FIT)
|
} else if (CONFIG_IS_ENABLED(FIT) &&
|
||||||
} else if (fit_parse_conf(img_addr, image_load_addr, &kernel_addr,
|
fit_parse_conf(img_addr, image_load_addr, &kernel_addr,
|
||||||
fit_uname_config)) {
|
fit_uname_config)) {
|
||||||
debug("* kernel: config '%s' from image at 0x%08lx\n",
|
debug("* kernel: config '%s' from image at 0x%08lx\n",
|
||||||
*fit_uname_config, kernel_addr);
|
*fit_uname_config, kernel_addr);
|
||||||
} else if (fit_parse_subimage(img_addr, image_load_addr, &kernel_addr,
|
} else if (CONFIG_IS_ENABLED(FIT) &&
|
||||||
|
fit_parse_subimage(img_addr, image_load_addr, &kernel_addr,
|
||||||
fit_uname_kernel)) {
|
fit_uname_kernel)) {
|
||||||
debug("* kernel: subimage '%s' from image at 0x%08lx\n",
|
debug("* kernel: subimage '%s' from image at 0x%08lx\n",
|
||||||
*fit_uname_kernel, kernel_addr);
|
*fit_uname_kernel, kernel_addr);
|
||||||
#endif
|
|
||||||
} else {
|
} else {
|
||||||
kernel_addr = hextoul(img_addr, NULL);
|
kernel_addr = hextoul(img_addr, NULL);
|
||||||
debug("* kernel: cmdline image address = 0x%08lx\n",
|
debug("* kernel: cmdline image address = 0x%08lx\n",
|
||||||
@ -275,21 +275,20 @@ ulong genimg_get_kernel_addr(char * const img_addr)
|
|||||||
*/
|
*/
|
||||||
int genimg_get_format(const void *img_addr)
|
int genimg_get_format(const void *img_addr)
|
||||||
{
|
{
|
||||||
#if CONFIG_IS_ENABLED(LEGACY_IMAGE_FORMAT)
|
if (CONFIG_IS_ENABLED(LEGACY_IMAGE_FORMAT)) {
|
||||||
const image_header_t *hdr;
|
const image_header_t *hdr;
|
||||||
|
|
||||||
hdr = (const image_header_t *)img_addr;
|
hdr = (const image_header_t *)img_addr;
|
||||||
if (image_check_magic(hdr))
|
if (image_check_magic(hdr))
|
||||||
return IMAGE_FORMAT_LEGACY;
|
return IMAGE_FORMAT_LEGACY;
|
||||||
#endif
|
}
|
||||||
#if CONFIG_IS_ENABLED(FIT) || CONFIG_IS_ENABLED(OF_LIBFDT)
|
if (CONFIG_IS_ENABLED(FIT) || CONFIG_IS_ENABLED(OF_LIBFDT)) {
|
||||||
if (fdt_check_header(img_addr) == 0)
|
if (!fdt_check_header(img_addr))
|
||||||
return IMAGE_FORMAT_FIT;
|
return IMAGE_FORMAT_FIT;
|
||||||
#endif
|
}
|
||||||
#ifdef CONFIG_ANDROID_BOOT_IMAGE
|
if (IS_ENABLED(CONFIG_ANDROID_BOOT_IMAGE) &&
|
||||||
if (android_image_check_header(img_addr) == 0)
|
!android_image_check_header(img_addr))
|
||||||
return IMAGE_FORMAT_ANDROID;
|
return IMAGE_FORMAT_ANDROID;
|
||||||
#endif
|
|
||||||
|
|
||||||
return IMAGE_FORMAT_INVALID;
|
return IMAGE_FORMAT_INVALID;
|
||||||
}
|
}
|
||||||
@ -307,10 +306,9 @@ int genimg_get_format(const void *img_addr)
|
|||||||
*/
|
*/
|
||||||
int genimg_has_config(bootm_headers_t *images)
|
int genimg_has_config(bootm_headers_t *images)
|
||||||
{
|
{
|
||||||
#if CONFIG_IS_ENABLED(FIT)
|
if (CONFIG_IS_ENABLED(FIT) && images->fit_uname_cfg)
|
||||||
if (images->fit_uname_cfg)
|
|
||||||
return 1;
|
return 1;
|
||||||
#endif
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -345,9 +343,6 @@ int boot_get_ramdisk(int argc, char *const argv[], bootm_headers_t *images,
|
|||||||
const image_header_t *rd_hdr;
|
const image_header_t *rd_hdr;
|
||||||
#endif
|
#endif
|
||||||
void *buf;
|
void *buf;
|
||||||
#ifdef CONFIG_SUPPORT_RAW_INITRD
|
|
||||||
char *end;
|
|
||||||
#endif
|
|
||||||
#if CONFIG_IS_ENABLED(FIT)
|
#if CONFIG_IS_ENABLED(FIT)
|
||||||
const char *fit_uname_config = images->fit_uname_cfg;
|
const char *fit_uname_config = images->fit_uname_cfg;
|
||||||
const char *fit_uname_ramdisk = NULL;
|
const char *fit_uname_ramdisk = NULL;
|
||||||
@ -359,14 +354,12 @@ int boot_get_ramdisk(int argc, char *const argv[], bootm_headers_t *images,
|
|||||||
*rd_start = 0;
|
*rd_start = 0;
|
||||||
*rd_end = 0;
|
*rd_end = 0;
|
||||||
|
|
||||||
#ifdef CONFIG_ANDROID_BOOT_IMAGE
|
if (IS_ENABLED(CONFIG_ANDROID_BOOT_IMAGE)) {
|
||||||
/*
|
/* Look for an Android boot image */
|
||||||
* Look for an Android boot image.
|
|
||||||
*/
|
|
||||||
buf = map_sysmem(images->os.start, 0);
|
buf = map_sysmem(images->os.start, 0);
|
||||||
if (buf && genimg_get_format(buf) == IMAGE_FORMAT_ANDROID)
|
if (buf && genimg_get_format(buf) == IMAGE_FORMAT_ANDROID)
|
||||||
select = (argc == 0) ? env_get("loadaddr") : argv[0];
|
select = (argc == 0) ? env_get("loadaddr") : argv[0];
|
||||||
#endif
|
}
|
||||||
|
|
||||||
if (argc >= 2)
|
if (argc >= 2)
|
||||||
select = argv[1];
|
select = argv[1];
|
||||||
@ -474,23 +467,23 @@ int boot_get_ramdisk(int argc, char *const argv[], bootm_headers_t *images,
|
|||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
default:
|
default:
|
||||||
#ifdef CONFIG_SUPPORT_RAW_INITRD
|
if (IS_ENABLED(CONFIG_SUPPORT_RAW_INITRD)) {
|
||||||
end = NULL;
|
char *end = NULL;
|
||||||
|
|
||||||
if (select)
|
if (select)
|
||||||
end = strchr(select, ':');
|
end = strchr(select, ':');
|
||||||
if (end) {
|
if (end) {
|
||||||
rd_len = hextoul(++end, NULL);
|
rd_len = hextoul(++end, NULL);
|
||||||
rd_data = rd_addr;
|
rd_data = rd_addr;
|
||||||
} else
|
break;
|
||||||
#endif
|
}
|
||||||
{
|
}
|
||||||
puts("Wrong Ramdisk Image Format\n");
|
puts("Wrong Ramdisk Image Format\n");
|
||||||
rd_data = 0;
|
rd_data = 0;
|
||||||
rd_len = 0;
|
rd_len = 0;
|
||||||
rd_load = 0;
|
rd_load = 0;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
} else if (images->legacy_hdr_valid &&
|
} else if (images->legacy_hdr_valid &&
|
||||||
image_check_type(&images->legacy_hdr_os_copy,
|
image_check_type(&images->legacy_hdr_os_copy,
|
||||||
IH_TYPE_MULTI)) {
|
IH_TYPE_MULTI)) {
|
||||||
@ -524,7 +517,6 @@ int boot_get_ramdisk(int argc, char *const argv[], bootm_headers_t *images,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_SYS_BOOT_RAMDISK_HIGH
|
|
||||||
/**
|
/**
|
||||||
* boot_ramdisk_high - relocate init ramdisk
|
* boot_ramdisk_high - relocate init ramdisk
|
||||||
* @lmb: pointer to lmb handle, will be used for memory mgmt
|
* @lmb: pointer to lmb handle, will be used for memory mgmt
|
||||||
@ -595,15 +587,15 @@ int boot_ramdisk_high(struct lmb *lmb, ulong rd_data, ulong rd_len,
|
|||||||
memmove_wd((void *)*initrd_start,
|
memmove_wd((void *)*initrd_start,
|
||||||
(void *)rd_data, rd_len, CHUNKSZ);
|
(void *)rd_data, rd_len, CHUNKSZ);
|
||||||
|
|
||||||
#ifdef CONFIG_MP
|
|
||||||
/*
|
/*
|
||||||
* Ensure the image is flushed to memory to handle
|
* Ensure the image is flushed to memory to handle
|
||||||
* AMP boot scenarios in which we might not be
|
* AMP boot scenarios in which we might not be
|
||||||
* HW cache coherent
|
* HW cache coherent
|
||||||
*/
|
*/
|
||||||
|
if (IS_ENABLED(CONFIG_MP)) {
|
||||||
flush_cache((unsigned long)*initrd_start,
|
flush_cache((unsigned long)*initrd_start,
|
||||||
ALIGN(rd_len, ARCH_DMA_MINALIGN));
|
ALIGN(rd_len, ARCH_DMA_MINALIGN));
|
||||||
#endif
|
}
|
||||||
puts("OK\n");
|
puts("OK\n");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -618,20 +610,16 @@ int boot_ramdisk_high(struct lmb *lmb, ulong rd_data, ulong rd_len,
|
|||||||
error:
|
error:
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_SYS_BOOT_RAMDISK_HIGH */
|
|
||||||
|
|
||||||
int boot_get_setup(bootm_headers_t *images, u8 arch,
|
int boot_get_setup(bootm_headers_t *images, u8 arch,
|
||||||
ulong *setup_start, ulong *setup_len)
|
ulong *setup_start, ulong *setup_len)
|
||||||
{
|
{
|
||||||
#if CONFIG_IS_ENABLED(FIT)
|
if (!CONFIG_IS_ENABLED(FIT))
|
||||||
return boot_get_setup_fit(images, arch, setup_start, setup_len);
|
|
||||||
#else
|
|
||||||
return -ENOENT;
|
return -ENOENT;
|
||||||
#endif
|
|
||||||
|
return boot_get_setup_fit(images, arch, setup_start, setup_len);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if CONFIG_IS_ENABLED(FIT)
|
|
||||||
#if defined(CONFIG_FPGA)
|
|
||||||
int boot_get_fpga(int argc, char *const argv[], bootm_headers_t *images,
|
int boot_get_fpga(int argc, char *const argv[], bootm_headers_t *images,
|
||||||
u8 arch, const ulong *ld_start, ulong * const ld_len)
|
u8 arch, const ulong *ld_start, ulong * const ld_len)
|
||||||
{
|
{
|
||||||
@ -643,6 +631,9 @@ int boot_get_fpga(int argc, char *const argv[], bootm_headers_t *images,
|
|||||||
int err;
|
int err;
|
||||||
int devnum = 0; /* TODO support multi fpga platforms */
|
int devnum = 0; /* TODO support multi fpga platforms */
|
||||||
|
|
||||||
|
if (!IS_ENABLED(CONFIG_FPGA))
|
||||||
|
return -ENOSYS;
|
||||||
|
|
||||||
/* Check to see if the images struct has a FIT configuration */
|
/* Check to see if the images struct has a FIT configuration */
|
||||||
if (!genimg_has_config(images)) {
|
if (!genimg_has_config(images)) {
|
||||||
debug("## FIT configuration was not specified\n");
|
debug("## FIT configuration was not specified\n");
|
||||||
@ -714,7 +705,6 @@ int boot_get_fpga(int argc, char *const argv[], bootm_headers_t *images,
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
static void fit_loadable_process(u8 img_type,
|
static void fit_loadable_process(u8 img_type,
|
||||||
ulong img_data,
|
ulong img_data,
|
||||||
@ -812,7 +802,6 @@ int boot_get_loadable(int argc, char *const argv[], bootm_headers_t *images,
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* boot_get_cmdline - allocate and initialize kernel cmdline
|
* boot_get_cmdline - allocate and initialize kernel cmdline
|
||||||
|
@ -298,7 +298,11 @@ typedef struct bootm_headers {
|
|||||||
image_header_t legacy_hdr_os_copy; /* header copy */
|
image_header_t legacy_hdr_os_copy; /* header copy */
|
||||||
ulong legacy_hdr_valid;
|
ulong legacy_hdr_valid;
|
||||||
|
|
||||||
#if CONFIG_IS_ENABLED(FIT)
|
/*
|
||||||
|
* The fit_ members are only used with FIT, but it involves a lot of
|
||||||
|
* #ifdefs to avoid compiling that code. Since FIT is the standard
|
||||||
|
* format, even for SPL, this extra data size seems worth it.
|
||||||
|
*/
|
||||||
const char *fit_uname_cfg; /* configuration node unit name */
|
const char *fit_uname_cfg; /* configuration node unit name */
|
||||||
|
|
||||||
void *fit_hdr_os; /* os FIT image header */
|
void *fit_hdr_os; /* os FIT image header */
|
||||||
@ -316,7 +320,6 @@ typedef struct bootm_headers {
|
|||||||
void *fit_hdr_setup; /* x86 setup FIT image header */
|
void *fit_hdr_setup; /* x86 setup FIT image header */
|
||||||
const char *fit_uname_setup; /* x86 setup subimage node name */
|
const char *fit_uname_setup; /* x86 setup subimage node name */
|
||||||
int fit_noffset_setup;/* x86 setup subimage node offset */
|
int fit_noffset_setup;/* x86 setup subimage node offset */
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef USE_HOSTCC
|
#ifndef USE_HOSTCC
|
||||||
image_info_t os; /* os image info */
|
image_info_t os; /* os image info */
|
||||||
|
Loading…
Reference in New Issue
Block a user