summaryrefslogtreecommitdiffstats
path: root/arch/x86
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86')
-rw-r--r--arch/x86/Kconfig67
-rw-r--r--arch/x86/Makefile50
2 files changed, 117 insertions, 0 deletions
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
new file mode 100644
index 0000000000..6e70760f58
--- /dev/null
+++ b/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
diff --git a/arch/x86/Makefile b/arch/x86/Makefile
new file mode 100644
index 0000000000..2e2cb810d7
--- /dev/null
+++ b/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
+