From patchwork Thu Mar 16 16:34:42 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Hoyes X-Patchwork-Id: 1757941 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4PctD31rsbz2470 for ; Fri, 17 Mar 2023 03:35:31 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 3D2EC85AB4; Thu, 16 Mar 2023 17:35:19 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=arm.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Received: by phobos.denx.de (Postfix, from userid 109) id 98DA485BC0; Thu, 16 Mar 2023 17:35:16 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by phobos.denx.de (Postfix) with ESMTP id AA6F18587C for ; Thu, 16 Mar 2023 17:35:12 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peter.hoyes@arm.com Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 92E684B3; Thu, 16 Mar 2023 09:35:55 -0700 (PDT) Received: from e125920.cambridge.arm.com (unknown [10.1.199.64]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 83D493F885; Thu, 16 Mar 2023 09:35:10 -0700 (PDT) From: Peter Hoyes To: u-boot@lists.denx.de Cc: andre.przywara@arm.com, sjg@chromium.org, daniel@makrotopia.org, pali@kernel.org, philippe.reynes@softathome.com, sean.anderson@seco.com, marek.vasut+renesas@mailbox.org, xypron.glpk@gmx.de, Peter Hoyes Subject: [PATCH] fdt: Make fdt addr -q quieter Date: Thu, 16 Mar 2023 16:34:42 +0000 Message-Id: <20230316163442.3120729-1-peter.hoyes@arm.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean From: Peter Hoyes 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, move the printf outside of set_working_fdt_addr to three call sites: * bootm_find_images (the use case for which the additional output was added in baf41410). * fdt addr, but only if the 'quiet' argument is not set. * fdt move. This also has the advantage of printing the specified address instead of the translated address when using the sandbox. Remove assertions from the fdt addr test case when: * Calling set_working_fdt_addr directly. * Calling fdt addr with the -q argument. Signed-off-by: Peter Hoyes --- boot/bootm.c | 5 ++++- cmd/fdt.c | 13 +++++++++---- test/cmd/fdt.c | 6 ------ 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/boot/bootm.c b/boot/bootm.c index 2eec60ec7b..be5e29088d 100644 --- a/boot/bootm.c +++ b/boot/bootm.c @@ -313,8 +313,11 @@ int bootm_find_images(int flag, int argc, char *const argv[], ulong start, return 1; } - if (IS_ENABLED(CONFIG_CMD_FDT)) + if (IS_ENABLED(CONFIG_CMD_FDT)) { + printf("Working FDT set to %lx\n", (ulong)images.ft_addr); set_working_fdt_addr(map_to_sysmem(images.ft_addr)); + } + #endif #if CONFIG_IS_ENABLED(FIT) diff --git a/cmd/fdt.c b/cmd/fdt.c index f38fe909c3..39f94759d9 100644 --- a/cmd/fdt.c +++ b/cmd/fdt.c @@ -40,7 +40,6 @@ void set_working_fdt_addr(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); @@ -192,10 +191,13 @@ 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 + } else { + if (!quiet) + printf("Working FDT set to %lx\n", addr); set_working_fdt_addr(addr); + } if (argc >= 2) { int len; @@ -223,6 +225,7 @@ static int do_fdt(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) * Move the working_fdt */ } else if (strncmp(argv[1], "mo", 2) == 0) { + unsigned long addr; struct fdt_header *newaddr; int len; int err; @@ -237,7 +240,8 @@ static int do_fdt(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) if (!fdt_valid(&working_fdt)) return 1; - newaddr = map_sysmem(hextoul(argv[3], NULL), 0); + addr = hextoul(argv[3], NULL); + newaddr = map_sysmem(addr, 0); /* * If the user specifies a length, use that. Otherwise use the @@ -264,6 +268,7 @@ static int do_fdt(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) fdt_strerror(err)); return 1; } + printf("Working FDT set to %lx\n", addr); set_working_fdt_addr(map_to_sysmem(newaddr)); return CMD_RET_SUCCESS; diff --git a/test/cmd/fdt.c b/test/cmd/fdt.c index cdbaf8c425..d2839d6dee 100644 --- a/test/cmd/fdt.c +++ b/test/cmd/fdt.c @@ -151,7 +151,6 @@ static int fdt_test_addr(struct unit_test_state *uts) /* The working fdt is not set, so this should fail */ set_working_fdt_addr(0); - ut_assert_nextline("Working FDT set to 0"); ut_asserteq(CMD_RET_FAILURE, run_command("fdt addr", 0)); ut_assert_nextline("libfdt fdt_check_header(): FDT_ERR_BADMAGIC"); ut_assertok(ut_check_console_end(uts)); @@ -160,20 +159,17 @@ static int fdt_test_addr(struct unit_test_state *uts) ut_assertok(make_test_fdt(uts, fdt, sizeof(fdt))); addr = map_to_sysmem(fdt); set_working_fdt_addr(addr); - ut_assert_nextline("Working FDT set to %lx", addr); ut_assertok(run_command("fdt addr", 0)); ut_assert_nextline("Working fdt: %08lx", (ulong)map_to_sysmem(fdt)); ut_assertok(ut_check_console_end(uts)); /* Set the working FDT */ set_working_fdt_addr(0); - ut_assert_nextline("Working FDT set to 0"); ut_assertok(run_commandf("fdt addr %08x", addr)); ut_assert_nextline("Working FDT set to %lx", addr); ut_asserteq(addr, map_to_sysmem(working_fdt)); ut_assertok(ut_check_console_end(uts)); set_working_fdt_addr(0); - ut_assert_nextline("Working FDT set to 0"); /* Set the control FDT */ fdt_blob = gd->fdt_blob; @@ -194,7 +190,6 @@ static int fdt_test_addr(struct unit_test_state *uts) /* Test detecting an invalid FDT */ fdt[0] = 123; set_working_fdt_addr(addr); - ut_assert_nextline("Working FDT set to %lx", addr); ut_asserteq(1, run_commandf("fdt addr")); ut_assert_nextline("libfdt fdt_check_header(): FDT_ERR_BADMAGIC"); ut_assertok(ut_check_console_end(uts)); @@ -229,7 +224,6 @@ static int fdt_test_addr_resize(struct unit_test_state *uts) /* ...quietly */ ut_assertok(run_commandf("fdt addr -q %08x %x", 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 */