mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-05 10:04:12 +08:00
413879a10b
This tag contains the fixes we'd like to target for the 4.16 merge window. It's not as much as I was originally hoping to do but between glibc, the chip, and FOSDEM there just wasn't enough time to get everything put together. As such, this merge window is essentially just going to be small changes. This includes mostly cleanups: * A build fix failure to the audit test cases. RISC-V doesn't have renameat because the generic syscall ABI moved to renameat2 by the time of our port. The syscall audit test cases don't understand this, so I added a trivial fix. This went through mailing list review during the 4.15 merge window, but nobody has picked it up so I think it's best to just do this here. * The removal of our command-line argument processing code. The "mem_end" stuff was broken and the rest duplicated generic device tree code. The generic code was already being called. * Some unused/redundant code has been removed, including __ARCH_HAVE_MMU, current_pgdir, and the initialization of init_mm.pgd. * SUM is disabled upon taking a trap, which means that user memory is protected during traps taking inside copy_{to,from}_user(). * The sptbr CSR has been renamed to satp in C code. We haven't changed the assembly code in order to maintain compatibility with binutils 2.29, which doesn't understand the new name. Additionally, we're adding some new features: * Basic ftrace support, thanks to Alan Kao! * Support for ZONE_DMA32. This is necessary for all the normal reasons, but also to deal with a deficiency in the Xilinx PCIe controller we're using on our FPGA-based systems. While the ZONE_DMA32 addition should be sufficient for most uses, it doesn't complete the fix for the Xilinx controller. * TLB shootdowns now only target the harts where they're necessary, instead of applying to all harts in the system. These patches have all been sitting on our linux-next branch for a while now. Due to time constraints this is all I feel comfortable submitting during the 4.16 merge window, hopefully we'll do better next time! -----BEGIN PGP SIGNATURE----- iQJHBAABCAAxFiEEAM520YNJYN/OiG3470yhUCzLq0EFAlp7N2gTHHBhbG1lckBk YWJiZWx0LmNvbQAKCRDvTKFQLMurQX8kD/4xxw6TuuESmDXxAQPQ+S8J98uKRfAF 9kMMzJJARcW5sT1vo3pKpE8+Ss0Hy2fIcaYsw5Je/Yl7vdAy/Dk7X3/mx7mxf5BP 8m2cSd7DFLLLhntZTbr1Y5fJ6awFLtzI46zn/SzTdTatLWKXNLS5wmPKE33ddq/C iTi4k/as8E/vuNtuPy1GsOF0gICpZ2xB4YoMwTgWfpxTekBkUktO3EOHmZTwQEEM U1muB+4WoqusbBt6cP3Q7cUF3b6aMVSevWnywZGkD+yWOGRXTVzMgT7R4YlKEOre OQypZocYUbRmZQMZACKpgHIcOZpePaSTIQ2zzhXEPVGB0XAHtMRnAaVtwPxwG6c4 EThDCN9ldShutKqT4XilHrh5gf0sy7qG0PIidPhMmXH9LCeTSAU4VdISJP1jkq19 chiMHlf6+/DhikyiH0+lK/MX8vQMt6UJL1SlRKO/c2FxxKAZKnENJ+tuAlkAlwoC gnvZsE5BUYw1ptRHXR0d5C4m8M2M9LPZfpWYcg+1mRO9EA+kt0XCupL7RsrdFuoa FCVEhP/JMaiX0JtmAHfVIU0yNGjH3b5xi3FoGk2Aoj/c8O3F5YcwT5C5nO+jpv32 n9vyMR20/721+yA2dFIlq4DnelwdZczOTqrcDYJrLxXzk8OXUFFffbe4kbDCxp34 WniBxwnY9BF25g== =cNRH -----END PGP SIGNATURE----- Merge tag 'riscv-for-linus-4.16-merge_window' of git://git.kernel.org/pub/scm/linux/kernel/git/palmer/riscv-linux Pull RISC-V updates from Palmer Dabbelt: "This contains the fixes we'd like to target for the 4.16 merge window. It's not as much as I was originally hoping to do but between glibc, the chip, and FOSDEM there just wasn't enough time to get everything put together. As such, this merge window is essentially just going to be small changes. This includes mostly cleanups: - A build fix failure to the audit test cases. RISC-V doesn't have renameat because the generic syscall ABI moved to renameat2 by the time of our port. The syscall audit test cases don't understand this, so I added a trivial fix. This went through mailing list review during the 4.15 merge window, but nobody has picked it up so I think it's best to just do this here. - The removal of our command-line argument processing code. The "mem_end" stuff was broken and the rest duplicated generic device tree code. The generic code was already being called. - Some unused/redundant code has been removed, including __ARCH_HAVE_MMU, current_pgdir, and the initialization of init_mm.pgd. - SUM is disabled upon taking a trap, which means that user memory is protected during traps taking inside copy_{to,from}_user(). - The sptbr CSR has been renamed to satp in C code. We haven't changed the assembly code in order to maintain compatibility with binutils 2.29, which doesn't understand the new name. Additionally, we're adding some new features: - Basic ftrace support, thanks to Alan Kao! - Support for ZONE_DMA32. This is necessary for all the normal reasons, but also to deal with a deficiency in the Xilinx PCIe controller we're using on our FPGA-based systems. While the ZONE_DMA32 addition should be sufficient for most uses, it doesn't complete the fix for the Xilinx controller. - TLB shootdowns now only target the harts where they're necessary, instead of applying to all harts in the system. These patches have all been sitting on our linux-next branch for a while now. Due to time constraints this is all I feel comfortable submitting during the 4.16 merge window, hopefully we'll do better next time!" [ Note to self: "harts" is RISC-V speak for "hardware threads". I had to look that up. - Linus ] * tag 'riscv-for-linus-4.16-merge_window' of git://git.kernel.org/pub/scm/linux/kernel/git/palmer/riscv-linux: riscv: inline set_pgdir into its only caller riscv: rename sptbr to satp riscv: don't read back satp in paging_init riscv: remove the unused current_pgdir function riscv: add ZONE_DMA32 RISC-V: Limit the scope of TLB shootdowns riscv: disable SUM in the exception handler riscv: remove redundant unlikely() riscv: remove unused __ARCH_HAVE_MMU define riscv/ftrace: Add basic support RISC-V: Remove mem_end command line processing RISC-V: Remove duplicate command-line parsing logic audit: Avoid build failures on systems without renameat
321 lines
6.5 KiB
Plaintext
321 lines
6.5 KiB
Plaintext
#
|
|
# For a description of the syntax of this configuration file,
|
|
# see Documentation/kbuild/kconfig-language.txt.
|
|
#
|
|
|
|
config RISCV
|
|
def_bool y
|
|
select OF
|
|
select OF_EARLY_FLATTREE
|
|
select OF_IRQ
|
|
select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
|
|
select ARCH_WANT_FRAME_POINTERS
|
|
select CLONE_BACKWARDS
|
|
select COMMON_CLK
|
|
select GENERIC_CLOCKEVENTS
|
|
select GENERIC_CPU_DEVICES
|
|
select GENERIC_IRQ_SHOW
|
|
select GENERIC_PCI_IOMAP
|
|
select GENERIC_STRNCPY_FROM_USER
|
|
select GENERIC_STRNLEN_USER
|
|
select GENERIC_SMP_IDLE_THREAD
|
|
select GENERIC_ATOMIC64 if !64BIT || !RISCV_ISA_A
|
|
select ARCH_WANT_OPTIONAL_GPIOLIB
|
|
select HAVE_MEMBLOCK
|
|
select HAVE_MEMBLOCK_NODE_MAP
|
|
select HAVE_DMA_API_DEBUG
|
|
select HAVE_DMA_CONTIGUOUS
|
|
select HAVE_GENERIC_DMA_COHERENT
|
|
select IRQ_DOMAIN
|
|
select NO_BOOTMEM
|
|
select RISCV_ISA_A if SMP
|
|
select SPARSE_IRQ
|
|
select SYSCTL_EXCEPTION_TRACE
|
|
select HAVE_ARCH_TRACEHOOK
|
|
select MODULES_USE_ELF_RELA if MODULES
|
|
select THREAD_INFO_IN_TASK
|
|
select RISCV_IRQ_INTC
|
|
select RISCV_TIMER
|
|
|
|
config MMU
|
|
def_bool y
|
|
|
|
# even on 32-bit, physical (and DMA) addresses are > 32-bits
|
|
config ARCH_PHYS_ADDR_T_64BIT
|
|
def_bool y
|
|
|
|
config ZONE_DMA32
|
|
bool
|
|
default y
|
|
|
|
config ARCH_DMA_ADDR_T_64BIT
|
|
def_bool y
|
|
|
|
config PAGE_OFFSET
|
|
hex
|
|
default 0xC0000000 if 32BIT && MAXPHYSMEM_2GB
|
|
default 0xffffffff80000000 if 64BIT && MAXPHYSMEM_2GB
|
|
default 0xffffffe000000000 if 64BIT && MAXPHYSMEM_128GB
|
|
|
|
config STACKTRACE_SUPPORT
|
|
def_bool y
|
|
|
|
config TRACE_IRQFLAGS_SUPPORT
|
|
def_bool y
|
|
|
|
config RWSEM_GENERIC_SPINLOCK
|
|
def_bool y
|
|
|
|
config GENERIC_BUG
|
|
def_bool y
|
|
depends on BUG
|
|
select GENERIC_BUG_RELATIVE_POINTERS if 64BIT
|
|
|
|
config GENERIC_BUG_RELATIVE_POINTERS
|
|
bool
|
|
|
|
config GENERIC_CALIBRATE_DELAY
|
|
def_bool y
|
|
|
|
config GENERIC_CSUM
|
|
def_bool y
|
|
|
|
config GENERIC_HWEIGHT
|
|
def_bool y
|
|
|
|
config PGTABLE_LEVELS
|
|
int
|
|
default 3 if 64BIT
|
|
default 2
|
|
|
|
config HAVE_KPROBES
|
|
def_bool n
|
|
|
|
config DMA_DIRECT_OPS
|
|
def_bool y
|
|
|
|
menu "Platform type"
|
|
|
|
choice
|
|
prompt "Base ISA"
|
|
default ARCH_RV64I
|
|
help
|
|
This selects the base ISA that this kernel will traget and must match
|
|
the target platform.
|
|
|
|
config ARCH_RV32I
|
|
bool "RV32I"
|
|
select CPU_SUPPORTS_32BIT_KERNEL
|
|
select 32BIT
|
|
select GENERIC_ASHLDI3
|
|
select GENERIC_ASHRDI3
|
|
select GENERIC_LSHRDI3
|
|
|
|
config ARCH_RV64I
|
|
bool "RV64I"
|
|
select CPU_SUPPORTS_64BIT_KERNEL
|
|
select 64BIT
|
|
select HAVE_FUNCTION_TRACER
|
|
select HAVE_FUNCTION_GRAPH_TRACER
|
|
|
|
endchoice
|
|
|
|
# We must be able to map all physical memory into the kernel, but the compiler
|
|
# is still a bit more efficient when generating code if it's setup in a manner
|
|
# such that it can only map 2GiB of memory.
|
|
choice
|
|
prompt "Kernel Code Model"
|
|
default CMODEL_MEDLOW if 32BIT
|
|
default CMODEL_MEDANY if 64BIT
|
|
|
|
config CMODEL_MEDLOW
|
|
bool "medium low code model"
|
|
config CMODEL_MEDANY
|
|
bool "medium any code model"
|
|
endchoice
|
|
|
|
choice
|
|
prompt "Maximum Physical Memory"
|
|
default MAXPHYSMEM_2GB if 32BIT
|
|
default MAXPHYSMEM_2GB if 64BIT && CMODEL_MEDLOW
|
|
default MAXPHYSMEM_128GB if 64BIT && CMODEL_MEDANY
|
|
|
|
config MAXPHYSMEM_2GB
|
|
bool "2GiB"
|
|
config MAXPHYSMEM_128GB
|
|
depends on 64BIT && CMODEL_MEDANY
|
|
bool "128GiB"
|
|
endchoice
|
|
|
|
|
|
config SMP
|
|
bool "Symmetric Multi-Processing"
|
|
help
|
|
This enables support for systems with more than one CPU. If
|
|
you say N here, the kernel will run on single and
|
|
multiprocessor 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, single processor machines. On a single
|
|
processor machine, the kernel will run faster if you say N
|
|
here.
|
|
|
|
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
|
|
default "8"
|
|
|
|
config CPU_SUPPORTS_32BIT_KERNEL
|
|
bool
|
|
config CPU_SUPPORTS_64BIT_KERNEL
|
|
bool
|
|
|
|
choice
|
|
prompt "CPU Tuning"
|
|
default TUNE_GENERIC
|
|
|
|
config TUNE_GENERIC
|
|
bool "generic"
|
|
|
|
endchoice
|
|
|
|
config RISCV_ISA_C
|
|
bool "Emit compressed instructions when building Linux"
|
|
default y
|
|
help
|
|
Adds "C" to the ISA subsets that the toolchain is allowed to emit
|
|
when building Linux, which results in compressed instructions in the
|
|
Linux binary.
|
|
|
|
If you don't know what to do here, say Y.
|
|
|
|
config RISCV_ISA_A
|
|
def_bool y
|
|
|
|
endmenu
|
|
|
|
menu "Kernel type"
|
|
|
|
choice
|
|
prompt "Kernel code model"
|
|
default 64BIT
|
|
|
|
config 32BIT
|
|
bool "32-bit kernel"
|
|
depends on CPU_SUPPORTS_32BIT_KERNEL
|
|
help
|
|
Select this option to build a 32-bit kernel.
|
|
|
|
config 64BIT
|
|
bool "64-bit kernel"
|
|
depends on CPU_SUPPORTS_64BIT_KERNEL
|
|
help
|
|
Select this option to build a 64-bit kernel.
|
|
|
|
endchoice
|
|
|
|
source "mm/Kconfig"
|
|
|
|
source "kernel/Kconfig.preempt"
|
|
|
|
source "kernel/Kconfig.hz"
|
|
|
|
endmenu
|
|
|
|
menu "Bus support"
|
|
|
|
config PCI
|
|
bool "PCI support"
|
|
select PCI_MSI
|
|
help
|
|
This feature enables support for PCI bus system. If you say Y
|
|
here, the kernel will include drivers and infrastructure code
|
|
to support PCI bus devices.
|
|
|
|
If you don't know what to do here, say Y.
|
|
|
|
config PCI_DOMAINS
|
|
def_bool PCI
|
|
|
|
config PCI_DOMAINS_GENERIC
|
|
def_bool PCI
|
|
|
|
source "drivers/pci/Kconfig"
|
|
|
|
endmenu
|
|
|
|
source "init/Kconfig"
|
|
|
|
source "kernel/Kconfig.freezer"
|
|
|
|
menu "Executable file formats"
|
|
|
|
source "fs/Kconfig.binfmt"
|
|
|
|
endmenu
|
|
|
|
menu "Power management options"
|
|
|
|
source kernel/power/Kconfig
|
|
|
|
endmenu
|
|
|
|
source "net/Kconfig"
|
|
|
|
source "drivers/Kconfig"
|
|
|
|
source "fs/Kconfig"
|
|
|
|
menu "Kernel hacking"
|
|
|
|
config CMDLINE_BOOL
|
|
bool "Built-in kernel command line"
|
|
help
|
|
For most platforms, it is firmware or second stage bootloader
|
|
that by default specifies the kernel command line options.
|
|
However, it might be necessary or advantageous to either override
|
|
the default kernel command line or add a few extra options to it.
|
|
For such cases, this option allows hardcoding command line options
|
|
directly into the kernel.
|
|
|
|
For that, choose 'Y' here and fill in the extra boot parameters
|
|
in CONFIG_CMDLINE.
|
|
|
|
The built-in options will be concatenated to the default command
|
|
line if CMDLINE_OVERRIDE is set to 'N'. Otherwise, the default
|
|
command line will be ignored and replaced by the built-in string.
|
|
|
|
config CMDLINE
|
|
string "Built-in kernel command string"
|
|
depends on CMDLINE_BOOL
|
|
default ""
|
|
help
|
|
Supply command-line options at build time by entering them here.
|
|
|
|
config CMDLINE_OVERRIDE
|
|
bool "Built-in command line overrides bootloader arguments"
|
|
depends on CMDLINE_BOOL
|
|
help
|
|
Set this option to 'Y' to have the kernel ignore the bootloader
|
|
or firmware command line. Instead, the built-in command line
|
|
will be used exclusively.
|
|
|
|
If you don't know what to do here, say N.
|
|
|
|
config EARLY_PRINTK
|
|
def_bool y
|
|
|
|
source "lib/Kconfig.debug"
|
|
|
|
config CMDLINE_BOOL
|
|
bool
|
|
endmenu
|
|
|
|
source "security/Kconfig"
|
|
|
|
source "crypto/Kconfig"
|
|
|
|
source "lib/Kconfig"
|