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

Commit d3d07d94 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (266 commits)
  sh: Tie sparseirq in to Kconfig.
  sh: Wire up sys_rt_tgsigqueueinfo.
  sh: Fix sys_pwritev() syscall table entry for sh32.
  sh: Fix sh4a llsc-based cmpxchg()
  sh: sh7724: Add JPU support
  sh: sh7724: INTC setting update
  sh: sh7722 clock framework rewrite
  sh: sh7366 clock framework rewrite
  sh: sh7343 clock framework rewrite
  sh: sh7724 clock framework rewrite V3
  sh: sh7723 clock framework rewrite V2
  sh: add enable()/disable()/set_rate() to div6 code
  sh: add AP325RXA mode pin configuration
  sh: add Migo-R mode pin configuration
  sh: sh7722 mode pin definitions
  sh: sh7724 mode pin comments
  sh: sh7723 mode pin V2
  sh: rework mode pin code
  sh: clock div6 helper code
  sh: clock div4 frequency table offset fix
  ...
parents 6cd8e300 54ff328b
Loading
Loading
Loading
Loading
+84 −42
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@ config SUPERH
	select HAVE_IOREMAP_PROT if MMU
	select HAVE_ARCH_TRACEHOOK
	select HAVE_DMA_API_DEBUG
	select RTC_LIB
	help
	  The SuperH is a RISC processor targeted for use in embedded systems
	  and consumer electronics; it was also used in the Sega Dreamcast
@@ -74,14 +75,18 @@ config GENERIC_IOMAP
	bool

config GENERIC_TIME
	def_bool n
	def_bool y

config GENERIC_CLOCKEVENTS
	def_bool n
	def_bool y

config GENERIC_CLOCKEVENTS_BROADCAST
	bool

config GENERIC_CMOS_UPDATE
	def_bool y
	depends on SH_SH03 || SH_DREAMCAST

config GENERIC_LOCKBREAK
	def_bool y
	depends on SMP && PREEMPT
@@ -112,6 +117,12 @@ config SYS_SUPPORTS_PCI
config SYS_SUPPORTS_CMT
	bool

config SYS_SUPPORTS_MTU2
	bool

config SYS_SUPPORTS_TMU
	bool

config STACKTRACE_SUPPORT
	def_bool y

@@ -157,13 +168,14 @@ config CPU_SH3
	bool
	select CPU_HAS_INTEVT
	select CPU_HAS_SR_RB
	select SYS_SUPPORTS_TMU

config CPU_SH4
	bool
	select CPU_HAS_INTEVT
	select CPU_HAS_SR_RB
	select CPU_HAS_PTEA if !CPU_SH4A || CPU_SHX2
	select CPU_HAS_FPU if !CPU_SH4AL_DSP
	select SYS_SUPPORTS_TMU

config CPU_SH4A
	bool
@@ -177,6 +189,7 @@ config CPU_SH4AL_DSP
config CPU_SH5
	bool
	select CPU_HAS_FPU
	select SYS_SUPPORTS_TMU

config CPU_SHX2
	bool
@@ -210,27 +223,32 @@ config CPU_SUBTYPE_SH7201
	bool "Support SH7201 processor"
	select CPU_SH2A
	select CPU_HAS_FPU
	select SYS_SUPPORTS_MTU2
 
config CPU_SUBTYPE_SH7203
	bool "Support SH7203 processor"
	select CPU_SH2A
	select CPU_HAS_FPU
	select SYS_SUPPORTS_CMT
	select SYS_SUPPORTS_MTU2

config CPU_SUBTYPE_SH7206
	bool "Support SH7206 processor"
	select CPU_SH2A
	select SYS_SUPPORTS_CMT
	select SYS_SUPPORTS_MTU2

config CPU_SUBTYPE_SH7263
	bool "Support SH7263 processor"
	select CPU_SH2A
	select CPU_HAS_FPU
	select SYS_SUPPORTS_CMT
	select SYS_SUPPORTS_MTU2

config CPU_SUBTYPE_MXG
	bool "Support MX-G processor"
	select CPU_SH2A
	select SYS_SUPPORTS_MTU2
	help
	  Select MX-G if running on an R8A03022BG part.

