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

Commit 9d4436a6 authored by Yoshinori Sato's avatar Yoshinori Sato Committed by Paul Mundt
Browse files

sh: Add support for SH7206 and SH7619 CPU subtypes.



This implements initial support for the SH7206 (SH-2A) and SH7619
(SH-2) MMU-less CPUs.

Signed-off-by: default avatarYoshinori Sato <ysato@users.sourceforge.jp>
Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
parent e6243863
Loading
Loading
Loading
Loading
+40 −3
Original line number Original line Diff line number Diff line
@@ -219,6 +219,20 @@ config SH_SHMIN
	help
	help
	  Select SHMIN if configuring for the SHMIN board.
	  Select SHMIN if configuring for the SHMIN board.


config SH_7206_SOLUTION_ENGINE
	bool "SolutionEngine7206"
	select CPU_SUBTYPE_SH7206
	help
	  Select 7206 SolutionEngine if configuring for a Hitachi SH7206
	  evaluation board.

config SH_7619_SOLUTION_ENGINE
	bool "SolutionEngine7619"
	select CPU_SUBTYPE_SH7619
	help
	  Select 7619 SolutionEngine if configuring for a Hitachi SH7619
	  evaluation board.

config SH_UNKNOWN
config SH_UNKNOWN
	bool "BareCPU"
	bool "BareCPU"
	help
	help
@@ -364,10 +378,25 @@ depends on !GENERIC_TIME


config SH_TMU
config SH_TMU
	bool "TMU timer support"
	bool "TMU timer support"
	depends on CPU_SH3 || CPU_SH4
	default y
	default y
	help
	help
	  This enables the use of the TMU as the system timer.
	  This enables the use of the TMU as the system timer.


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

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

endmenu
endmenu


source "arch/sh/boards/renesas/hs7751rvoip/Kconfig"
source "arch/sh/boards/renesas/hs7751rvoip/Kconfig"
@@ -378,17 +407,25 @@ source "arch/sh/boards/renesas/r7780rp/Kconfig"


config SH_PCLK_FREQ
config SH_PCLK_FREQ
	int "Peripheral clock frequency (in Hz)"
	int "Peripheral clock frequency (in Hz)"
	default "27000000" if CPU_SUBTYPE_SH73180 || CPU_SUBTYPE_SH7343
	default "31250000" if CPU_SUBTYPE_SH7619
	default "33333333" if CPU_SUBTYPE_SH7300 || CPU_SUBTYPE_SH7770 || \
			      CPU_SUBTYPE_SH7760 || CPU_SUBTYPE_SH7705 || \
			      CPU_SUBTYPE_SH7206
	default "50000000" if CPU_SUBTYPE_SH7750 || CPU_SUBTYPE_SH7780
	default "50000000" if CPU_SUBTYPE_SH7750 || CPU_SUBTYPE_SH7780
	default "60000000" if CPU_SUBTYPE_SH7751
	default "60000000" if CPU_SUBTYPE_SH7751
	default "33333333" if CPU_SUBTYPE_SH7300 || CPU_SUBTYPE_SH7770 || \
			      CPU_SUBTYPE_SH7760 || CPU_SUBTYPE_SH7705
	default "27000000" if CPU_SUBTYPE_SH73180 || CPU_SUBTYPE_SH7343
	default "66000000" if CPU_SUBTYPE_SH4_202
	default "66000000" if CPU_SUBTYPE_SH4_202
	help
	help
	  This option is used to specify the peripheral clock frequency.
	  This option is used to specify the peripheral clock frequency.
	  This is necessary for determining the reference clock value on
	  This is necessary for determining the reference clock value on
	  platforms lacking an RTC.
	  platforms lacking an RTC.


config SH_CLK_MD
	int "CPU Mode Pin Setting"
	depends on CPU_SUBTYPE_SH7619 || CPU_SUBTYPE_SH7206
	help
	  MD2 - MD0 Setting.

menu "CPU Frequency scaling"
menu "CPU Frequency scaling"


