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>
This commit is contained in:
Miao Yan 2016-05-22 19:37:18 -07:00 committed by Bin Meng
parent 1868659002
commit 86e30e67ad
1 changed files with 13 additions and 0 deletions

View File

@ -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);
}