From: Simon Glass <sjg@chromium.org>
To: U-Boot Mailing List <u-boot@lists.denx.de>
Cc: Alexandru Gagniuc <mr.nuke.me@gmail.com>,
Andre Przywara <andre.przywara@arm.com>,
Rasmus Villemoes <rasmus.villemoes@prevas.dk>,
Robert Marko <robert.marko@sartura.hr>,
Masahiro Yamada <masahiroy@kernel.org>,
Tom Rini <trini@konsulko.com>, Simon Glass <sjg@chromium.org>,
Joe Hershberger <joe.hershberger@ni.com>,
Marek Vasut <marex@denx.de>
Subject: [PATCH v5 25/29] image: Remove #ifdefs from select_ramdisk()
Date: Sat, 25 Sep 2021 19:43:38 -0600 [thread overview]
Message-ID: <20210926014342.127913-19-sjg@chromium.org> (raw)
In-Reply-To: <20210926014342.127913-1-sjg@chromium.org>
Use boolean variables to deal with the strange #ifdef logic of this
function, so we can remove the #ifdefs.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
Changes in v5:
- Rebase to next
common/image-board.c | 139 ++++++++++++++++++++++---------------------
1 file changed, 72 insertions(+), 67 deletions(-)
diff --git a/common/image-board.c b/common/image-board.c
index fecc4bf6365..742ca66298b 100644
--- a/common/image-board.c
+++ b/common/image-board.c
@@ -26,7 +26,6 @@
DECLARE_GLOBAL_DATA_PTR;
-#if CONFIG_IS_ENABLED(LEGACY_IMAGE_FORMAT)
/**
* image_get_ramdisk - get and verify ramdisk image
* @rd_addr: ramdisk image start address
@@ -85,7 +84,6 @@ static const image_header_t *image_get_ramdisk(ulong rd_addr, u8 arch,
return rd_hdr;
}
-#endif
/*****************************************************************************/
/* Shared dual-format routines */
@@ -326,16 +324,18 @@ int genimg_has_config(bootm_headers_t *images)
static int select_ramdisk(bootm_headers_t *images, const char *select, u8 arch,
ulong *rd_datap, ulong *rd_lenp)
{
- ulong rd_addr;
+ ulong rd_addr = 0;
char *buf;
+ const char *fit_uname_config = images->fit_uname_cfg;
+ const char *fit_uname_ramdisk = NULL;
+ bool processed;
+ int rd_noffset;
-#if CONFIG_IS_ENABLED(FIT)
- const char *fit_uname_config = images->fit_uname_cfg;
- const char *fit_uname_ramdisk = NULL;
- int rd_noffset;
+ if (select) {
+ ulong default_addr;
+ bool done = true;
- if (select) {
- ulong default_addr;
+ if (CONFIG_IS_ENABLED(FIT)) {
/*
* If the init ramdisk comes from the FIT image and
* the FIT image address is omitted in the command
@@ -347,8 +347,8 @@ static int select_ramdisk(bootm_headers_t *images, const char *select, u8 arch,
else
default_addr = image_load_addr;
- if (fit_parse_conf(select, default_addr,
- &rd_addr, &fit_uname_config)) {
+ if (fit_parse_conf(select, default_addr, &rd_addr,
+ &fit_uname_config)) {
debug("* ramdisk: config '%s' from image at 0x%08lx\n",
fit_uname_config, rd_addr);
} else if (fit_parse_subimage(select, default_addr,
@@ -356,60 +356,58 @@ static int select_ramdisk(bootm_headers_t *images, const char *select, u8 arch,
&fit_uname_ramdisk)) {
debug("* ramdisk: subimage '%s' from image at 0x%08lx\n",
fit_uname_ramdisk, rd_addr);
- } else
-#endif
- {
- rd_addr = hextoul(select, NULL);
- debug("* ramdisk: cmdline image address = 0x%08lx\n",
- rd_addr);
+ } else {
+ done = false;
}
-#if CONFIG_IS_ENABLED(FIT)
- } else {
- /* use FIT configuration provided in first bootm
- * command argument. If the property is not defined,
- * quit silently (with -ENOPKG)
- */
- rd_addr = map_to_sysmem(images->fit_hdr_os);
- rd_noffset = fit_get_node_from_config(images,
- FIT_RAMDISK_PROP,
- rd_addr);
- if (rd_noffset == -ENOENT)
- return -ENOPKG;
- else if (rd_noffset < 0)
- return rd_noffset;
}
-#endif
-
- /*
- * Check if there is an initrd image at the
- * address provided in the second bootm argument
- * check image type, for FIT images get FIT node.
+ if (!done) {
+ rd_addr = hextoul(select, NULL);
+ debug("* ramdisk: cmdline image address = 0x%08lx\n",
+ rd_addr);
+ }
+ } else if (CONFIG_IS_ENABLED(FIT)) {
+ /* use FIT configuration provided in first bootm
+ * command argument. If the property is not defined,
+ * quit silently (with -ENOPKG )
*/
- buf = map_sysmem(rd_addr, 0);
- switch (genimg_get_format(buf)) {
-#if CONFIG_IS_ENABLED(LEGACY_IMAGE_FORMAT)
- case IMAGE_FORMAT_LEGACY: {
+ rd_addr = map_to_sysmem(images->fit_hdr_os);
+ rd_noffset = fit_get_node_from_config(images, FIT_RAMDISK_PROP,
+ rd_addr);
+ if (rd_noffset == -ENOENT)
+ return -ENOPKG;
+ else if (rd_noffset < 0)
+ return rd_noffset;
+ }
+
+ /*
+ * Check if there is an initrd image at the
+ * address provided in the second bootm argument
+ * check image type, for FIT images get FIT node.
+ */
+ buf = map_sysmem(rd_addr, 0);
+ processed = false;
+ switch (genimg_get_format(buf)) {
+ case IMAGE_FORMAT_LEGACY:
+ if (CONFIG_IS_ENABLED(LEGACY_IMAGE_FORMAT)) {
const image_header_t *rd_hdr;
printf("## Loading init Ramdisk from Legacy Image at %08lx ...\n",
rd_addr);
bootstage_mark(BOOTSTAGE_ID_CHECK_RAMDISK);
- rd_hdr = image_get_ramdisk(rd_addr, arch,
- images->verify);
-
+ rd_hdr = image_get_ramdisk(rd_addr, arch, images->verify);
if (!rd_hdr)
return -ENOENT;
*rd_datap = image_get_data(rd_hdr);
*rd_lenp = image_get_data_size(rd_hdr);
- break;
+ processed = true;
}
-#endif
-#if CONFIG_IS_ENABLED(FIT)
- case IMAGE_FORMAT_FIT:
- rd_noffset = fit_image_load(images,
- rd_addr, &fit_uname_ramdisk,
+ break;
+ case IMAGE_FORMAT_FIT:
+ if (CONFIG_IS_ENABLED(FIT)) {
+ rd_noffset = fit_image_load(images, rd_addr,
+ &fit_uname_ramdisk,
&fit_uname_config, arch,
IH_TYPE_RAMDISK,
BOOTSTAGE_ID_FIT_RD_START,
@@ -421,29 +419,36 @@ static int select_ramdisk(bootm_headers_t *images, const char *select, u8 arch,
images->fit_hdr_rd = map_sysmem(rd_addr, 0);
images->fit_uname_rd = fit_uname_ramdisk;
images->fit_noffset_rd = rd_noffset;
- break;
-#endif
-#ifdef CONFIG_ANDROID_BOOT_IMAGE
- case IMAGE_FORMAT_ANDROID:
+ processed = true;
+ }
+ break;
+ case IMAGE_FORMAT_ANDROID:
+ if (IS_ENABLED(CONFIG_ANDROID_BOOT_IMAGE)) {
android_image_get_ramdisk((void *)images->os.start,
rd_datap, rd_lenp);
- break;
-#endif
- default:
- if (IS_ENABLED(CONFIG_SUPPORT_RAW_INITRD)) {
- char *end = NULL;
-
- if (select)
- end = strchr(select, ':');
- if (end) {
- *rd_lenp = hextoul(++end, NULL);
- *rd_datap = rd_addr;
- break;
- }
+ processed = true;
+ }
+ break;
+ }
+
+ if (!processed) {
+ if (IS_ENABLED(CONFIG_SUPPORT_RAW_INITRD)) {
+ char *end = NULL;
+
+ if (select)
+ end = strchr(select, ':');
+ if (end) {
+ *rd_lenp = hextoul(++end, NULL);
+ *rd_datap = rd_addr;
+ processed = true;
}
+ }
+
+ if (!processed) {
puts("Wrong Ramdisk Image Format\n");
return -EINVAL;
}
+ }
return 0;
}
--
2.33.0.685.g46640cef36-goog
next prev parent reply other threads:[~2021-09-26 1:48 UTC|newest]
Thread overview: 91+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-26 1:43 [PATCH v5 00/29] image: Reduce #ifdefs and ad-hoc defines in image code (Part B) Simon Glass
2021-09-26 1:43 ` [PATCH v5 01/29] compiler: Rename host_build() to tools_build() Simon Glass
2021-10-05 18:09 ` Alex G.
2021-10-09 1:39 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 02/29] kconfig: Add tools support to CONFIG_IS_ENABLED() Simon Glass
2021-09-27 16:11 ` Alex G.
2021-09-27 16:50 ` Masahiro Yamada
2021-09-27 20:17 ` Simon Glass
2021-09-27 20:17 ` Simon Glass
2021-10-05 18:11 ` Alex G.
2021-10-07 0:26 ` Tom Rini
2021-10-07 2:49 ` Simon Glass
2021-10-07 2:52 ` Tom Rini
2021-10-07 13:32 ` Simon Glass
2021-10-07 13:42 ` Tom Rini
2021-10-07 18:02 ` Simon Glass
2021-10-07 18:30 ` Tom Rini
2021-10-07 18:50 ` Simon Glass
2021-10-07 19:32 ` Alex G.
2021-10-07 19:39 ` Tom Rini
2021-10-07 20:33 ` Alex G.
2021-10-07 21:04 ` Tom Rini
2021-10-07 21:15 ` Alex G.
2021-10-09 1:39 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 03/29] image: Add Kconfig options for FIT in the tools build Simon Glass
2021-10-05 18:17 ` Alex G.
2021-10-05 18:17 ` Alex G.
2021-10-09 1:39 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 04/29] spl: cypto: Bring back SPL_ versions of SHA Simon Glass
2021-10-05 18:19 ` Alex G.
2021-10-09 1:39 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 05/29] hash: Use Kconfig to enable hashing in host tools and SPL Simon Glass
2021-09-27 15:53 ` Alex G.
2021-09-27 16:06 ` Simon Glass
2021-09-27 16:12 ` Alex G.
2021-10-05 18:21 ` Alex G.
2021-10-09 1:39 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 06/29] hash: Drop some #ifdefs in hash.c Simon Glass
2021-10-05 18:24 ` Alex G.
2021-10-09 1:39 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 07/29] image: Drop IMAGE_ENABLE_FIT Simon Glass
2021-10-05 18:26 ` Alex G.
2021-10-09 1:39 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 08/29] image: Drop IMAGE_ENABLE_OF_LIBFDT Simon Glass
2021-10-05 18:27 ` Alex G.
2021-10-09 1:40 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 09/29] image: Use Kconfig to enable CONFIG_FIT_VERBOSE on host Simon Glass
2021-10-05 18:29 ` Alex G.
2021-10-09 1:40 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 10/29] image: Use Kconfig to enable FIT_RSASSA_PSS " Simon Glass
2021-10-05 18:32 ` Alex G.
2021-10-09 1:40 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 11/29] image: Use the correct checks for CRC32 Simon Glass
2021-10-05 18:34 ` Alex G.
2021-10-09 1:40 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 12/29] image: Drop IMAGE_BOOT_GET_CMDLINE Simon Glass
2021-10-05 18:36 ` Alex G.
2021-10-09 1:40 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 13/29] image: Drop IMAGE_OF_BOARD_SETUP Simon Glass
2021-10-05 18:57 ` Alex G.
2021-10-09 1:40 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 14/29] image: Drop IMAGE_OF_SYSTEM_SETUP Simon Glass
2021-10-05 18:58 ` Alex G.
2021-10-09 1:40 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 15/29] image: Drop IMAGE_ENABLE_IGNORE Simon Glass
2021-10-05 18:58 ` Alex G.
2021-10-09 1:40 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 16/29] efi: Correct dependency on FIT_SIGNATURE Simon Glass
2021-10-09 1:40 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 19/29] image: Tidy up fit_unsupported_reset() Simon Glass
2021-10-09 1:40 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 20/29] image: Drop unnecessary #ifdefs from image.h Simon Glass
2021-10-09 1:41 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 21/29] image: Drop #ifdefs for fit_print_contents() Simon Glass
2021-10-09 1:41 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 22/29] image: Drop most #ifdefs in image-board.c Simon Glass
2021-10-09 1:41 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 23/29] image: Reduce variable scope in boot_get_ramdisk() Simon Glass
2021-10-09 1:41 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 24/29] image: Split up boot_get_ramdisk() Simon Glass
2021-10-09 1:41 ` Tom Rini
2021-09-26 1:43 ` Simon Glass [this message]
2021-10-09 1:41 ` [PATCH v5 25/29] image: Remove #ifdefs from select_ramdisk() Tom Rini
2021-12-17 17:40 ` Neil Armstrong
2021-09-26 1:43 ` [PATCH v5 26/29] image: Remove some #ifdefs from image-fit and image-fit-sig Simon Glass
2021-10-09 1:41 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 27/29] image: Reduce variable scope in boot_get_fdt() Simon Glass
2021-10-09 1:41 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 28/29] image: Split up boot_get_fdt() Simon Glass
2021-10-09 1:41 ` Tom Rini
2022-01-23 3:24 [PATCH v5 25/29] image: Remove #ifdefs from select_ramdisk() Art Nikpal
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210926014342.127913-19-sjg@chromium.org \
--to=sjg@chromium.org \
--cc=andre.przywara@arm.com \
--cc=joe.hershberger@ni.com \
--cc=marex@denx.de \
--cc=masahiroy@kernel.org \
--cc=mr.nuke.me@gmail.com \
--cc=rasmus.villemoes@prevas.dk \
--cc=robert.marko@sartura.hr \
--cc=trini@konsulko.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).