mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-21 03:33:59 +08:00
006669ec21
For now, this only supports gptimers. Support for dedicated PWM devices as found on newer parts to come. Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
1307 lines
30 KiB
Plaintext
1307 lines
30 KiB
Plaintext
config SYMBOL_PREFIX
|
|
string
|
|
default "_"
|
|
|
|
config MMU
|
|
def_bool n
|
|
|
|
config FPU
|
|
def_bool n
|
|
|
|
config RWSEM_GENERIC_SPINLOCK
|
|
def_bool y
|
|
|
|
config RWSEM_XCHGADD_ALGORITHM
|
|
def_bool n
|
|
|
|
config BLACKFIN
|
|
def_bool y
|
|
select HAVE_ARCH_KGDB
|
|
select HAVE_ARCH_TRACEHOOK
|
|
select HAVE_DYNAMIC_FTRACE
|
|
select HAVE_FTRACE_MCOUNT_RECORD
|
|
select HAVE_FUNCTION_GRAPH_TRACER
|
|
select HAVE_FUNCTION_TRACER
|
|
select HAVE_FUNCTION_TRACE_MCOUNT_TEST
|
|
select HAVE_IDE
|
|
select HAVE_IRQ_WORK
|
|
select HAVE_KERNEL_GZIP if RAMKERNEL
|
|
select HAVE_KERNEL_BZIP2 if RAMKERNEL
|
|
select HAVE_KERNEL_LZMA if RAMKERNEL
|
|
select HAVE_KERNEL_LZO if RAMKERNEL
|
|
select HAVE_OPROFILE
|
|
select HAVE_PERF_EVENTS
|
|
select ARCH_WANT_OPTIONAL_GPIOLIB
|
|
select HAVE_GENERIC_HARDIRQS
|
|
select GENERIC_ATOMIC64
|
|
select GENERIC_IRQ_PROBE
|
|
select IRQ_PER_CPU if SMP
|
|
|
|
config GENERIC_CSUM
|
|
def_bool y
|
|
|
|
config GENERIC_BUG
|
|
def_bool y
|
|
depends on BUG
|
|
|
|
config ZONE_DMA
|
|
def_bool y
|
|
|
|
config GENERIC_GPIO
|
|
def_bool y
|
|
|
|
config FORCE_MAX_ZONEORDER
|
|
int
|
|
default "14"
|
|
|
|
config GENERIC_CALIBRATE_DELAY
|
|
def_bool y
|
|
|
|
config LOCKDEP_SUPPORT
|
|
def_bool y
|
|
|
|
config STACKTRACE_SUPPORT
|
|
def_bool y
|
|
|
|
config TRACE_IRQFLAGS_SUPPORT
|
|
def_bool y
|
|
|
|
source "init/Kconfig"
|
|
|
|
source "kernel/Kconfig.preempt"
|
|
|
|
source "kernel/Kconfig.freezer"
|
|
|
|
menu "Blackfin Processor Options"
|
|
|
|
comment "Processor and Board Settings"
|
|
|
|
choice
|
|
prompt "CPU"
|
|
default BF533
|
|
|
|
config BF512
|
|
bool "BF512"
|
|
help
|
|
BF512 Processor Support.
|
|
|
|
config BF514
|
|
bool "BF514"
|
|
help
|
|
BF514 Processor Support.
|
|
|
|
config BF516
|
|
bool "BF516"
|
|
help
|
|
BF516 Processor Support.
|
|
|
|
config BF518
|
|
bool "BF518"
|
|
help
|
|
BF518 Processor Support.
|
|
|
|
config BF522
|
|
bool "BF522"
|
|
help
|
|
BF522 Processor Support.
|
|
|
|
config BF523
|
|
bool "BF523"
|
|
help
|
|
BF523 Processor Support.
|
|
|
|
config BF524
|
|
bool "BF524"
|
|
help
|
|
BF524 Processor Support.
|
|
|
|
config BF525
|
|
bool "BF525"
|
|
help
|
|
BF525 Processor Support.
|
|
|
|
config BF526
|
|
bool "BF526"
|
|
help
|
|
BF526 Processor Support.
|
|
|
|
config BF527
|
|
bool "BF527"
|
|
help
|
|
BF527 Processor Support.
|
|
|
|
config BF531
|
|
bool "BF531"
|
|
help
|
|
BF531 Processor Support.
|
|
|
|
config BF532
|
|
bool "BF532"
|
|
help
|
|
BF532 Processor Support.
|
|
|
|
config BF533
|
|
bool "BF533"
|
|
help
|
|
BF533 Processor Support.
|
|
|
|
config BF534
|
|
bool "BF534"
|
|
help
|
|
BF534 Processor Support.
|
|
|
|
config BF536
|
|
bool "BF536"
|
|
help
|
|
BF536 Processor Support.
|
|
|
|
config BF537
|
|
bool "BF537"
|
|
help
|
|
BF537 Processor Support.
|
|
|
|
config BF538
|
|
bool "BF538"
|
|
help
|
|
BF538 Processor Support.
|
|
|
|
config BF539
|
|
bool "BF539"
|
|
help
|
|
BF539 Processor Support.
|
|
|
|
config BF542_std
|
|
bool "BF542"
|
|
help
|
|
BF542 Processor Support.
|
|
|
|
config BF542M
|
|
bool "BF542m"
|
|
help
|
|
BF542 Processor Support.
|
|
|
|
config BF544_std
|
|
bool "BF544"
|
|
help
|
|
BF544 Processor Support.
|
|
|
|
config BF544M
|
|
bool "BF544m"
|
|
help
|
|
BF544 Processor Support.
|
|
|
|
config BF547_std
|
|
bool "BF547"
|
|
help
|
|
BF547 Processor Support.
|
|
|
|
config BF547M
|
|
bool "BF547m"
|
|
help
|
|
BF547 Processor Support.
|
|
|
|
config BF548_std
|
|
bool "BF548"
|
|
help
|
|
BF548 Processor Support.
|
|
|
|
config BF548M
|
|
bool "BF548m"
|
|
help
|
|
BF548 Processor Support.
|
|
|
|
config BF549_std
|
|
bool "BF549"
|
|
help
|
|
BF549 Processor Support.
|
|
|
|
config BF549M
|
|
bool "BF549m"
|
|
help
|
|
BF549 Processor Support.
|
|
|
|
config BF561
|
|
bool "BF561"
|
|
help
|
|
BF561 Processor Support.
|
|
|
|
endchoice
|
|
|
|
config SMP
|
|
depends on BF561
|
|
select TICKSOURCE_CORETMR
|
|
bool "Symmetric multi-processing support"
|
|
---help---
|
|
This enables support for systems with more than one CPU,
|
|
like the dual core BF561. If you have a system with only one
|
|
CPU, say N. If you have a system with more than one CPU, say Y.
|
|
|
|
If you don't know what to do here, say N.
|
|
|
|
config NR_CPUS
|
|
int
|
|
depends on SMP
|
|
default 2 if BF561
|
|
|
|
config HOTPLUG_CPU
|
|
bool "Support for hot-pluggable CPUs"
|
|
depends on SMP && HOTPLUG
|
|
default y
|
|
|
|
config HAVE_LEGACY_PER_CPU_AREA
|
|
def_bool y
|
|
depends on SMP
|
|
|
|
config BF_REV_MIN
|
|
int
|
|
default 0 if (BF51x || BF52x || (BF54x && !BF54xM))
|
|
default 2 if (BF537 || BF536 || BF534)
|
|
default 3 if (BF561 || BF533 || BF532 || BF531 || BF54xM)
|
|
default 4 if (BF538 || BF539)
|
|
|
|
config BF_REV_MAX
|
|
int
|
|
default 2 if (BF51x || BF52x || (BF54x && !BF54xM))
|
|
default 3 if (BF537 || BF536 || BF534 || BF54xM)
|
|
default 5 if (BF561 || BF538 || BF539)
|
|
default 6 if (BF533 || BF532 || BF531)
|
|
|
|
choice
|
|
prompt "Silicon Rev"
|
|
default BF_REV_0_0 if (BF51x || BF52x)
|
|
default BF_REV_0_2 if (BF534 || BF536 || BF537 || (BF54x && !BF54xM))
|
|
default BF_REV_0_3 if (BF531 || BF532 || BF533 || BF54xM || BF561)
|
|
|
|
config BF_REV_0_0
|
|
bool "0.0"
|
|
depends on (BF51x || BF52x || (BF54x && !BF54xM))
|
|
|
|
config BF_REV_0_1
|
|
bool "0.1"
|
|
depends on (BF51x || BF52x || (BF54x && !BF54xM))
|
|
|
|
config BF_REV_0_2
|
|
bool "0.2"
|
|
depends on (BF51x || BF52x || BF537 || BF536 || BF534 || (BF54x && !BF54xM))
|
|
|
|
config BF_REV_0_3
|
|
bool "0.3"
|
|
depends on (BF54xM || BF561 || BF537 || BF536 || BF534 || BF533 || BF532 || BF531)
|
|
|
|
config BF_REV_0_4
|
|
bool "0.4"
|
|
depends on (BF561 || BF533 || BF532 || BF531 || BF538 || BF539)
|
|
|
|
config BF_REV_0_5
|
|
bool "0.5"
|
|
depends on (BF561 || BF533 || BF532 || BF531 || BF538 || BF539)
|
|
|
|
config BF_REV_0_6
|
|
bool "0.6"
|
|
depends on (BF533 || BF532 || BF531)
|
|
|
|
config BF_REV_ANY
|
|
bool "any"
|
|
|
|
config BF_REV_NONE
|
|
bool "none"
|
|
|
|
endchoice
|
|
|
|
config BF53x
|
|
bool
|
|
depends on (BF531 || BF532 || BF533 || BF534 || BF536 || BF537)
|
|
default y
|
|
|
|
config MEM_MT48LC64M4A2FB_7E
|
|
bool
|
|
depends on (BFIN533_STAMP)
|
|
default y
|
|
|
|
config MEM_MT48LC16M16A2TG_75
|
|
bool
|
|
depends on (BFIN533_EZKIT || BFIN561_EZKIT \
|
|
|| BFIN533_BLUETECHNIX_CM || BFIN537_BLUETECHNIX_CM_E \
|
|
|| BFIN537_BLUETECHNIX_CM_U || H8606_HVSISTEMAS \
|
|
|| BFIN527_BLUETECHNIX_CM)
|
|
default y
|
|
|
|
config MEM_MT48LC32M8A2_75
|
|
bool
|
|
depends on (BFIN518F_EZBRD || BFIN537_STAMP || PNAV10 || BFIN538_EZKIT)
|
|
default y
|
|
|
|
config MEM_MT48LC8M32B2B5_7
|
|
bool
|
|
depends on (BFIN561_BLUETECHNIX_CM)
|
|
default y
|
|
|
|
config MEM_MT48LC32M16A2TG_75
|
|
bool
|
|
depends on (BFIN527_EZKIT || BFIN527_EZKIT_V2 || BFIN532_IP0X || BLACKSTAMP || BFIN527_AD7160EVAL)
|
|
default y
|
|
|
|
config MEM_MT48H32M16LFCJ_75
|
|
bool
|
|
depends on (BFIN526_EZBRD)
|
|
default y
|
|
|
|
source "arch/blackfin/mach-bf518/Kconfig"
|
|
source "arch/blackfin/mach-bf527/Kconfig"
|
|
source "arch/blackfin/mach-bf533/Kconfig"
|
|
source "arch/blackfin/mach-bf561/Kconfig"
|
|
source "arch/blackfin/mach-bf537/Kconfig"
|
|
source "arch/blackfin/mach-bf538/Kconfig"
|
|
source "arch/blackfin/mach-bf548/Kconfig"
|
|
|
|
menu "Board customizations"
|
|
|
|
config CMDLINE_BOOL
|
|
bool "Default bootloader kernel arguments"
|
|
|
|
config CMDLINE
|
|
string "Initial kernel command string"
|
|
depends on CMDLINE_BOOL
|
|
default "console=ttyBF0,57600"
|
|
help
|
|
If you don't have a boot loader capable of passing a command line string
|
|
to the kernel, you may specify one here. As a minimum, you should specify
|
|
the memory size and the root device (e.g., mem=8M, root=/dev/nfs).
|
|
|
|
config BOOT_LOAD
|
|
hex "Kernel load address for booting"
|
|
default "0x1000"
|
|
range 0x1000 0x20000000
|
|
help
|
|
This option allows you to set the load address of the kernel.
|
|
This can be useful if you are on a board which has a small amount
|
|
of memory or you wish to reserve some memory at the beginning of
|
|
the address space.
|
|
|
|
Note that you need to keep this value above 4k (0x1000) as this
|
|
memory region is used to capture NULL pointer references as well
|
|
as some core kernel functions.
|
|
|
|
config ROM_BASE
|
|
hex "Kernel ROM Base"
|
|
depends on ROMKERNEL
|
|
default "0x20040040"
|
|
range 0x20000000 0x20400000 if !(BF54x || BF561)
|
|
range 0x20000000 0x30000000 if (BF54x || BF561)
|
|
help
|
|
Make sure your ROM base does not include any file-header
|
|
information that is prepended to the kernel.
|
|
|
|
For example, the bootable U-Boot format (created with
|
|
mkimage) has a 64 byte header (0x40). So while the image
|
|
you write to flash might start at say 0x20080000, you have
|
|
to add 0x40 to get the kernel's ROM base as it will come
|
|
after the header.
|
|
|
|
comment "Clock/PLL Setup"
|
|
|
|
config CLKIN_HZ
|
|
int "Frequency of the crystal on the board in Hz"
|
|
default "10000000" if BFIN532_IP0X
|
|
default "11059200" if BFIN533_STAMP
|
|
default "24576000" if PNAV10
|
|
default "25000000" # most people use this
|
|
default "27000000" if BFIN533_EZKIT
|
|
default "30000000" if BFIN561_EZKIT
|
|
default "24000000" if BFIN527_AD7160EVAL
|
|
help
|
|
The frequency of CLKIN crystal oscillator on the board in Hz.
|
|
Warning: This value should match the crystal on the board. Otherwise,
|
|
peripherals won't work properly.
|
|
|
|
config BFIN_KERNEL_CLOCK
|
|
bool "Re-program Clocks while Kernel boots?"
|
|
default n
|
|
help
|
|
This option decides if kernel clocks are re-programed from the
|
|
bootloader settings. If the clocks are not set, the SDRAM settings
|
|
are also not changed, and the Bootloader does 100% of the hardware
|
|
configuration.
|
|
|
|
config PLL_BYPASS
|
|
bool "Bypass PLL"
|
|
depends on BFIN_KERNEL_CLOCK
|
|
default n
|
|
|
|
config CLKIN_HALF
|
|
bool "Half Clock In"
|
|
depends on BFIN_KERNEL_CLOCK && (! PLL_BYPASS)
|
|
default n
|
|
help
|
|
If this is set the clock will be divided by 2, before it goes to the PLL.
|
|
|
|
config VCO_MULT
|
|
int "VCO Multiplier"
|
|
depends on BFIN_KERNEL_CLOCK && (! PLL_BYPASS)
|
|
range 1 64
|
|
default "22" if BFIN533_EZKIT
|
|
default "45" if BFIN533_STAMP
|
|
default "20" if (BFIN537_STAMP || BFIN527_EZKIT || BFIN527_EZKIT_V2 || BFIN548_EZKIT || BFIN548_BLUETECHNIX_CM || BFIN538_EZKIT)
|
|
default "22" if BFIN533_BLUETECHNIX_CM
|
|
default "20" if (BFIN537_BLUETECHNIX_CM_E || BFIN537_BLUETECHNIX_CM_U || BFIN527_BLUETECHNIX_CM || BFIN561_BLUETECHNIX_CM)
|
|
default "20" if BFIN561_EZKIT
|
|
default "16" if (H8606_HVSISTEMAS || BLACKSTAMP || BFIN526_EZBRD || BFIN518F_EZBRD)
|
|
default "25" if BFIN527_AD7160EVAL
|
|
help
|
|
This controls the frequency of the on-chip PLL. This can be between 1 and 64.
|
|
PLL Frequency = (Crystal Frequency) * (this setting)
|
|
|
|
choice
|
|
prompt "Core Clock Divider"
|
|
depends on BFIN_KERNEL_CLOCK
|
|
default CCLK_DIV_1
|
|
help
|
|
This sets the frequency of the core. It can be 1, 2, 4 or 8
|
|
Core Frequency = (PLL frequency) / (this setting)
|
|
|
|
config CCLK_DIV_1
|
|
bool "1"
|
|
|
|
config CCLK_DIV_2
|
|
bool "2"
|
|
|
|
config CCLK_DIV_4
|
|
bool "4"
|
|
|
|
config CCLK_DIV_8
|
|
bool "8"
|
|
endchoice
|
|
|
|
config SCLK_DIV
|
|
int "System Clock Divider"
|
|
depends on BFIN_KERNEL_CLOCK
|
|
range 1 15
|
|
default 5
|
|
help
|
|
This sets the frequency of the system clock (including SDRAM or DDR).
|
|
This can be between 1 and 15
|
|
System Clock = (PLL frequency) / (this setting)
|
|
|
|
choice
|
|
prompt "DDR SDRAM Chip Type"
|
|
depends on BFIN_KERNEL_CLOCK
|
|
depends on BF54x
|
|
default MEM_MT46V32M16_5B
|
|
|
|
config MEM_MT46V32M16_6T
|
|
bool "MT46V32M16_6T"
|
|
|
|
config MEM_MT46V32M16_5B
|
|
bool "MT46V32M16_5B"
|
|
endchoice
|
|
|
|
choice
|
|
prompt "DDR/SDRAM Timing"
|
|
depends on BFIN_KERNEL_CLOCK
|
|
default BFIN_KERNEL_CLOCK_MEMINIT_CALC
|
|
help
|
|
This option allows you to specify Blackfin SDRAM/DDR Timing parameters
|
|
The calculated SDRAM timing parameters may not be 100%
|
|
accurate - This option is therefore marked experimental.
|
|
|
|
config BFIN_KERNEL_CLOCK_MEMINIT_CALC
|
|
bool "Calculate Timings (EXPERIMENTAL)"
|
|
depends on EXPERIMENTAL
|
|
|
|
config BFIN_KERNEL_CLOCK_MEMINIT_SPEC
|
|
bool "Provide accurate Timings based on target SCLK"
|
|
help
|
|
Please consult the Blackfin Hardware Reference Manuals as well
|
|
as the memory device datasheet.
|
|
http://docs.blackfin.uclinux.org/doku.php?id=bfin:sdram
|
|
endchoice
|
|
|
|
menu "Memory Init Control"
|
|
depends on BFIN_KERNEL_CLOCK_MEMINIT_SPEC
|
|
|
|
config MEM_DDRCTL0
|
|
depends on BF54x
|
|
hex "DDRCTL0"
|
|
default 0x0
|
|
|
|
config MEM_DDRCTL1
|
|
depends on BF54x
|
|
hex "DDRCTL1"
|
|
default 0x0
|
|
|
|
config MEM_DDRCTL2
|
|
depends on BF54x
|
|
hex "DDRCTL2"
|
|
default 0x0
|
|
|
|
config MEM_EBIU_DDRQUE
|
|
depends on BF54x
|
|
hex "DDRQUE"
|
|
default 0x0
|
|
|
|
config MEM_SDRRC
|
|
depends on !BF54x
|
|
hex "SDRRC"
|
|
default 0x0
|
|
|
|
config MEM_SDGCTL
|
|
depends on !BF54x
|
|
hex "SDGCTL"
|
|
default 0x0
|
|
endmenu
|
|
|
|
#
|
|
# Max & Min Speeds for various Chips
|
|
#
|
|
config MAX_VCO_HZ
|
|
int
|
|
default 400000000 if BF512
|
|
default 400000000 if BF514
|
|
default 400000000 if BF516
|
|
default 400000000 if BF518
|
|
default 400000000 if BF522
|
|
default 600000000 if BF523
|
|
default 400000000 if BF524
|
|
default 600000000 if BF525
|
|
default 400000000 if BF526
|
|
default 600000000 if BF527
|
|
default 400000000 if BF531
|
|
default 400000000 if BF532
|
|
default 750000000 if BF533
|
|
default 500000000 if BF534
|
|
default 400000000 if BF536
|
|
default 600000000 if BF537
|
|
default 533333333 if BF538
|
|
default 533333333 if BF539
|
|
default 600000000 if BF542
|
|
default 533333333 if BF544
|
|
default 600000000 if BF547
|
|
default 600000000 if BF548
|
|
default 533333333 if BF549
|
|
default 600000000 if BF561
|
|
|
|
config MIN_VCO_HZ
|
|
int
|
|
default 50000000
|
|
|
|
config MAX_SCLK_HZ
|
|
int
|
|
default 133333333
|
|
|
|
config MIN_SCLK_HZ
|
|
int
|
|
default 27000000
|
|
|
|
comment "Kernel Timer/Scheduler"
|
|
|
|
source kernel/Kconfig.hz
|
|
|
|
config GENERIC_CLOCKEVENTS
|
|
bool "Generic clock events"
|
|
default y
|
|
|
|
menu "Clock event device"
|
|
depends on GENERIC_CLOCKEVENTS
|
|
config TICKSOURCE_GPTMR0
|
|
bool "GPTimer0"
|
|
depends on !SMP
|
|
select BFIN_GPTIMERS
|
|
|
|
config TICKSOURCE_CORETMR
|
|
bool "Core timer"
|
|
default y
|
|
endmenu
|
|
|
|
menu "Clock souce"
|
|
depends on GENERIC_CLOCKEVENTS
|
|
config CYCLES_CLOCKSOURCE
|
|
bool "CYCLES"
|
|
default y
|
|
depends on !BFIN_SCRATCH_REG_CYCLES
|
|
depends on !SMP
|
|
help
|
|
If you say Y here, you will enable support for using the 'cycles'
|
|
registers as a clock source. Doing so means you will be unable to
|
|
safely write to the 'cycles' register during runtime. You will
|
|
still be able to read it (such as for performance monitoring), but
|
|
writing the registers will most likely crash the kernel.
|
|
|
|
config GPTMR0_CLOCKSOURCE
|
|
bool "GPTimer0"
|
|
select BFIN_GPTIMERS
|
|
depends on !TICKSOURCE_GPTMR0
|
|
endmenu
|
|
|
|
config ARCH_USES_GETTIMEOFFSET
|
|
depends on !GENERIC_CLOCKEVENTS
|
|
def_bool y
|
|
|
|
source kernel/time/Kconfig
|
|
|
|
comment "Misc"
|
|
|
|
choice
|
|
prompt "Blackfin Exception Scratch Register"
|
|
default BFIN_SCRATCH_REG_RETN
|
|
help
|
|
Select the resource to reserve for the Exception handler:
|
|
- RETN: Non-Maskable Interrupt (NMI)
|
|
- RETE: Exception Return (JTAG/ICE)
|
|
- CYCLES: Performance counter
|
|
|
|
If you are unsure, please select "RETN".
|
|
|
|
config BFIN_SCRATCH_REG_RETN
|
|
bool "RETN"
|
|
help
|
|
Use the RETN register in the Blackfin exception handler
|
|
as a stack scratch register. This means you cannot
|
|
safely use NMI on the Blackfin while running Linux, but
|
|
you can debug the system with a JTAG ICE and use the
|
|
CYCLES performance registers.
|
|
|
|
If you are unsure, please select "RETN".
|
|
|
|
config BFIN_SCRATCH_REG_RETE
|
|
bool "RETE"
|
|
help
|
|
Use the RETE register in the Blackfin exception handler
|
|
as a stack scratch register. This means you cannot
|
|
safely use a JTAG ICE while debugging a Blackfin board,
|
|
but you can safely use the CYCLES performance registers
|
|
and the NMI.
|
|
|
|
If you are unsure, please select "RETN".
|
|
|
|
config BFIN_SCRATCH_REG_CYCLES
|
|
bool "CYCLES"
|
|
help
|
|
Use the CYCLES register in the Blackfin exception handler
|
|
as a stack scratch register. This means you cannot
|
|
safely use the CYCLES performance registers on a Blackfin
|
|
board at anytime, but you can debug the system with a JTAG
|
|
ICE and use the NMI.
|
|
|
|
If you are unsure, please select "RETN".
|
|
|
|
endchoice
|
|
|
|
endmenu
|
|
|
|
|
|
menu "Blackfin Kernel Optimizations"
|
|
|
|
comment "Memory Optimizations"
|
|
|
|
config I_ENTRY_L1
|
|
bool "Locate interrupt entry code in L1 Memory"
|
|
default y
|
|
depends on !SMP
|
|
help
|
|
If enabled, interrupt entry code (STORE/RESTORE CONTEXT) is linked
|
|
into L1 instruction memory. (less latency)
|
|
|
|
config EXCPT_IRQ_SYSC_L1
|
|
bool "Locate entire ASM lowlevel exception / interrupt - Syscall and CPLB handler code in L1 Memory"
|
|
default y
|
|
depends on !SMP
|
|
help
|
|
If enabled, the entire ASM lowlevel exception and interrupt entry code
|
|
(STORE/RESTORE CONTEXT) is linked into L1 instruction memory.
|
|
(less latency)
|
|
|
|
config DO_IRQ_L1
|
|
bool "Locate frequently called do_irq dispatcher function in L1 Memory"
|
|
default y
|
|
depends on !SMP
|
|
help
|
|
If enabled, the frequently called do_irq dispatcher function is linked
|
|
into L1 instruction memory. (less latency)
|
|
|
|
config CORE_TIMER_IRQ_L1
|
|
bool "Locate frequently called timer_interrupt() function in L1 Memory"
|
|
default y
|
|
depends on !SMP
|
|
help
|
|
If enabled, the frequently called timer_interrupt() function is linked
|
|
into L1 instruction memory. (less latency)
|
|
|
|
config IDLE_L1
|
|
bool "Locate frequently idle function in L1 Memory"
|
|
default y
|
|
depends on !SMP
|
|
help
|
|
If enabled, the frequently called idle function is linked
|
|
into L1 instruction memory. (less latency)
|
|
|
|
config SCHEDULE_L1
|
|
bool "Locate kernel schedule function in L1 Memory"
|
|
default y
|
|
depends on !SMP
|
|
help
|
|
If enabled, the frequently called kernel schedule is linked
|
|
into L1 instruction memory. (less latency)
|
|
|
|
config ARITHMETIC_OPS_L1
|
|
bool "Locate kernel owned arithmetic functions in L1 Memory"
|
|
default y
|
|
depends on !SMP
|
|
help
|
|
If enabled, arithmetic functions are linked
|
|
into L1 instruction memory. (less latency)
|
|
|
|
config ACCESS_OK_L1
|
|
bool "Locate access_ok function in L1 Memory"
|
|
default y
|
|
depends on !SMP
|
|
help
|
|
If enabled, the access_ok function is linked
|
|
into L1 instruction memory. (less latency)
|
|
|
|
config MEMSET_L1
|
|
bool "Locate memset function in L1 Memory"
|
|
default y
|
|
depends on !SMP
|
|
help
|
|
If enabled, the memset function is linked
|
|
into L1 instruction memory. (less latency)
|
|
|
|
config MEMCPY_L1
|
|
bool "Locate memcpy function in L1 Memory"
|
|
default y
|
|
depends on !SMP
|
|
help
|
|
If enabled, the memcpy function is linked
|
|
into L1 instruction memory. (less latency)
|
|
|
|
config STRCMP_L1
|
|
bool "locate strcmp function in L1 Memory"
|
|
default y
|
|
depends on !SMP
|
|
help
|
|
If enabled, the strcmp function is linked
|
|
into L1 instruction memory (less latency).
|
|
|
|
config STRNCMP_L1
|
|
bool "locate strncmp function in L1 Memory"
|
|
default y
|
|
depends on !SMP
|
|
help
|
|
If enabled, the strncmp function is linked
|
|
into L1 instruction memory (less latency).
|
|
|
|
config STRCPY_L1
|
|
bool "locate strcpy function in L1 Memory"
|
|
default y
|
|
depends on !SMP
|
|
help
|
|
If enabled, the strcpy function is linked
|
|
into L1 instruction memory (less latency).
|
|
|
|
config STRNCPY_L1
|
|
bool "locate strncpy function in L1 Memory"
|
|
default y
|
|
depends on !SMP
|
|
help
|
|
If enabled, the strncpy function is linked
|
|
into L1 instruction memory (less latency).
|
|
|
|
config SYS_BFIN_SPINLOCK_L1
|
|
bool "Locate sys_bfin_spinlock function in L1 Memory"
|
|
default y
|
|
depends on !SMP
|
|
help
|
|
If enabled, sys_bfin_spinlock function is linked
|
|
into L1 instruction memory. (less latency)
|
|
|
|
config IP_CHECKSUM_L1
|
|
bool "Locate IP Checksum function in L1 Memory"
|
|
default n
|
|
depends on !SMP
|
|
help
|
|
If enabled, the IP Checksum function is linked
|
|
into L1 instruction memory. (less latency)
|
|
|
|
config CACHELINE_ALIGNED_L1
|
|
bool "Locate cacheline_aligned data to L1 Data Memory"
|
|
default y if !BF54x
|
|
default n if BF54x
|
|
depends on !SMP && !BF531
|
|
help
|
|
If enabled, cacheline_aligned data is linked
|
|
into L1 data memory. (less latency)
|
|
|
|
config SYSCALL_TAB_L1
|
|
bool "Locate Syscall Table L1 Data Memory"
|
|
default n
|
|
depends on !SMP && !BF531
|
|
help
|
|
If enabled, the Syscall LUT is linked
|
|
into L1 data memory. (less latency)
|
|
|
|
config CPLB_SWITCH_TAB_L1
|
|
bool "Locate CPLB Switch Tables L1 Data Memory"
|
|
default n
|
|
depends on !SMP && !BF531
|
|
help
|
|
If enabled, the CPLB Switch Tables are linked
|
|
into L1 data memory. (less latency)
|
|
|
|
config ICACHE_FLUSH_L1
|
|
bool "Locate icache flush funcs in L1 Inst Memory"
|
|
default y
|
|
help
|
|
If enabled, the Blackfin icache flushing functions are linked
|
|
into L1 instruction memory.
|
|
|
|
Note that this might be required to address anomalies, but
|
|
these functions are pretty small, so it shouldn't be too bad.
|
|
If you are using a processor affected by an anomaly, the build
|
|
system will double check for you and prevent it.
|
|
|
|
config DCACHE_FLUSH_L1
|
|
bool "Locate dcache flush funcs in L1 Inst Memory"
|
|
default y
|
|
depends on !SMP
|
|
help
|
|
If enabled, the Blackfin dcache flushing functions are linked
|
|
into L1 instruction memory.
|
|
|
|
config APP_STACK_L1
|
|
bool "Support locating application stack in L1 Scratch Memory"
|
|
default y
|
|
depends on !SMP
|
|
help
|
|
If enabled the application stack can be located in L1
|
|
scratch memory (less latency).
|
|
|
|
Currently only works with FLAT binaries.
|
|
|
|
config EXCEPTION_L1_SCRATCH
|
|
bool "Locate exception stack in L1 Scratch Memory"
|
|
default n
|
|
depends on !SMP && !APP_STACK_L1
|
|
help
|
|
Whenever an exception occurs, use the L1 Scratch memory for
|
|
stack storage. You cannot place the stacks of FLAT binaries
|
|
in L1 when using this option.
|
|
|
|
If you don't use L1 Scratch, then you should say Y here.
|
|
|
|
comment "Speed Optimizations"
|
|
config BFIN_INS_LOWOVERHEAD
|
|
bool "ins[bwl] low overhead, higher interrupt latency"
|
|
default y
|
|
depends on !SMP
|
|
help
|
|
Reads on the Blackfin are speculative. In Blackfin terms, this means
|
|
they can be interrupted at any time (even after they have been issued
|
|
on to the external bus), and re-issued after the interrupt occurs.
|
|
For memory - this is not a big deal, since memory does not change if
|
|
it sees a read.
|
|
|
|
If a FIFO is sitting on the end of the read, it will see two reads,
|
|
when the core only sees one since the FIFO receives both the read
|
|
which is cancelled (and not delivered to the core) and the one which
|
|
is re-issued (which is delivered to the core).
|
|
|
|
To solve this, interrupts are turned off before reads occur to
|
|
I/O space. This option controls which the overhead/latency of
|
|
controlling interrupts during this time
|
|
"n" turns interrupts off every read
|
|
(higher overhead, but lower interrupt latency)
|
|
"y" turns interrupts off every loop
|
|
(low overhead, but longer interrupt latency)
|
|
|
|
default behavior is to leave this set to on (type "Y"). If you are experiencing
|
|
interrupt latency issues, it is safe and OK to turn this off.
|
|
|
|
endmenu
|
|
|
|
choice
|
|
prompt "Kernel executes from"
|
|
help
|
|
Choose the memory type that the kernel will be running in.
|
|
|
|
config RAMKERNEL
|
|
bool "RAM"
|
|
help
|
|
The kernel will be resident in RAM when running.
|
|
|
|
config ROMKERNEL
|
|
bool "ROM"
|
|
help
|
|
The kernel will be resident in FLASH/ROM when running.
|
|
|
|
endchoice
|
|
|
|
# Common code uses "ROMKERNEL" or "XIP_KERNEL", so define both
|
|
config XIP_KERNEL
|
|
bool
|
|
default y
|
|
depends on ROMKERNEL
|
|
|
|
source "mm/Kconfig"
|
|
|
|
config BFIN_GPTIMERS
|
|
tristate "Enable Blackfin General Purpose Timers API"
|
|
default n
|
|
help
|
|
Enable support for the General Purpose Timers API. If you
|
|
are unsure, say N.
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called gptimers.
|
|
|
|
config HAVE_PWM
|
|
tristate "Enable PWM API support"
|
|
depends on BFIN_GPTIMERS
|
|
help
|
|
Enable support for the Pulse Width Modulation framework (as
|
|
found in linux/pwm.h).
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called pwm.
|
|
|
|
choice
|
|
prompt "Uncached DMA region"
|
|
default DMA_UNCACHED_1M
|
|
config DMA_UNCACHED_4M
|
|
bool "Enable 4M DMA region"
|
|
config DMA_UNCACHED_2M
|
|
bool "Enable 2M DMA region"
|
|
config DMA_UNCACHED_1M
|
|
bool "Enable 1M DMA region"
|
|
config DMA_UNCACHED_512K
|
|
bool "Enable 512K DMA region"
|
|
config DMA_UNCACHED_256K
|
|
bool "Enable 256K DMA region"
|
|
config DMA_UNCACHED_128K
|
|
bool "Enable 128K DMA region"
|
|
config DMA_UNCACHED_NONE
|
|
bool "Disable DMA region"
|
|
endchoice
|
|
|
|
|
|
comment "Cache Support"
|
|
|
|
config BFIN_ICACHE
|
|
bool "Enable ICACHE"
|
|
default y
|
|
config BFIN_EXTMEM_ICACHEABLE
|
|
bool "Enable ICACHE for external memory"
|
|
depends on BFIN_ICACHE
|
|
default y
|
|
config BFIN_L2_ICACHEABLE
|
|
bool "Enable ICACHE for L2 SRAM"
|
|
depends on BFIN_ICACHE
|
|
depends on BF54x || BF561
|
|
default n
|
|
|
|
config BFIN_DCACHE
|
|
bool "Enable DCACHE"
|
|
default y
|
|
config BFIN_DCACHE_BANKA
|
|
bool "Enable only 16k BankA DCACHE - BankB is SRAM"
|
|
depends on BFIN_DCACHE && !BF531
|
|
default n
|
|
config BFIN_EXTMEM_DCACHEABLE
|
|
bool "Enable DCACHE for external memory"
|
|
depends on BFIN_DCACHE
|
|
default y
|
|
choice
|
|
prompt "External memory DCACHE policy"
|
|
depends on BFIN_EXTMEM_DCACHEABLE
|
|
default BFIN_EXTMEM_WRITEBACK if !SMP
|
|
default BFIN_EXTMEM_WRITETHROUGH if SMP
|
|
config BFIN_EXTMEM_WRITEBACK
|
|
bool "Write back"
|
|
depends on !SMP
|
|
help
|
|
Write Back Policy:
|
|
Cached data will be written back to SDRAM only when needed.
|
|
This can give a nice increase in performance, but beware of
|
|
broken drivers that do not properly invalidate/flush their
|
|
cache.
|
|
|
|
Write Through Policy:
|
|
Cached data will always be written back to SDRAM when the
|
|
cache is updated. This is a completely safe setting, but
|
|
performance is worse than Write Back.
|
|
|
|
If you are unsure of the options and you want to be safe,
|
|
then go with Write Through.
|
|
|
|
config BFIN_EXTMEM_WRITETHROUGH
|
|
bool "Write through"
|
|
help
|
|
Write Back Policy:
|
|
Cached data will be written back to SDRAM only when needed.
|
|
This can give a nice increase in performance, but beware of
|
|
broken drivers that do not properly invalidate/flush their
|
|
cache.
|
|
|
|
Write Through Policy:
|
|
Cached data will always be written back to SDRAM when the
|
|
cache is updated. This is a completely safe setting, but
|
|
performance is worse than Write Back.
|
|
|
|
If you are unsure of the options and you want to be safe,
|
|
then go with Write Through.
|
|
|
|
endchoice
|
|
|
|
config BFIN_L2_DCACHEABLE
|
|
bool "Enable DCACHE for L2 SRAM"
|
|
depends on BFIN_DCACHE
|
|
depends on (BF54x || BF561) && !SMP
|
|
default n
|
|
choice
|
|
prompt "L2 SRAM DCACHE policy"
|
|
depends on BFIN_L2_DCACHEABLE
|
|
default BFIN_L2_WRITEBACK
|
|
config BFIN_L2_WRITEBACK
|
|
bool "Write back"
|
|
|
|
config BFIN_L2_WRITETHROUGH
|
|
bool "Write through"
|
|
endchoice
|
|
|
|
|
|
comment "Memory Protection Unit"
|
|
config MPU
|
|
bool "Enable the memory protection unit (EXPERIMENTAL)"
|
|
default n
|
|
help
|
|
Use the processor's MPU to protect applications from accessing
|
|
memory they do not own. This comes at a performance penalty
|
|
and is recommended only for debugging.
|
|
|
|
comment "Asynchronous Memory Configuration"
|
|
|
|
menu "EBIU_AMGCTL Global Control"
|
|
config C_AMCKEN
|
|
bool "Enable CLKOUT"
|
|
default y
|
|
|
|
config C_CDPRIO
|
|
bool "DMA has priority over core for ext. accesses"
|
|
default n
|
|
|
|
config C_B0PEN
|
|
depends on BF561
|
|
bool "Bank 0 16 bit packing enable"
|
|
default y
|
|
|
|
config C_B1PEN
|
|
depends on BF561
|
|
bool "Bank 1 16 bit packing enable"
|
|
default y
|
|
|
|
config C_B2PEN
|
|
depends on BF561
|
|
bool "Bank 2 16 bit packing enable"
|
|
default y
|
|
|
|
config C_B3PEN
|
|
depends on BF561
|
|
bool "Bank 3 16 bit packing enable"
|
|
default n
|
|
|
|
choice
|
|
prompt "Enable Asynchronous Memory Banks"
|
|
default C_AMBEN_ALL
|
|
|
|
config C_AMBEN
|
|
bool "Disable All Banks"
|
|
|
|
config C_AMBEN_B0
|
|
bool "Enable Bank 0"
|
|
|
|
config C_AMBEN_B0_B1
|
|
bool "Enable Bank 0 & 1"
|
|
|
|
config C_AMBEN_B0_B1_B2
|
|
bool "Enable Bank 0 & 1 & 2"
|
|
|
|
config C_AMBEN_ALL
|
|
bool "Enable All Banks"
|
|
endchoice
|
|
endmenu
|
|
|
|
menu "EBIU_AMBCTL Control"
|
|
config BANK_0
|
|
hex "Bank 0 (AMBCTL0.L)"
|
|
default 0x7BB0
|
|
help
|
|
These are the low 16 bits of the EBIU_AMBCTL0 MMR which are
|
|
used to control the Asynchronous Memory Bank 0 settings.
|
|
|
|
config BANK_1
|
|
hex "Bank 1 (AMBCTL0.H)"
|
|
default 0x7BB0
|
|
default 0x5558 if BF54x
|
|
help
|
|
These are the high 16 bits of the EBIU_AMBCTL0 MMR which are
|
|
used to control the Asynchronous Memory Bank 1 settings.
|
|
|
|
config BANK_2
|
|
hex "Bank 2 (AMBCTL1.L)"
|
|
default 0x7BB0
|
|
help
|
|
These are the low 16 bits of the EBIU_AMBCTL1 MMR which are
|
|
used to control the Asynchronous Memory Bank 2 settings.
|
|
|
|
config BANK_3
|
|
hex "Bank 3 (AMBCTL1.H)"
|
|
default 0x99B3
|
|
help
|
|
These are the high 16 bits of the EBIU_AMBCTL1 MMR which are
|
|
used to control the Asynchronous Memory Bank 3 settings.
|
|
|
|
endmenu
|
|
|
|
config EBIU_MBSCTLVAL
|
|
hex "EBIU Bank Select Control Register"
|
|
depends on BF54x
|
|
default 0
|
|
|
|
config EBIU_MODEVAL
|
|
hex "Flash Memory Mode Control Register"
|
|
depends on BF54x
|
|
default 1
|
|
|
|
config EBIU_FCTLVAL
|
|
hex "Flash Memory Bank Control Register"
|
|
depends on BF54x
|
|
default 6
|
|
endmenu
|
|
|
|
#############################################################################
|
|
menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
|
|
|
|
config PCI
|
|
bool "PCI support"
|
|
depends on BROKEN
|
|
help
|
|
Support for PCI bus.
|
|
|
|
source "drivers/pci/Kconfig"
|
|
|
|
source "drivers/pcmcia/Kconfig"
|
|
|
|
source "drivers/pci/hotplug/Kconfig"
|
|
|
|
endmenu
|
|
|
|
menu "Executable file formats"
|
|
|
|
source "fs/Kconfig.binfmt"
|
|
|
|
endmenu
|
|
|
|
menu "Power management options"
|
|
|
|
source "kernel/power/Kconfig"
|
|
|
|
config ARCH_SUSPEND_POSSIBLE
|
|
def_bool y
|
|
|
|
choice
|
|
prompt "Standby Power Saving Mode"
|
|
depends on PM
|
|
default PM_BFIN_SLEEP_DEEPER
|
|
config PM_BFIN_SLEEP_DEEPER
|
|
bool "Sleep Deeper"
|
|
help
|
|
Sleep "Deeper" Mode (High Power Savings) - This mode reduces dynamic
|
|
power dissipation by disabling the clock to the processor core (CCLK).
|
|
Furthermore, Standby sets the internal power supply voltage (VDDINT)
|
|
to 0.85 V to provide the greatest power savings, while preserving the
|
|
processor state.
|
|
The PLL and system clock (SCLK) continue to operate at a very low
|
|
frequency of about 3.3 MHz. To preserve data integrity in the SDRAM,
|
|
the SDRAM is put into Self Refresh Mode. Typically an external event
|
|
such as GPIO interrupt or RTC activity wakes up the processor.
|
|
Various Peripherals such as UART, SPORT, PPI may not function as
|
|
normal during Sleep Deeper, due to the reduced SCLK frequency.
|
|
When in the sleep mode, system DMA access to L1 memory is not supported.
|
|
|
|
If unsure, select "Sleep Deeper".
|
|
|
|
config PM_BFIN_SLEEP
|
|
bool "Sleep"
|
|
help
|
|
Sleep Mode (High Power Savings) - The sleep mode reduces power
|
|
dissipation by disabling the clock to the processor core (CCLK).
|
|
The PLL and system clock (SCLK), however, continue to operate in
|
|
this mode. Typically an external event or RTC activity will wake
|
|
up the processor. When in the sleep mode, system DMA access to L1
|
|
memory is not supported.
|
|
|
|
If unsure, select "Sleep Deeper".
|
|
endchoice
|
|
|
|
comment "Possible Suspend Mem / Hibernate Wake-Up Sources"
|
|
depends on PM
|
|
|
|
config PM_BFIN_WAKE_PH6
|
|
bool "Allow Wake-Up from on-chip PHY or PH6 GP"
|
|
depends on PM && (BF51x || BF52x || BF534 || BF536 || BF537)
|
|
default n
|
|
help
|
|
Enable PHY and PH6 GP Wake-Up (Voltage Regulator Power-Up)
|
|
|
|
config PM_BFIN_WAKE_GP
|
|
bool "Allow Wake-Up from GPIOs"
|
|
depends on PM && BF54x
|
|
default n
|
|
help
|
|
Enable General-Purpose Wake-Up (Voltage Regulator Power-Up)
|
|
(all processors, except ADSP-BF549). This option sets
|
|
the general-purpose wake-up enable (GPWE) control bit to enable
|
|
wake-up upon detection of an active low signal on the /GPW (PH7) pin.
|
|
On ADSP-BF549 this option enables the the same functionality on the
|
|
/MRXON pin also PH7.
|
|
|
|
endmenu
|
|
|
|
menu "CPU Frequency scaling"
|
|
|
|
source "drivers/cpufreq/Kconfig"
|
|
|
|
config BFIN_CPU_FREQ
|
|
bool
|
|
depends on CPU_FREQ
|
|
select CPU_FREQ_TABLE
|
|
default y
|
|
|
|
config CPU_VOLTAGE
|
|
bool "CPU Voltage scaling"
|
|
depends on EXPERIMENTAL
|
|
depends on CPU_FREQ
|
|
default n
|
|
help
|
|
Say Y here if you want CPU voltage scaling according to the CPU frequency.
|
|
This option violates the PLL BYPASS recommendation in the Blackfin Processor
|
|
manuals. There is a theoretical risk that during VDDINT transitions
|
|
the PLL may unlock.
|
|
|
|
endmenu
|
|
|
|
source "net/Kconfig"
|
|
|
|
source "drivers/Kconfig"
|
|
|
|
source "drivers/firmware/Kconfig"
|
|
|
|
source "fs/Kconfig"
|
|
|
|
source "arch/blackfin/Kconfig.debug"
|
|
|
|
source "security/Kconfig"
|
|
|
|
source "crypto/Kconfig"
|
|
|
|
source "lib/Kconfig"
|