@@ -283,6 +301,7 @@ config CPU_SUBTYPE_SH7720
	bool "Support SH7720 processor"
	select CPU_SH3
	select CPU_HAS_DSP
	select SYS_SUPPORTS_CMT
	help
	  Select SH7720 if you have a SH3-DSP SH7720 CPU.

@@ -290,6 +309,7 @@ config CPU_SUBTYPE_SH7721
	bool "Support SH7721 processor"
	select CPU_SH3
	select CPU_HAS_DSP
	select SYS_SUPPORTS_CMT
	help
	  Select SH7721 if you have a SH3-DSP SH7721 CPU.

@@ -347,6 +367,16 @@ config CPU_SUBTYPE_SH7723
	help
	  Select SH7723 if you have an SH-MobileR2 CPU.

config CPU_SUBTYPE_SH7724
	bool "Support SH7724 processor"
	select CPU_SH4A
	select CPU_SHX2
	select ARCH_SHMOBILE
	select ARCH_SPARSEMEM_ENABLE
	select SYS_SUPPORTS_CMT
	help
	  Select SH7724 if you have an SH-MobileR2R CPU.

config CPU_SUBTYPE_SH7763
	bool "Support SH7763 processor"
	select CPU_SH4A
@@ -442,48 +472,26 @@ source "arch/sh/boards/Kconfig"

menu "Timer and clock configuration"

config SH_TMU
	bool "TMU timer support"
	depends on CPU_SH3 || CPU_SH4
config SH_TIMER_TMU
	bool "TMU timer driver"
	depends on SYS_SUPPORTS_TMU
	default y
	select GENERIC_TIME
	select GENERIC_CLOCKEVENTS
	help
	  This enables the use of the TMU as the system timer.
	  This enables the build of the TMU timer driver.

config SH_CMT
	bool "CMT timer support"
	depends on SYS_SUPPORTS_CMT && CPU_SH2
config SH_TIMER_CMT
	bool "CMT timer driver"
	depends on SYS_SUPPORTS_CMT
	default y
	help
	  This enables the use of the CMT as the system timer.

#
# Support for the new-style CMT driver. This will replace SH_CMT
# once its other dependencies are merged.
#
config SH_TIMER_CMT
	bool "CMT clockevents driver"
	depends on SYS_SUPPORTS_CMT && !SH_CMT
	select GENERIC_CLOCKEVENTS
	  This enables build of the CMT timer driver.

config SH_MTU2
	bool "MTU2 timer support"
	depends on CPU_SH2A
config SH_TIMER_MTU2
	bool "MTU2 timer driver"
	depends on SYS_SUPPORTS_MTU2
	default y
	help
	  This enables the use of the MTU2 as the system timer.

config SH_TIMER_IRQ
	int
	default "28" if CPU_SUBTYPE_SH7780 || CPU_SUBTYPE_SH7785 || \
			CPU_SUBTYPE_SH7763
	default "86" if CPU_SUBTYPE_SH7619
	default "140" if CPU_SUBTYPE_SH7206
	default "142" if CPU_SUBTYPE_SH7203 && SH_CMT
	default "153" if CPU_SUBTYPE_SH7203 && SH_MTU2
	default "238" if CPU_SUBTYPE_MXG
	default "16"
	  This enables build of the MTU2 timer driver.

config SH_PCLK_FREQ
	int "Peripheral clock frequency (in Hz)"
@@ -494,7 +502,7 @@ config SH_PCLK_FREQ
			      CPU_SUBTYPE_SH7760 || CPU_SUBTYPE_SH7705 || \
			      CPU_SUBTYPE_SH7203 || CPU_SUBTYPE_SH7206 || \
			      CPU_SUBTYPE_SH7263 || CPU_SUBTYPE_MXG    || \
			      CPU_SUBTYPE_SH7786
			      CPU_SUBTYPE_SH7786 || CPU_SUBTYPE_SH7724
	default "60000000" if CPU_SUBTYPE_SH7751 || CPU_SUBTYPE_SH7751R
	default "66000000" if CPU_SUBTYPE_SH4_202
	default "50000000"
@@ -503,6 +511,13 @@ config SH_PCLK_FREQ
	  This is necessary for determining the reference clock value on
	  platforms lacking an RTC.

config SH_CLK_CPG
	def_bool y

