if ARCH_FEROCEON

menu "Feroceon SoC options"
	depends on ARCH_FEROCEON

#since the Kconfig parser dispatch all source commands, we call the machines Kconfigs from here and
#not vice versa because otherwise the plat-feroceon Kconfig will be dispatched twice.     
if ARCH_FEROCEON_KW
source "arch/arm/mach-feroceon-kw/Kconfig"
endif

if ARCH_FEROCEON_MV78XX0
source "arch/arm/mach-feroceon-mv78xx0/Kconfig"
endif


config JTAG_DEBUG
        bool "Enable JTAG by disable \"wait for interrupt\"."
	depends on MV88F5181 || MV88F6183 || MV88F6281 || MV78XX0
        default n
        ---help---
           Enable the JTAG debugger taking over the CPU by disabling "wait for interrupt" idle loop."


menu "Feroceon SoC Included Features"

config  MV_INCLUDE_PCI
	bool "PCI Support"
	depends on PCI && MV88F5181 || MV88F5180N || MV88F5182 || MV88F5181L
	default y
	---help---
	Please don't change this configs unless you know what you are doing.


config MV_INCLUDE_PEX
	bool "PCI Express Support"
	depends on PCI && MV88F5181 || MV88F5182 || MV88F5082 || MV88F5181L || MV88F1281 || MV88F6082 || MV88F6183 || MV88F6281 || MV78XX0
	default y
        ---help---
        Please don't change this configs unless you know what you are doing.

config MV_INCLUDE_IDMA
	bool "IDMA Support"
	depends on MV88F5181 || MV88F5180N || MV88F5182 || MV88F5082 || MV88F5181L || MV88F6183 || MV78XX0 
	default y
        ---help---
        Please don't change this configs unless you know what you are doing.

config MV_INCLUDE_USB
	bool "USB Support"
	depends on MV88F5181 || MV88F5180N || MV88F5182 || MV88F5082 || MV88F5181L || MV88F6082 || MV88F6183 || MV88F6281 || MV78XX0
	default y
        ---help---
        Please don't change this configs unless you know what you are doing.

config MV_INCLUDE_XOR
	bool "XOR Support"
	depends on MV88F5182 || MV88F6281 || MV78XX0 
	default y
        ---help---
        Please don't change this configs unless you know what you are doing.

config MV_INCLUDE_CESA
	bool "CESA Support"
	depends on MV88F5182 || MV88F5082 ||  MV88F5181L || MV88F6082 || MV88F6183 || MV88F6281 || MV78XX0
	default y
        ---help---
        Please don't change this configs unless you know what you are doing.

config MV_INCLUDE_NAND
	bool "NAND Support"
	depends on MV88F5181 || MV88F5182 || MV88F5082 || MV88F5181L || MV88F1281 || MV88F6082 || MV88F6183 || MV88F6281 || MV78XX0
	default y
        ---help---
        Please don't change this configs unless you know what you are doing.

config MV_INCLUDE_INTEG_SATA
	bool "Integrated SATA Support"
	depends on MV88F5182 || MV88F5082 || MV88F6082 || MV88F6281 || MV78XX0
	default y
        ---help---
        Please don't change this configs unless you know what you are doing.

config MV_INCLUDE_TDM
	bool "Integrated TDM Support"
	depends on MV88F5181L || MV88F6281 || MV78XX0 
	default y
        ---help---
        Please don't change this configs unless you know what you are doing.

config MV_INCLUDE_GIG_ETH
	bool "Giga Ethernet Support"
	depends on MV88F5181 || MV88F5182 || MV88F5082 || MV88F5181L || MV88F5180N || MV88F6082 || MV88F6183 || MV88F6281 || MV78XX0
	default y

config MV_INCLUDE_INTEG_MFLASH
    bool "Integrated Marvell Flash Support"
    depends on MV88F6082
	default y
        ---help---
        Please don't change this configs unless you know what you are doing.
          
