Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e792290b authored by Chris Zankel's avatar Chris Zankel
Browse files

Merge tag 'xtensa-for-next-20140815' into for_next



Xtensa improvements for 3.17:
- support highmem on cores with aliasing data cache. Enable highmem on kc705
  by default;
- simplify addition of new core variants (no need to modify Kconfig /
  Makefiles);
- improve robustness of unaligned access handler and its interaction with
  window overflow/underflow exception handlers;
- deprecate atomic and spill registers syscalls;
- clean up Kconfig: remove orphan MATH_EMULATION, sort 'select' statements;
- wire up renameat2 syscall.

Various fixes:
- fix address checks in dma_{alloc,free}_coherent (runtime BUG);
- fix access to THREAD_RA/THREAD_SP/THREAD_DS (debug build breakage);
- fix TLBTEMP_BASE_2 region handling in fast_second_level_miss (runtime
  unrecoverable exception);
- fix a6 and a7 handling in fast_syscall_xtensa (runtime userspace register
  clobbering);
- fix kernel/user jump out of fast_unaligned (potential runtime unrecoverable
  exception);
- replace termios IOCTL code definitions with constants (userspace build
  breakage).

Signed-off-by: default avatarChris Zankel <chris@zankel.net>
parents 7d1311b9 9184289c
Loading
Loading
Loading
Loading
+75 −17
Original line number Diff line number Diff line
@@ -4,24 +4,23 @@ config ZONE_DMA
config XTENSA
	def_bool y
	select ARCH_WANT_FRAME_POINTERS
	select HAVE_IDE
	select GENERIC_ATOMIC64
	select GENERIC_CLOCKEVENTS
	select VIRT_TO_BUS
	select GENERIC_IRQ_SHOW
	select GENERIC_SCHED_CLOCK
	select MODULES_USE_ELF_RELA
	select GENERIC_PCI_IOMAP
	select ARCH_WANT_IPC_PARSE_VERSION
	select ARCH_WANT_OPTIONAL_GPIOLIB
	select BUILDTIME_EXTABLE_SORT
	select CLONE_BACKWARDS
	select IRQ_DOMAIN
	select HAVE_OPROFILE
	select COMMON_CLK
	select GENERIC_ATOMIC64
	select GENERIC_CLOCKEVENTS
	select GENERIC_IRQ_SHOW
	select GENERIC_PCI_IOMAP
	select GENERIC_SCHED_CLOCK
	select HAVE_FUNCTION_TRACER
	select HAVE_IRQ_TIME_ACCOUNTING
	select HAVE_OPROFILE
	select HAVE_PERF_EVENTS
	select COMMON_CLK
	select IRQ_DOMAIN
	select MODULES_USE_ELF_RELA
	select VIRT_TO_BUS
	help
	  Xtensa processors are 32-bit RISC machines designed by Tensilica
	  primarily for embedded systems.  These processors are both
@@ -62,7 +61,9 @@ config TRACE_IRQFLAGS_SUPPORT
	def_bool y

config MMU
	def_bool n
	bool
	default n if !XTENSA_VARIANT_CUSTOM
	default XTENSA_VARIANT_MMU if XTENSA_VARIANT_CUSTOM

config VARIANT_IRQ_SWITCH
	def_bool n
@@ -102,8 +103,40 @@ config XTENSA_VARIANT_S6000
	select VARIANT_IRQ_SWITCH
	select ARCH_REQUIRE_GPIOLIB
	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

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
	bool "Unaligned memory access in use space"
	help
@@ -156,13 +189,9 @@ config HOTPLUG_CPU

	  Say N if you want to disable CPU hotplug.

config MATH_EMULATION
	bool "Math emulation"
	help
	Can we use information of configuration file?

config INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX
	bool "Initialize Xtensa MMU inside the Linux kernel code"
	depends on MMU
	default y
	help
	  Earlier version initialized the MMU in the exception vector
@@ -192,6 +221,7 @@ config INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX

