Signed-off-by: Juergen Beisert --- arch/x86/Kconfig | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ arch/x86/Makefile | 50 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 117 insertions(+) Index: barebox-2009.12.0/arch/x86/Kconfig =================================================================== --- /dev/null +++ barebox-2009.12.0/arch/x86/Kconfig @@ -0,0 +1,67 @@ +# +# +# +config ARCH_TEXT_BASE + hex + default 0x00007c00 if MACH_X86_GENERIC + +config BOARDINFO + default "Generic x86 bootloader" if MACH_X86_GENERIC + +config BOARD_LINKER_SCRIPT + bool + default n + +config GENERIC_LINKER_SCRIPT + bool + default y + depends on !BOARD_LINKER_SCRIPT + +config X86 + bool + select HAS_KALLSYMS + select HAS_MODULES + select HAVE_CONFIGURABLE_MEMORY_LAYOUT + select HAVE_CONFIGURABLE_TEXT_BASE + default y + +choice + prompt "Select your board" + +config MACH_X86_GENERIC + bool "Generic x86" + select X86_BOOTLOADER + help + Say Y here if you want barebox to be your BIOS based bootloader + +endchoice + +choice + prompt "Bring up type" + + config X86_BIOS_BRINGUP + prompt "16 bit BIOS" + bool + help + Barebox will act as a BIOS based bootloader. This includes + some 16 bit real mode code and some restrictions everyone knows + from BIOS based systems. + + config X86_NATIVE_BRINGUP + bool "native" + help + Barebox will act as a native bootloader. This includes all the + required initialization needed to bring up a piece of hardware. + Note: Not implemented yet + +endchoice + +source arch/x86/boot/Kconfig +source arch/x86/mach-i386/Kconfig + +source common/Kconfig +source commands/Kconfig +source net/Kconfig +source drivers/Kconfig +source fs/Kconfig +source lib/Kconfig Index: barebox-2009.12.0/arch/x86/Makefile =================================================================== --- /dev/null +++ barebox-2009.12.0/arch/x86/Makefile @@ -0,0 +1,50 @@ +CPPFLAGS += -D__X86__ -fno-strict-aliasing + +board-y := x86_generic +machine-y := i386 + +TEXT_BASE = $(CONFIG_TEXT_BASE) + +CPPFLAGS += -march=i386 -DTEXT_BASE=$(TEXT_BASE) -P + +ifndef CONFIG_MODULES +# Add cleanup flags +CPPFLAGS += -fdata-sections -ffunction-sections +LDFLAGS_uboot += -static --gc-sections +endif + +ifeq ($(incdir-y),) +incdir-y := $(machine-y) +endif +INCDIR := arch-$(incdir-y) + +all: $(KBUILD_IMAGE) + + + + + + +ifneq ($(board-y),) +BOARD := board/$(board-y)/ +else +BOARD := +endif + +ifneq ($(machine-y),) +MACH := arch/x86/mach-$(machine-y)/ +else +MACH := +endif + +common-y += $(BOARD) $(MACH) +common-y += arch/x86/lib/ +common-y += arch/x86/boot/ + +# arch/x86/cpu/ + +lds-$(CONFIG_GENERIC_LINKER_SCRIPT) := arch/x86/lib/barebox.lds +lds-$(CONFIG_BOARD_LINKER_SCRIPT) := $(BOARD)/barebox.lds + +CLEAN_FILES += arch/x86/lib/barebox.lds barebox.map barebox.S + --