diff mbox

[U-Boot,v2] x86: make LOAD_FROM_32_BIT visible for platforms

Message ID 20170124141621.4689-1-andriy.shevchenko@linux.intel.com
State Superseded
Delegated to: Bin Meng
Headers show

Commit Message

Andy Shevchenko Jan. 24, 2017, 2:16 p.m. UTC
This option useful not only for development, but for the platforms where
U-Boot is run from custom ROM bootloader. For example, Intel Edison is
that board.

Make this option visible that platforms can select it if needed.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
- fix logic bug for non-Edison platforms
- move comment to Kconfig as option description
 arch/x86/Kconfig     |  9 +++++++++
 arch/x86/cpu/start.S | 12 ++----------
 2 files changed, 11 insertions(+), 10 deletions(-)

Comments

Bin Meng Feb. 4, 2017, 5:55 a.m. UTC | #1
Hi Andy,

On Tue, Jan 24, 2017 at 10:16 PM, Andy Shevchenko
<andriy.shevchenko@linux.intel.com> wrote:
> This option useful not only for development, but for the platforms where

This option "is" useful ..

> U-Boot is run from custom ROM bootloader. For example, Intel Edison is
> that board.
>
> Make this option visible that platforms can select it if needed.
>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> ---
> - fix logic bug for non-Edison platforms
> - move comment to Kconfig as option description
>  arch/x86/Kconfig     |  9 +++++++++
>  arch/x86/cpu/start.S | 12 ++----------
>  2 files changed, 11 insertions(+), 10 deletions(-)
>
> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
> index 0884af22a7..1da1a2199c 100644
> --- a/arch/x86/Kconfig
> +++ b/arch/x86/Kconfig
> @@ -109,6 +109,15 @@ config SYS_X86_START16
>         depends on X86_RESET_VECTOR
>         default 0xfffff800
>
> +config X86_LOAD_FROM_32_BIT
> +       bool "Boot from a 32-bit program"
> +       default n

nits: 'default n' can be removed

> +       help
> +         Define this to boot U-Boot from a 32-bit program which sets
> +         the GDT differently. This can be used to boot directly from
> +         any stage of coreboot, for example, bypassing the normal
> +         payload-loading feature.
> +

[snip]

Regards,
Bin
diff mbox

Patch

diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 0884af22a7..1da1a2199c 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -109,6 +109,15 @@  config SYS_X86_START16
 	depends on X86_RESET_VECTOR
 	default 0xfffff800
 
+config X86_LOAD_FROM_32_BIT
+	bool "Boot from a 32-bit program"
+	default n
+	help
+	  Define this to boot U-Boot from a 32-bit program which sets
+	  the GDT differently. This can be used to boot directly from
+	  any stage of coreboot, for example, bypassing the normal
+	  payload-loading feature.
+
 config BOARD_ROMSIZE_KB_512
 	bool
 config BOARD_ROMSIZE_KB_1024
diff --git a/arch/x86/cpu/start.S b/arch/x86/cpu/start.S
index a5cba1cf2a..8de55a0af1 100644
--- a/arch/x86/cpu/start.S
+++ b/arch/x86/cpu/start.S
@@ -18,14 +18,6 @@ 
 #include <generated/generic-asm-offsets.h>
 #include <generated/asm-offsets.h>
 
-/*
- * Define this to boot U-Boot from a 32-bit program which sets the GDT
- * differently. This can be used to boot directly from any stage of coreboot,
- * for example, bypassing the normal payload-loading feature.
- * This is only useful for development.
- */
-#undef LOAD_FROM_32_BIT
-
 .section .text
 .code32
 .globl _start
@@ -76,7 +68,7 @@  _start:
 	/* Save table pointer */
 	movl	%ecx, %esi
 
-#ifdef LOAD_FROM_32_BIT
+#ifdef CONFIG_X86_LOAD_FROM_32_BIT
 	lgdt	gdt_ptr2
 #endif
 
@@ -233,7 +225,7 @@  multiboot_header:
 	/* entry addr */
 	.long	CONFIG_SYS_TEXT_BASE
 
-#ifdef LOAD_FROM_32_BIT
+#ifdef CONFIG_X86_LOAD_FROM_32_BIT
 	/*
 	 * The following Global Descriptor Table is just enough to get us into
 	 * 'Flat Protected Mode' - It will be discarded as soon as the final