arch/x86: add support for Intel X1000

The Intel X1000 is the Pentium class microprocessor that ships with
Galileo Gen 1/2. This patch adds changes to arch and toolchain-wrapper
to omit the lock prefix for the X1000.

[Thomas: tweak commit log and Config.in help text.]

Signed-off-by: Ray Kinsella <ray.kinsella@intel.com>
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Ray Kinsella 2015-10-19 11:02:52 +00:00 committed by Thomas Petazzoni
parent 29551707f8
commit 968f5d5e59
3 changed files with 19 additions and 0 deletions

View File

@ -34,6 +34,16 @@ config BR2_x86_i486
config BR2_x86_i586 config BR2_x86_i586
bool "i586" bool "i586"
depends on !BR2_x86_64 depends on !BR2_x86_64
config BR2_x86_x1000
bool "x1000"
depends on !BR2_x86_64
help
The Intel X1000 is a Pentium class microprocessor in the
Quark (sub-Atom) Product Line. The X1000 has a bug on the
lock prefix requiring that prefix must be stripped at build
time.
See https://en.wikipedia.org/wiki/Intel_Quark.
config BR2_x86_i686 config BR2_x86_i686
bool "i686" bool "i686"
depends on !BR2_x86_64 depends on !BR2_x86_64
@ -202,6 +212,7 @@ config BR2_ARCH
default "i386" if BR2_x86_i386 default "i386" if BR2_x86_i386
default "i486" if BR2_x86_i486 default "i486" if BR2_x86_i486
default "i586" if BR2_x86_i586 default "i586" if BR2_x86_i586
default "i586" if BR2_x86_x1000
default "i586" if BR2_x86_pentium_mmx default "i586" if BR2_x86_pentium_mmx
default "i586" if BR2_x86_geode default "i586" if BR2_x86_geode
default "i586" if BR2_x86_c3 default "i586" if BR2_x86_c3
@ -240,6 +251,7 @@ config BR2_GCC_TARGET_ARCH
default "i386" if BR2_x86_i386 default "i386" if BR2_x86_i386
default "i486" if BR2_x86_i486 default "i486" if BR2_x86_i486
default "i586" if BR2_x86_i586 default "i586" if BR2_x86_i586
default "i586" if BR2_x86_x1000
default "pentium-mmx" if BR2_x86_pentium_mmx default "pentium-mmx" if BR2_x86_pentium_mmx
default "i686" if BR2_x86_i686 default "i686" if BR2_x86_i686
default "pentiumpro" if BR2_x86_pentiumpro default "pentiumpro" if BR2_x86_pentiumpro

View File

@ -63,6 +63,9 @@ static char *predef_args[] = {
#ifdef BR_64 #ifdef BR_64
"-m64", "-m64",
#endif #endif
#ifdef BR_OMIT_LOCK_PREFIX
"-Wa,-momit-lock-prefix=yes",
#endif
#ifdef BR_BINFMT_FLAT #ifdef BR_BINFMT_FLAT
"-Wl,-elf2flt", "-Wl,-elf2flt",
#endif #endif

View File

@ -20,6 +20,10 @@ ifeq ($(BR2_CCACHE),y)
TOOLCHAIN_WRAPPER_ARGS += -DBR_CCACHE TOOLCHAIN_WRAPPER_ARGS += -DBR_CCACHE
endif endif
ifeq ($(BR2_x86_x1000),y)
TOOLCHAIN_WRAPPER_ARGS += -DBR_OMIT_LOCK_PREFIX
endif
ifeq ($(BR2_CCACHE_USE_BASEDIR),y) ifeq ($(BR2_CCACHE_USE_BASEDIR),y)
TOOLCHAIN_WRAPPER_ARGS += -DBR_CCACHE_BASEDIR='"$(BASE_DIR)"' TOOLCHAIN_WRAPPER_ARGS += -DBR_CCACHE_BASEDIR='"$(BASE_DIR)"'
endif endif