mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 01:26:29 +07:00
4c97a0c8fe
Patch series "Define CPU_BIG_ENDIAN or warn for inconsistencies", v3. While working on enabling queued rwlock on SPARC, found this following code in include/asm-generic/qrwlock.h which uses CONFIG_CPU_BIG_ENDIAN to clear a byte. static inline u8 *__qrwlock_write_byte(struct qrwlock *lock) { return (u8 *)lock + 3 * IS_BUILTIN(CONFIG_CPU_BIG_ENDIAN); } Problem is many of the fixed big endian architectures don't define CPU_BIG_ENDIAN and clears the wrong byte. Define CPU_BIG_ENDIAN for all the fixed big endian architecture to fix it. Also found few more references of this config parameter in drivers/of/base.c drivers/of/fdt.c drivers/tty/serial/earlycon.c drivers/tty/serial/serial_core.c Be aware that this may cause regressions if someone has worked-around problems in the above code already. Remove the work-around. Here is our original discussion https://lkml.org/lkml/2017/5/24/620 Link: http://lkml.kernel.org/r/1499358861-179979-2-git-send-email-babu.moger@oracle.com Signed-off-by: Babu Moger <babu.moger@oracle.com> Suggested-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Geert Uytterhoeven <geert@linux-m68k.org> Acked-by: David S. Miller <davem@davemloft.net> Acked-by: Stafford Horne <shorne@gmail.com> Cc: Yoshinori Sato <ysato@users.sourceforge.jp> Cc: Jonas Bonn <jonas@southpole.se> Cc: Stefan Kristiansson <stefan.kristiansson@saunalahti.fi> Cc: "James E.J. Bottomley" <jejb@parisc-linux.org> Cc: Helge Deller <deller@gmx.de> Cc: Alexander Viro <viro@zeniv.linux.org.uk> Cc: Michal Simek <monstr@monstr.eu> Cc: Michael Ellerman <mpe@ellerman.id.au> (powerpc) Cc: Peter Zijlstra <peterz@infradead.org> Cc: Ingo Molnar <mingo@elte.hu> Cc: Max Filippov <jcmvbkbc@gmail.com> Cc: Greg KH <gregkh@linuxfoundation.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
386 lines
9.0 KiB
Plaintext
386 lines
9.0 KiB
Plaintext
config FRV
|
|
bool
|
|
default y
|
|
select HAVE_IDE
|
|
select HAVE_ARCH_TRACEHOOK
|
|
select HAVE_PERF_EVENTS
|
|
select HAVE_UID16
|
|
select VIRT_TO_BUS
|
|
select GENERIC_IRQ_SHOW
|
|
select HAVE_DEBUG_BUGVERBOSE
|
|
select ARCH_HAVE_NMI_SAFE_CMPXCHG
|
|
select GENERIC_CPU_DEVICES
|
|
select ARCH_HAS_DEVMEM_IS_ALLOWED
|
|
select ARCH_WANT_IPC_PARSE_VERSION
|
|
select OLD_SIGSUSPEND3
|
|
select OLD_SIGACTION
|
|
select HAVE_DEBUG_STACKOVERFLOW
|
|
select ARCH_NO_COHERENT_DMA_MMAP
|
|
|
|
config CPU_BIG_ENDIAN
|
|
def_bool y
|
|
|
|
config ZONE_DMA
|
|
bool
|
|
default y
|
|
|
|
config RWSEM_GENERIC_SPINLOCK
|
|
bool
|
|
default y
|
|
|
|
config RWSEM_XCHGADD_ALGORITHM
|
|
bool
|
|
|
|
config GENERIC_HWEIGHT
|
|
bool
|
|
default y
|
|
|
|
config GENERIC_CALIBRATE_DELAY
|
|
bool
|
|
default n
|
|
|
|
config TIME_LOW_RES
|
|
bool
|
|
default y
|
|
|
|
config QUICKLIST
|
|
bool
|
|
default y
|
|
|
|
config ARCH_HAS_ILOG2_U32
|
|
bool
|
|
default y
|
|
|
|
config ARCH_HAS_ILOG2_U64
|
|
bool
|
|
default y
|
|
|
|
config HZ
|
|
int
|
|
default 1000
|
|
|
|
source "init/Kconfig"
|
|
|
|
source "kernel/Kconfig.freezer"
|
|
|
|
|
|
menu "Fujitsu FR-V system setup"
|
|
|
|
config MMU
|
|
bool "MMU support"
|
|
help
|
|
This options switches on and off support for the FR-V MMU
|
|
(effectively switching between vmlinux and uClinux). Not all FR-V
|
|
CPUs support this. Currently only the FR451 has a sufficiently
|
|
featured MMU.
|
|
|
|
config FRV_OUTOFLINE_ATOMIC_OPS
|
|
bool "Out-of-line the FRV atomic operations"
|
|
default n
|
|
help
|
|
Setting this option causes the FR-V atomic operations to be mostly
|
|
implemented out-of-line.
|
|
|
|
See Documentation/frv/atomic-ops.txt for more information.
|
|
|
|
config HIGHMEM
|
|
bool "High memory support"
|
|
depends on MMU
|
|
default y
|
|
help
|
|
If you wish to use more than 256MB of memory with your MMU based
|
|
system, you will need to select this option. The kernel can only see
|
|
the memory between 0xC0000000 and 0xD0000000 directly... everything
|
|
else must be kmapped.
|
|
|
|
The arch is, however, capable of supporting up to 3GB of SDRAM.
|
|
|
|
config HIGHPTE
|
|
bool "Allocate page tables in highmem"
|
|
depends on HIGHMEM
|
|
default y
|
|
help
|
|
The VM uses one page of memory for each page table. For systems
|
|
with a lot of RAM, this can be wasteful of precious low memory.
|
|
Setting this option will put user-space page tables in high memory.
|
|
|
|
source "mm/Kconfig"
|
|
|
|
choice
|
|
prompt "uClinux kernel load address"
|
|
depends on !MMU
|
|
default UCPAGE_OFFSET_C0000000
|
|
help
|
|
This option sets the base address for the uClinux kernel. The kernel
|
|
will rearrange the SDRAM layout to start at this address, and move
|
|
itself to start there. It must be greater than 0, and it must be
|
|
sufficiently less than 0xE0000000 that the SDRAM does not intersect
|
|
the I/O region.
|
|
|
|
The base address must also be aligned such that the SDRAM controller
|
|
can decode it. For instance, a 512MB SDRAM bank must be 512MB aligned.
|
|
|
|
config UCPAGE_OFFSET_20000000
|
|
bool "0x20000000"
|
|
|
|
config UCPAGE_OFFSET_40000000
|
|
bool "0x40000000"
|
|
|
|
config UCPAGE_OFFSET_60000000
|
|
bool "0x60000000"
|
|
|
|
config UCPAGE_OFFSET_80000000
|
|
bool "0x80000000"
|
|
|
|
config UCPAGE_OFFSET_A0000000
|
|
bool "0xA0000000"
|
|
|
|
config UCPAGE_OFFSET_C0000000
|
|
bool "0xC0000000 (Recommended)"
|
|
|
|
endchoice
|
|
|
|
config PAGE_OFFSET
|
|
hex
|
|
default 0x20000000 if UCPAGE_OFFSET_20000000
|
|
default 0x40000000 if UCPAGE_OFFSET_40000000
|
|
default 0x60000000 if UCPAGE_OFFSET_60000000
|
|
default 0x80000000 if UCPAGE_OFFSET_80000000
|
|
default 0xA0000000 if UCPAGE_OFFSET_A0000000
|
|
default 0xC0000000
|
|
|
|
config PROTECT_KERNEL
|
|
bool "Protect core kernel against userspace"
|
|
depends on !MMU
|
|
default y
|
|
help
|
|
Selecting this option causes the uClinux kernel to change the
|
|
permittivity of DAMPR register covering the core kernel image to
|
|
prevent userspace accessing the underlying memory directly.
|
|
|
|
choice
|
|
prompt "CPU Caching mode"
|
|
default FRV_DEFL_CACHE_WBACK
|
|
help
|
|
This option determines the default caching mode for the kernel.
|
|
|
|
Write-Back caching mode involves the all reads and writes causing
|
|
the affected cacheline to be read into the cache first before being
|
|
operated upon. Memory is not then updated by a write until the cache
|
|
is filled and a cacheline needs to be displaced from the cache to
|
|
make room. Only at that point is it written back.
|
|
|
|
Write-Behind caching is similar to Write-Back caching, except that a
|
|
write won't fetch a cacheline into the cache if there isn't already
|
|
one there; it will write directly to memory instead.
|
|
|
|
Write-Through caching only fetches cachelines from memory on a
|
|
read. Writes always get written directly to memory. If the affected
|
|
cacheline is also in cache, it will be updated too.
|
|
|
|
The final option is to turn of caching entirely.
|
|
|
|
Note that not all CPUs support Write-Behind caching. If the CPU on
|
|
which the kernel is running doesn't, it'll fall back to Write-Back
|
|
caching.
|
|
|
|
config FRV_DEFL_CACHE_WBACK
|
|
bool "Write-Back"
|
|
|
|
config FRV_DEFL_CACHE_WBEHIND
|
|
bool "Write-Behind"
|
|
|
|
config FRV_DEFL_CACHE_WTHRU
|
|
bool "Write-Through"
|
|
|
|
config FRV_DEFL_CACHE_DISABLED
|
|
bool "Disabled"
|
|
|
|
endchoice
|
|
|
|
menu "CPU core support"
|
|
|
|
config CPU_FR401
|
|
bool "Include FR401 core support"
|
|
depends on !MMU
|
|
default y
|
|
help
|
|
This enables support for the FR401, FR401A and FR403 CPUs
|
|
|
|
config CPU_FR405
|
|
bool "Include FR405 core support"
|
|
depends on !MMU
|
|
default y
|
|
help
|
|
This enables support for the FR405 CPU
|
|
|
|
config CPU_FR451
|
|
bool "Include FR451 core support"
|
|
default y
|
|
help
|
|
This enables support for the FR451 CPU
|
|
|
|
config CPU_FR451_COMPILE
|
|
bool "Specifically compile for FR451 core"
|
|
depends on CPU_FR451 && !CPU_FR401 && !CPU_FR405 && !CPU_FR551
|
|
default y
|
|
help
|
|
This causes appropriate flags to be passed to the compiler to
|
|
optimise for the FR451 CPU
|
|
|
|
config CPU_FR551
|
|
bool "Include FR551 core support"
|
|
depends on !MMU
|
|
default y
|
|
help
|
|
This enables support for the FR555 CPU
|
|
|
|
config CPU_FR551_COMPILE
|
|
bool "Specifically compile for FR551 core"
|
|
depends on CPU_FR551 && !CPU_FR401 && !CPU_FR405 && !CPU_FR451
|
|
default y
|
|
help
|
|
This causes appropriate flags to be passed to the compiler to
|
|
optimise for the FR555 CPU
|
|
|
|
config FRV_L1_CACHE_SHIFT
|
|
int
|
|
default "5" if CPU_FR401 || CPU_FR405 || CPU_FR451
|
|
default "6" if CPU_FR551
|
|
|
|
endmenu
|
|
|
|
choice
|
|
prompt "System support"
|
|
default MB93091_VDK
|
|
|
|
config MB93091_VDK
|
|
bool "MB93091 CPU board with or without motherboard"
|
|
|
|
config MB93093_PDK
|
|
bool "MB93093 PDK unit"
|
|
|
|
endchoice
|
|
|
|
if MB93091_VDK
|
|
choice
|
|
prompt "Motherboard support"
|
|
default MB93090_MB00
|
|
|
|
config MB93090_MB00
|
|
bool "Use the MB93090-MB00 motherboard"
|
|
help
|
|
Select this option if the MB93091 CPU board is going to be used with
|
|
a MB93090-MB00 VDK motherboard
|
|
|
|
config MB93091_NO_MB
|
|
bool "Use standalone"
|
|
help
|
|
Select this option if the MB93091 CPU board is going to be used
|
|
without a motherboard
|
|
|
|
endchoice
|
|
endif
|
|
|
|
config FUJITSU_MB93493
|
|
bool "MB93493 Multimedia chip"
|
|
help
|
|
Select this option if the MB93493 multimedia chip is going to be
|
|
used.
|
|
|
|
choice
|
|
prompt "GP-Relative data support"
|
|
default GPREL_DATA_8
|
|
help
|
|
This option controls what data, if any, should be placed in the GP
|
|
relative data sections. Using this means that the compiler can
|
|
generate accesses to the data using GR16-relative addressing which
|
|
is faster than absolute instructions and saves space (2 instructions
|
|
per access).
|
|
|
|
However, the GPREL region is limited in size because the immediate
|
|
value used in the load and store instructions is limited to a 12-bit
|
|
signed number.
|
|
|
|
So if the linker starts complaining that accesses to GPREL data are
|
|
out of range, try changing this option from the default.
|
|
|
|
Note that modules will always be compiled with this feature disabled
|
|
as the module data will not be in range of the GP base address.
|
|
|
|
config GPREL_DATA_8
|
|
bool "Put data objects of up to 8 bytes into GP-REL"
|
|
|
|
config GPREL_DATA_4
|
|
bool "Put data objects of up to 4 bytes into GP-REL"
|
|
|
|
config GPREL_DATA_NONE
|
|
bool "Don't use GP-REL"
|
|
|
|
endchoice
|
|
|
|
config FRV_ONCPU_SERIAL
|
|
bool "Use on-CPU serial ports"
|
|
select SERIAL_8250
|
|
default y
|
|
|
|
config PCI
|
|
bool "Use PCI"
|
|
depends on MB93090_MB00
|
|
default y
|
|
select GENERIC_PCI_IOMAP
|
|
help
|
|
Some FR-V systems (such as the MB93090-MB00 VDK) have PCI
|
|
onboard. If you have one of these boards and you wish to use the PCI
|
|
facilities, say Y here.
|
|
|
|
config RESERVE_DMA_COHERENT
|
|
bool "Reserve DMA coherent memory"
|
|
depends on PCI && !MMU
|
|
default y
|
|
help
|
|
Many PCI drivers require access to uncached memory for DMA device
|
|
communications (such as is done with some Ethernet buffer rings). If
|
|
a fully featured MMU is available, this can be done through page
|
|
table settings, but if not, a region has to be set aside and marked
|
|
with a special DAMPR register.
|
|
|
|
Setting this option causes uClinux to set aside a portion of the
|
|
available memory for use in this manner. The memory will then be
|
|
unavailable for normal kernel use.
|
|
|
|
source "drivers/pci/Kconfig"
|
|
|
|
source "drivers/pcmcia/Kconfig"
|
|
|
|
menu "Power management options"
|
|
|
|
config ARCH_SUSPEND_POSSIBLE
|
|
def_bool y
|
|
|
|
source kernel/power/Kconfig
|
|
endmenu
|
|
|
|
endmenu
|
|
|
|
|
|
menu "Executable formats"
|
|
|
|
source "fs/Kconfig.binfmt"
|
|
|
|
endmenu
|
|
|
|
source "net/Kconfig"
|
|
|
|
source "drivers/Kconfig"
|
|
|
|
source "fs/Kconfig"
|
|
|
|
source "arch/frv/Kconfig.debug"
|
|
|
|
source "security/Kconfig"
|
|
|
|
source "crypto/Kconfig"
|
|
|
|
source "lib/Kconfig"
|