sandbox: Support FDT fixups
authorSimon Glass <sjg@chromium.org>
Tue, 11 Oct 2022 15:47:14 +0000 (09:47 -0600)
committerSimon Glass <sjg@chromium.org>
Tue, 18 Oct 2022 03:17:13 +0000 (21:17 -0600)
Add support for doing device tree fixups in sandbox. This allows us to
test that functionality in CI.

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

index c1742f9..28f4a74 100644 (file)
@@ -50,8 +50,25 @@ int bootz_setup(ulong image, ulong *start, ulong *end)
        return ret;
 }
 
+/* Subcommand: PREP */
+static int boot_prep_linux(struct bootm_headers *images)
+{
+       int ret;
+
+       if (CONFIG_IS_ENABLED(LMB)) {
+               ret = image_setup_linux(images);
+               if (ret)
+                       return ret;
+       }
+
+       return 0;
+}
+
 int do_bootm_linux(int flag, int argc, char *argv[], struct bootm_headers *images)
 {
+       if (flag & BOOTM_STATE_OS_PREP)
+               return boot_prep_linux(images);
+
        if (flag & (BOOTM_STATE_OS_GO | BOOTM_STATE_OS_FAKE_GO)) {
                bootstage_mark(BOOTSTAGE_ID_RUN_OS);
                printf("## Transferring control to Linux (at address %08lx)...\n",