Commit 420ae951 authored by Max Filippov's avatar Max Filippov

xtensa: simplify addition of new core variants

Instead of adding new Kconfig options and Makefile rules for each new
core variant provide XTENSA_VARIANT_CUSTOM variant and record variant
name in the XTENSA_VARIANT_NAME variable. Adding new core variant now
means providing directory structure under arch/xtensa/variant and
specifying correct name in kernel configuration.
Signed-off-by: default avatarMax Filippov <jcmvbkbc@gmail.com>
parent 64aa90f2
...@@ -62,7 +62,9 @@ config TRACE_IRQFLAGS_SUPPORT ...@@ -62,7 +62,9 @@ config TRACE_IRQFLAGS_SUPPORT
def_bool y def_bool y
config MMU config MMU
def_bool n bool
default n if !XTENSA_VARIANT_CUSTOM
default XTENSA_VARIANT_MMU if XTENSA_VARIANT_CUSTOM
config VARIANT_IRQ_SWITCH config VARIANT_IRQ_SWITCH
def_bool n def_bool n
...@@ -102,8 +104,40 @@ config XTENSA_VARIANT_S6000 ...@@ -102,8 +104,40 @@ config XTENSA_VARIANT_S6000
select VARIANT_IRQ_SWITCH select VARIANT_IRQ_SWITCH
select ARCH_REQUIRE_GPIOLIB select ARCH_REQUIRE_GPIOLIB
select XTENSA_CALIBRATE_CCOUNT select XTENSA_CALIBRATE_CCOUNT
config XTENSA_VARIANT_CUSTOM
bool "Custom Xtensa processor configuration"
select MAY_HAVE_SMP
select HAVE_XTENSA_GPIO32
help
Select this variant to use a custom Xtensa processor configuration.
You will be prompted for a processor variant CORENAME.
endchoice endchoice
config XTENSA_VARIANT_CUSTOM_NAME
string "Xtensa Processor Custom Core Variant Name"
depends on XTENSA_VARIANT_CUSTOM
help
Provide the name of a custom Xtensa processor variant.
This CORENAME selects arch/xtensa/variant/CORENAME.
Dont forget you have to select MMU if you have one.
config XTENSA_VARIANT_NAME
string
default "dc232b" if XTENSA_VARIANT_DC232B
default "dc233c" if XTENSA_VARIANT_DC233C
default "fsf" if XTENSA_VARIANT_FSF
default "s6000" if XTENSA_VARIANT_S6000
default XTENSA_VARIANT_CUSTOM_NAME if XTENSA_VARIANT_CUSTOM
config XTENSA_VARIANT_MMU
bool "Core variant has a Full MMU (TLB, Pages, Protection, etc)"
depends on XTENSA_VARIANT_CUSTOM
default y
help
Build a Conventional Kernel with full MMU support,
ie: it supports a TLB with auto-loading, page protection.
config XTENSA_UNALIGNED_USER config XTENSA_UNALIGNED_USER
bool "Unaligned memory access in use space" bool "Unaligned memory access in use space"
help help
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
# for more details. # for more details.
# #
# Copyright (C) 2001 - 2005 Tensilica Inc. # Copyright (C) 2001 - 2005 Tensilica Inc.
# Copyright (C) 2014 Cadence Design Systems Inc.
# #
# This file is included by the global makefile so that you can add your own # This file is included by the global makefile so that you can add your own
# architecture-specific flags and dependencies. Remember to do have actions # architecture-specific flags and dependencies. Remember to do have actions
...@@ -13,11 +14,7 @@ ...@@ -13,11 +14,7 @@
# Core configuration. # Core configuration.
# (Use VAR=<xtensa_config> to use another default compiler.) # (Use VAR=<xtensa_config> to use another default compiler.)
variant-$(CONFIG_XTENSA_VARIANT_FSF) := fsf variant-y := $(patsubst "%",%,$(CONFIG_XTENSA_VARIANT_NAME))
variant-$(CONFIG_XTENSA_VARIANT_DC232B) := dc232b
variant-$(CONFIG_XTENSA_VARIANT_DC233C) := dc233c
variant-$(CONFIG_XTENSA_VARIANT_S6000) := s6000
variant-$(CONFIG_XTENSA_VARIANT_LINUX_CUSTOM) := custom
VARIANT = $(variant-y) VARIANT = $(variant-y)
export VARIANT export VARIANT
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment