2005-04-17 02:20:36 +04:00
config SUPERH
2007-11-21 09:58:01 +03:00
def_bool y
2016-02-13 01:05:11 +03:00
select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
2013-10-08 06:15:58 +04:00
select ARCH_MIGHT_HAVE_PC_PARPORT
2015-02-11 01:08:35 +03:00
select HAVE_PATA_PLATFORM
2010-11-17 12:04:33 +03:00
select CLKDEV_LOOKUP
2014-04-08 02:39:19 +04:00
select HAVE_IDE if HAS_IOPORT_MAP
2010-07-12 08:36:09 +04:00
select HAVE_MEMBLOCK
2011-12-08 22:22:08 +04:00
select HAVE_MEMBLOCK_NODE_MAP
2012-03-28 12:27:09 +04:00
select ARCH_DISCARD_MEMBLOCK
2008-02-02 23:10:34 +03:00
select HAVE_OPROFILE
2008-07-18 13:30:31 +04:00
select HAVE_GENERIC_DMA_COHERENT
2008-12-10 14:17:15 +03:00
select HAVE_ARCH_TRACEHOOK
2009-04-09 21:36:54 +04:00
select HAVE_DMA_API_DEBUG
perf: Do the big rename: Performance Counters -> Performance Events
Bye-bye Performance Counters, welcome Performance Events!
In the past few months the perfcounters subsystem has grown out its
initial role of counting hardware events, and has become (and is
becoming) a much broader generic event enumeration, reporting, logging,
monitoring, analysis facility.
Naming its core object 'perf_counter' and naming the subsystem
'perfcounters' has become more and more of a misnomer. With pending
code like hw-breakpoints support the 'counter' name is less and
less appropriate.
All in one, we've decided to rename the subsystem to 'performance
events' and to propagate this rename through all fields, variables
and API names. (in an ABI compatible fashion)
The word 'event' is also a bit shorter than 'counter' - which makes
it slightly more convenient to write/handle as well.
Thanks goes to Stephane Eranian who first observed this misnomer and
suggested a rename.
User-space tooling and ABI compatibility is not affected - this patch
should be function-invariant. (Also, defconfigs were not touched to
keep the size down.)
This patch has been generated via the following script:
FILES=$(find * -type f | grep -vE 'oprofile|[^K]config')
sed -i \
-e 's/PERF_EVENT_/PERF_RECORD_/g' \
-e 's/PERF_COUNTER/PERF_EVENT/g' \
-e 's/perf_counter/perf_event/g' \
-e 's/nb_counters/nb_events/g' \
-e 's/swcounter/swevent/g' \
-e 's/tpcounter_event/tp_event/g' \
$FILES
for N in $(find . -name perf_counter.[ch]); do
M=$(echo $N | sed 's/perf_counter/perf_event/g')
mv $N $M
done
FILES=$(find . -name perf_event.*)
sed -i \
-e 's/COUNTER_MASK/REG_MASK/g' \
-e 's/COUNTER/EVENT/g' \
-e 's/\<event\>/event_id/g' \
-e 's/counter/event/g' \
-e 's/Counter/Event/g' \
$FILES
... to keep it as correct as possible. This script can also be
used by anyone who has pending perfcounters patches - it converts
a Linux kernel tree over to the new naming. We tried to time this
change to the point in time where the amount of pending patches
is the smallest: the end of the merge window.
Namespace clashes were fixed up in a preparatory patch - and some
stylistic fallout will be fixed up in a subsequent patch.
( NOTE: 'counters' are still the proper terminology when we deal
with hardware registers - and these sed scripts are a bit
over-eager in renaming them. I've undone some of that, but
in case there's something left where 'counter' would be
better than 'event' we can undo that on an individual basis
instead of touching an otherwise nicely automated patch. )
Suggested-by: Stephane Eranian <eranian@google.com>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Acked-by: Paul Mackerras <paulus@samba.org>
Reviewed-by: Arjan van de Ven <arjan@linux.intel.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: David Howells <dhowells@redhat.com>
Cc: Kyle McMartin <kyle@mcmartin.ca>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: <linux-arch@vger.kernel.org>
LKML-Reference: <new-submission>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-09-21 14:02:48 +04:00
select HAVE_PERF_EVENTS
2012-10-09 03:28:13 +04:00
select HAVE_DEBUG_BUGVERBOSE
2012-04-15 13:52:54 +04:00
select ARCH_HAVE_CUSTOM_GPIO_H
2011-07-13 09:14:22 +04:00
select ARCH_HAVE_NMI_SAFE_CMPXCHG if (GUSA_RB || CPU_SH4A)
2014-12-13 03:57:44 +03:00
select ARCH_HAS_GCOV_PROFILE_ALL
2009-10-27 11:08:55 +03:00
select PERF_USE_VMALLOC
2012-10-09 03:28:11 +04:00
select HAVE_DEBUG_KMEMLEAK
2009-07-11 20:37:30 +04:00
select HAVE_KERNEL_GZIP
lib/GCD.c: use binary GCD algorithm instead of Euclidean
The binary GCD algorithm is based on the following facts:
1. If a and b are all evens, then gcd(a,b) = 2 * gcd(a/2, b/2)
2. If a is even and b is odd, then gcd(a,b) = gcd(a/2, b)
3. If a and b are all odds, then gcd(a,b) = gcd((a-b)/2, b) = gcd((a+b)/2, b)
Even on x86 machines with reasonable division hardware, the binary
algorithm runs about 25% faster (80% the execution time) than the
division-based Euclidian algorithm.
On platforms like Alpha and ARMv6 where division is a function call to
emulation code, it's even more significant.
There are two variants of the code here, depending on whether a fast
__ffs (find least significant set bit) instruction is available. This
allows the unpredictable branches in the bit-at-a-time shifting loop to
be eliminated.
If fast __ffs is not available, the "even/odd" GCD variant is used.
I use the following code to benchmark:
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <string.h>
#include <time.h>
#include <unistd.h>
#define swap(a, b) \
do { \
a ^= b; \
b ^= a; \
a ^= b; \
} while (0)
unsigned long gcd0(unsigned long a, unsigned long b)
{
unsigned long r;
if (a < b) {
swap(a, b);
}
if (b == 0)
return a;
while ((r = a % b) != 0) {
a = b;
b = r;
}
return b;
}
unsigned long gcd1(unsigned long a, unsigned long b)
{
unsigned long r = a | b;
if (!a || !b)
return r;
b >>= __builtin_ctzl(b);
for (;;) {
a >>= __builtin_ctzl(a);
if (a == b)
return a << __builtin_ctzl(r);
if (a < b)
swap(a, b);
a -= b;
}
}
unsigned long gcd2(unsigned long a, unsigned long b)
{
unsigned long r = a | b;
if (!a || !b)
return r;
r &= -r;
while (!(b & r))
b >>= 1;
for (;;) {
while (!(a & r))
a >>= 1;
if (a == b)
return a;
if (a < b)
swap(a, b);
a -= b;
a >>= 1;
if (a & r)
a += b;
a >>= 1;
}
}
unsigned long gcd3(unsigned long a, unsigned long b)
{
unsigned long r = a | b;
if (!a || !b)
return r;
b >>= __builtin_ctzl(b);
if (b == 1)
return r & -r;
for (;;) {
a >>= __builtin_ctzl(a);
if (a == 1)
return r & -r;
if (a == b)
return a << __builtin_ctzl(r);
if (a < b)
swap(a, b);
a -= b;
}
}
unsigned long gcd4(unsigned long a, unsigned long b)
{
unsigned long r = a | b;
if (!a || !b)
return r;
r &= -r;
while (!(b & r))
b >>= 1;
if (b == r)
return r;
for (;;) {
while (!(a & r))
a >>= 1;
if (a == r)
return r;
if (a == b)
return a;
if (a < b)
swap(a, b);
a -= b;
a >>= 1;
if (a & r)
a += b;
a >>= 1;
}
}
static unsigned long (*gcd_func[])(unsigned long a, unsigned long b) = {
gcd0, gcd1, gcd2, gcd3, gcd4,
};
#define TEST_ENTRIES (sizeof(gcd_func) / sizeof(gcd_func[0]))
#if defined(__x86_64__)
#define rdtscll(val) do { \
unsigned long __a,__d; \
__asm__ __volatile__("rdtsc" : "=a" (__a), "=d" (__d)); \
(val) = ((unsigned long long)__a) | (((unsigned long long)__d)<<32); \
} while(0)
static unsigned long long benchmark_gcd_func(unsigned long (*gcd)(unsigned long, unsigned long),
unsigned long a, unsigned long b, unsigned long *res)
{
unsigned long long start, end;
unsigned long long ret;
unsigned long gcd_res;
rdtscll(start);
gcd_res = gcd(a, b);
rdtscll(end);
if (end >= start)
ret = end - start;
else
ret = ~0ULL - start + 1 + end;
*res = gcd_res;
return ret;
}
#else
static inline struct timespec read_time(void)
{
struct timespec time;
clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &time);
return time;
}
static inline unsigned long long diff_time(struct timespec start, struct timespec end)
{
struct timespec temp;
if ((end.tv_nsec - start.tv_nsec) < 0) {
temp.tv_sec = end.tv_sec - start.tv_sec - 1;
temp.tv_nsec = 1000000000ULL + end.tv_nsec - start.tv_nsec;
} else {
temp.tv_sec = end.tv_sec - start.tv_sec;
temp.tv_nsec = end.tv_nsec - start.tv_nsec;
}
return temp.tv_sec * 1000000000ULL + temp.tv_nsec;
}
static unsigned long long benchmark_gcd_func(unsigned long (*gcd)(unsigned long, unsigned long),
unsigned long a, unsigned long b, unsigned long *res)
{
struct timespec start, end;
unsigned long gcd_res;
start = read_time();
gcd_res = gcd(a, b);
end = read_time();
*res = gcd_res;
return diff_time(start, end);
}
#endif
static inline unsigned long get_rand()
{
if (sizeof(long) == 8)
return (unsigned long)rand() << 32 | rand();
else
return rand();
}
int main(int argc, char **argv)
{
unsigned int seed = time(0);
int loops = 100;
int repeats = 1000;
unsigned long (*res)[TEST_ENTRIES];
unsigned long long elapsed[TEST_ENTRIES];
int i, j, k;
for (;;) {
int opt = getopt(argc, argv, "n:r:s:");
/* End condition always first */
if (opt == -1)
break;
switch (opt) {
case 'n':
loops = atoi(optarg);
break;
case 'r':
repeats = atoi(optarg);
break;
case 's':
seed = strtoul(optarg, NULL, 10);
break;
default:
/* You won't actually get here. */
break;
}
}
res = malloc(sizeof(unsigned long) * TEST_ENTRIES * loops);
memset(elapsed, 0, sizeof(elapsed));
srand(seed);
for (j = 0; j < loops; j++) {
unsigned long a = get_rand();
/* Do we have args? */
unsigned long b = argc > optind ? strtoul(argv[optind], NULL, 10) : get_rand();
unsigned long long min_elapsed[TEST_ENTRIES];
for (k = 0; k < repeats; k++) {
for (i = 0; i < TEST_ENTRIES; i++) {
unsigned long long tmp = benchmark_gcd_func(gcd_func[i], a, b, &res[j][i]);
if (k == 0 || min_elapsed[i] > tmp)
min_elapsed[i] = tmp;
}
}
for (i = 0; i < TEST_ENTRIES; i++)
elapsed[i] += min_elapsed[i];
}
for (i = 0; i < TEST_ENTRIES; i++)
printf("gcd%d: elapsed %llu\n", i, elapsed[i]);
k = 0;
srand(seed);
for (j = 0; j < loops; j++) {
unsigned long a = get_rand();
unsigned long b = argc > optind ? strtoul(argv[optind], NULL, 10) : get_rand();
for (i = 1; i < TEST_ENTRIES; i++) {
if (res[j][i] != res[j][0])
break;
}
if (i < TEST_ENTRIES) {
if (k == 0) {
k = 1;
fprintf(stderr, "Error:\n");
}
fprintf(stderr, "gcd(%lu, %lu): ", a, b);
for (i = 0; i < TEST_ENTRIES; i++)
fprintf(stderr, "%ld%s", res[j][i], i < TEST_ENTRIES - 1 ? ", " : "\n");
}
}
if (k == 0)
fprintf(stderr, "PASS\n");
free(res);
return 0;
}
Compiled with "-O2", on "VirtualBox 4.4.0-22-generic #38-Ubuntu x86_64" got:
zhaoxiuzeng@zhaoxiuzeng-VirtualBox:~/develop$ ./gcd -r 500000 -n 10
gcd0: elapsed 10174
gcd1: elapsed 2120
gcd2: elapsed 2902
gcd3: elapsed 2039
gcd4: elapsed 2812
PASS
zhaoxiuzeng@zhaoxiuzeng-VirtualBox:~/develop$ ./gcd -r 500000 -n 10
gcd0: elapsed 9309
gcd1: elapsed 2280
gcd2: elapsed 2822
gcd3: elapsed 2217
gcd4: elapsed 2710
PASS
zhaoxiuzeng@zhaoxiuzeng-VirtualBox:~/develop$ ./gcd -r 500000 -n 10
gcd0: elapsed 9589
gcd1: elapsed 2098
gcd2: elapsed 2815
gcd3: elapsed 2030
gcd4: elapsed 2718
PASS
zhaoxiuzeng@zhaoxiuzeng-VirtualBox:~/develop$ ./gcd -r 500000 -n 10
gcd0: elapsed 9914
gcd1: elapsed 2309
gcd2: elapsed 2779
gcd3: elapsed 2228
gcd4: elapsed 2709
PASS
[akpm@linux-foundation.org: avoid #defining a CONFIG_ variable]
Signed-off-by: Zhaoxiu Zeng <zhaoxiu.zeng@gmail.com>
Signed-off-by: George Spelvin <linux@horizon.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2016-05-21 03:03:57 +03:00
select CPU_NO_EFFICIENT_FFS
2009-07-11 21:21:19 +04:00
select HAVE_KERNEL_BZIP2
select HAVE_KERNEL_LZMA
2011-01-14 09:52:54 +03:00
select HAVE_KERNEL_XZ
2010-01-13 07:29:19 +03:00
select HAVE_KERNEL_LZO
2012-10-09 03:28:08 +04:00
select HAVE_UID16
2012-07-31 01:42:46 +04:00
select ARCH_WANT_IPC_PARSE_VERSION
2009-09-16 09:30:34 +04:00
select HAVE_SYSCALL_TRACEPOINTS
2010-06-14 10:16:53 +04:00
select HAVE_REGS_AND_STACK_ACCESS_API
2012-01-26 06:02:40 +04:00
select MAY_HAVE_SPARSE_IRQ
2011-04-18 06:45:27 +04:00
select IRQ_FORCED_THREADING
2009-05-08 14:48:47 +04:00
select RTC_LIB
2009-06-17 05:43:13 +04:00
select GENERIC_ATOMIC64
2011-03-17 11:31:51 +03:00
select GENERIC_IRQ_SHOW
2012-04-20 17:05:54 +04:00
select GENERIC_SMP_IDLE_THREAD
2013-03-22 01:49:59 +04:00
select GENERIC_IDLE_POLL_SETUP
2012-05-18 20:45:53 +04:00
select GENERIC_CLOCKEVENTS
select GENERIC_CMOS_UPDATE if SH_SH03 || SH_DREAMCAST
2012-05-25 08:02:48 +04:00
select GENERIC_STRNCPY_FROM_USER
2012-06-04 10:46:05 +04:00
select GENERIC_STRNLEN_USER
2012-09-28 09:01:03 +04:00
select HAVE_MOD_ARCH_SPECIFIC if DWARF_UNWINDER
select MODULES_USE_ELF_RELA
2012-12-26 01:20:46 +04:00
select OLD_SIGSUSPEND
2012-12-26 04:23:55 +04:00
select OLD_SIGACTION
2014-02-25 13:16:24 +04:00
select HAVE_ARCH_AUDITSYSCALL
2016-05-21 03:00:33 +03:00
select HAVE_NMI
2005-04-17 02:20:36 +04:00
help
The SuperH is a RISC processor targeted for use in embedded systems
and consumer electronics; it was also used in the Sega Dreamcast
gaming console. The SuperH port has a home page at
<http://www.linux-sh.org/>.
2007-11-08 12:39:33 +03:00
config SUPERH32
2009-04-11 03:39:27 +04:00
def_bool ARCH = "sh"
2008-09-05 12:15:39 +04:00
select HAVE_KPROBES
select HAVE_KRETPROBES
2010-01-19 08:00:14 +03:00
select HAVE_IOREMAP_PROT if MMU && !X2TLB
2008-10-31 10:20:36 +03:00
select HAVE_FUNCTION_TRACER
2008-11-12 14:11:47 +03:00
select HAVE_FTRACE_MCOUNT_RECORD
select HAVE_DYNAMIC_FTRACE
2009-10-13 11:52:50 +04:00
select HAVE_FTRACE_NMI_ENTER if DYNAMIC_FTRACE
2012-07-31 01:42:46 +04:00
select ARCH_WANT_IPC_PARSE_VERSION
2009-07-11 04:29:03 +04:00
select HAVE_FUNCTION_GRAPH_TRACER
2008-12-11 12:46:46 +03:00
select HAVE_ARCH_KGDB
2010-01-06 09:46:53 +03:00
select HAVE_HW_BREAKPOINT
2010-04-11 20:55:56 +04:00
select HAVE_MIXED_BREAKPOINTS_REGS
2010-08-14 16:23:39 +04:00
select PERF_EVENTS
2009-04-02 06:56:38 +04:00
select ARCH_HIBERNATION_POSSIBLE if MMU
2010-10-26 10:20:51 +04:00
select SPARSE_IRQ
2013-12-19 23:35:58 +04:00
select HAVE_CC_STACKPROTECTOR
2007-11-21 09:58:01 +03:00
config SUPERH64
2009-04-11 03:39:27 +04:00
def_bool ARCH = "sh64"
2016-05-21 03:00:16 +03:00
select HAVE_EXIT_THREAD
2012-05-24 10:05:29 +04:00
select KALLSYMS
2007-11-08 12:39:33 +03:00
2008-07-29 15:12:51 +04:00
config ARCH_DEFCONFIG
string
default "arch/sh/configs/shx3_defconfig" if SUPERH32
default "arch/sh/configs/cayman_defconfig" if SUPERH64
2005-04-17 02:20:36 +04:00
config RWSEM_GENERIC_SPINLOCK
2007-12-11 07:49:35 +03:00
def_bool y
2005-04-17 02:20:36 +04:00
config RWSEM_XCHGADD_ALGORITHM
bool
2007-03-08 13:41:21 +03:00
config GENERIC_BUG
def_bool y
2007-11-21 12:22:05 +03:00
depends on BUG && SUPERH32
2007-03-08 13:41:21 +03:00
2009-06-14 19:00:42 +04:00
config GENERIC_CSUM
def_bool y
depends on SUPERH64
[PATCH] bitops: sh: use generic bitops
- remove __{,test_and_}{set,clear,change}_bit() and test_bit()
- remove find_{next,first}{,_zero}_bit()
- remove generic_ffs()
- remove generic_hweight{32,16,8}()
- remove sched_find_first_bit()
- remove ext2_{set,clear,test,find_first_zero,find_next_zero}_bit()
- remove ext2_{set,clear}_bit_atomic()
- remove minix_{test,set,test_and_clear,test,find_first_zero}_bit()
- remove generic_fls()
- remove generic_fls64()
Signed-off-by: Akinobu Mita <mita@miraclelinux.com>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: Kazumoto Kojima <kkojima@rr.iij4u.or.jp>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-26 13:39:35 +04:00
config GENERIC_HWEIGHT
2007-12-11 07:49:35 +03:00
def_bool y
[PATCH] bitops: sh: use generic bitops
- remove __{,test_and_}{set,clear,change}_bit() and test_bit()
- remove find_{next,first}{,_zero}_bit()
- remove generic_ffs()
- remove generic_hweight{32,16,8}()
- remove sched_find_first_bit()
- remove ext2_{set,clear,test,find_first_zero,find_next_zero}_bit()
- remove ext2_{set,clear}_bit_atomic()
- remove minix_{test,set,test_and_clear,test,find_first_zero}_bit()
- remove generic_fls()
- remove generic_fls64()
Signed-off-by: Akinobu Mita <mita@miraclelinux.com>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: Kazumoto Kojima <kkojima@rr.iij4u.or.jp>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-26 13:39:35 +04:00
2005-04-17 02:20:36 +04:00
config GENERIC_CALIBRATE_DELAY
2008-09-08 15:47:42 +04:00
bool
2005-04-17 02:20:36 +04:00
2008-08-04 09:09:15 +04:00
config GENERIC_LOCKBREAK
def_bool y
depends on SMP && PREEMPT
2008-12-04 16:45:12 +03:00
config ARCH_SUSPEND_POSSIBLE
def_bool n
config ARCH_HIBERNATION_POSSIBLE
def_bool n
2007-06-11 10:32:07 +04:00
2007-01-24 15:56:20 +03:00
config SYS_SUPPORTS_APM_EMULATION
bool
2008-12-04 16:45:12 +03:00
select ARCH_SUSPEND_POSSIBLE
2007-06-11 10:32:07 +04:00
2009-10-27 01:22:37 +03:00
config SYS_SUPPORTS_HUGETLBFS
bool
2007-06-11 10:32:07 +04:00
config SYS_SUPPORTS_SMP
bool
config SYS_SUPPORTS_NUMA
bool
config SYS_SUPPORTS_PCI
bool
2007-01-24 15:56:20 +03:00
2006-12-04 12:17:28 +03:00
config STACKTRACE_SUPPORT
2007-12-11 07:49:35 +03:00
def_bool y
2006-12-04 12:17:28 +03:00
config LOCKDEP_SUPPORT
2007-12-11 07:49:35 +03:00
def_bool y
2006-12-04 12:17:28 +03:00
2006-12-08 13:37:49 +03:00
config ARCH_HAS_ILOG2_U32
2007-12-11 07:49:35 +03:00
def_bool n
2006-12-08 13:37:49 +03:00
config ARCH_HAS_ILOG2_U64
2007-12-11 07:49:35 +03:00
def_bool n
2006-12-08 13:37:49 +03:00
2014-04-08 02:39:19 +04:00
config NO_IOPORT_MAP
2010-11-01 16:49:04 +03:00
def_bool !PCI
2012-05-21 13:19:18 +04:00
depends on !SH_CAYMAN && !SH_SH4202_MICRODEV && !SH_SHMIN && \
!SH_HP6XX && !SH_SOLUTION_ENGINE
2010-05-25 15:06:13 +04:00
2008-02-07 14:18:21 +03:00
config IO_TRAPPED
bool
2012-03-29 11:05:10 +04:00
config SWAP_IO_SPACE
bool
2009-10-27 04:35:02 +03:00
config DMA_COHERENT
bool
config DMA_NONCOHERENT
def_bool !DMA_COHERENT
2010-03-11 02:23:27 +03:00
config NEED_DMA_MAP_STATE
def_bool DMA_NONCOHERENT
2010-05-27 01:44:32 +04:00
config NEED_SG_DMA_LENGTH
def_bool y
2015-04-15 01:46:02 +03:00
config PGTABLE_LEVELS
default 3 if X2TLB
default 2
2005-04-17 02:20:36 +04:00
source "init/Kconfig"
2008-10-19 07:27:21 +04:00
source "kernel/Kconfig.freezer"
2005-04-17 02:20:36 +04:00
menu "System type"
2007-11-08 12:38:14 +03:00
#
# Processor families
#
config CPU_SH2
bool
2014-08-20 17:39:22 +04:00
select SH_INTC
2007-11-08 12:38:14 +03:00
config CPU_SH2A
bool
select CPU_SH2
2010-11-04 06:32:24 +03:00
select UNCACHED_MAPPING
2007-11-08 12:38:14 +03:00
config CPU_SH3
bool
select CPU_HAS_INTEVT
select CPU_HAS_SR_RB
2014-08-20 17:39:22 +04:00
select SH_INTC
2014-02-20 15:54:47 +04:00
select SYS_SUPPORTS_SH_TMU
2007-11-08 12:38:14 +03:00
config CPU_SH4
bool
select CPU_HAS_INTEVT
select CPU_HAS_SR_RB
select CPU_HAS_FPU if !CPU_SH4AL_DSP
2014-08-20 17:39:22 +04:00
select SH_INTC
2014-02-20 15:54:47 +04:00
select SYS_SUPPORTS_SH_TMU
2009-10-27 01:22:37 +03:00
select SYS_SUPPORTS_HUGETLBFS if MMU
2007-11-08 12:38:14 +03:00
config CPU_SH4A
bool
select CPU_SH4
config CPU_SH4AL_DSP
bool
select CPU_SH4A
select CPU_HAS_DSP
2007-11-21 09:58:01 +03:00
config CPU_SH5
bool
select CPU_HAS_FPU
2014-02-20 15:54:47 +04:00
select SYS_SUPPORTS_SH_TMU
2009-10-27 01:22:37 +03:00
select SYS_SUPPORTS_HUGETLBFS if MMU
2007-11-21 09:58:01 +03:00
2007-11-08 12:38:14 +03:00
config CPU_SHX2
bool
config CPU_SHX3
bool
2009-10-27 04:35:02 +03:00
select DMA_COHERENT
2010-05-11 10:24:04 +04:00
select SYS_SUPPORTS_SMP
select SYS_SUPPORTS_NUMA
2007-11-08 12:38:14 +03:00
2009-03-10 10:26:29 +03:00
config ARCH_SHMOBILE
bool
2009-03-13 18:23:04 +03:00
select ARCH_SUSPEND_POSSIBLE
2014-12-19 17:37:54 +03:00
select PM
2009-03-10 10:26:29 +03:00
2010-09-10 23:36:23 +04:00
config CPU_HAS_PMU
depends on CPU_SH4 || CPU_SH4A
default y
bool
2009-04-11 03:39:27 +04:00
if SUPERH32
2007-11-08 12:38:14 +03:00
choice
prompt "Processor sub-type selection"
#
# Processor subtypes
#
# SH-2 Processor Support
config CPU_SUBTYPE_SH7619
bool "Support SH7619 processor"
select CPU_SH2
2014-02-20 15:54:47 +04:00
select SYS_SUPPORTS_SH_CMT
2007-11-08 12:38:14 +03:00
# SH-2A Processor Support
2008-11-28 16:48:20 +03:00
config CPU_SUBTYPE_SH7201
bool "Support SH7201 processor"
select CPU_SH2A
select CPU_HAS_FPU
2014-02-20 15:54:47 +04:00
select SYS_SUPPORTS_SH_MTU2
2008-11-28 16:48:20 +03:00
2007-11-26 12:17:21 +03:00
config CPU_SUBTYPE_SH7203
bool "Support SH7203 processor"
select CPU_SH2A
2007-11-26 14:38:36 +03:00
select CPU_HAS_FPU
2014-02-20 15:54:47 +04:00
select SYS_SUPPORTS_SH_CMT
select SYS_SUPPORTS_SH_MTU2
2012-12-16 02:51:05 +04:00
select PINCTRL
2007-11-26 12:17:21 +03:00
2007-11-08 12:38:14 +03:00
config CPU_SUBTYPE_SH7206
bool "Support SH7206 processor"
select CPU_SH2A
2014-02-20 15:54:47 +04:00
select SYS_SUPPORTS_SH_CMT
select SYS_SUPPORTS_SH_MTU2
2007-11-08 12:38:14 +03:00
2007-11-26 13:54:02 +03:00
config CPU_SUBTYPE_SH7263
bool "Support SH7263 processor"
select CPU_SH2A
2007-11-26 14:38:36 +03:00
select CPU_HAS_FPU
2014-02-20 15:54:47 +04:00
select SYS_SUPPORTS_SH_CMT
select SYS_SUPPORTS_SH_MTU2
2007-11-26 13:54:02 +03:00
2012-05-09 10:59:27 +04:00
config CPU_SUBTYPE_SH7264
bool "Support SH7264 processor"
select CPU_SH2A
select CPU_HAS_FPU
2014-02-20 15:54:47 +04:00
select SYS_SUPPORTS_SH_CMT
select SYS_SUPPORTS_SH_MTU2
2012-12-16 02:51:06 +04:00
select PINCTRL
2012-05-09 10:59:27 +04:00
2012-05-10 12:26:52 +04:00
config CPU_SUBTYPE_SH7269
bool "Support SH7269 processor"
select CPU_SH2A
select CPU_HAS_FPU
2014-02-20 15:54:47 +04:00
select SYS_SUPPORTS_SH_CMT
select SYS_SUPPORTS_SH_MTU2
2012-12-16 02:51:07 +04:00
select PINCTRL
2012-05-10 12:26:52 +04:00
2008-03-13 06:52:44 +03:00
config CPU_SUBTYPE_MXG
bool "Support MX-G processor"
select CPU_SH2A
2014-02-20 15:54:47 +04:00
select SYS_SUPPORTS_SH_MTU2
2008-03-13 06:52:44 +03:00
help
Select MX-G if running on an R8A03022BG part.
2007-11-08 12:38:14 +03:00
# SH-3 Processor Support
config CPU_SUBTYPE_SH7705
bool "Support SH7705 processor"
select CPU_SH3
config CPU_SUBTYPE_SH7706
bool "Support SH7706 processor"
select CPU_SH3
help
Select SH7706 if you have a 133 Mhz SH-3 HD6417706 CPU.
config CPU_SUBTYPE_SH7707
bool "Support SH7707 processor"
select CPU_SH3
help
Select SH7707 if you have a 60 Mhz SH-3 HD6417707 CPU.
config CPU_SUBTYPE_SH7708
bool "Support SH7708 processor"
select CPU_SH3
help
Select SH7708 if you have a 60 Mhz SH-3 HD6417708S or
if you have a 100 Mhz SH-3 HD6417708R CPU.
config CPU_SUBTYPE_SH7709
bool "Support SH7709 processor"
select CPU_SH3
help
Select SH7709 if you have a 80 Mhz SH-3 HD6417709 CPU.
config CPU_SUBTYPE_SH7710
bool "Support SH7710 processor"
select CPU_SH3
select CPU_HAS_DSP
help
Select SH7710 if you have a SH3-DSP SH7710 CPU.
config CPU_SUBTYPE_SH7712
bool "Support SH7712 processor"
select CPU_SH3
select CPU_HAS_DSP
help
Select SH7712 if you have a SH3-DSP SH7712 CPU.
config CPU_SUBTYPE_SH7720
bool "Support SH7720 processor"
select CPU_SH3
select CPU_HAS_DSP
2014-02-20 15:54:47 +04:00
select SYS_SUPPORTS_SH_CMT
2011-06-30 10:04:38 +04:00
select USB_OHCI_SH if USB_OHCI_HCD
2012-12-16 02:51:08 +04:00
select PINCTRL
2007-11-08 12:38:14 +03:00
help
Select SH7720 if you have a SH3-DSP SH7720 CPU.
2007-12-26 05:45:06 +03:00
config CPU_SUBTYPE_SH7721
bool "Support SH7721 processor"
select CPU_SH3
select CPU_HAS_DSP
2014-02-20 15:54:47 +04:00
select SYS_SUPPORTS_SH_CMT
2011-06-30 10:04:38 +04:00
select USB_OHCI_SH if USB_OHCI_HCD
2007-12-26 05:45:06 +03:00
help
Select SH7721 if you have a SH3-DSP SH7721 CPU.
2007-11-08 12:38:14 +03:00
# SH-4 Processor Support
config CPU_SUBTYPE_SH7750
bool "Support SH7750 processor"
select CPU_SH4
help
Select SH7750 if you have a 200 Mhz SH-4 HD6417750 CPU.
config CPU_SUBTYPE_SH7091
bool "Support SH7091 processor"
select CPU_SH4
help
Select SH7091 if you have an SH-4 based Sega device (such as
the Dreamcast, Naomi, and Naomi 2).
config CPU_SUBTYPE_SH7750R
bool "Support SH7750R processor"
select CPU_SH4
config CPU_SUBTYPE_SH7750S
bool "Support SH7750S processor"
select CPU_SH4
config CPU_SUBTYPE_SH7751
bool "Support SH7751 processor"
select CPU_SH4
help
Select SH7751 if you have a 166 Mhz SH-4 HD6417751 CPU,
or if you have a HD6417751R CPU.
config CPU_SUBTYPE_SH7751R
bool "Support SH7751R processor"
select CPU_SH4
config CPU_SUBTYPE_SH7760
bool "Support SH7760 processor"
select CPU_SH4
config CPU_SUBTYPE_SH4_202
bool "Support SH4-202 processor"
select CPU_SH4
# SH-4A Processor Support
2008-04-09 12:56:18 +04:00
config CPU_SUBTYPE_SH7723
bool "Support SH7723 processor"
select CPU_SH4A
select CPU_SHX2
2009-03-10 10:26:29 +03:00
select ARCH_SHMOBILE
2008-04-09 12:56:18 +04:00
select ARCH_SPARSEMEM_ENABLE
2014-02-20 15:54:47 +04:00
select SYS_SUPPORTS_SH_CMT
2012-12-16 02:51:10 +04:00
select PINCTRL
2008-04-09 12:56:18 +04:00
help
Select SH7723 if you have an SH-MobileR2 CPU.
2009-04-16 09:40:56 +04:00
config CPU_SUBTYPE_SH7724
bool "Support SH7724 processor"
select CPU_SH4A
select CPU_SHX2
2009-04-16 10:43:42 +04:00
select ARCH_SHMOBILE
2009-04-16 09:40:56 +04:00
select ARCH_SPARSEMEM_ENABLE
2014-02-20 15:54:47 +04:00
select SYS_SUPPORTS_SH_CMT
2012-12-16 02:51:11 +04:00
select PINCTRL
2009-04-16 09:40:56 +04:00
help
Select SH7724 if you have an SH-MobileR2R CPU.
2012-04-12 10:45:32 +04:00
config CPU_SUBTYPE_SH7734
bool "Support SH7734 processor"
select CPU_SH4A
select CPU_SHX2
2012-12-16 02:51:12 +04:00
select PINCTRL
2012-04-12 10:45:32 +04:00
help
Select SH7734 if you have a SH4A SH7734 CPU.
2009-08-21 11:30:28 +04:00
config CPU_SUBTYPE_SH7757
bool "Support SH7757 processor"
select CPU_SH4A
select CPU_SHX2
2012-12-16 02:51:13 +04:00
select PINCTRL
2009-08-21 11:30:28 +04:00
help
Select SH7757 if you have a SH4A SH7757 CPU.
2008-01-07 08:40:07 +03:00
config CPU_SUBTYPE_SH7763
bool "Support SH7763 processor"
select CPU_SH4A
2011-06-30 10:04:38 +04:00
select USB_OHCI_SH if USB_OHCI_HCD
2008-01-07 08:40:07 +03:00
help
Select SH7763 if you have a SH4A SH7763(R5S77631) CPU.
2007-11-08 12:38:14 +03:00
config CPU_SUBTYPE_SH7770
bool "Support SH7770 processor"
select CPU_SH4A
config CPU_SUBTYPE_SH7780
bool "Support SH7780 processor"
select CPU_SH4A
config CPU_SUBTYPE_SH7785
bool "Support SH7785 processor"
select CPU_SH4A
select CPU_SHX2
2009-03-03 09:40:25 +03:00
select ARCH_SPARSEMEM_ENABLE
select SYS_SUPPORTS_NUMA
2012-12-16 02:51:14 +04:00
select PINCTRL
2009-03-03 09:40:25 +03:00
config CPU_SUBTYPE_SH7786
bool "Support SH7786 processor"
select CPU_SH4A
2009-03-03 09:57:02 +03:00
select CPU_SHX3
2009-03-17 11:49:49 +03:00
select CPU_HAS_PTEAEX
2009-06-19 11:00:00 +04:00
select GENERIC_CLOCKEVENTS_BROADCAST if SMP
2011-06-30 10:04:38 +04:00
select USB_OHCI_SH if USB_OHCI_HCD
select USB_EHCI_SH if USB_EHCI_HCD
2012-12-16 02:51:15 +04:00
select PINCTRL
2007-11-08 12:38:14 +03:00
config CPU_SUBTYPE_SHX3
bool "Support SH-X3 processor"
select CPU_SH4A
select CPU_SHX3
2008-09-05 10:36:39 +04:00
select GENERIC_CLOCKEVENTS_BROADCAST if SMP
2016-04-19 14:26:08 +03:00
select GPIOLIB
2012-12-16 02:51:16 +04:00
select PINCTRL
2007-11-08 12:38:14 +03:00
# SH4AL-DSP Processor Support
config CPU_SUBTYPE_SH7343
bool "Support SH7343 processor"
select CPU_SH4AL_DSP
2009-03-10 10:26:29 +03:00
select ARCH_SHMOBILE
2014-02-20 15:54:47 +04:00
select SYS_SUPPORTS_SH_CMT
2007-11-08 12:38:14 +03:00
config CPU_SUBTYPE_SH7722
bool "Support SH7722 processor"
select CPU_SH4AL_DSP
select CPU_SHX2
2009-03-10 10:26:29 +03:00
select ARCH_SHMOBILE
2007-11-08 12:38:14 +03:00
select ARCH_SPARSEMEM_ENABLE
select SYS_SUPPORTS_NUMA
2014-02-20 15:54:47 +04:00
select SYS_SUPPORTS_SH_CMT
2012-12-16 02:51:09 +04:00
select PINCTRL
2008-02-08 11:31:24 +03:00
config CPU_SUBTYPE_SH7366
bool "Support SH7366 processor"
select CPU_SH4AL_DSP
select CPU_SHX2
2009-03-10 10:26:29 +03:00
select ARCH_SHMOBILE
2008-02-08 11:31:24 +03:00
select ARCH_SPARSEMEM_ENABLE
select SYS_SUPPORTS_NUMA
2014-02-20 15:54:47 +04:00
select SYS_SUPPORTS_SH_CMT
2007-11-08 12:38:14 +03:00
2009-04-11 03:39:27 +04:00
endchoice
endif
if SUPERH64
choice
prompt "Processor sub-type selection"
2007-11-21 09:58:01 +03:00
# SH-5 Processor Support
config CPU_SUBTYPE_SH5_101
bool "Support SH5-101 processor"
select CPU_SH5
config CPU_SUBTYPE_SH5_103
bool "Support SH5-103 processor"
2008-02-14 09:30:54 +03:00
select CPU_SH5
2007-11-21 09:58:01 +03:00
2007-11-08 12:38:14 +03:00
endchoice
2009-04-11 03:39:27 +04:00
endif
2007-05-14 12:29:12 +04:00
source "arch/sh/mm/Kconfig"
2008-07-29 16:41:37 +04:00
2007-11-09 07:45:42 +03:00
source "arch/sh/Kconfig.cpu"
2007-05-14 12:29:12 +04:00
2008-07-29 16:41:37 +04:00
source "arch/sh/boards/Kconfig"
2007-03-12 08:38:59 +03:00
menu "Timer and clock configuration"
2006-01-17 09:14:19 +03:00
config SH_PCLK_FREQ
int "Peripheral clock frequency (in Hz)"
2009-12-29 05:09:30 +03:00
depends on SH_CLK_CPG_LEGACY
2006-11-05 09:40:13 +03:00
default "31250000" if CPU_SUBTYPE_SH7619
2009-12-29 05:09:30 +03:00
default "33333333" if CPU_SUBTYPE_SH7770 || \
CPU_SUBTYPE_SH7760 || \
CPU_SUBTYPE_SH7705 || \
CPU_SUBTYPE_SH7203 || \
CPU_SUBTYPE_SH7206 || \
CPU_SUBTYPE_SH7263 || \
2010-01-19 13:37:14 +03:00
CPU_SUBTYPE_MXG
2007-05-15 11:25:47 +04:00
default "60000000" if CPU_SUBTYPE_SH7751 || CPU_SUBTYPE_SH7751R
2006-01-17 09:14:19 +03:00
default "66000000" if CPU_SUBTYPE_SH4_202
2007-05-15 11:25:47 +04:00
default "50000000"
2005-04-17 02:20:36 +04:00
help
2006-01-17 09:14:19 +03:00
This option is used to specify the peripheral clock frequency.
This is necessary for determining the reference clock value on
platforms lacking an RTC.
2005-04-17 02:20:36 +04:00
2009-05-22 09:00:34 +04:00
config SH_CLK_CPG
def_bool y
2009-05-13 12:38:11 +04:00
config SH_CLK_CPG_LEGACY
2009-05-22 09:00:34 +04:00
depends on SH_CLK_CPG
2010-01-19 13:37:14 +03:00
def_bool y if !CPU_SUBTYPE_SH7785 && !ARCH_SHMOBILE && \
2012-05-09 10:59:27 +04:00
!CPU_SHX3 && !CPU_SUBTYPE_SH7757 && \
2012-05-10 12:20:56 +04:00
!CPU_SUBTYPE_SH7734 && !CPU_SUBTYPE_SH7264 && \
!CPU_SUBTYPE_SH7269
2009-05-13 12:38:11 +04:00
2007-03-12 08:38:59 +03:00
endmenu
2006-01-17 09:14:19 +03:00
menu "CPU Frequency scaling"
source "drivers/cpufreq/Kconfig"
endmenu
2006-11-24 05:22:57 +03:00
source "arch/sh/drivers/Kconfig"
2006-01-17 09:14:19 +03:00
endmenu
2005-04-17 02:20:36 +04:00
2006-01-17 09:14:19 +03:00
menu "Kernel features"
2006-09-27 13:08:33 +04:00
source kernel/Kconfig.hz
2006-01-17 09:14:19 +03:00
config KEXEC
bool "kexec system call (EXPERIMENTAL)"
2013-01-17 06:53:26 +04:00
depends on SUPERH32 && MMU
2015-09-10 01:38:55 +03:00
select KEXEC_CORE
2005-04-17 02:20:36 +04:00
help
2006-01-17 09:14:19 +03:00
kexec is a system call that implements the ability to shutdown your
current kernel, and to start another kernel. It is like a reboot
2006-06-29 09:32:47 +04:00
but it is independent of the system firmware. And like a reboot
2006-01-17 09:14:19 +03:00
you can start any kernel with it, not just Linux.
2006-06-29 09:32:47 +04:00
The name comes from the similarity to the exec system call.
2006-01-17 09:14:19 +03:00
It is an ongoing process to be certain the hardware in a machine
is properly shutdown, so do not be surprised if this code does not
2013-08-20 23:38:03 +04:00
initially work for you. As of this writing the exact hardware
interface is strongly in flux, so no good recommendation can be
made.
2006-01-17 09:14:19 +03:00
2007-04-27 06:25:57 +04:00
config CRASH_DUMP
bool "kernel crash dumps (EXPERIMENTAL)"
2013-01-17 06:53:26 +04:00
depends on SUPERH32 && BROKEN_ON_SMP
2007-04-27 06:25:57 +04:00
help
Generate crash dump after being started by kexec.
This should be normally only set in special crash dump kernels
which are loaded in the main kernel with kexec-tools into
a specially reserved region and then later executed after
a crash by kdump/kexec. The crash dump kernel must be compiled
to a memory address not used by the main kernel using
2011-09-15 15:13:00 +04:00
PHYSICAL_START.
2007-04-27 06:25:57 +04:00
For more details see Documentation/kdump/kdump.txt
2009-03-18 11:51:29 +03:00
config KEXEC_JUMP
bool "kexec jump (EXPERIMENTAL)"
2013-01-17 06:53:26 +04:00
depends on SUPERH32 && KEXEC && HIBERNATION
2009-03-18 11:51:29 +03:00
help
Jump between original kernel and kexeced kernel and invoke
code via KEXEC
2011-09-15 15:13:00 +04:00
config PHYSICAL_START
hex "Physical address where the kernel is loaded" if (EXPERT || CRASH_DUMP)
default MEMORY_START
---help---
This gives the physical address where the kernel is loaded
and is ordinarily the same as MEMORY_START.
Different values are primarily used in the case of kexec on panic
where the fail safe kernel needs to run at a different address
than the panic-ed kernel.
2008-07-30 10:30:52 +04:00
config SECCOMP
bool "Enable seccomp to safely compute untrusted bytecode"
depends on PROC_FS
help
This kernel feature is useful for number crunching applications
that may need to compute untrusted bytecode during their
execution. By using pipes or other transports made available to
the process as file descriptors supporting the read/write
syscalls, it's possible to isolate those applications in
their own address space using seccomp. Once seccomp is
enabled via prctl, it cannot be disabled and the task is only
allowed to execute a few safe syscalls defined by each seccomp
mode.
If unsure, say N.
2005-04-17 02:20:36 +04:00
config SMP
bool "Symmetric multi-processing support"
2007-06-11 10:32:07 +04:00
depends on SYS_SUPPORTS_SMP
2005-04-17 02:20:36 +04:00
---help---
This enables support for systems with more than one CPU. If you have
2014-01-24 03:55:29 +04:00
a system with only one CPU, say N. If you have a system with more
than one CPU, say Y.
2005-04-17 02:20:36 +04:00
2014-01-24 03:55:29 +04:00
If you say N here, the kernel will run on uni- and multiprocessor
2005-04-17 02:20:36 +04:00
machines, but will use only one CPU of a multiprocessor machine. If
you say Y here, the kernel will run on many, but not all,
2014-01-24 03:55:29 +04:00
uniprocessor machines. On a uniprocessor machine, the kernel
2005-04-17 02:20:36 +04:00
will run faster if you say N here.
People using multiprocessor machines who say Y here should also say
Y to "Enhanced Real Time Clock Support", below.
2008-02-03 16:50:21 +03:00
See also <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO
available at <http://www.tldp.org/docs.html#howto>.
2005-04-17 02:20:36 +04:00
If you don't know what to do here, say N.
config NR_CPUS
int "Maximum number of CPUs (2-32)"
range 2 32
depends on SMP
2009-06-19 11:00:00 +04:00
default "4" if CPU_SUBTYPE_SHX3
2005-04-17 02:20:36 +04:00
default "2"
help
This allows you to specify the maximum number of CPUs which this
kernel will support. The maximum supported value is 32 and the
minimum value which makes sense is 2.
This is purely to save memory - each supported CPU adds
approximately eight kilobytes to the kernel image.
2010-04-26 14:08:55 +04:00
config HOTPLUG_CPU
bool "Support for hot-pluggable CPUs (EXPERIMENTAL)"
2013-05-21 07:49:35 +04:00
depends on SMP
2010-04-26 14:08:55 +04:00
help
Say Y here to experiment with turning CPUs off and on. CPUs
can be controlled through /sys/devices/system/cpu.
2006-09-27 13:08:33 +04:00
source "kernel/Kconfig.preempt"
2007-09-28 11:04:49 +04:00
config GUSA
def_bool y
2007-11-30 10:12:36 +03:00
depends on !SMP && SUPERH32
2007-09-28 11:04:49 +04:00
help
This enables support for gUSA (general UserSpace Atomicity).
This is the default implementation for both UP and non-ll/sc
CPUs, and is used by the libc, amongst others.
For additional information, design information can be found
in <http://lc.linux.or.jp/lc2002/papers/niibe0919p.pdf>.
This should only be disabled for special cases where alternate
atomicity implementations exist.
2007-11-30 10:12:36 +03:00
config GUSA_RB
bool "Implement atomic operations by roll-back (gRB) (EXPERIMENTAL)"
depends on GUSA && CPU_SH3 || (CPU_SH4 && !CPU_SH4A)
help
Enabling this option will allow the kernel to implement some
2009-01-26 13:12:25 +03:00
atomic operations using a software implementation of load-locked/
2007-11-30 10:12:36 +03:00
store-conditional (LLSC). On machines which do not have hardware
LLSC, this should be more efficient than the other alternative of
2009-01-26 13:12:25 +03:00
disabling interrupts around the atomic sequence.
2007-11-30 10:12:36 +03:00
2010-09-10 23:36:23 +04:00
config HW_PERF_EVENTS
bool "Enable hardware performance counter support for perf events"
depends on PERF_EVENTS && CPU_HAS_PMU
default y
help
Enable hardware performance counter support for perf events. If
disabled, perf events will use software events only.
2010-04-13 09:43:03 +04:00
source "drivers/sh/Kconfig"
2006-01-17 09:14:19 +03:00
endmenu
2005-04-17 02:20:36 +04:00
2006-01-17 09:14:19 +03:00
menu "Boot options"
2005-04-17 02:20:36 +04:00
2006-01-17 09:14:19 +03:00
config ZERO_PAGE_OFFSET
2009-05-09 20:23:25 +04:00
hex
default "0x00010000" if PAGE_SIZE_64KB || SH_RTS7751R2D || \
SH_7751_SOLUTION_ENGINE
default "0x00004000" if PAGE_SIZE_16KB || SH_SH03
2006-12-26 09:29:19 +03:00
default "0x00002000" if PAGE_SIZE_8KB
2006-01-17 09:14:19 +03:00
default "0x00001000"
2005-04-17 02:20:36 +04:00
help
2006-01-17 09:14:19 +03:00
This sets the default offset of zero page.
2005-04-17 02:20:36 +04:00
2006-01-17 09:14:19 +03:00
config BOOT_LINK_OFFSET
2009-05-09 20:23:25 +04:00
hex
default "0x00210000" if SH_SHMIN
2009-05-09 19:54:39 +04:00
default "0x00400000" if SH_CAYMAN
2009-05-09 20:23:25 +04:00
default "0x00810000" if SH_7780_SOLUTION_ENGINE
default "0x009e0000" if SH_TITAN
default "0x01800000" if SH_SDK7780
default "0x02000000" if SH_EDOSK7760
2006-01-17 09:14:19 +03:00
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.
2005-04-17 02:20:36 +04:00
2009-05-09 20:23:25 +04:00
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"
2010-05-18 18:43:15 +04:00
config ROMIMAGE_MMCIF
bool "Include MMCIF loader in romImage (EXPERIMENTAL)"
2013-01-17 06:53:26 +04:00
depends on CPU_SUBTYPE_SH7724
2010-05-18 18:43:15 +04:00
help
Say Y here to include experimental MMCIF loading code in
romImage. With this enabled it is possible to write the romImage
kernel image to an MMC card and boot the kernel straight from
the reset vector. At reset the processor Mask ROM will load the
first part of the romImage which in turn loads the rest the kernel
image to RAM using the MMCIF hardware block.
2009-08-24 11:25:38 +04:00
choice
prompt "Kernel command line"
optional
default CMDLINE_OVERWRITE
help
Setting this option allows the kernel command line arguments
to be set.
config CMDLINE_OVERWRITE
bool "Overwrite bootloader kernel arguments"
help
Given string will overwrite any arguments passed in by
a bootloader.
config CMDLINE_EXTEND
bool "Extend bootloader kernel arguments"
help
Given string will be concatenated with arguments passed in
by a bootloader.
endchoice
2005-04-17 02:20:36 +04:00
2006-01-17 09:14:19 +03:00
config CMDLINE
2009-08-24 11:25:38 +04:00
string "Kernel command line arguments string"
depends on CMDLINE_OVERWRITE || CMDLINE_EXTEND
2006-01-17 09:14:19 +03:00
default "console=ttySC1,115200"
2005-04-17 02:20:36 +04:00
endmenu
2006-01-17 09:14:19 +03:00
menu "Bus options"
2005-04-17 02:20:36 +04:00
2006-01-17 09:14:19 +03:00
config SUPERHYWAY
tristate "SuperHyway Bus support"
depends on CPU_SUBTYPE_SH4_202
2005-04-17 02:20:36 +04:00
2007-09-21 10:55:55 +04:00
config MAPLE
2009-01-09 09:12:30 +03:00
bool "Maple Bus support"
depends on SH_DREAMCAST
help
The Maple Bus is SEGA's serial communication bus for peripherals
on the Dreamcast. Without this bus support you won't be able to
get your Dreamcast keyboard etc to work, so most users
probably want to say 'Y' here, unless you are only using the
Dreamcast with a serial line terminal or a remote network
connection.
2007-09-21 10:55:55 +04:00
2009-10-27 04:36:55 +03:00
config PCI
bool "PCI support"
depends on SYS_SUPPORTS_PCI
2010-01-29 16:38:13 +03:00
select PCI_DOMAINS
2011-11-24 23:10:12 +04:00
select GENERIC_PCI_IOMAP
2012-01-30 02:29:10 +04:00
select NO_GENERIC_PCI_IOPORT_MAP
2009-10-27 04:36:55 +03:00
help
Find out whether you have a PCI motherboard. PCI is the name of a
bus system, i.e. the way the CPU talks to the other stuff inside
your box. If you have PCI, say Y, otherwise N.
2005-04-17 02:20:36 +04:00
2010-01-29 16:38:13 +03:00
config PCI_DOMAINS
bool
2005-04-17 02:20:36 +04:00
source "drivers/pci/Kconfig"
source "drivers/pcmcia/Kconfig"
endmenu
menu "Executable file formats"
source "fs/Kconfig.binfmt"
endmenu
2006-09-27 11:20:22 +04:00
menu "Power management options (EXPERIMENTAL)"
2007-12-08 04:14:00 +03:00
2008-12-04 16:45:20 +03:00
source "kernel/power/Kconfig"
source "drivers/cpuidle/Kconfig"
2006-09-27 11:20:22 +04:00
endmenu
2005-07-12 08:03:49 +04:00
source "net/Kconfig"
2005-04-17 02:20:36 +04:00
source "drivers/Kconfig"
source "fs/Kconfig"
source "arch/sh/Kconfig.debug"
source "security/Kconfig"
source "crypto/Kconfig"
source "lib/Kconfig"