Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

# SPDX-License-Identifier: GPL-2.0
# Hexagon configuration
comment "Linux Kernel Configuration for Hexagon"

config CONFIG_HEXAGON
	def_bool y
	select CONFIG_ARCH_32BIT_OFF_T
	select CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE
	select CONFIG_ARCH_NO_PREEMPT
	select CONFIG_HAVE_OPROFILE
	# Other pending projects/to-do items.
	# select CONFIG_HAVE_REGS_AND_STACK_ACCESS_API
	# select CONFIG_HAVE_HW_BREAKPOINT if CONFIG_PERF_EVENTS
	# select ARCH_HAS_CPU_IDLE_WAIT
	# select CONFIG_GPIOLIB
	# select CONFIG_HAVE_CLK
	# select CONFIG_GENERIC_PENDING_IRQ if CONFIG_SMP
	select CONFIG_GENERIC_ATOMIC64
	select CONFIG_HAVE_PERF_EVENTS
	# CONFIG_GENERIC_ALLOCATOR is used by dma_alloc_coherent()
	select CONFIG_GENERIC_ALLOCATOR
	select CONFIG_GENERIC_IRQ_SHOW
	select CONFIG_HAVE_ARCH_KGDB
	select CONFIG_HAVE_ARCH_TRACEHOOK
	select CONFIG_NEED_SG_DMA_LENGTH
	select CONFIG_NO_IOPORT_MAP
	select CONFIG_GENERIC_IOMAP
	select CONFIG_GENERIC_SMP_IDLE_THREAD
	select CONFIG_STACKTRACE_SUPPORT
	select CONFIG_GENERIC_CLOCKEVENTS
	select CONFIG_GENERIC_CLOCKEVENTS_BROADCAST
	select CONFIG_MODULES_USE_ELF_RELA
	select CONFIG_GENERIC_CPU_DEVICES
	---help---
	  Qualcomm Hexagon is a processor architecture designed for high
	  performance and low power across a wide variety of applications.

config CONFIG_HEXAGON_PHYS_OFFSET
	def_bool y
	---help---
	  Platforms that don't load the kernel at zero set this.

config CONFIG_FRAME_POINTER
	def_bool y

config CONFIG_LOCKDEP_SUPPORT
	def_bool y

config CONFIG_EARLY_PRINTK
	def_bool y

config CONFIG_MMU
	def_bool y

config CONFIG_TRACE_IRQFLAGS_SUPPORT
	def_bool y

config CONFIG_GENERIC_CSUM
	def_bool y

#
# Use the generic interrupt handling code in kernel/irq/:
#
config CONFIG_GENERIC_IRQ_PROBE
	def_bool y

config CONFIG_GENERIC_HWEIGHT
	def_bool y

config CONFIG_STACKTRACE_SUPPORT
	def_bool y
	select CONFIG_STACKTRACE

config CONFIG_GENERIC_BUG
	def_bool y
	depends on CONFIG_BUG

menu "Machine selection"

choice
	prompt "System type"
	default CONFIG_HEXAGON_COMET

config CONFIG_HEXAGON_COMET
	bool "Comet Board"
	---help---
	  Support for the Comet platform.

endchoice

config CONFIG_HEXAGON_ARCH_VERSION
	int "Architecture version"
	default 2

config CONFIG_CMDLINE
	string "Default kernel command string"
	default ""
	help
	  On some platforms, there is currently no way for the boot loader
	  to pass arguments to the kernel. For these, you should supply some
	  command-line options at build time by entering them here.  At a
	  minimum, you should specify the memory size and the root device
	  (e.g., mem=64M root=/dev/nfs).

config CONFIG_SMP
	bool "Multi-Processing support"
	---help---
	  Enables CONFIG_SMP support in the kernel.  If unsure, say "Y"

config CONFIG_NR_CPUS
	int "Maximum number of CPUs" if CONFIG_SMP
	range 2 6 if CONFIG_SMP
	default "1" if !CONFIG_SMP
	default "6" if CONFIG_SMP
	---help---
	  This allows you to specify the maximum number of CPUs which this
	  kernel will support.  The maximum supported value is 6 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.

choice
	prompt "Kernel page size"
	default CONFIG_PAGE_SIZE_4KB
	---help---
	  Changes the default page size; use with caution.

config CONFIG_PAGE_SIZE_4KB
	bool "4KB"

config CONFIG_PAGE_SIZE_16KB
	bool "16KB"

config CONFIG_PAGE_SIZE_64KB
	bool "64KB"

config CONFIG_PAGE_SIZE_256KB
	bool "256KB"

endchoice

source "kernel/Kconfig.hz"

endmenu