]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
sandbox: Set up global_data earlier
authorSimon Glass <sjg@chromium.org>
Wed, 7 Aug 2024 22:47:26 +0000 (16:47 -0600)
committerTom Rini <trini@konsulko.com>
Fri, 9 Aug 2024 22:03:19 +0000 (16:03 -0600)
It is possible for U-Boot functions such as printf() to be called
within state_init(). This can end up checking gd->flags (e.g. in putc())
before global_data is set up.

Move the setup earlier to avoid this. This fixes the suppression of some
debug output in memory allocation (when enabled).

Signed-off-by: Simon Glass <sjg@chromium.org>
arch/sandbox/cpu/start.c

index dce804165296d982a418c6fe7988045a672fdbab..0920ed55965d30cf1d81169a4e43d5ee5d8aaaff 100644 (file)
@@ -483,6 +483,9 @@ int sandbox_main(int argc, char *argv[])
 
        text_base = os_find_text_base();
 
+       memset(&data, '\0', sizeof(data));
+       gd = &data;
+
        /*
         * This must be the first invocation of os_malloc() to have
         * state->ram_buf in the low 4 GiB.
@@ -501,8 +504,6 @@ int sandbox_main(int argc, char *argv[])
                os_exit(1);
        memcpy(os_argv, argv, size);
 
-       memset(&data, '\0', sizeof(data));
-       gd = &data;
        gd->arch.text_base = text_base;
 
        state = state_get_current();