License cleanup: add SPDX GPL-2.0 license identifier to files with no license
Many source files in the tree are missing licensing information, which
makes it harder for compliance tools to determine the correct license.
By default all files without license information are under the default
license of the kernel, which is GPL version 2.
Update the files which contain no license information with the 'GPL-2.0'
SPDX license identifier. The SPDX identifier is a legally binding
shorthand, which can be used instead of the full boiler plate text.
This patch is based on work done by Thomas Gleixner and Kate Stewart and
Philippe Ombredanne.
How this work was done:
Patches were generated and checked against linux-4.14-rc6 for a subset of
the use cases:
- file had no licensing information it it.
- file was a */uapi/* one with no licensing information in it,
- file was a */uapi/* one with existing licensing information,
Further patches will be generated in subsequent months to fix up cases
where non-standard license headers were used, and references to license
had to be inferred by heuristics based on keywords.
The analysis to determine which SPDX License Identifier to be applied to
a file was done in a spreadsheet of side by side results from of the
output of two independent scanners (ScanCode & Windriver) producing SPDX
tag:value files created by Philippe Ombredanne. Philippe prepared the
base worksheet, and did an initial spot review of a few 1000 files.
The 4.13 kernel was the starting point of the analysis with 60,537 files
assessed. Kate Stewart did a file by file comparison of the scanner
results in the spreadsheet to determine which SPDX license identifier(s)
to be applied to the file. She confirmed any determination that was not
immediately clear with lawyers working with the Linux Foundation.
Criteria used to select files for SPDX license identifier tagging was:
- Files considered eligible had to be source code files.
- Make and config files were included as candidates if they contained >5
lines of source
- File already had some variant of a license header in it (even if <5
lines).
All documentation files were explicitly excluded.
The following heuristics were used to determine which SPDX license
identifiers to apply.
- when both scanners couldn't find any license traces, file was
considered to have no license information in it, and the top level
COPYING file license applied.
For non */uapi/* files that summary was:
SPDX license identifier # files
---------------------------------------------------|-------
GPL-2.0 11139
and resulted in the first patch in this series.
If that file was a */uapi/* path one, it was "GPL-2.0 WITH
Linux-syscall-note" otherwise it was "GPL-2.0". Results of that was:
SPDX license identifier # files
---------------------------------------------------|-------
GPL-2.0 WITH Linux-syscall-note 930
and resulted in the second patch in this series.
- if a file had some form of licensing information in it, and was one
of the */uapi/* ones, it was denoted with the Linux-syscall-note if
any GPL family license was found in the file or had no licensing in
it (per prior point). Results summary:
SPDX license identifier # files
---------------------------------------------------|------
GPL-2.0 WITH Linux-syscall-note 270
GPL-2.0+ WITH Linux-syscall-note 169
((GPL-2.0 WITH Linux-syscall-note) OR BSD-2-Clause) 21
((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) 17
LGPL-2.1+ WITH Linux-syscall-note 15
GPL-1.0+ WITH Linux-syscall-note 14
((GPL-2.0+ WITH Linux-syscall-note) OR BSD-3-Clause) 5
LGPL-2.0+ WITH Linux-syscall-note 4
LGPL-2.1 WITH Linux-syscall-note 3
((GPL-2.0 WITH Linux-syscall-note) OR MIT) 3
((GPL-2.0 WITH Linux-syscall-note) AND MIT) 1
and that resulted in the third patch in this series.
- when the two scanners agreed on the detected license(s), that became
the concluded license(s).
- when there was disagreement between the two scanners (one detected a
license but the other didn't, or they both detected different
licenses) a manual inspection of the file occurred.
- In most cases a manual inspection of the information in the file
resulted in a clear resolution of the license that should apply (and
which scanner probably needed to revisit its heuristics).
- When it was not immediately clear, the license identifier was
confirmed with lawyers working with the Linux Foundation.
- If there was any question as to the appropriate license identifier,
the file was flagged for further research and to be revisited later
in time.
In total, over 70 hours of logged manual review was done on the
spreadsheet to determine the SPDX license identifiers to apply to the
source files by Kate, Philippe, Thomas and, in some cases, confirmation
by lawyers working with the Linux Foundation.
Kate also obtained a third independent scan of the 4.13 code base from
FOSSology, and compared selected files where the other two scanners
disagreed against that SPDX file, to see if there was new insights. The
Windriver scanner is based on an older version of FOSSology in part, so
they are related.
Thomas did random spot checks in about 500 files from the spreadsheets
for the uapi headers and agreed with SPDX license identifier in the
files he inspected. For the non-uapi files Thomas did random spot checks
in about 15000 files.
In initial set of patches against 4.14-rc6, 3 files were found to have
copy/paste license identifier errors, and have been fixed to reflect the
correct identifier.
Additionally Philippe spent 10 hours this week doing a detailed manual
inspection and review of the 12,461 patched files from the initial patch
version early this week with:
- a full scancode scan run, collecting the matched texts, detected
license ids and scores
- reviewing anything where there was a license detected (about 500+
files) to ensure that the applied SPDX license was correct
- reviewing anything where there was no detection but the patch license
was not GPL-2.0 WITH Linux-syscall-note to ensure that the applied
SPDX license was correct
This produced a worksheet with 20 files needing minor correction. This
worksheet was then exported into 3 different .csv files for the
different types of files to be modified.
These .csv files were then reviewed by Greg. Thomas wrote a script to
parse the csv files and add the proper SPDX tag to the file, in the
format that the file expected. This script was further refined by Greg
based on the output to detect more types of files automatically and to
distinguish between header and source .c files (which need different
comment types.) Finally Greg ran the script using the .csv files to
generate the patches.
Reviewed-by: Kate Stewart <kstewart@linuxfoundation.org>
Reviewed-by: Philippe Ombredanne <pombredanne@nexb.com>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-11-01 22:07:57 +08:00
|
|
|
# SPDX-License-Identifier: GPL-2.0
|
2005-04-17 06:20:36 +08:00
|
|
|
config SUPERH
|
2007-11-21 14:58:01 +08:00
|
|
|
def_bool y
|
2019-06-13 15:08:57 +08:00
|
|
|
select ARCH_HAS_BINFMT_FLAT if !MMU
|
2018-06-08 08:06:08 +08:00
|
|
|
select ARCH_HAS_PTE_SPECIAL
|
2016-02-13 06:05:11 +08:00
|
|
|
select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
|
2013-10-08 10:15:58 +08:00
|
|
|
select ARCH_MIGHT_HAVE_PC_PARPORT
|
2015-02-11 06:08:35 +08:00
|
|
|
select HAVE_PATA_PLATFORM
|
2010-11-17 17:04:33 +08:00
|
|
|
select CLKDEV_LOOKUP
|
2019-02-04 03:12:02 +08:00
|
|
|
select DMA_DECLARE_COHERENT
|
2014-04-08 06:39:19 +08:00
|
|
|
select HAVE_IDE if HAS_IOPORT_MAP
|
2011-12-09 02:22:08 +08:00
|
|
|
select HAVE_MEMBLOCK_NODE_MAP
|
2008-02-03 04:10:34 +08:00
|
|
|
select HAVE_OPROFILE
|
2008-12-10 19:17:15 +08:00
|
|
|
select HAVE_ARCH_TRACEHOOK
|
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 18:02:48 +08:00
|
|
|
select HAVE_PERF_EVENTS
|
2012-10-09 07:28:13 +08:00
|
|
|
select HAVE_DEBUG_BUGVERBOSE
|
2019-07-12 11:57:14 +08:00
|
|
|
select HAVE_FAST_GUP if MMU
|
2012-04-15 17:52:54 +08:00
|
|
|
select ARCH_HAVE_CUSTOM_GPIO_H
|
2011-07-13 13:14:22 +08:00
|
|
|
select ARCH_HAVE_NMI_SAFE_CMPXCHG if (GUSA_RB || CPU_SH4A)
|
2014-12-13 08:57:44 +08:00
|
|
|
select ARCH_HAS_GCOV_PROFILE_ALL
|
2009-10-27 16:08:55 +08:00
|
|
|
select PERF_USE_VMALLOC
|
2012-10-09 07:28:11 +08:00
|
|
|
select HAVE_DEBUG_KMEMLEAK
|
2009-07-12 00:37:30 +08: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 08:03:57 +08:00
|
|
|
select CPU_NO_EFFICIENT_FFS
|
2009-07-12 01:21:19 +08:00
|
|
|
select HAVE_KERNEL_BZIP2
|
|
|
|
select HAVE_KERNEL_LZMA
|
2011-01-14 14:52:54 +08:00
|
|
|
select HAVE_KERNEL_XZ
|
2010-01-13 12:29:19 +08:00
|
|
|
select HAVE_KERNEL_LZO
|
2012-10-09 07:28:08 +08:00
|
|
|
select HAVE_UID16
|
2012-07-31 05:42:46 +08:00
|
|
|
select ARCH_WANT_IPC_PARSE_VERSION
|
2009-09-16 13:30:34 +08:00
|
|
|
select HAVE_SYSCALL_TRACEPOINTS
|
2010-06-14 14:16:53 +08:00
|
|
|
select HAVE_REGS_AND_STACK_ACCESS_API
|
2012-01-26 10:02:40 +08:00
|
|
|
select MAY_HAVE_SPARSE_IRQ
|
2011-04-18 10:45:27 +08:00
|
|
|
select IRQ_FORCED_THREADING
|
2009-05-08 18:48:47 +08:00
|
|
|
select RTC_LIB
|
2009-06-17 09:43:13 +08:00
|
|
|
select GENERIC_ATOMIC64
|
2011-03-17 16:31:51 +08:00
|
|
|
select GENERIC_IRQ_SHOW
|
2012-04-20 21:05:54 +08:00
|
|
|
select GENERIC_SMP_IDLE_THREAD
|
2013-03-22 05:49:59 +08:00
|
|
|
select GENERIC_IDLE_POLL_SETUP
|
2012-05-19 00:45:53 +08:00
|
|
|
select GENERIC_CLOCKEVENTS
|
|
|
|
select GENERIC_CMOS_UPDATE if SH_SH03 || SH_DREAMCAST
|
2018-11-16 03:05:32 +08:00
|
|
|
select GENERIC_PCI_IOMAP if PCI
|
2016-05-27 06:18:52 +08:00
|
|
|
select GENERIC_SCHED_CLOCK
|
2012-05-25 12:02:48 +08:00
|
|
|
select GENERIC_STRNCPY_FROM_USER
|
2012-06-04 14:46:05 +08:00
|
|
|
select GENERIC_STRNLEN_USER
|
2012-09-28 13:01:03 +08:00
|
|
|
select HAVE_MOD_ARCH_SPECIFIC if DWARF_UNWINDER
|
|
|
|
select MODULES_USE_ELF_RELA
|
2018-11-16 03:05:32 +08:00
|
|
|
select NO_GENERIC_PCI_IOPORT_MAP if PCI
|
2012-12-26 05:20:46 +08:00
|
|
|
select OLD_SIGSUSPEND
|
2012-12-26 08:23:55 +08:00
|
|
|
select OLD_SIGACTION
|
2018-11-16 03:05:32 +08:00
|
|
|
select PCI_DOMAINS if PCI
|
2014-02-25 17:16:24 +08:00
|
|
|
select HAVE_ARCH_AUDITSYSCALL
|
2016-07-15 11:46:52 +08:00
|
|
|
select HAVE_FUTEX_CMPXCHG if FUTEX
|
2016-05-21 08:00:33 +08:00
|
|
|
select HAVE_NMI
|
2018-04-05 15:44:52 +08:00
|
|
|
select NEED_SG_DMA_LENGTH
|
2019-05-14 08:19:04 +08:00
|
|
|
select ARCH_HAS_GIGANTIC_PAGE
|
2018-04-05 15:44:52 +08:00
|
|
|
|
2005-04-17 06:20:36 +08: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 17:39:33 +08:00
|
|
|
config SUPERH32
|
kconfig: reference environment variables directly and remove 'option env='
To get access to environment variables, Kconfig needs to define a
symbol using "option env=" syntax. It is tedious to add a symbol entry
for each environment variable given that we need to define much more
such as 'CC', 'AS', 'srctree' etc. to evaluate the compiler capability
in Kconfig.
Adding '$' for symbol references is grammatically inconsistent.
Looking at the code, the symbols prefixed with 'S' are expanded by:
- conf_expand_value()
This is used to expand 'arch/$ARCH/defconfig' and 'defconfig_list'
- sym_expand_string_value()
This is used to expand strings in 'source' and 'mainmenu'
All of them are fixed values independent of user configuration. So,
they can be changed into the direct expansion instead of symbols.
This change makes the code much cleaner. The bounce symbols 'SRCARCH',
'ARCH', 'SUBARCH', 'KERNELVERSION' are gone.
sym_init() hard-coding 'UNAME_RELEASE' is also gone. 'UNAME_RELEASE'
should be replaced with an environment variable.
ARCH_DEFCONFIG is a normal symbol, so it should be simply referenced
without '$' prefix.
The new syntax is addicted by Make. The variable reference needs
parentheses, like $(FOO), but you can omit them for single-letter
variables, like $F. Yet, in Makefiles, people tend to use the
parenthetical form for consistency / clarification.
At this moment, only the environment variable is supported, but I will
extend the concept of 'variable' later on.
The variables are expanded in the lexer so we can simplify the token
handling on the parser side.
For example, the following code works.
[Example code]
config MY_TOOLCHAIN_LIST
string
default "My tools: CC=$(CC), AS=$(AS), CPP=$(CPP)"
[Result]
$ make -s alldefconfig && tail -n 1 .config
CONFIG_MY_TOOLCHAIN_LIST="My tools: CC=gcc, AS=as, CPP=gcc -E"
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
2018-05-28 17:21:40 +08:00
|
|
|
def_bool "$(ARCH)" = "sh"
|
32-bit userspace ABI: introduce ARCH_32BIT_OFF_T config option
All new 32-bit architectures should have 64-bit userspace off_t type, but
existing architectures has 32-bit ones.
To enforce the rule, new config option is added to arch/Kconfig that defaults
ARCH_32BIT_OFF_T to be disabled for new 32-bit architectures. All existing
32-bit architectures enable it explicitly.
New option affects force_o_largefile() behaviour. Namely, if userspace
off_t is 64-bits long, we have no reason to reject user to open big files.
Note that even if architectures has only 64-bit off_t in the kernel
(arc, c6x, h8300, hexagon, nios2, openrisc, and unicore32),
a libc may use 32-bit off_t, and therefore want to limit the file size
to 4GB unless specified differently in the open flags.
Signed-off-by: Yury Norov <ynorov@caviumnetworks.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Yury Norov <ynorov@marvell.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2018-05-16 16:18:49 +08:00
|
|
|
select ARCH_32BIT_OFF_T
|
2019-07-12 11:57:00 +08:00
|
|
|
select GUP_GET_PTE_LOW_HIGH if X2TLB
|
2008-09-05 16:15:39 +08:00
|
|
|
select HAVE_KPROBES
|
|
|
|
select HAVE_KRETPROBES
|
2010-01-19 13:00:14 +08:00
|
|
|
select HAVE_IOREMAP_PROT if MMU && !X2TLB
|
2008-10-31 15:20:36 +08:00
|
|
|
select HAVE_FUNCTION_TRACER
|
2008-11-12 19:11:47 +08:00
|
|
|
select HAVE_FTRACE_MCOUNT_RECORD
|
|
|
|
select HAVE_DYNAMIC_FTRACE
|
2009-10-13 15:52:50 +08:00
|
|
|
select HAVE_FTRACE_NMI_ENTER if DYNAMIC_FTRACE
|
2012-07-31 05:42:46 +08:00
|
|
|
select ARCH_WANT_IPC_PARSE_VERSION
|
2009-07-11 08:29:03 +08:00
|
|
|
select HAVE_FUNCTION_GRAPH_TRACER
|
2008-12-11 17:46:46 +08:00
|
|
|
select HAVE_ARCH_KGDB
|
2010-01-06 14:46:53 +08:00
|
|
|
select HAVE_HW_BREAKPOINT
|
2010-04-12 00:55:56 +08:00
|
|
|
select HAVE_MIXED_BREAKPOINTS_REGS
|
2010-08-14 20:23:39 +08:00
|
|
|
select PERF_EVENTS
|
2009-04-02 10:56:38 +08:00
|
|
|
select ARCH_HIBERNATION_POSSIBLE if MMU
|
2010-10-26 14:20:51 +08:00
|
|
|
select SPARSE_IRQ
|
2018-06-14 18:36:45 +08:00
|
|
|
select HAVE_STACKPROTECTOR
|
2007-11-21 14:58:01 +08:00
|
|
|
|
|
|
|
config SUPERH64
|
kconfig: reference environment variables directly and remove 'option env='
To get access to environment variables, Kconfig needs to define a
symbol using "option env=" syntax. It is tedious to add a symbol entry
for each environment variable given that we need to define much more
such as 'CC', 'AS', 'srctree' etc. to evaluate the compiler capability
in Kconfig.
Adding '$' for symbol references is grammatically inconsistent.
Looking at the code, the symbols prefixed with 'S' are expanded by:
- conf_expand_value()
This is used to expand 'arch/$ARCH/defconfig' and 'defconfig_list'
- sym_expand_string_value()
This is used to expand strings in 'source' and 'mainmenu'
All of them are fixed values independent of user configuration. So,
they can be changed into the direct expansion instead of symbols.
This change makes the code much cleaner. The bounce symbols 'SRCARCH',
'ARCH', 'SUBARCH', 'KERNELVERSION' are gone.
sym_init() hard-coding 'UNAME_RELEASE' is also gone. 'UNAME_RELEASE'
should be replaced with an environment variable.
ARCH_DEFCONFIG is a normal symbol, so it should be simply referenced
without '$' prefix.
The new syntax is addicted by Make. The variable reference needs
parentheses, like $(FOO), but you can omit them for single-letter
variables, like $F. Yet, in Makefiles, people tend to use the
parenthetical form for consistency / clarification.
At this moment, only the environment variable is supported, but I will
extend the concept of 'variable' later on.
The variables are expanded in the lexer so we can simplify the token
handling on the parser side.
For example, the following code works.
[Example code]
config MY_TOOLCHAIN_LIST
string
default "My tools: CC=$(CC), AS=$(AS), CPP=$(CPP)"
[Result]
$ make -s alldefconfig && tail -n 1 .config
CONFIG_MY_TOOLCHAIN_LIST="My tools: CC=gcc, AS=as, CPP=gcc -E"
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
2018-05-28 17:21:40 +08:00
|
|
|
def_bool "$(ARCH)" = "sh64"
|
2016-05-21 08:00:16 +08:00
|
|
|
select HAVE_EXIT_THREAD
|
2012-05-24 14:05:29 +08:00
|
|
|
select KALLSYMS
|
2007-11-08 17:39:33 +08:00
|
|
|
|
2008-07-29 19:12:51 +08:00
|
|
|
config ARCH_DEFCONFIG
|
|
|
|
string
|
|
|
|
default "arch/sh/configs/shx3_defconfig" if SUPERH32
|
|
|
|
default "arch/sh/configs/cayman_defconfig" if SUPERH64
|
|
|
|
|
2007-03-08 18:41:21 +08:00
|
|
|
config GENERIC_BUG
|
|
|
|
def_bool y
|
2007-11-21 17:22:05 +08:00
|
|
|
depends on BUG && SUPERH32
|
2007-03-08 18:41:21 +08:00
|
|
|
|
2009-06-14 23:00:42 +08: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 17:39:35 +08:00
|
|
|
config GENERIC_HWEIGHT
|
2007-12-11 12:49:35 +08: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 17:39:35 +08:00
|
|
|
|
2005-04-17 06:20:36 +08:00
|
|
|
config GENERIC_CALIBRATE_DELAY
|
2008-09-08 19:47:42 +08:00
|
|
|
bool
|
2005-04-17 06:20:36 +08:00
|
|
|
|
2008-08-04 13:09:15 +08:00
|
|
|
config GENERIC_LOCKBREAK
|
|
|
|
def_bool y
|
2019-10-16 03:18:05 +08:00
|
|
|
depends on SMP && PREEMPTION
|
2008-08-04 13:09:15 +08:00
|
|
|
|
2008-12-04 21:45:12 +08:00
|
|
|
config ARCH_SUSPEND_POSSIBLE
|
|
|
|
def_bool n
|
|
|
|
|
|
|
|
config ARCH_HIBERNATION_POSSIBLE
|
|
|
|
def_bool n
|
2007-06-11 14:32:07 +08:00
|
|
|
|
2007-01-24 20:56:20 +08:00
|
|
|
config SYS_SUPPORTS_APM_EMULATION
|
|
|
|
bool
|
2008-12-04 21:45:12 +08:00
|
|
|
select ARCH_SUSPEND_POSSIBLE
|
2007-06-11 14:32:07 +08:00
|
|
|
|
2009-10-27 06:22:37 +08:00
|
|
|
config SYS_SUPPORTS_HUGETLBFS
|
|
|
|
bool
|
|
|
|
|
2007-06-11 14:32:07 +08:00
|
|
|
config SYS_SUPPORTS_SMP
|
|
|
|
bool
|
|
|
|
|
|
|
|
config SYS_SUPPORTS_NUMA
|
|
|
|
bool
|
|
|
|
|
2006-12-04 17:17:28 +08:00
|
|
|
config STACKTRACE_SUPPORT
|
2007-12-11 12:49:35 +08:00
|
|
|
def_bool y
|
2006-12-04 17:17:28 +08:00
|
|
|
|
|
|
|
config LOCKDEP_SUPPORT
|
2007-12-11 12:49:35 +08:00
|
|
|
def_bool y
|
2006-12-04 17:17:28 +08:00
|
|
|
|
2006-12-08 18:37:49 +08:00
|
|
|
config ARCH_HAS_ILOG2_U32
|
2007-12-11 12:49:35 +08:00
|
|
|
def_bool n
|
2006-12-08 18:37:49 +08:00
|
|
|
|
|
|
|
config ARCH_HAS_ILOG2_U64
|
2007-12-11 12:49:35 +08:00
|
|
|
def_bool n
|
2006-12-08 18:37:49 +08:00
|
|
|
|
2014-04-08 06:39:19 +08:00
|
|
|
config NO_IOPORT_MAP
|
2010-11-01 21:49:04 +08:00
|
|
|
def_bool !PCI
|
2012-05-21 17:19:18 +08:00
|
|
|
depends on !SH_CAYMAN && !SH_SH4202_MICRODEV && !SH_SHMIN && \
|
|
|
|
!SH_HP6XX && !SH_SOLUTION_ENGINE
|
2010-05-25 19:06:13 +08:00
|
|
|
|
2008-02-07 19:18:21 +08:00
|
|
|
config IO_TRAPPED
|
|
|
|
bool
|
|
|
|
|
2012-03-29 15:05:10 +08:00
|
|
|
config SWAP_IO_SPACE
|
|
|
|
bool
|
|
|
|
|
2009-10-27 09:35:02 +08:00
|
|
|
config DMA_COHERENT
|
|
|
|
bool
|
|
|
|
|
|
|
|
config DMA_NONCOHERENT
|
|
|
|
def_bool !DMA_COHERENT
|
2018-05-11 14:36:53 +08:00
|
|
|
select ARCH_HAS_SYNC_DMA_FOR_DEVICE
|
2009-10-27 09:35:02 +08:00
|
|
|
|
2015-04-15 06:46:02 +08:00
|
|
|
config PGTABLE_LEVELS
|
|
|
|
default 3 if X2TLB
|
|
|
|
default 2
|
|
|
|
|
2005-04-17 06:20:36 +08:00
|
|
|
menu "System type"
|
|
|
|
|
2007-11-08 17:38:14 +08:00
|
|
|
#
|
|
|
|
# Processor families
|
|
|
|
#
|
|
|
|
config CPU_SH2
|
|
|
|
bool
|
2014-08-20 21:39:22 +08:00
|
|
|
select SH_INTC
|
2007-11-08 17:38:14 +08:00
|
|
|
|
|
|
|
config CPU_SH2A
|
|
|
|
bool
|
|
|
|
select CPU_SH2
|
2010-11-04 11:32:24 +08:00
|
|
|
select UNCACHED_MAPPING
|
2007-11-08 17:38:14 +08:00
|
|
|
|
2016-03-18 07:09:37 +08:00
|
|
|
config CPU_J2
|
|
|
|
bool
|
|
|
|
select CPU_SH2
|
|
|
|
select OF
|
|
|
|
select OF_EARLY_FLATTREE
|
|
|
|
|
2007-11-08 17:38:14 +08:00
|
|
|
config CPU_SH3
|
|
|
|
bool
|
|
|
|
select CPU_HAS_INTEVT
|
|
|
|
select CPU_HAS_SR_RB
|
2014-08-20 21:39:22 +08:00
|
|
|
select SH_INTC
|
2014-02-20 19:54:47 +08:00
|
|
|
select SYS_SUPPORTS_SH_TMU
|
2007-11-08 17:38:14 +08: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 21:39:22 +08:00
|
|
|
select SH_INTC
|
2014-02-20 19:54:47 +08:00
|
|
|
select SYS_SUPPORTS_SH_TMU
|
2009-10-27 06:22:37 +08:00
|
|
|
select SYS_SUPPORTS_HUGETLBFS if MMU
|
2007-11-08 17:38:14 +08:00
|
|
|
|
|
|
|
config CPU_SH4A
|
|
|
|
bool
|
|
|
|
select CPU_SH4
|
|
|
|
|
|
|
|
config CPU_SH4AL_DSP
|
|
|
|
bool
|
|
|
|
select CPU_SH4A
|
|
|
|
select CPU_HAS_DSP
|
|
|
|
|
2007-11-21 14:58:01 +08:00
|
|
|
config CPU_SH5
|
|
|
|
bool
|
|
|
|
select CPU_HAS_FPU
|
2014-02-20 19:54:47 +08:00
|
|
|
select SYS_SUPPORTS_SH_TMU
|
2009-10-27 06:22:37 +08:00
|
|
|
select SYS_SUPPORTS_HUGETLBFS if MMU
|
2007-11-21 14:58:01 +08:00
|
|
|
|
2007-11-08 17:38:14 +08:00
|
|
|
config CPU_SHX2
|
|
|
|
bool
|
|
|
|
|
|
|
|
config CPU_SHX3
|
|
|
|
bool
|
2009-10-27 09:35:02 +08:00
|
|
|
select DMA_COHERENT
|
2010-05-11 14:24:04 +08:00
|
|
|
select SYS_SUPPORTS_SMP
|
|
|
|
select SYS_SUPPORTS_NUMA
|
2007-11-08 17:38:14 +08:00
|
|
|
|
2009-03-10 15:26:29 +08:00
|
|
|
config ARCH_SHMOBILE
|
|
|
|
bool
|
2009-03-13 23:23:04 +08:00
|
|
|
select ARCH_SUSPEND_POSSIBLE
|
2014-12-19 22:37:54 +08:00
|
|
|
select PM
|
2009-03-10 15:26:29 +08:00
|
|
|
|
2010-09-11 03:36:23 +08:00
|
|
|
config CPU_HAS_PMU
|
|
|
|
depends on CPU_SH4 || CPU_SH4A
|
|
|
|
default y
|
|
|
|
bool
|
|
|
|
|
2009-04-11 07:39:27 +08:00
|
|
|
if SUPERH32
|
|
|
|
|
2007-11-08 17:38:14 +08: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 19:54:47 +08:00
|
|
|
select SYS_SUPPORTS_SH_CMT
|
2007-11-08 17:38:14 +08:00
|
|
|
|
2016-03-18 07:09:37 +08:00
|
|
|
config CPU_SUBTYPE_J2
|
|
|
|
bool "Support J2 processor"
|
|
|
|
select CPU_J2
|
2016-02-16 02:36:13 +08:00
|
|
|
select SYS_SUPPORTS_SMP
|
|
|
|
select GENERIC_CLOCKEVENTS_BROADCAST if SMP
|
2016-03-18 07:09:37 +08:00
|
|
|
|
2007-11-08 17:38:14 +08:00
|
|
|
# SH-2A Processor Support
|
|
|
|
|
2008-11-28 21:48:20 +08:00
|
|
|
config CPU_SUBTYPE_SH7201
|
|
|
|
bool "Support SH7201 processor"
|
|
|
|
select CPU_SH2A
|
|
|
|
select CPU_HAS_FPU
|
2014-02-20 19:54:47 +08:00
|
|
|
select SYS_SUPPORTS_SH_MTU2
|
2008-11-28 21:48:20 +08:00
|
|
|
|
2007-11-26 17:17:21 +08:00
|
|
|
config CPU_SUBTYPE_SH7203
|
|
|
|
bool "Support SH7203 processor"
|
|
|
|
select CPU_SH2A
|
2007-11-26 19:38:36 +08:00
|
|
|
select CPU_HAS_FPU
|
2014-02-20 19:54:47 +08:00
|
|
|
select SYS_SUPPORTS_SH_CMT
|
|
|
|
select SYS_SUPPORTS_SH_MTU2
|
2012-12-16 06:51:05 +08:00
|
|
|
select PINCTRL
|
2007-11-26 17:17:21 +08:00
|
|
|
|
2007-11-08 17:38:14 +08:00
|
|
|
config CPU_SUBTYPE_SH7206
|
|
|
|
bool "Support SH7206 processor"
|
|
|
|
select CPU_SH2A
|
2014-02-20 19:54:47 +08:00
|
|
|
select SYS_SUPPORTS_SH_CMT
|
|
|
|
select SYS_SUPPORTS_SH_MTU2
|
2007-11-08 17:38:14 +08:00
|
|
|
|
2007-11-26 18:54:02 +08:00
|
|
|
config CPU_SUBTYPE_SH7263
|
|
|
|
bool "Support SH7263 processor"
|
|
|
|
select CPU_SH2A
|
2007-11-26 19:38:36 +08:00
|
|
|
select CPU_HAS_FPU
|
2014-02-20 19:54:47 +08:00
|
|
|
select SYS_SUPPORTS_SH_CMT
|
|
|
|
select SYS_SUPPORTS_SH_MTU2
|
2007-11-26 18:54:02 +08:00
|
|
|
|
2012-05-09 14:59:27 +08:00
|
|
|
config CPU_SUBTYPE_SH7264
|
|
|
|
bool "Support SH7264 processor"
|
|
|
|
select CPU_SH2A
|
|
|
|
select CPU_HAS_FPU
|
2014-02-20 19:54:47 +08:00
|
|
|
select SYS_SUPPORTS_SH_CMT
|
|
|
|
select SYS_SUPPORTS_SH_MTU2
|
2012-12-16 06:51:06 +08:00
|
|
|
select PINCTRL
|
2012-05-09 14:59:27 +08:00
|
|
|
|
2012-05-10 16:26:52 +08:00
|
|
|
config CPU_SUBTYPE_SH7269
|
|
|
|
bool "Support SH7269 processor"
|
|
|
|
select CPU_SH2A
|
|
|
|
select CPU_HAS_FPU
|
2014-02-20 19:54:47 +08:00
|
|
|
select SYS_SUPPORTS_SH_CMT
|
|
|
|
select SYS_SUPPORTS_SH_MTU2
|
2012-12-16 06:51:07 +08:00
|
|
|
select PINCTRL
|
2012-05-10 16:26:52 +08:00
|
|
|
|
2008-03-13 11:52:44 +08:00
|
|
|
config CPU_SUBTYPE_MXG
|
|
|
|
bool "Support MX-G processor"
|
|
|
|
select CPU_SH2A
|
2014-02-20 19:54:47 +08:00
|
|
|
select SYS_SUPPORTS_SH_MTU2
|
2008-03-13 11:52:44 +08:00
|
|
|
help
|
|
|
|
Select MX-G if running on an R8A03022BG part.
|
|
|
|
|
2007-11-08 17:38:14 +08: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 19:54:47 +08:00
|
|
|
select SYS_SUPPORTS_SH_CMT
|
2011-06-30 14:04:38 +08:00
|
|
|
select USB_OHCI_SH if USB_OHCI_HCD
|
2012-12-16 06:51:08 +08:00
|
|
|
select PINCTRL
|
2007-11-08 17:38:14 +08:00
|
|
|
help
|
|
|
|
Select SH7720 if you have a SH3-DSP SH7720 CPU.
|
|
|
|
|
2007-12-26 10:45:06 +08:00
|
|
|
config CPU_SUBTYPE_SH7721
|
|
|
|
bool "Support SH7721 processor"
|
|
|
|
select CPU_SH3
|
|
|
|
select CPU_HAS_DSP
|
2014-02-20 19:54:47 +08:00
|
|
|
select SYS_SUPPORTS_SH_CMT
|
2011-06-30 14:04:38 +08:00
|
|
|
select USB_OHCI_SH if USB_OHCI_HCD
|
2007-12-26 10:45:06 +08:00
|
|
|
help
|
|
|
|
Select SH7721 if you have a SH3-DSP SH7721 CPU.
|
|
|
|
|
2007-11-08 17:38:14 +08: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 16:56:18 +08:00
|
|
|
config CPU_SUBTYPE_SH7723
|
|
|
|
bool "Support SH7723 processor"
|
|
|
|
select CPU_SH4A
|
|
|
|
select CPU_SHX2
|
2009-03-10 15:26:29 +08:00
|
|
|
select ARCH_SHMOBILE
|
2008-04-09 16:56:18 +08:00
|
|
|
select ARCH_SPARSEMEM_ENABLE
|
2014-02-20 19:54:47 +08:00
|
|
|
select SYS_SUPPORTS_SH_CMT
|
2012-12-16 06:51:10 +08:00
|
|
|
select PINCTRL
|
2008-04-09 16:56:18 +08:00
|
|
|
help
|
|
|
|
Select SH7723 if you have an SH-MobileR2 CPU.
|
|
|
|
|
2009-04-16 13:40:56 +08:00
|
|
|
config CPU_SUBTYPE_SH7724
|
|
|
|
bool "Support SH7724 processor"
|
|
|
|
select CPU_SH4A
|
|
|
|
select CPU_SHX2
|
2009-04-16 14:43:42 +08:00
|
|
|
select ARCH_SHMOBILE
|
2009-04-16 13:40:56 +08:00
|
|
|
select ARCH_SPARSEMEM_ENABLE
|
2014-02-20 19:54:47 +08:00
|
|
|
select SYS_SUPPORTS_SH_CMT
|
2012-12-16 06:51:11 +08:00
|
|
|
select PINCTRL
|
2009-04-16 13:40:56 +08:00
|
|
|
help
|
|
|
|
Select SH7724 if you have an SH-MobileR2R CPU.
|
|
|
|
|
2012-04-12 14:45:32 +08:00
|
|
|
config CPU_SUBTYPE_SH7734
|
|
|
|
bool "Support SH7734 processor"
|
|
|
|
select CPU_SH4A
|
|
|
|
select CPU_SHX2
|
2012-12-16 06:51:12 +08:00
|
|
|
select PINCTRL
|
2012-04-12 14:45:32 +08:00
|
|
|
help
|
|
|
|
Select SH7734 if you have a SH4A SH7734 CPU.
|
|
|
|
|
2009-08-21 15:30:28 +08:00
|
|
|
config CPU_SUBTYPE_SH7757
|
|
|
|
bool "Support SH7757 processor"
|
|
|
|
select CPU_SH4A
|
|
|
|
select CPU_SHX2
|
2012-12-16 06:51:13 +08:00
|
|
|
select PINCTRL
|
2009-08-21 15:30:28 +08:00
|
|
|
help
|
|
|
|
Select SH7757 if you have a SH4A SH7757 CPU.
|
|
|
|
|
2008-01-07 13:40:07 +08:00
|
|
|
config CPU_SUBTYPE_SH7763
|
|
|
|
bool "Support SH7763 processor"
|
|
|
|
select CPU_SH4A
|
2011-06-30 14:04:38 +08:00
|
|
|
select USB_OHCI_SH if USB_OHCI_HCD
|
2008-01-07 13:40:07 +08:00
|
|
|
help
|
|
|
|
Select SH7763 if you have a SH4A SH7763(R5S77631) CPU.
|
|
|
|
|
2007-11-08 17:38:14 +08: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 14:40:25 +08:00
|
|
|
select ARCH_SPARSEMEM_ENABLE
|
|
|
|
select SYS_SUPPORTS_NUMA
|
2012-12-16 06:51:14 +08:00
|
|
|
select PINCTRL
|
2009-03-03 14:40:25 +08:00
|
|
|
|
|
|
|
config CPU_SUBTYPE_SH7786
|
|
|
|
bool "Support SH7786 processor"
|
|
|
|
select CPU_SH4A
|
2009-03-03 14:57:02 +08:00
|
|
|
select CPU_SHX3
|
2009-03-17 16:49:49 +08:00
|
|
|
select CPU_HAS_PTEAEX
|
2009-06-19 15:00:00 +08:00
|
|
|
select GENERIC_CLOCKEVENTS_BROADCAST if SMP
|
2011-06-30 14:04:38 +08:00
|
|
|
select USB_OHCI_SH if USB_OHCI_HCD
|
|
|
|
select USB_EHCI_SH if USB_EHCI_HCD
|
2012-12-16 06:51:15 +08:00
|
|
|
select PINCTRL
|
2007-11-08 17:38:14 +08:00
|
|
|
|
|
|
|
config CPU_SUBTYPE_SHX3
|
|
|
|
bool "Support SH-X3 processor"
|
|
|
|
select CPU_SH4A
|
|
|
|
select CPU_SHX3
|
2008-09-05 14:36:39 +08:00
|
|
|
select GENERIC_CLOCKEVENTS_BROADCAST if SMP
|
2016-04-19 19:26:08 +08:00
|
|
|
select GPIOLIB
|
2012-12-16 06:51:16 +08:00
|
|
|
select PINCTRL
|
2007-11-08 17:38:14 +08:00
|
|
|
|
|
|
|
# SH4AL-DSP Processor Support
|
|
|
|
|
|
|
|
config CPU_SUBTYPE_SH7343
|
|
|
|
bool "Support SH7343 processor"
|
|
|
|
select CPU_SH4AL_DSP
|
2009-03-10 15:26:29 +08:00
|
|
|
select ARCH_SHMOBILE
|
2014-02-20 19:54:47 +08:00
|
|
|
select SYS_SUPPORTS_SH_CMT
|
2007-11-08 17:38:14 +08:00
|
|
|
|
|
|
|
config CPU_SUBTYPE_SH7722
|
|
|
|
bool "Support SH7722 processor"
|
|
|
|
select CPU_SH4AL_DSP
|
|
|
|
select CPU_SHX2
|
2009-03-10 15:26:29 +08:00
|
|
|
select ARCH_SHMOBILE
|
2007-11-08 17:38:14 +08:00
|
|
|
select ARCH_SPARSEMEM_ENABLE
|
|
|
|
select SYS_SUPPORTS_NUMA
|
2014-02-20 19:54:47 +08:00
|
|
|
select SYS_SUPPORTS_SH_CMT
|
2012-12-16 06:51:09 +08:00
|
|
|
select PINCTRL
|
2008-02-08 16:31:24 +08:00
|
|
|
|
|
|
|
config CPU_SUBTYPE_SH7366
|
|
|
|
bool "Support SH7366 processor"
|
|
|
|
select CPU_SH4AL_DSP
|
|
|
|
select CPU_SHX2
|
2009-03-10 15:26:29 +08:00
|
|
|
select ARCH_SHMOBILE
|
2008-02-08 16:31:24 +08:00
|
|
|
select ARCH_SPARSEMEM_ENABLE
|
|
|
|
select SYS_SUPPORTS_NUMA
|
2014-02-20 19:54:47 +08:00
|
|
|
select SYS_SUPPORTS_SH_CMT
|
2007-11-08 17:38:14 +08:00
|
|
|
|
2009-04-11 07:39:27 +08:00
|
|
|
endchoice
|
|
|
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
if SUPERH64
|
|
|
|
|
|
|
|
choice
|
|
|
|
prompt "Processor sub-type selection"
|
|
|
|
|
2007-11-21 14:58:01 +08: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 14:30:54 +08:00
|
|
|
select CPU_SH5
|
2007-11-21 14:58:01 +08:00
|
|
|
|
2007-11-08 17:38:14 +08:00
|
|
|
endchoice
|
|
|
|
|
2009-04-11 07:39:27 +08:00
|
|
|
endif
|
|
|
|
|
2007-05-14 16:29:12 +08:00
|
|
|
source "arch/sh/mm/Kconfig"
|
2008-07-29 20:41:37 +08:00
|
|
|
|
2007-11-09 12:45:42 +08:00
|
|
|
source "arch/sh/Kconfig.cpu"
|
2007-05-14 16:29:12 +08:00
|
|
|
|
2008-07-29 20:41:37 +08:00
|
|
|
source "arch/sh/boards/Kconfig"
|
2007-03-12 13:38:59 +08:00
|
|
|
|
|
|
|
menu "Timer and clock configuration"
|
|
|
|
|
2006-01-17 14:14:19 +08:00
|
|
|
config SH_PCLK_FREQ
|
|
|
|
int "Peripheral clock frequency (in Hz)"
|
2009-12-29 10:09:30 +08:00
|
|
|
depends on SH_CLK_CPG_LEGACY
|
2006-11-05 14:40:13 +08:00
|
|
|
default "31250000" if CPU_SUBTYPE_SH7619
|
2009-12-29 10:09:30 +08: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 18:37:14 +08:00
|
|
|
CPU_SUBTYPE_MXG
|
2007-05-15 15:25:47 +08:00
|
|
|
default "60000000" if CPU_SUBTYPE_SH7751 || CPU_SUBTYPE_SH7751R
|
2006-01-17 14:14:19 +08:00
|
|
|
default "66000000" if CPU_SUBTYPE_SH4_202
|
2007-05-15 15:25:47 +08:00
|
|
|
default "50000000"
|
2005-04-17 06:20:36 +08:00
|
|
|
help
|
2006-01-17 14:14:19 +08: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 06:20:36 +08:00
|
|
|
|
2009-05-22 13:00:34 +08:00
|
|
|
config SH_CLK_CPG
|
|
|
|
def_bool y
|
|
|
|
|
2009-05-13 16:38:11 +08:00
|
|
|
config SH_CLK_CPG_LEGACY
|
2009-05-22 13:00:34 +08:00
|
|
|
depends on SH_CLK_CPG
|
2010-01-19 18:37:14 +08:00
|
|
|
def_bool y if !CPU_SUBTYPE_SH7785 && !ARCH_SHMOBILE && \
|
2012-05-09 14:59:27 +08:00
|
|
|
!CPU_SHX3 && !CPU_SUBTYPE_SH7757 && \
|
2012-05-10 16:20:56 +08:00
|
|
|
!CPU_SUBTYPE_SH7734 && !CPU_SUBTYPE_SH7264 && \
|
|
|
|
!CPU_SUBTYPE_SH7269
|
2009-05-13 16:38:11 +08:00
|
|
|
|
2007-03-12 13:38:59 +08:00
|
|
|
endmenu
|
|
|
|
|
2006-01-17 14:14:19 +08:00
|
|
|
menu "CPU Frequency scaling"
|
|
|
|
source "drivers/cpufreq/Kconfig"
|
|
|
|
endmenu
|
|
|
|
|
2006-11-24 10:22:57 +08:00
|
|
|
source "arch/sh/drivers/Kconfig"
|
|
|
|
|
2006-01-17 14:14:19 +08:00
|
|
|
endmenu
|
2005-04-17 06:20:36 +08:00
|
|
|
|
2006-01-17 14:14:19 +08:00
|
|
|
menu "Kernel features"
|
|
|
|
|
2018-12-11 19:01:04 +08:00
|
|
|
source "kernel/Kconfig.hz"
|
2006-09-27 17:08:33 +08:00
|
|
|
|
2006-01-17 14:14:19 +08:00
|
|
|
config KEXEC
|
|
|
|
bool "kexec system call (EXPERIMENTAL)"
|
2013-01-17 10:53:26 +08:00
|
|
|
depends on SUPERH32 && MMU
|
2015-09-10 06:38:55 +08:00
|
|
|
select KEXEC_CORE
|
2005-04-17 06:20:36 +08:00
|
|
|
help
|
2006-01-17 14:14:19 +08: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 13:32:47 +08:00
|
|
|
but it is independent of the system firmware. And like a reboot
|
2006-01-17 14:14:19 +08:00
|
|
|
you can start any kernel with it, not just Linux.
|
|
|
|
|
2006-06-29 13:32:47 +08:00
|
|
|
The name comes from the similarity to the exec system call.
|
2006-01-17 14:14:19 +08: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-21 03:38:03 +08: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 14:14:19 +08:00
|
|
|
|
2007-04-27 10:25:57 +08:00
|
|
|
config CRASH_DUMP
|
|
|
|
bool "kernel crash dumps (EXPERIMENTAL)"
|
2013-01-17 10:53:26 +08:00
|
|
|
depends on SUPERH32 && BROKEN_ON_SMP
|
2007-04-27 10:25:57 +08: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 19:13:00 +08:00
|
|
|
PHYSICAL_START.
|
2007-04-27 10:25:57 +08:00
|
|
|
|
2019-06-14 02:21:39 +08:00
|
|
|
For more details see Documentation/admin-guide/kdump/kdump.rst
|
2007-04-27 10:25:57 +08:00
|
|
|
|
2009-03-18 16:51:29 +08:00
|
|
|
config KEXEC_JUMP
|
|
|
|
bool "kexec jump (EXPERIMENTAL)"
|
2013-01-17 10:53:26 +08:00
|
|
|
depends on SUPERH32 && KEXEC && HIBERNATION
|
2009-03-18 16:51:29 +08:00
|
|
|
help
|
|
|
|
Jump between original kernel and kexeced kernel and invoke
|
|
|
|
code via KEXEC
|
|
|
|
|
2011-09-15 19:13:00 +08: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 14:30:52 +08: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 06:20:36 +08:00
|
|
|
config SMP
|
|
|
|
bool "Symmetric multi-processing support"
|
2007-06-11 14:32:07 +08:00
|
|
|
depends on SYS_SUPPORTS_SMP
|
2005-04-17 06:20:36 +08:00
|
|
|
---help---
|
|
|
|
This enables support for systems with more than one CPU. If you have
|
2014-01-24 07:55:29 +08:00
|
|
|
a system with only one CPU, say N. If you have a system with more
|
|
|
|
than one CPU, say Y.
|
2005-04-17 06:20:36 +08:00
|
|
|
|
2014-01-24 07:55:29 +08:00
|
|
|
If you say N here, the kernel will run on uni- and multiprocessor
|
2005-04-17 06:20:36 +08: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 07:55:29 +08:00
|
|
|
uniprocessor machines. On a uniprocessor machine, the kernel
|
2005-04-17 06:20:36 +08: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.
|
|
|
|
|
2019-06-28 01:56:51 +08:00
|
|
|
See also <file:Documentation/admin-guide/lockup-watchdogs.rst> and the SMP-HOWTO
|
2008-02-03 21:50:21 +08:00
|
|
|
available at <http://www.tldp.org/docs.html#howto>.
|
2005-04-17 06:20:36 +08: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 15:00:00 +08:00
|
|
|
default "4" if CPU_SUBTYPE_SHX3
|
2005-04-17 06:20:36 +08: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 18:08:55 +08:00
|
|
|
config HOTPLUG_CPU
|
|
|
|
bool "Support for hot-pluggable CPUs (EXPERIMENTAL)"
|
2013-05-21 11:49:35 +08:00
|
|
|
depends on SMP
|
2010-04-26 18:08:55 +08:00
|
|
|
help
|
|
|
|
Say Y here to experiment with turning CPUs off and on. CPUs
|
|
|
|
can be controlled through /sys/devices/system/cpu.
|
|
|
|
|
2007-09-28 15:04:49 +08:00
|
|
|
config GUSA
|
|
|
|
def_bool y
|
2007-11-30 15:12:36 +08:00
|
|
|
depends on !SMP && SUPERH32
|
2007-09-28 15:04:49 +08: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 15:12:36 +08: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 18:12:25 +08:00
|
|
|
atomic operations using a software implementation of load-locked/
|
2007-11-30 15:12:36 +08: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 18:12:25 +08:00
|
|
|
disabling interrupts around the atomic sequence.
|
2007-11-30 15:12:36 +08:00
|
|
|
|
2010-09-11 03:36:23 +08: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 13:43:03 +08:00
|
|
|
source "drivers/sh/Kconfig"
|
|
|
|
|
2006-01-17 14:14:19 +08:00
|
|
|
endmenu
|
2005-04-17 06:20:36 +08:00
|
|
|
|
2006-01-17 14:14:19 +08:00
|
|
|
menu "Boot options"
|
2005-04-17 06:20:36 +08:00
|
|
|
|
2016-03-26 09:24:30 +08:00
|
|
|
config USE_BUILTIN_DTB
|
|
|
|
bool "Use builtin DTB"
|
|
|
|
default n
|
|
|
|
depends on SH_DEVICE_TREE
|
|
|
|
help
|
|
|
|
Link a device tree blob for particular hardware into the kernel,
|
|
|
|
suppressing use of the DTB pointer provided by the bootloader.
|
|
|
|
This option should only be used with legacy bootloaders that are
|
|
|
|
not capable of providing a DTB to the kernel, or for experimental
|
|
|
|
hardware without stable device tree bindings.
|
|
|
|
|
|
|
|
config BUILTIN_DTB_SOURCE
|
|
|
|
string "Source file for builtin DTB"
|
|
|
|
default ""
|
|
|
|
depends on USE_BUILTIN_DTB
|
|
|
|
help
|
|
|
|
Base name (without suffix, relative to arch/sh/boot/dts) for the
|
|
|
|
a DTS file that will be used to produce the DTB linked into the
|
|
|
|
kernel.
|
|
|
|
|
2006-01-17 14:14:19 +08:00
|
|
|
config ZERO_PAGE_OFFSET
|
2009-05-10 00:23:25 +08: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 14:29:19 +08:00
|
|
|
default "0x00002000" if PAGE_SIZE_8KB
|
2006-01-17 14:14:19 +08:00
|
|
|
default "0x00001000"
|
2005-04-17 06:20:36 +08:00
|
|
|
help
|
2006-01-17 14:14:19 +08:00
|
|
|
This sets the default offset of zero page.
|
2005-04-17 06:20:36 +08:00
|
|
|
|
2006-01-17 14:14:19 +08:00
|
|
|
config BOOT_LINK_OFFSET
|
2009-05-10 00:23:25 +08:00
|
|
|
hex
|
|
|
|
default "0x00210000" if SH_SHMIN
|
2009-05-09 23:54:39 +08:00
|
|
|
default "0x00400000" if SH_CAYMAN
|
2009-05-10 00:23:25 +08: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 14:14:19 +08: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 06:20:36 +08:00
|
|
|
|
2009-05-10 00:23:25 +08: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 22:43:15 +08:00
|
|
|
config ROMIMAGE_MMCIF
|
|
|
|
bool "Include MMCIF loader in romImage (EXPERIMENTAL)"
|
2013-01-17 10:53:26 +08:00
|
|
|
depends on CPU_SUBTYPE_SH7724
|
2010-05-18 22:43:15 +08: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 15:25:38 +08: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 06:20:36 +08:00
|
|
|
|
2006-01-17 14:14:19 +08:00
|
|
|
config CMDLINE
|
2009-08-24 15:25:38 +08:00
|
|
|
string "Kernel command line arguments string"
|
|
|
|
depends on CMDLINE_OVERWRITE || CMDLINE_EXTEND
|
2006-01-17 14:14:19 +08:00
|
|
|
default "console=ttySC1,115200"
|
2005-04-17 06:20:36 +08:00
|
|
|
|
|
|
|
endmenu
|
|
|
|
|
2006-01-17 14:14:19 +08:00
|
|
|
menu "Bus options"
|
2005-04-17 06:20:36 +08:00
|
|
|
|
2006-01-17 14:14:19 +08:00
|
|
|
config SUPERHYWAY
|
|
|
|
tristate "SuperHyway Bus support"
|
|
|
|
depends on CPU_SUBTYPE_SH4_202
|
2005-04-17 06:20:36 +08:00
|
|
|
|
2007-09-21 14:55:55 +08:00
|
|
|
config MAPLE
|
2009-01-09 14:12:30 +08: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 14:55:55 +08:00
|
|
|
|
2005-04-17 06:20:36 +08:00
|
|
|
endmenu
|
|
|
|
|
2006-09-27 15:20:22 +08:00
|
|
|
menu "Power management options (EXPERIMENTAL)"
|
2007-12-08 09:14:00 +08:00
|
|
|
|
2008-12-04 21:45:20 +08:00
|
|
|
source "kernel/power/Kconfig"
|
|
|
|
|
|
|
|
source "drivers/cpuidle/Kconfig"
|
2006-09-27 15:20:22 +08:00
|
|
|
|
|
|
|
endmenu
|