]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
fdt: Make fdt addr -q quieter
authorPeter Hoyes <Peter.Hoyes@arm.com>
Tue, 21 Mar 2023 13:01:16 +0000 (13:01 +0000)
committerSimon Glass <sjg@chromium.org>
Sun, 2 Apr 2023 18:53:53 +0000 (06:53 +1200)
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>
cmd/fdt.c
test/cmd/fdt.c

index 87d9a38507577fcd2214316b544af7cbcb295005..aae3278526c4a34efac461834687d36e55712327 100644 (file)
--- a/cmd/fdt.c
+++ b/cmd/fdt.c
@@ -36,16 +36,21 @@ static int is_printable_string(const void *data, int len);
  */
 struct fdt_header *working_fdt;
 
-void set_working_fdt_addr(ulong addr)
+static void set_working_fdt_addr_quiet(ulong addr)
 {
        void *buf;
 
-       printf("Working FDT set to %lx\n", addr);
        buf = map_sysmem(addr, 0);
        working_fdt = buf;
        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
  */
@@ -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)) ||
                    (!quiet && !fdt_valid(&blob)))
                        return 1;
-               if (control)
+               if (control) {
                        gd->fdt_blob = blob;
-               else
-                       set_working_fdt_addr(addr);
+               } else {
+                       if (quiet)
+                               set_working_fdt_addr_quiet(addr);
+                       else
+                               set_working_fdt_addr(addr);
+               }
 
                if (argc >= 2) {
                        int  len;
index 597fecbf62ae410191c2e6a40df3f419d67b504a..7835da232d5ea28eece9b24008cf0480dca319d2 100644 (file)
@@ -236,7 +236,6 @@ static int fdt_test_addr_resize(struct unit_test_state *uts)
 
        /* ...quietly */
        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));
 
        /* We cannot easily provoke errors in fdt_open_into(), so ignore that */