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

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(-)
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

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
participants (2)
-
Andy Shevchenko
-
Bin Meng