# For a description of the syntax of this configuration file,
# see Documentation/kbuild/kconfig-language.txt.
#
# Platform selection Kconfig menu for MicroBlaze targets
#

menu "Platform options"
choice
	prompt "Platform"
	default PLATFORM_MICROBLAZE_AUTO
	help
	  Choose which hardware board/platform you are targeting.

config PLATFORM_GENERIC
	bool "Generic"
	help
	  Choose this option for the Generic platform.

endchoice

config OPT_LIB_FUNCTION
	bool "Optimalized lib function"
	default y
	help
	  Allows turn on optimalized library function (memcpy and memmove).
	  They are optimized by using word alignment. This will work
	  fine if both source and destination are aligned on the same
	  boundary. However, if they are aligned on different boundaries
	  shifts will be necessary. This might result in bad performance
	  on MicroBlaze systems without a barrel shifter.

config OPT_LIB_ASM
	bool "Optimalized lib function ASM"
	depends on OPT_LIB_FUNCTION && (XILINX_MICROBLAZE0_USE_BARREL = 1)
	default n
	help
	  Allows turn on optimalized library function (memcpy and memmove).
	  Function are written in asm code.

if PLATFORM_GENERIC=y
	source "arch/microblaze/platform/generic/Kconfig.auto"
endif

endmenu
