From: Mike Frysinger <vapier@gentoo.org>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 2/3] common/cmd_nand.c: add ifdef protection for do_bootm
Date: Wed, 1 Jun 2011 11:10:49 -0400 [thread overview]
Message-ID: <201106011110.50651.vapier@gentoo.org> (raw)
In-Reply-To: <1306252059-26770-1-git-send-email-msm@freescale.com>
On Tuesday, May 24, 2011 11:47:39 Matthew McClintock wrote:
> Right now we do not check if do_bootm is actually built into this
> u-boot. Instead check define and only call do_bootm if it's actually
> available.
actually, if you dont mind, i'd like to obsolete this patch with the one
below. what do you think ?
-mike
diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c
index 18019d6..c5c169f 100644
--- a/common/cmd_bootm.c
+++ b/common/cmd_bootm.c
@@ -707,6 +707,21 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
return 1;
}
+int bootm_maybe_autostart(cmd_tbl_t *cmdtp, const char *cmd)
+{
+ const char *ep = getenv("autostart");
+
+ if (ep && !strcmp(ep, "yes")) {
+ char * const local_args[2];
+ local_args[0] = cmd;
+ local_args[1] = NULL;
+ printf("Automatic boot of image at addr 0x%08lX ...\n", addr);
+ return do_bootm(cmdtp, 0, 1, local_args);
+ }
+
+ return 0;
+}
+
/**
* image_get_kernel - verify legacy format kernel image
* @img_addr: in RAM address of the legacy format image to be verified
diff --git a/common/cmd_fdc.c b/common/cmd_fdc.c
index cdb050c..20ebf6c 100644
--- a/common/cmd_fdc.c
+++ b/common/cmd_fdc.c
@@ -722,7 +722,6 @@ int do_fdcboot (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
unsigned char boot_drive;
int i,nrofblk;
char *ep;
- int rcode = 0;
#if defined(CONFIG_FIT)
const void *fit_hdr = NULL;
#endif
@@ -823,19 +822,7 @@ int do_fdcboot (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
/* Loading ok, update default load address */
load_addr = addr;
- /* Check if we should attempt an auto-start */
- if (((ep = getenv("autostart")) != NULL) && (strcmp(ep,"yes") == 0)) {
- char *local_args[2];
-
- local_args[0] = argv[0];
- local_args[1] = NULL;
-
- printf ("Automatic boot of image at addr 0x%08lX ...\n", addr);
-
- do_bootm (cmdtp, 0, 1, local_args);
- rcode ++;
- }
- return rcode;
+ return bootm_maybe_autostart(cmdtp, argv[0]);
}
U_BOOT_CMD(
diff --git a/common/cmd_fdos.c b/common/cmd_fdos.c
index 2af4ca0..d714af8 100644
--- a/common/cmd_fdos.c
+++ b/common/cmd_fdos.c
@@ -40,7 +40,6 @@ int do_fdosboot(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
char *name;
char *ep;
int size;
- int rcode = 0;
char buf [12];
int drive = CONFIG_SYS_FDC_DRIVE_NUMBER;
@@ -98,15 +97,7 @@ int do_fdosboot(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
printf("Floppy DOS load complete: %d bytes loaded to 0x%lx\n",
size, load_addr);
- /* Check if we should attempt an auto-start */
- if (((ep = getenv("autostart")) != NULL) && (strcmp(ep,"yes") == 0)) {
- char *local_args[2];
- local_args[0] = argv[0];
- local_args[1] = NULL;
- printf ("Automatic boot of image at addr 0x%08lX ...\n", load_addr);
- rcode = do_bootm (cmdtp, 0, 1, local_args);
- }
- return rcode;
+ return bootm_maybe_autostart(cmdtp, argv[0]);
}
/*-----------------------------------------------------------------------------
diff --git a/common/cmd_ide.c b/common/cmd_ide.c
index a1f7e57..07890e7 100644
--- a/common/cmd_ide.c
+++ b/common/cmd_ide.c
@@ -356,7 +356,6 @@ int do_diskboot (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
ulong addr, cnt;
disk_partition_t info;
image_header_t *hdr;
- int rcode = 0;
#if defined(CONFIG_FIT)
const void *fit_hdr = NULL;
#endif
@@ -495,19 +494,7 @@ int do_diskboot (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
load_addr = addr;
- /* Check if we should attempt an auto-start */
- if (((ep = getenv("autostart")) != NULL) && (strcmp(ep,"yes") == 0)) {
- char *local_args[2];
-
- local_args[0] = argv[0];
- local_args[1] = NULL;
-
- printf ("Automatic boot of image at addr 0x%08lX ...\n", addr);
-
- do_bootm (cmdtp, 0, 1, local_args);
- rcode = 1;
- }
- return rcode;
+ return bootm_maybe_autostart(cmdtp, argv[0]);
}
/* ------------------------------------------------------------------------- */
diff --git a/common/cmd_nand.c b/common/cmd_nand.c
index 7bd37de..92ae186 100644
--- a/common/cmd_nand.c
+++ b/common/cmd_nand.c
@@ -799,19 +799,7 @@ static int nand_load_image(cmd_tbl_t *cmdtp, nand_info_t *nand,
load_addr = addr;
- /* Check if we should attempt an auto-start */
- if (((ep = getenv("autostart")) != NULL) && (strcmp(ep, "yes") == 0)) {
- char *local_args[2];
-
- local_args[0] = cmd;
- local_args[1] = NULL;
-
- printf("Automatic boot of image at addr 0x%08lx ...\n", addr);
-
- do_bootm(cmdtp, 0, 1, local_args);
- return 1;
- }
- return 0;
+ return bootm_maybe_autostart(cmdtp, cmd);
}
int do_nandboot(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
diff --git a/common/cmd_net.c b/common/cmd_net.c
index 8c6f5c8..322839a 100644
--- a/common/cmd_net.c
+++ b/common/cmd_net.c
@@ -210,17 +210,8 @@ netboot_common (proto_t proto, cmd_tbl_t *cmdtp, int argc, char * const argv[])
/* flush cache */
flush_cache(load_addr, size);
- /* Loading ok, check if we should attempt an auto-start */
- if (((s = getenv("autostart")) != NULL) && (strcmp(s,"yes") == 0)) {
- char *local_args[2];
- local_args[0] = argv[0];
- local_args[1] = NULL;
-
- printf ("Automatic boot of image at addr 0x%08lX ...\n",
- load_addr);
- show_boot_progress (82);
- rcode = do_bootm (cmdtp, 0, 1, local_args);
- }
+ show_boot_progress (82);
+ rcode = bootm_maybe_autostart(cmdtp, argv[0]);
if (rcode < 0)
show_boot_progress (-83);
diff --git a/common/cmd_scsi.c b/common/cmd_scsi.c
index be4fe74..8019ada 100644
--- a/common/cmd_scsi.c
+++ b/common/cmd_scsi.c
@@ -210,7 +210,6 @@ int do_scsiboot (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
ulong addr, cnt;
disk_partition_t info;
image_header_t *hdr;
- int rcode = 0;
#if defined(CONFIG_FIT)
const void *fit_hdr = NULL;
#endif
@@ -326,15 +325,7 @@ int do_scsiboot (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
flush_cache (addr, (cnt+1)*info.blksz);
- /* Check if we should attempt an auto-start */
- if (((ep = getenv("autostart")) != NULL) && (strcmp(ep,"yes") == 0)) {
- char *local_args[2];
- local_args[0] = argv[0];
- local_args[1] = NULL;
- printf ("Automatic boot of image at addr 0x%08lX ...\n", addr);
- rcode = do_bootm (cmdtp, 0, 1, local_args);
- }
- return rcode;
+ return bootm_maybe_autostart(cmdtp, argv[0]);
}
/*********************************************************************************
diff --git a/common/cmd_usb.c b/common/cmd_usb.c
index b5731a7..efec895 100644
--- a/common/cmd_usb.c
+++ b/common/cmd_usb.c
@@ -356,7 +356,7 @@ int do_usbboot(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
char *boot_device = NULL;
char *ep;
- int dev, part = 1, rcode;
+ int dev, part = 1;
ulong addr, cnt;
disk_partition_t info;
image_header_t *hdr;
@@ -490,16 +490,7 @@ int do_usbboot(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
flush_cache(addr, (cnt+1)*info.blksz);
- /* Check if we should attempt an auto-start */
- if (((ep = getenv("autostart")) != NULL) && (strcmp(ep, "yes") == 0)) {
- char *local_args[2];
- local_args[0] = argv[0];
- local_args[1] = NULL;
- printf("Automatic boot of image@addr 0x%08lX ...\n", addr);
- rcode = do_bootm(cmdtp, 0, 1, local_args);
- return rcode;
- }
- return 0;
+ return maybe_autostart(cmdtp, argv[0]);
}
#endif /* CONFIG_USB_STORAGE */
diff --git a/include/command.h b/include/command.h
index cab9651..f1accd0 100644
--- a/include/command.h
+++ b/include/command.h
@@ -98,7 +98,15 @@ extern int cmd_get_data_size(char* arg, int default_size);
#ifdef CONFIG_CMD_BOOTD
extern int do_bootd(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]);
#endif
+#ifdef CONFIG_CMD_BOOTM
extern int do_bootm(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]);
+extern int bootm_maybe_autostart(cmd_tbl_t *cmdtp, const char *cmd);
+#else
+static inline int bootm_maybe_autostart(cmd_tbl_t *cmdtp, const char *cmd)
+{
+ return 0;
+}
+#endif
extern int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]);
#endif /* __ASSEMBLY__ */
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
Url : http://lists.denx.de/pipermail/u-boot/attachments/20110601/f0b2bffe/attachment.pgp
next prev parent reply other threads:[~2011-06-01 15:10 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-23 18:29 [U-Boot] [PATCH 1/3] disk/part.c: Make features optional Matthew McClintock
2011-05-23 18:29 ` [U-Boot] [PATCH 2/3] common/cmd_nand.c: add ifdef protection for do_bootm Matthew McClintock
2011-05-23 18:29 ` [U-Boot] [PATCH 3/3] common/cmd_ximg.c: add ifdef protection for gzip uncompression Matthew McClintock
2011-05-24 3:10 ` Mike Frysinger
2011-05-24 15:48 ` [U-Boot] [PATCH v2 " Matthew McClintock
2011-07-26 12:28 ` Wolfgang Denk
2011-05-24 3:12 ` [U-Boot] [PATCH 2/3] common/cmd_nand.c: add ifdef protection for do_bootm Mike Frysinger
2011-05-24 15:47 ` [U-Boot] [PATCH v2 " Matthew McClintock
2011-06-01 15:10 ` Mike Frysinger [this message]
2011-06-01 15:55 ` McClintock Matthew-B29882
2011-06-01 16:59 ` Mike Frysinger
2011-06-01 17:58 ` McClintock Matthew-B29882
2011-06-01 17:56 ` Scott Wood
2011-06-01 19:21 ` Wolfgang Denk
2011-06-02 14:56 ` Mike Frysinger
2011-05-23 21:21 ` [U-Boot] [PATCH 1/3] disk/part.c: Make features optional Kumar Gala
2011-05-23 21:49 ` [U-Boot] [PATCH v2 " Matthew McClintock
2011-05-24 3:08 ` Mike Frysinger
2011-05-24 15:31 ` [U-Boot] [PATCH v3 " Matthew McClintock
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=201106011110.50651.vapier@gentoo.org \
--to=vapier@gentoo.org \
--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