summaryrefslogtreecommitdiff
path: root/cmd/qfw.c
diff options
context:
space:
mode:
authorMiao Yan <yanmiaobest@gmail.com>2016-05-22 19:37:18 -0700
committerBin Meng <bmeng.cn@gmail.com>2016-05-23 15:18:00 +0800
commit86e30e67ad068ebedd1e6cc8833ba413ea28ed75 (patch)
tree9689614035631eac7caab60e184ef82bb9d98d0c /cmd/qfw.c
parent1868659002a6b7ab3b1da7be74f53d3e10e915be (diff)
cmd: qfw: do not require default macros when building qfw command
The qfw command interface makes use of CONFIG_LOADADDR and CONFIG_RAMDISKADDR to setup kernel. But not all boards have these macros, which causes build problem on those platforms. This patch fixes this issue. Signed-off-by: Miao Yan <yanmiaobest@gmail.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Diffstat (limited to 'cmd/qfw.c')
-rw-r--r--cmd/qfw.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/cmd/qfw.c b/cmd/qfw.c
index c6730bf2d3..12436ec9b4 100644
--- a/cmd/qfw.c
+++ b/cmd/qfw.c
@@ -126,12 +126,20 @@ static int qemu_fwcfg_do_load(cmd_tbl_t *cmdtp, int flag,
env = getenv("loadaddr");
load_addr = env ?
(void *)simple_strtoul(env, NULL, 16) :
+#ifdef CONFIG_LOADADDR
(void *)CONFIG_LOADADDR;
+#else
+ NULL;
+#endif
env = getenv("ramdiskaddr");
initrd_addr = env ?
(void *)simple_strtoul(env, NULL, 16) :
+#ifdef CONFIG_RAMDISK_ADDR
(void *)CONFIG_RAMDISK_ADDR;
+#else
+ NULL;
+#endif
if (argc == 2) {
load_addr = (void *)simple_strtoul(argv[0], NULL, 16);
@@ -140,6 +148,11 @@ static int qemu_fwcfg_do_load(cmd_tbl_t *cmdtp, int flag,
load_addr = (void *)simple_strtoul(argv[0], NULL, 16);
}
+ if (!load_addr || !initrd_addr) {
+ printf("missing load or initrd address\n");
+ return CMD_RET_FAILURE;
+ }
+
return qemu_fwcfg_setup_kernel(load_addr, initrd_addr);
}