]> git.sur5r.net Git - u-boot/blobdiff - arch/x86/lib/bootm.c
x86: ivybridge: Set up the LPC device using driver model
[u-boot] / arch / x86 / lib / bootm.c
index 46a1d967e461cc8a1e6f2a1fa471f091144a67a2..f441c84df5628290bd1803c6c4c0a58753b910c1 100644 (file)
@@ -22,6 +22,8 @@
 #include <asm/arch/timestamp.h>
 #endif
 
+DECLARE_GLOBAL_DATA_PTR;
+
 #define COMMAND_LINE_OFFSET 0x9000
 
 /*
@@ -121,7 +123,7 @@ static int boot_prep_linux(bootm_headers_t *images)
        } else if (images->ep) {
                cmd_line_dest = (void *)images->ep + COMMAND_LINE_OFFSET;
        } else {
-               printf("## Kernel loading failed (no setup) ...\n");
+               printf("## Kernel loading failed (missing x86 kernel setup) ...\n");
                goto error;
        }
 
@@ -162,7 +164,11 @@ int boot_linux_kernel(ulong setup_base, ulong load_address, bool image_64bit)
                * the data segments are 0x18, 4GB flat, and read/write.
                * U-boot is setting them up that way for itself in
                * arch/i386/cpu/cpu.c.
+               *
+               * Note that we cannot currently boot a kernel while running as
+               * an EFI application. Please use the payload option for that.
                */
+#ifndef CONFIG_EFI_APP
                __asm__ __volatile__ (
                "movl $0, %%ebp\n"
                "cli\n"
@@ -171,6 +177,7 @@ int boot_linux_kernel(ulong setup_base, ulong load_address, bool image_64bit)
                [boot_params] "S"(setup_base),
                "b"(0), "D"(0)
                );
+#endif
        }
 
        /* We can't get to here */