source "drivers/cpufreq/Kconfig"
source "drivers/cpufreq/Kconfig"
+3 −0
Original line number Original line Diff line number Diff line
@@ -109,6 +109,8 @@ machdir-$(CONFIG_SH_SH4202_MICRODEV) := superh/microdev
machdir-$(CONFIG_SH_LANDISK)			:= landisk
machdir-$(CONFIG_SH_LANDISK)			:= landisk
machdir-$(CONFIG_SH_TITAN)			:= titan
machdir-$(CONFIG_SH_TITAN)			:= titan
machdir-$(CONFIG_SH_SHMIN)			:= shmin
machdir-$(CONFIG_SH_SHMIN)			:= shmin
machdir-$(CONFIG_SH_7206_SOLUTION_ENGINE)	:= se/7206
machdir-$(CONFIG_SH_7619_SOLUTION_ENGINE)	:= se/7619
machdir-$(CONFIG_SH_UNKNOWN)			:= unknown
machdir-$(CONFIG_SH_UNKNOWN)			:= unknown


incdir-y			:= $(notdir $(machdir-y))
incdir-y			:= $(notdir $(machdir-y))
@@ -124,6 +126,7 @@ core-$(CONFIG_HD64465) += arch/sh/cchips/hd6446x/hd64465/
core-$(CONFIG_VOYAGERGX)	+= arch/sh/cchips/voyagergx/
core-$(CONFIG_VOYAGERGX)	+= arch/sh/cchips/voyagergx/


cpuincdir-$(CONFIG_CPU_SH2)	:= cpu-sh2
cpuincdir-$(CONFIG_CPU_SH2)	:= cpu-sh2
cpuincdir-$(CONFIG_CPU_SH2A)	:= cpu-sh2a
cpuincdir-$(CONFIG_CPU_SH3)	:= cpu-sh3
cpuincdir-$(CONFIG_CPU_SH3)	:= cpu-sh3
cpuincdir-$(CONFIG_CPU_SH4)	:= cpu-sh4
cpuincdir-$(CONFIG_CPU_SH4)	:= cpu-sh4


+2 −1
Original line number Original line Diff line number Diff line
@@ -12,6 +12,7 @@
 */
 */


#include <asm/uaccess.h>
#include <asm/uaccess.h>
#include <asm/addrspace.h>
#ifdef CONFIG_SH_STANDARD_BIOS
#ifdef CONFIG_SH_STANDARD_BIOS
#include <asm/sh_bios.h>
#include <asm/sh_bios.h>
#endif
#endif
@@ -228,7 +229,7 @@ long* stack_start = &user_stack[STACK_SIZE];
void decompress_kernel(void)
void decompress_kernel(void)
{
{
	output_data = 0;
	output_data = 0;
	output_ptr = (unsigned long)&_text+0x20001000;
	output_ptr = P2SEGADDR((unsigned long)&_text+0x1000);
	free_mem_ptr = (unsigned long)&_end;
	free_mem_ptr = (unsigned long)&_end;
	free_mem_end_ptr = free_mem_ptr + HEAP_SIZE;
	free_mem_end_ptr = free_mem_ptr + HEAP_SIZE;


+1 −1
Original line number Original line Diff line number Diff line
@@ -4,7 +4,7 @@


extra-y	:= head.o init_task.o vmlinux.lds
extra-y	:= head.o init_task.o vmlinux.lds


obj-y	:= process.o signal.o entry.o traps.o irq.o \
obj-y	:= process.o signal.o traps.o irq.o \
	ptrace.o setup.o time.o sys_sh.o semaphore.o \
	ptrace.o setup.o time.o sys_sh.o semaphore.o \
	io.o io_generic.o sh_ksyms.o syscalls.o
	io.o io_generic.o sh_ksyms.o syscalls.o


+6 −5
Original line number Original line Diff line number Diff line
@@ -2,11 +2,12 @@
# Makefile for the Linux/SuperH CPU-specifc backends.
# Makefile for the Linux/SuperH CPU-specifc backends.
#
#


obj-y	+= irq/ init.o clock.o
obj-$(CONFIG_CPU_SH2)		= sh2/

obj-$(CONFIG_CPU_SH2A)		= sh2a/
obj-$(CONFIG_CPU_SH2)		+= sh2/
obj-$(CONFIG_CPU_SH3)		= sh3/
obj-$(CONFIG_CPU_SH3)		+= sh3/
obj-$(CONFIG_CPU_SH4)		= sh4/
obj-$(CONFIG_CPU_SH4)		+= sh4/


obj-$(CONFIG_UBC_WAKEUP)	+= ubc.o
obj-$(CONFIG_UBC_WAKEUP)	+= ubc.o
obj-$(CONFIG_SH_ADC)		+= adc.o
obj-$(CONFIG_SH_ADC)		+= adc.o

obj-y	+= irq/ init.o clock.o
Loading