config MV_INCLUDE_SPI
	bool "SPI Support"
	depends on MV88F6082 || MV88F6183 || MV88F6281 || (MV78XX0 && !MV78XX0_Z0)
	default y
        ---help---
        Please don't change this configs unless you know what you are doing.


config MV_INCLUDE_SDIO
	bool "SDIO Support"
	depends on MV88F6183 || MV88F6281
	default y
        ---help---
        Please don't change this configs unless you know what you are doing.


config MV_INCLUDE_AUDIO
	bool "Audio Support"
	depends on MV88F6183 || MV88F6281
	default y
        ---help---
        Please don't change this configs unless you know what you are doing.

config MV_INCLUDE_TS
	bool "TSU Support"
	depends on MV88F6281
	default n
        ---help---
        Please don't change this configs unless you know what you are doing.

config MV_INCLUDE_LCD
        bool "LCD Support"
        depends on MV88F6281
        default n
        ---help---
        Please don't change this configs unless you know what you are doing.


endmenu

config MV_GPP_MAX_PINS
	int
	default 32 if MV88F5181 || MV88F5180N || MV88F5182 || MV88F5082 || MV88F5181L || MV88F6082 || MV88F6183 || MV78XX0
	default 16 if MV88F1181 || MV88F1281
	default 64 if MV88F6281

	
config MV_DCACHE_SIZE
	hex
	default 0x8000 if MV88F5181 || MV88F5180N || MV88F5182 || MV88F5082 || MV88F5181L || MV88F1281 || MV78XX0
	default 0x4000 if MV88F6082 || MV88F6281

config MV_ICACHE_SIZE
	hex
	default 0x8000 if MV88F5181 || MV88F5180N || MV88F5182 || MV88F5082 || MV88F5181L || MV88F1281 || MV78XX0
	default 0x4000 if MV88F6082 || MV88F6281
	          
menu "Feroceon SoC MTD support"

config MV_FLASH_CTRL
	bool
	default n

config MV_INCLUDE_SFLASH_MTD
    bool "Marvell support for MTD SPI flash device"
    select MV_FLASH_CTRL
    depends on MTD && MV_INCLUDE_SPI
   	default y
                    
config MV_SPI_BOOT
	bool "Marvell boot support from MTD SPI device"
	depends on MV_INCLUDE_SFLASH_MTD && !MV_NAND_BOOT
	default n
	---help---
	Choose this option if SPI MTD is the system boot device.
	This option controls the various flash types support in the board
	device chip-select information structure under mvBoardEnvSpec.c
                    
config MV_INCLUDE_MFLASH_MTD
    bool "Marvell support for MTD Marvell flash device"
    select MV_FLASH_CTRL
    depends on MTD && MV_INCLUDE_INTEG_MFLASH
   	default y

config MV_NAND
	bool "Marvell support for MTD NAND device"
	depends on MTD && MV_INCLUDE_NAND
	default y

config MV_NAND_BOOT
	bool "Marvell boot support from MTD NAND device"
	depends on MV_NAND
	default n
	---help---
	Choose this option if NAND MTD is the system boot device.	            
	This option controls the various flash types support in the board
	device chip-select information structure under mvBoardEnvSpec.c

config NAND_RS_ECC_SUPPORT
	bool "Support Reed-Solomon 4-bit ECC algorithm"
	depends on MV_NAND
	default n
	---help---
	Choose this option to support Reed-Solomon 4-bit ECC algorithm.
	Note this option also requires support by low-level boot loader.

config MV_NAND_8BYTE_READ
	bool "Support NAND 8 Byte Read burst algorithm"
	depends on MV_NAND
	default n
	---help---
	Choose this option to support NAND 8 Byte Read burst algorithm.

endmenu

choice
	prompt "SoC USB Mode"
	depends on MV_INCLUDE_USB && !UBOOT_STRUCT
	default MV_USB_HOST

config MV_USB_HOST
	bool "Support for USB Host"
	---help---
	Choosing this option will configure on chip USB Controller to work in Host mode