config SH_CLK_CPG_LEGACY
	depends on SH_CLK_CPG
	def_bool y if !CPU_SUBTYPE_SH7785 && !ARCH_SHMOBILE

config SH_CLK_MD
	int "CPU Mode Pin Setting"
	depends on CPU_SH2
@@ -663,27 +678,54 @@ config GUSA_RB
	  LLSC, this should be more efficient than the other alternative of
	  disabling interrupts around the atomic sequence.

config SPARSE_IRQ
	bool "Support sparse irq numbering"
	depends on EXPERIMENTAL
	help
	  This enables support for sparse irqs. This is useful in general
	  as most CPUs have a fairly sparse array of IRQ vectors, which
	  the irq_desc then maps directly on to. Systems with a high
	  number of off-chip IRQs will want to treat this as
	  experimental until they have been independently verified.

	  If you don't know what to do here, say N.

endmenu

menu "Boot options"

config ZERO_PAGE_OFFSET
	hex "Zero page offset"
	default "0x00004000" if SH_SH03
	default "0x00010000" if PAGE_SIZE_64KB
	hex
	default "0x00010000" if PAGE_SIZE_64KB || SH_RTS7751R2D || \
				SH_7751_SOLUTION_ENGINE
	default "0x00004000" if PAGE_SIZE_16KB || SH_SH03
	default "0x00002000" if PAGE_SIZE_8KB
	default "0x00001000"
	help
	  This sets the default offset of zero page.

config BOOT_LINK_OFFSET
	hex "Link address offset for booting"
	hex
	default "0x00210000" if SH_SHMIN
	default "0x00400000" if SH_CAYMAN
	default "0x00810000" if SH_7780_SOLUTION_ENGINE
	default "0x009e0000" if SH_TITAN
	default "0x01800000" if SH_SDK7780
	default "0x02000000" if SH_EDOSK7760
	default "0x00800000"
	help
	  This option allows you to set the link address offset of the zImage.
	  This can be useful if you are on a board which has a small amount of
	  memory.

config ENTRY_OFFSET
	hex
	default "0x00001000" if PAGE_SIZE_4KB
	default "0x00002000" if PAGE_SIZE_8KB
	default "0x00004000" if PAGE_SIZE_16KB
	default "0x00010000" if PAGE_SIZE_64KB
	default "0x00000000"

config UBC_WAKEUP
	bool "Wakeup UBC on startup"
	depends on CPU_SH4 && !CPU_SH4A
+0 −8
Original line number Diff line number Diff line
@@ -76,11 +76,6 @@ config SPECULATIVE_EXECUTION

	  If unsure, say N.

config SH64_USER_MISALIGNED_FIXUP
	def_bool y
	prompt "Fixup misaligned loads/stores occurring in user mode"
	depends on SUPERH64

config SH64_ID2815_WORKAROUND
	bool "Include workaround for SH5-101 cut2 silicon defect ID2815"
	depends on CPU_SUBTYPE_SH5_101
@@ -101,9 +96,6 @@ config CPU_HAS_SR_RB
	  See <file:Documentation/sh/register-banks.txt> for further
	  information on SR.RB and register banking in the kernel in general.

config CPU_HAS_PTEA
	bool

config CPU_HAS_PTEAEX
	bool

+2 −21
Original line number Diff line number Diff line
@@ -38,10 +38,10 @@ config EARLY_SCIF_CONSOLE_PORT
	default "0xffe00000" if CPU_SUBTYPE_SH7780 || CPU_SUBTYPE_SH7763 || \
				CPU_SUBTYPE_SH7722 || CPU_SUBTYPE_SH7366 || \
				CPU_SUBTYPE_SH7343
	default "0xffe80000" if CPU_SH4
	default "0xffea0000" if CPU_SUBTYPE_SH7785
	default "0xfffe8000" if CPU_SUBTYPE_SH7203
	default "0xfffe9800" if CPU_SUBTYPE_SH7206 || CPU_SUBTYPE_SH7263
	default "0xffe80000" if CPU_SH4
	default "0x00000000"

config EARLY_PRINTK
@@ -92,7 +92,7 @@ config 4KSTACKS

