fdt: Make fdt addr -q quieter
64597346
"fdt: Add -q option to fdt addr for distro_bootcmd" introduced the -q option for fdt addr, which sets the current working fdt address without printing any output.baf41410
"fdt: Show a message when the working FDT changes" made the utility function set_working_fdt_addr (in cmd/fdt.c) output a message on each invocation, even if called via fdt addr -q, in which case its output is now slightly noisier. To fix this, split out set_working_fdt_addr into set_working_fdt_addr plus the static function set_working_fdt_addr_quiet. set_working_fdt_addr_quiet can be called by "quiet" fdt cmd logic and set_working_fdt_addr is exported (as before) to other boot logic. The latter calls the former. Remove the assertion from the fdt addr test case when calling with the -q argument. Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com> Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
d0bb00adcc
commit
b4fae89c48
2 changed files with 14 additions and 6 deletions
19
cmd/fdt.c
19
cmd/fdt.c
|
@ -36,16 +36,21 @@ static int is_printable_string(const void *data, int len);
|
||||||
*/
|
*/
|
||||||
struct fdt_header *working_fdt;
|
struct fdt_header *working_fdt;
|
||||||
|
|
||||||
void set_working_fdt_addr(ulong addr)
|
static void set_working_fdt_addr_quiet(ulong addr)
|
||||||
{
|
{
|
||||||
void *buf;
|
void *buf;
|
||||||
|
|
||||||
printf("Working FDT set to %lx\n", addr);
|
|
||||||
buf = map_sysmem(addr, 0);
|
buf = map_sysmem(addr, 0);
|
||||||
working_fdt = buf;
|
working_fdt = buf;
|
||||||
env_set_hex("fdtaddr", addr);
|
env_set_hex("fdtaddr", addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void set_working_fdt_addr(ulong addr)
|
||||||
|
{
|
||||||
|
printf("Working FDT set to %lx\n", addr);
|
||||||
|
set_working_fdt_addr_quiet(addr);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Get a value from the fdt and format it to be set in the environment
|
* Get a value from the fdt and format it to be set in the environment
|
||||||
*/
|
*/
|
||||||
|
@ -192,10 +197,14 @@ static int do_fdt(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
|
||||||
if ((quiet && fdt_check_header(blob)) ||
|
if ((quiet && fdt_check_header(blob)) ||
|
||||||
(!quiet && !fdt_valid(&blob)))
|
(!quiet && !fdt_valid(&blob)))
|
||||||
return 1;
|
return 1;
|
||||||
if (control)
|
if (control) {
|
||||||
gd->fdt_blob = blob;
|
gd->fdt_blob = blob;
|
||||||
else
|
} else {
|
||||||
set_working_fdt_addr(addr);
|
if (quiet)
|
||||||
|
set_working_fdt_addr_quiet(addr);
|
||||||
|
else
|
||||||
|
set_working_fdt_addr(addr);
|
||||||
|
}
|
||||||
|
|
||||||
if (argc >= 2) {
|
if (argc >= 2) {
|
||||||
int len;
|
int len;
|
||||||
|
|
|
@ -236,7 +236,6 @@ static int fdt_test_addr_resize(struct unit_test_state *uts)
|
||||||
|
|
||||||
/* ...quietly */
|
/* ...quietly */
|
||||||
ut_assertok(run_commandf("fdt addr -q %08lx %zx", addr, sizeof(fdt) / 4));
|
ut_assertok(run_commandf("fdt addr -q %08lx %zx", addr, sizeof(fdt) / 4));
|
||||||
ut_assert_nextline("Working FDT set to %lx", addr);
|
|
||||||
ut_assertok(ut_check_console_end(uts));
|
ut_assertok(ut_check_console_end(uts));
|
||||||
|
|
||||||
/* We cannot easily provoke errors in fdt_open_into(), so ignore that */
|
/* We cannot easily provoke errors in fdt_open_into(), so ignore that */
|
||||||
|
|
Loading…
Reference in a new issue