config HIGHMEM
	bool "High Memory Support"
	depends on MMU
	help
	  Linux can use the full amount of RAM in the system by
	  default. However, the default MMUv2 setup only maps the
@@ -208,6 +238,32 @@ config HIGHMEM

	  If unsure, say Y.

config FAST_SYSCALL_XTENSA
	bool "Enable fast atomic syscalls"
	default n
	help
	  fast_syscall_xtensa is a syscall that can make atomic operations
	  on UP kernel when processor has no s32c1i support.

	  This syscall is deprecated. It may have issues when called with
	  invalid arguments. It is provided only for backwards compatibility.
	  Only enable it if your userspace software requires it.

	  If unsure, say N.

config FAST_SYSCALL_SPILL_REGISTERS
	bool "Enable spill registers syscall"
	default n
	help
	  fast_syscall_spill_registers is a syscall that spills all active
	  register windows of a calling userspace task onto its stack.

	  This syscall is deprecated. It may have issues when called with
	  invalid arguments. It is provided only for backwards compatibility.
	  Only enable it if your userspace software requires it.

	  If unsure, say N.

endmenu

config XTENSA_CALIBRATE_CCOUNT
@@ -250,12 +306,14 @@ config XTENSA_PLATFORM_ISS

config XTENSA_PLATFORM_XT2000
	bool "XT2000"
	select HAVE_IDE
	help
	  XT2000 is the name of Tensilica's feature-rich emulation platform.
	  This hardware is capable of running a full Linux distribution.

config XTENSA_PLATFORM_S6105
	bool "S6105"
	select HAVE_IDE
	select SERIAL_CONSOLE
	select NO_IOPORT_MAP

+2 −5
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@
# for more details.
#
# 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
# architecture-specific flags and dependencies. Remember to do have actions
@@ -13,11 +14,7 @@
# Core configuration.
# (Use VAR=<xtensa_config> to use another default compiler.)

variant-$(CONFIG_XTENSA_VARIANT_FSF)		:= fsf
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-y := $(patsubst "%",%,$(CONFIG_XTENSA_VARIANT_NAME))

VARIANT = $(variant-y)
export VARIANT
+4 −1
Original line number Diff line number Diff line
@@ -4,8 +4,11 @@

/ {
	compatible = "cdns,xtensa-kc705";
	chosen {
		bootargs = "earlycon=uart8250,mmio32,0xfd050020,115200n8 console=ttyS0,115200n8 ip=dhcp root=/dev/nfs rw debug memmap=0x38000000";
	};
	memory@0 {
		device_type = "memory";
		reg = <0x00000000 0x08000000>;
		reg = <0x00000000 0x38000000>;
	};
};
+0 −1
Original line number Diff line number Diff line
@@ -66,7 +66,6 @@ CONFIG_XTENSA_ARCH_LINUX_BE=y
CONFIG_MMU=y
# CONFIG_XTENSA_UNALIGNED_USER is not set
# CONFIG_PREEMPT is not set
# CONFIG_MATH_EMULATION is not set
# CONFIG_HIGHMEM is not set

#
+1 −2
Original line number Diff line number Diff line
@@ -146,7 +146,6 @@ CONFIG_XTENSA_VARIANT_FSF=y
# CONFIG_XTENSA_VARIANT_S6000 is not set
# CONFIG_XTENSA_UNALIGNED_USER is not set
# CONFIG_PREEMPT is not set
# CONFIG_MATH_EMULATION is not set
CONFIG_XTENSA_CALIBRATE_CCOUNT=y
CONFIG_SERIAL_CONSOLE=y
CONFIG_XTENSA_ISS_NETWORK=y
@@ -308,7 +307,7 @@ CONFIG_MISC_DEVICES=y
# EEPROM support
#
# CONFIG_EEPROM_93CX6 is not set
CONFIG_HAVE_IDE=y
# CONFIG_HAVE_IDE is not set
# CONFIG_IDE is not set

#
Loading