fdt: Show a message when the working FDT changes
authorSimon Glass <sjg@chromium.org>
Tue, 11 Oct 2022 15:47:12 +0000 (09:47 -0600)
committerSimon Glass <sjg@chromium.org>
Tue, 18 Oct 2022 03:17:12 +0000 (21:17 -0600)
The working FDT is the one which comes from the OS and is fixed up by
U-Boot. When the bootm command runs, it sets up the working FDT to be the
one it is about to pass to the OS, so that fixups can happen.

This seems like an important step, so add a message indicating that the
working FDT has changed. This is shown during the running of the bootm
command.

Signed-off-by: Simon Glass <sjg@chromium.org>
cmd/fdt.c
doc/usage/cmd/fdt.rst
test/cmd/fdt.c

index 6fbd9205d3838c911eb353c552c9b20dd29fa94b..4b2dcfec863d5f4602815f7eca51f414b8ae06b1 100644 (file)
--- a/cmd/fdt.c
+++ b/cmd/fdt.c
@@ -40,6 +40,7 @@ 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);
index 07fed732e45a230c4c3d24bd50bf4e0ba8bbd4ad..36b8230877cc1d0be97d8cb91980be7213f23551 100644 (file)
@@ -60,6 +60,7 @@ The second word shows the size of the FDT. Now set the working FDT to that
 address and expand it to 0xf000 in size::
 
     => fdt addr 10000 f000
+    Working FDT set to 10000
     => md 10000 4
     00010000: edfe0dd0 00f00000 78000000 7c270000  ...........x..'|
 
index 100a7ef5ebf5587f9e48721cecdeea2c7d348ddc..ba9eaa42c149f5f74ebca302a02836a173c5bafe 100644 (file)
@@ -55,6 +55,7 @@ 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));
@@ -63,18 +64,22 @@ 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 working FDT */
+       /* Set the control FDT */
        fdt_blob = gd->fdt_blob;
        gd->fdt_blob = NULL;
        ret = run_commandf("fdt addr -c %08x", addr);
@@ -93,6 +98,7 @@ 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));
@@ -115,16 +121,19 @@ static int fdt_test_resize(struct unit_test_state *uts)
        /* Test setting and resizing the working FDT to a larger size */
        ut_assertok(console_record_reset_enable());
        ut_assertok(run_commandf("fdt addr %08x %x", addr, newsize));
+       ut_assert_nextline("Working FDT set to %lx", addr);
        ut_assertok(ut_check_console_end(uts));
 
        /* Try shrinking it */
        ut_assertok(run_commandf("fdt addr %08x %x", addr, sizeof(fdt) / 4));
+       ut_assert_nextline("Working FDT set to %lx", addr);
        ut_assert_nextline("New length %d < existing length %d, ignoring",
                           (int)sizeof(fdt) / 4, newsize);
        ut_assertok(ut_check_console_end(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 */