config IRQSTACKS
	bool "Use separate kernel stacks when processing interrupts"
	depends on DEBUG_KERNEL && SUPERH32
	depends on DEBUG_KERNEL && SUPERH32 && BROKEN
	help
	  If you say Y here the kernel will use separate kernel stacks
	  for handling hard and soft interrupts.  This can help avoid
@@ -122,27 +122,8 @@ config SH_NO_BSS_INIT
	  For all other cases, say N. If this option seems perplexing, or
	  you aren't sure, say N.

config MORE_COMPILE_OPTIONS
	bool "Add any additional compile options"
	help
	  If you want to add additional CFLAGS to the kernel build, enable this
	  option and then enter what you would like to add in the next question.
	  Note however that -g is already appended with the selection of KGDB.

config COMPILE_OPTIONS
	string "Additional compile arguments"
	depends on MORE_COMPILE_OPTIONS

config SH64_SR_WATCH
	bool "Debug: set SR.WATCH to enable hardware watchpoints and trace"
	depends on SUPERH64

config POOR_MANS_STRACE
	bool "Debug: enable rudimentary strace facility"
	depends on SUPERH64
	help
	  This option allows system calls to be traced to the console.  It also
	  aids in detecting kernel stack underflow.  It is useful for debugging
	  early-userland problems (e.g. init incurring fatal exceptions.)

endmenu
+26 −47
Original line number Diff line number Diff line
@@ -70,9 +70,6 @@ cflags-$(CONFIG_CPU_LITTLE_ENDIAN) += -ml
cflags-y	+= $(call cc-option,-mno-fdpic)
cflags-y	+= $(isaflags-y) -ffreestanding

cflags-$(CONFIG_MORE_COMPILE_OPTIONS)	+= \
	$(shell echo $(CONFIG_COMPILE_OPTIONS) | sed -e 's/"//g')

OBJCOPYFLAGS	:= -O binary -R .note -R .note.gnu.build-id -R .comment \
		   -R .stab -R .stabstr -S

@@ -85,7 +82,6 @@ defaultimage-$(CONFIG_SH_7206_SOLUTION_ENGINE) := vmlinux
defaultimage-$(CONFIG_SH_7619_SOLUTION_ENGINE)	:= vmlinux

# Set some sensible Kbuild defaults
KBUILD_DEFCONFIG	:= shx3_defconfig
KBUILD_IMAGE		:= $(defaultimage-y)

#
@@ -94,25 +90,37 @@ KBUILD_IMAGE := $(defaultimage-y)
#
ifdef CONFIG_SUPERH32
UTS_MACHINE		:= sh
BITS			:= 32
LDFLAGS_vmlinux		+= -e _stext
KBUILD_DEFCONFIG	:= shx3_defconfig
else
UTS_MACHINE		:= sh64
BITS			:= 64
LDFLAGS_vmlinux		+= --defsym phys_stext=_stext-$(CONFIG_PAGE_OFFSET) \
			   --defsym phys_stext_shmedia=phys_stext+1 \
			   -e phys_stext_shmedia
KBUILD_DEFCONFIG	:= cayman_defconfig
endif

ifneq ($(SUBARCH),$(ARCH))
  ifeq ($(CROSS_COMPILE),)
    CROSS_COMPILE := $(call cc-cross-prefix, $(UTS_MACHINE)-linux-  $(UTS_MACHINE)-linux-gnu-  $(UTS_MACHINE)-unknown-linux-gnu-)
  endif
endif

ifdef CONFIG_CPU_LITTLE_ENDIAN
LDFLAGS_vmlinux		+= --defsym 'jiffies=jiffies_64'
ld-bfd			:= elf32-$(UTS_MACHINE)-linux
LDFLAGS_vmlinux		+= --defsym 'jiffies=jiffies_64' --oformat $(ld-bfd)
LDFLAGS			+= -EL
else
LDFLAGS_vmlinux		+= --defsym 'jiffies=jiffies_64+4'
ld-bfd			:= elf32-$(UTS_MACHINE)big-linux
LDFLAGS_vmlinux		+= --defsym 'jiffies=jiffies_64+4' --oformat $(ld-bfd)
LDFLAGS			+= -EB
endif

