.. | .. |
---|
| 1 | +# SPDX-License-Identifier: GPL-2.0-only |
---|
1 | 2 | # |
---|
2 | 3 | # Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) |
---|
3 | | -# |
---|
4 | | -# This program is free software; you can redistribute it and/or modify |
---|
5 | | -# it under the terms of the GNU General Public License version 2 as |
---|
6 | | -# published by the Free Software Foundation. |
---|
7 | 4 | # |
---|
8 | 5 | |
---|
9 | 6 | config ARC |
---|
10 | 7 | def_bool y |
---|
11 | 8 | select ARC_TIMERS |
---|
| 9 | + select ARCH_HAS_DEBUG_VM_PGTABLE |
---|
| 10 | + select ARCH_HAS_DMA_PREP_COHERENT |
---|
12 | 11 | select ARCH_HAS_PTE_SPECIAL |
---|
| 12 | + select ARCH_HAS_SETUP_DMA_OPS |
---|
13 | 13 | select ARCH_HAS_SYNC_DMA_FOR_CPU |
---|
14 | 14 | select ARCH_HAS_SYNC_DMA_FOR_DEVICE |
---|
15 | | - select ARCH_HAS_SG_CHAIN |
---|
16 | 15 | select ARCH_SUPPORTS_ATOMIC_RMW if ARC_HAS_LLSC |
---|
17 | | - select BUILDTIME_EXTABLE_SORT |
---|
| 16 | + select ARCH_32BIT_OFF_T |
---|
| 17 | + select BUILDTIME_TABLE_SORT |
---|
18 | 18 | select CLONE_BACKWARDS |
---|
19 | 19 | select COMMON_CLK |
---|
20 | | - select DMA_NONCOHERENT_OPS |
---|
21 | | - select DMA_NONCOHERENT_MMAP |
---|
| 20 | + select DMA_DIRECT_REMAP |
---|
22 | 21 | select GENERIC_ATOMIC64 if !ISA_ARCV2 || !(ARC_HAS_LL64 && ARC_HAS_LLSC) |
---|
23 | 22 | select GENERIC_CLOCKEVENTS |
---|
24 | 23 | select GENERIC_FIND_FIRST_BIT |
---|
.. | .. |
---|
31 | 30 | select HAVE_ARCH_KGDB |
---|
32 | 31 | select HAVE_ARCH_TRACEHOOK |
---|
33 | 32 | select HAVE_DEBUG_STACKOVERFLOW |
---|
| 33 | + select HAVE_DEBUG_KMEMLEAK |
---|
34 | 34 | select HAVE_FUTEX_CMPXCHG if FUTEX |
---|
35 | | - select HAVE_GENERIC_DMA_COHERENT |
---|
36 | 35 | select HAVE_IOREMAP_PROT |
---|
37 | 36 | select HAVE_KERNEL_GZIP |
---|
38 | 37 | select HAVE_KERNEL_LZMA |
---|
39 | 38 | select HAVE_KPROBES |
---|
40 | 39 | select HAVE_KRETPROBES |
---|
41 | | - select HAVE_MEMBLOCK |
---|
42 | 40 | select HAVE_MOD_ARCH_SPECIFIC |
---|
43 | 41 | select HAVE_OPROFILE |
---|
44 | 42 | select HAVE_PERF_EVENTS |
---|
45 | 43 | select HANDLE_DOMAIN_IRQ |
---|
46 | 44 | select IRQ_DOMAIN |
---|
47 | 45 | select MODULES_USE_ELF_RELA |
---|
48 | | - select NO_BOOTMEM |
---|
49 | 46 | select OF |
---|
50 | 47 | select OF_EARLY_FLATTREE |
---|
51 | | - select OF_RESERVED_MEM |
---|
| 48 | + select PCI_SYSCALL if PCI |
---|
52 | 49 | select PERF_USE_VMALLOC if ARC_CACHE_VIPT_ALIASING |
---|
| 50 | + select HAVE_ARCH_JUMP_LABEL if ISA_ARCV2 && !CPU_ENDIAN_BE32 |
---|
| 51 | + select SET_FS |
---|
53 | 52 | |
---|
54 | 53 | config ARCH_HAS_CACHE_LINE_SIZE |
---|
55 | 54 | def_bool y |
---|
56 | | - |
---|
57 | | -config MIGHT_HAVE_PCI |
---|
58 | | - bool |
---|
59 | 55 | |
---|
60 | 56 | config TRACE_IRQFLAGS_SUPPORT |
---|
61 | 57 | def_bool y |
---|
.. | .. |
---|
67 | 63 | def_bool y |
---|
68 | 64 | |
---|
69 | 65 | config GENERIC_CSUM |
---|
70 | | - def_bool y |
---|
71 | | - |
---|
72 | | -config RWSEM_GENERIC_SPINLOCK |
---|
73 | 66 | def_bool y |
---|
74 | 67 | |
---|
75 | 68 | config ARCH_DISCONTIGMEM_ENABLE |
---|
.. | .. |
---|
104 | 97 | |
---|
105 | 98 | source "arch/arc/plat-tb10x/Kconfig" |
---|
106 | 99 | source "arch/arc/plat-axs10x/Kconfig" |
---|
107 | | -#New platform adds here |
---|
108 | | -source "arch/arc/plat-eznps/Kconfig" |
---|
109 | 100 | source "arch/arc/plat-hsdk/Kconfig" |
---|
110 | 101 | |
---|
111 | 102 | endmenu |
---|
.. | .. |
---|
150 | 141 | Support for ARC770 core introduced with Rel 4.10 (Summer 2011) |
---|
151 | 142 | This core has a bunch of cool new features: |
---|
152 | 143 | -MMU-v3: Variable Page Sz (4k, 8k, 16k), bigger J-TLB (128x4) |
---|
153 | | - Shared Address Spaces (for sharing TLB entries in MMU) |
---|
| 144 | + Shared Address Spaces (for sharing TLB entries in MMU) |
---|
154 | 145 | -Caches: New Prog Model, Region Flush |
---|
155 | 146 | -Insns: endian swap, load-locked/store-conditional, time-stamp-ctr |
---|
156 | 147 | |
---|
157 | | -endif #ISA_ARCOMPACT |
---|
| 148 | +endif #ISA_ARCOMPACT |
---|
158 | 149 | |
---|
159 | 150 | config ARC_CPU_HS |
---|
160 | 151 | bool "ARC-HS" |
---|
.. | .. |
---|
162 | 153 | help |
---|
163 | 154 | Support for ARC HS38x Cores based on ARCv2 ISA |
---|
164 | 155 | The notable features are: |
---|
165 | | - - SMP configurations of upto 4 core with coherency |
---|
| 156 | + - SMP configurations of up to 4 cores with coherency |
---|
166 | 157 | - Optional L2 Cache and IO-Coherency |
---|
167 | 158 | - Revised Interrupt Architecture (multiple priorites, reg banks, |
---|
168 | 159 | auto stack switch, auto regfile save/restore) |
---|
.. | .. |
---|
177 | 168 | |
---|
178 | 169 | endchoice |
---|
179 | 170 | |
---|
| 171 | +config ARC_TUNE_MCPU |
---|
| 172 | + string "Override default -mcpu compiler flag" |
---|
| 173 | + default "" |
---|
| 174 | + help |
---|
| 175 | + Override default -mcpu=xxx compiler flag (which is set depending on |
---|
| 176 | + the ISA version) with the specified value. |
---|
| 177 | + NOTE: If specified flag isn't supported by current compiler the |
---|
| 178 | + ISA default value will be used as a fallback. |
---|
| 179 | + |
---|
180 | 180 | config CPU_BIG_ENDIAN |
---|
181 | 181 | bool "Enable Big Endian Mode" |
---|
182 | | - default n |
---|
183 | 182 | help |
---|
184 | 183 | Build kernel for Big Endian Mode of ARC CPU |
---|
185 | 184 | |
---|
186 | 185 | config SMP |
---|
187 | 186 | bool "Symmetric Multi-Processing" |
---|
188 | | - default n |
---|
189 | 187 | select ARC_MCIP if ISA_ARCV2 |
---|
190 | 188 | help |
---|
191 | 189 | This enables support for systems with more than one CPU. |
---|
.. | .. |
---|
202 | 200 | help |
---|
203 | 201 | In SMP configuration cores can be configured as Halt-on-reset |
---|
204 | 202 | or they could all start at same time. For Halt-on-reset, non |
---|
205 | | - masters are parked until Master kicks them so they can start of |
---|
| 203 | + masters are parked until Master kicks them so they can start off |
---|
206 | 204 | at designated entry point. For other case, all jump to common |
---|
207 | 205 | entry point and spin wait for Master's signal. |
---|
208 | 206 | |
---|
209 | | -endif #SMP |
---|
| 207 | +endif #SMP |
---|
210 | 208 | |
---|
211 | 209 | config ARC_MCIP |
---|
212 | 210 | bool "ARConnect Multicore IP (MCIP) Support " |
---|
.. | .. |
---|
256 | 254 | config ARC_CACHE_VIPT_ALIASING |
---|
257 | 255 | bool "Support VIPT Aliasing D$" |
---|
258 | 256 | depends on ARC_HAS_DCACHE && ISA_ARCOMPACT |
---|
259 | | - default n |
---|
260 | 257 | |
---|
261 | | -endif #ARC_CACHE |
---|
| 258 | +endif #ARC_CACHE |
---|
262 | 259 | |
---|
263 | 260 | config ARC_HAS_ICCM |
---|
264 | 261 | bool "Use ICCM" |
---|
265 | 262 | help |
---|
266 | 263 | Single Cycle RAMS to store Fast Path Code |
---|
267 | | - default n |
---|
268 | 264 | |
---|
269 | 265 | config ARC_ICCM_SZ |
---|
270 | 266 | int "ICCM Size in KB" |
---|
.. | .. |
---|
275 | 271 | bool "Use DCCM" |
---|
276 | 272 | help |
---|
277 | 273 | Single Cycle RAMS to store Fast Path Data |
---|
278 | | - default n |
---|
279 | 274 | |
---|
280 | 275 | config ARC_DCCM_SZ |
---|
281 | 276 | int "DCCM Size in KB" |
---|
.. | .. |
---|
360 | 355 | default "0" if !DISCONTIGMEM |
---|
361 | 356 | default "1" if DISCONTIGMEM |
---|
362 | 357 | depends on NEED_MULTIPLE_NODES |
---|
363 | | - ---help--- |
---|
| 358 | + help |
---|
364 | 359 | Accessing memory beyond 1GB (with or w/o PAE) requires 2 memory |
---|
365 | 360 | zones. |
---|
366 | 361 | |
---|
367 | | -if ISA_ARCOMPACT |
---|
368 | | - |
---|
369 | 362 | config ARC_COMPACT_IRQ_LEVELS |
---|
| 363 | + depends on ISA_ARCOMPACT |
---|
370 | 364 | bool "Setup Timer IRQ as high Priority" |
---|
371 | | - default n |
---|
372 | 365 | # if SMP, LV2 enabled ONLY if ARC implementation has LV2 re-entrancy |
---|
373 | 366 | depends on !SMP |
---|
374 | 367 | |
---|
375 | 368 | config ARC_FPU_SAVE_RESTORE |
---|
376 | 369 | bool "Enable FPU state persistence across context switch" |
---|
377 | | - default n |
---|
378 | 370 | help |
---|
379 | | - Double Precision Floating Point unit had dedicated regs which |
---|
380 | | - need to be saved/restored across context-switch. |
---|
381 | | - Note that ARC FPU is overly simplistic, unlike say x86, which has |
---|
382 | | - hardware pieces to allow software to conditionally save/restore, |
---|
383 | | - based on actual usage of FPU by a task. Thus our implemn does |
---|
384 | | - this for all tasks in system. |
---|
385 | | - |
---|
386 | | -endif #ISA_ARCOMPACT |
---|
| 371 | + ARCompact FPU has internal registers to assist with Double precision |
---|
| 372 | + Floating Point operations. There are control and stauts registers |
---|
| 373 | + for floating point exceptions and rounding modes. These are |
---|
| 374 | + preserved across task context switch when enabled. |
---|
387 | 375 | |
---|
388 | 376 | config ARC_CANT_LLSC |
---|
389 | 377 | def_bool n |
---|
.. | .. |
---|
399 | 387 | |
---|
400 | 388 | if ISA_ARCV2 |
---|
401 | 389 | |
---|
| 390 | +config ARC_USE_UNALIGNED_MEM_ACCESS |
---|
| 391 | + bool "Enable unaligned access in HW" |
---|
| 392 | + default y |
---|
| 393 | + select HAVE_EFFICIENT_UNALIGNED_ACCESS |
---|
| 394 | + help |
---|
| 395 | + The ARC HS architecture supports unaligned memory access |
---|
| 396 | + which is disabled by default. Enable unaligned access in |
---|
| 397 | + hardware and use software to use it |
---|
| 398 | + |
---|
402 | 399 | config ARC_HAS_LL64 |
---|
403 | 400 | bool "Insn: 64bit LDD/STD" |
---|
404 | 401 | help |
---|
.. | .. |
---|
412 | 409 | default y |
---|
413 | 410 | |
---|
414 | 411 | config ARC_HAS_ACCL_REGS |
---|
415 | | - bool "Reg Pair ACCL:ACCH (FPU and/or MPY > 6)" |
---|
| 412 | + bool "Reg Pair ACCL:ACCH (FPU and/or MPY > 6 and/or DSP)" |
---|
416 | 413 | default y |
---|
417 | 414 | help |
---|
418 | 415 | Depending on the configuration, CPU can contain accumulator reg-pair |
---|
419 | 416 | (also referred to as r58:r59). These can also be used by gcc as GPR so |
---|
420 | 417 | kernel needs to save/restore per process |
---|
| 418 | + |
---|
| 419 | +config ARC_DSP_HANDLED |
---|
| 420 | + def_bool n |
---|
| 421 | + |
---|
| 422 | +config ARC_DSP_SAVE_RESTORE_REGS |
---|
| 423 | + def_bool n |
---|
| 424 | + |
---|
| 425 | +choice |
---|
| 426 | + prompt "DSP support" |
---|
| 427 | + default ARC_DSP_NONE |
---|
| 428 | + help |
---|
| 429 | + Depending on the configuration, CPU can contain DSP registers |
---|
| 430 | + (ACC0_GLO, ACC0_GHI, DSP_BFLY0, DSP_CTRL, DSP_FFT_CTRL). |
---|
| 431 | + Bellow is options describing how to handle these registers in |
---|
| 432 | + interrupt entry / exit and in context switch. |
---|
| 433 | + |
---|
| 434 | +config ARC_DSP_NONE |
---|
| 435 | + bool "No DSP extension presence in HW" |
---|
| 436 | + help |
---|
| 437 | + No DSP extension presence in HW |
---|
| 438 | + |
---|
| 439 | +config ARC_DSP_KERNEL |
---|
| 440 | + bool "DSP extension in HW, no support for userspace" |
---|
| 441 | + select ARC_HAS_ACCL_REGS |
---|
| 442 | + select ARC_DSP_HANDLED |
---|
| 443 | + help |
---|
| 444 | + DSP extension presence in HW, no support for DSP-enabled userspace |
---|
| 445 | + applications. We don't save / restore DSP registers and only do |
---|
| 446 | + some minimal preparations so userspace won't be able to break kernel |
---|
| 447 | + |
---|
| 448 | +config ARC_DSP_USERSPACE |
---|
| 449 | + bool "Support DSP for userspace apps" |
---|
| 450 | + select ARC_HAS_ACCL_REGS |
---|
| 451 | + select ARC_DSP_HANDLED |
---|
| 452 | + select ARC_DSP_SAVE_RESTORE_REGS |
---|
| 453 | + help |
---|
| 454 | + DSP extension presence in HW, support save / restore DSP registers to |
---|
| 455 | + run DSP-enabled userspace applications |
---|
| 456 | + |
---|
| 457 | +config ARC_DSP_AGU_USERSPACE |
---|
| 458 | + bool "Support DSP with AGU for userspace apps" |
---|
| 459 | + select ARC_HAS_ACCL_REGS |
---|
| 460 | + select ARC_DSP_HANDLED |
---|
| 461 | + select ARC_DSP_SAVE_RESTORE_REGS |
---|
| 462 | + help |
---|
| 463 | + DSP and AGU extensions presence in HW, support save / restore DSP |
---|
| 464 | + and AGU registers to run DSP-enabled userspace applications |
---|
| 465 | +endchoice |
---|
421 | 466 | |
---|
422 | 467 | config ARC_IRQ_NO_AUTOSAVE |
---|
423 | 468 | bool "Disable hardware autosave regfile on interrupts" |
---|
.. | .. |
---|
427 | 472 | This is programmable and can be optionally disabled in which case |
---|
428 | 473 | software INTERRUPT_PROLOGUE/EPILGUE do the needed work |
---|
429 | 474 | |
---|
430 | | -endif # ISA_ARCV2 |
---|
| 475 | +config ARC_LPB_DISABLE |
---|
| 476 | + bool "Disable loop buffer (LPB)" |
---|
| 477 | + help |
---|
| 478 | + On HS cores, loop buffer (LPB) is programmable in runtime and can |
---|
| 479 | + be optionally disabled. |
---|
| 480 | + |
---|
| 481 | +endif # ISA_ARCV2 |
---|
431 | 482 | |
---|
432 | 483 | endmenu # "ARC CPU Configuration" |
---|
433 | 484 | |
---|
.. | .. |
---|
456 | 507 | config HIGHMEM |
---|
457 | 508 | bool "High Memory Support" |
---|
458 | 509 | select ARCH_DISCONTIGMEM_ENABLE |
---|
| 510 | + select KMAP_LOCAL |
---|
459 | 511 | help |
---|
460 | 512 | With ARC 2G:2G address split, only upper 2G is directly addressable by |
---|
461 | 513 | kernel. Enable this to potentially allow access to rest of 2G and PAE |
---|
.. | .. |
---|
463 | 515 | |
---|
464 | 516 | config ARC_HAS_PAE40 |
---|
465 | 517 | bool "Support for the 40-bit Physical Address Extension" |
---|
466 | | - default n |
---|
467 | 518 | depends on ISA_ARCV2 |
---|
468 | 519 | select HIGHMEM |
---|
469 | 520 | select PHYS_ADDR_T_64BIT |
---|
.. | .. |
---|
506 | 557 | |
---|
507 | 558 | config ARC_METAWARE_HLINK |
---|
508 | 559 | bool "Support for Metaware debugger assisted Host access" |
---|
509 | | - default n |
---|
510 | 560 | help |
---|
511 | 561 | This options allows a Linux userland apps to directly access |
---|
512 | 562 | host file system (open/creat/read/write etc) with help from |
---|
.. | .. |
---|
534 | 584 | |
---|
535 | 585 | config ARC_DBG_TLB_PARANOIA |
---|
536 | 586 | bool "Paranoia Checks in Low Level TLB Handlers" |
---|
537 | | - default n |
---|
538 | 587 | |
---|
| 588 | +config ARC_DBG_JUMP_LABEL |
---|
| 589 | + bool "Paranoid checks in Static Keys (jump labels) code" |
---|
| 590 | + depends on JUMP_LABEL |
---|
| 591 | + default y if STATIC_KEYS_SELFTEST |
---|
| 592 | + help |
---|
| 593 | + Enable paranoid checks and self-test of both ARC-specific and generic |
---|
| 594 | + part of static keys (jump labels) related code. |
---|
539 | 595 | endif |
---|
540 | 596 | |
---|
541 | 597 | config ARC_BUILTIN_DTB_NAME |
---|
.. | .. |
---|
550 | 606 | int "Maximum zone order" |
---|
551 | 607 | default "12" if ARC_HUGEPAGE_16M |
---|
552 | 608 | default "11" |
---|
553 | | - |
---|
554 | | -menu "Bus Support" |
---|
555 | | - |
---|
556 | | -config PCI |
---|
557 | | - bool "PCI support" if MIGHT_HAVE_PCI |
---|
558 | | - help |
---|
559 | | - PCI is the name of a bus system, i.e., the way the CPU talks to |
---|
560 | | - the other stuff inside your box. Find out if your board/platform |
---|
561 | | - has PCI. |
---|
562 | | - |
---|
563 | | - Note: PCIe support for Synopsys Device will be available only |
---|
564 | | - when HAPS DX is configured with PCIe RC bitmap. If you have PCI, |
---|
565 | | - say Y, otherwise N. |
---|
566 | | - |
---|
567 | | -config PCI_SYSCALL |
---|
568 | | - def_bool PCI |
---|
569 | | - |
---|
570 | | -source "drivers/pci/Kconfig" |
---|
571 | | - |
---|
572 | | -endmenu |
---|
573 | 609 | |
---|
574 | 610 | source "kernel/power/Kconfig" |
---|