config MV_USB_DEVICE
	bool "Support for USB Device"
	---help---
	Choosing this option will configure on chip USB Controller to work in Device mode
endchoice


config ARCH_SUPPORTS_BIG_ENDIAN
	bool
	default y

config USE_DSP
	bool "Use pld/ldrd/strd arm DSP instructions"
	default n

choice
	prompt "Protect from speculative instruction prefetch"
	depends on CACHE_FEROCEON_L2
	default MV_SP_I_FTCH_DB_INV

config MV_SP_I_FTCH_DB_INV
	bool "Double invalidate for DMA buffers"
	---help---
	Choosing this option will add L2 invalidate for DMA recieved buffers before processing it,
	This is done through the pci_unmap_sg/page/single APIs.

config MV_SP_I_FTCH_LCK_L2_ICACHE
	bool "Lock L2 I-cache"
	---help---
	Choosing this option will lock L2 Icache.
	
config MV_SP_I_FTCH_NONE
	bool "Ignore"

endchoice

config MV_INTERNAL_REGS_SELECTIVE_MAPPING
	bool "Internal registers selective mapping"
	default n
	---help---
	Choosing this option enables selective address mapping for each unit,
        in the internal registers address space.


config  FEROCEON_PROC
	bool "Support for MV-shell proc file system"
	depends on PROC_FS
	---help---	
	  Choosing this option will enable you to use the MV-shell through the Proc
	  File system.
	  The MV-shell is a debug utility which can be run from the shell.

config  UBOOT_STRUCT
	bool "Use UBoot Marvell tag structure"
	---help---
	  Choosing this option will cause the linux to extract the Tclk, Sysclk and
	  the uboot version from the Tag list passed by the uboot.

config  MV_DBG_TRACE
	bool "Enable tracing utility"
	default n
	---help---
	  Choosing this debug option will cause some kernel modules to log operations into
	  a cyclic buffer and dump them on failures. Enabling this feature decreases performance.

config  MV_REAL_TIME
	bool "Real Time softirq support"
	default n
	---help---
	Choosing this option will give more CPU time for user space processes

config  MV_CPU_PERF_CNTRS
        bool "CPU Performance counters support"
        default n
        ---help---
        Choosing this option will enable you to use CPU Performance counters

config  MV_CPU_L2_PERF_CNTRS
        bool "CPU L2 Performance counters support"
        default n
        ---help---
        Choosing this option will enable you to use CPU L2 Performance counters

menu "Soc DMA accelerations"

source arch/arm/plat-feroceon/mv_drivers_lsp/mv_xor/Kconfig

source arch/arm/plat-feroceon/mv_drivers_lsp/mv_dma/Kconfig

endmenu

menu "SoC Networking support"
depends on MV_INCLUDE_GIG_ETH

source arch/arm/plat-feroceon/mv_drivers_lsp/mv_network/Kconfig

endmenu


source arch/arm/plat-feroceon/mv_drivers_lsp/mv_cesa/Kconfig

source arch/arm/plat-feroceon/mv_drivers_lsp/mv_phone/Kconfig


#source arch/arm/plat-feroceon/mv_drivers_lsp/mv_sdio/Kconfig

source arch/arm/plat-feroceon/mv_drivers_lsp/mv_tsu/Kconfig


config  SCSI_MVSATA
	tristate "Support for Marvell Sata Adapters"
	depends on ( MV_INCLUDE_INTEG_SATA && SCSI ) || ( PCI && SCSI )
	---help---
	  Choosing this option will enable you to use the Marvell Sata
	  adapters support with emulation as SCSI adapters.
	  Note that the kernel scsi subsystem must be chosen too.

source arch/arm/plat-feroceon/mv_drivers_lsp/mv_sata/Kconfig

config PCIE_VIRTUAL_BRIDGE_SUPPORT
        bool "Enable virtual bridge on PCIe"
        depends on PCI
        ---help---
        Enable virtual bridge module to support PCIe switches


endmenu

endif