head-y			:= arch/sh/kernel/init_task.o
head-$(CONFIG_SUPERH32)	+= arch/sh/kernel/head_32.o
head-$(CONFIG_SUPERH64)	+= arch/sh/kernel/head_64.o
export ld-bfd BITS

head-y	:= arch/sh/kernel/init_task.o arch/sh/kernel/head_$(BITS).o

core-y				+= arch/sh/kernel/ arch/sh/mm/ arch/sh/boards/
core-$(CONFIG_SH_FPU_EMU)	+= arch/sh/math-emu/
@@ -193,10 +201,11 @@ zImage uImage uImage.srec vmlinux.srec: vmlinux

compressed: zImage

archprepare: maketools arch/sh/lib64/syscalltab.h
archprepare: maketools

archclean:
	$(Q)$(MAKE) $(clean)=$(boot)
	$(Q)$(MAKE) $(clean)=arch/sh/kernel/vsyscall

define archhelp
	@echo '* zImage 	           - Compressed kernel image'
@@ -205,34 +214,4 @@ define archhelp
	@echo '  uImage.srec  	           - Create an S-record for U-Boot'
endef

define filechk_gen-syscalltab
       (set -e; \
	echo "/*"; \
	echo " * DO NOT MODIFY."; \
	echo " *"; \
	echo " * This file was generated by arch/sh/Makefile"; \
	echo " * Any changes will be reverted at build time."; \
	echo " */"; \
	echo ""; \
	echo "#ifndef __SYSCALLTAB_H"; \
	echo "#define __SYSCALLTAB_H"; \
	echo ""; \
	echo "#include <linux/kernel.h>"; \
	echo ""; \
	echo "struct syscall_info {"; \
	echo "	const char *name;"; \
	echo "} syscall_info_table[] = {"; \
	sed -e '/^.*\.long /!d;s//	{ "/;s/\(\([^/]*\)\/\)\{1\}.*/\2/; \
		s/[ \t]*$$//g;s/$$/" },/;s/\("\)sys_/\1/g'; \
	echo "};"; \
	echo ""; \
	echo "#define NUM_SYSCALL_INFO_ENTRIES ARRAY_SIZE(syscall_info_table)";\
	echo ""; \
	echo "#endif /* __SYSCALLTAB_H */" )
endef

arch/sh/lib64/syscalltab.h: arch/sh/kernel/syscalls_64.S
	$(call filechk,gen-syscalltab)

CLEAN_FILES += arch/sh/lib64/syscalltab.h \
	       include/asm-sh/machtypes.h
CLEAN_FILES += include/asm-sh/machtypes.h
+12 −3
Original line number Diff line number Diff line
@@ -46,6 +46,15 @@ config SH_7722_SOLUTION_ENGINE
	  Select 7722 SolutionEngine if configuring for a Hitachi SH772
	  evaluation board.

config SH_7724_SOLUTION_ENGINE
	bool "SolutionEngine7724"
	select SOLUTION_ENGINE
	depends on CPU_SUBTYPE_SH7724
	select ARCH_REQUIRE_GPIOLIB
	help
	  Select 7724 SolutionEngine if configuring for a Hitachi SH7724
	  evaluation board.

config SH_7751_SOLUTION_ENGINE
	bool "SolutionEngine7751"
	select SOLUTION_ENGINE
@@ -121,7 +130,7 @@ config SH_RTS7751R2D
	bool "RTS7751R2D"
	depends on CPU_SUBTYPE_SH7751R
	select SYS_SUPPORTS_PCI
	select IO_TRAPPED
	select IO_TRAPPED if MMU
	help
	  Select RTS7751R2D if configuring for a Renesas Technology
	  Sales SH-Graphics board.
@@ -145,13 +154,13 @@ config SH_HIGHLANDER
	bool "Highlander"
	depends on CPU_SUBTYPE_SH7780 || CPU_SUBTYPE_SH7785
	select SYS_SUPPORTS_PCI
	select IO_TRAPPED
	select IO_TRAPPED if MMU

config SH_SH7785LCR
	bool "SH7785LCR"
	depends on CPU_SUBTYPE_SH7785
	select SYS_SUPPORTS_PCI
	select IO_TRAPPED
	select IO_TRAPPED if MMU

config SH_SH7785LCR_29BIT_PHYSMAPS
	bool "SH7785LCR 29bit physmaps"
Loading