if PLAT_ARMADA

menu "Armada SoC options"
	depends on PLAT_ARMADA

#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_ORION
#source "arch/arm/mach-feroceon-orion/Kconfig"
#endif

#if ARCH_FEROCEON_KW
#source "arch/arm/mach-feroceon-kw/Kconfig"
#endif

#if ARCH_FEROCEON_KW2
#source "arch/arm/mach-feroceon-kw2/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 MV88F6500 || MV88F6281 || MV78XX0
        default n
        ---help---
           Enable the JTAG debugger taking over the CPU by disabling "wait for interrupt" idle loop."


menu "Armada SoC Included Features"

config MV_INCLUDE_PEX
	bool "PCI Express Support"
	depends on PCI && (MV88F6500 || MV88F6281 || MV78XX0 || ARMADA_XP)
	default y
	select MV_PEX_2_1X4
	select MV_PEX_3_1X4
        ---help---
        Please don't change this configs unless you know what you are doing.

choice
	prompt "PEX-0 Mode"
	depends on MV_INCLUDE_PEX
	default MV_PEX_0_4X1

config MV_PEX_0_4X1
	bool "Quad X1 interfaces"

config MV_PEX_0_1X4
	bool "Single X4 interface"
endchoice

choice
	prompt "PEX-1 Mode"
	depends on MV_INCLUDE_PEX
	default MV_PEX_1_4X1

config MV_PEX_1_4X1
	bool "Quad X1 interfaces"

config MV_PEX_1_1X4
	bool "Single X4 interface"
endchoice

config MV_PEX_2_1X4
	bool "PEX-2 in 1x4 Mode"
	depends on MV_INCLUDE_PEX

config MV_PEX_3_1X4
	bool "PEX-3 in 1x4 Mode"
	depends on MV_INCLUDE_PEX

config MV_INCLUDE_PCI
	bool "PCI Support"
	depends on PCI && (MV88F6500 || MV88F6281 || MV78XX0 || ARMADA_XP)
	default n
        ---help---
        Please don't change this configs unless you know what you are doing.

config MV_INCLUDE_USB
	bool "USB Support"
	depends on MV88F6500 || MV88F6281 || MV78XX0 || ARMADA_XP
	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 MV88F6500 || MV88F6281 || MV78XX0 || ARMADA_XP
	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 MV88F6500 || MV88F6082 || MV88F6183 || MV88F6281 || MV78XX0 || ARMADA_XP
	default y
        ---help---
        Please don't change this configs unless you know what you are doing.

config MV_INCLUDE_NFC
	bool "Nand Flash Controller Support"
	depends on MV88F6500 || ARMADA_XP
	default y
        ---help---
        Please don't change this configs unless you know what you are doing.

config MV_INCLUDE_LEGACY_NAND
	bool "Legacy NAND Support"
	depends on MV88F6500 || MV88F6281 || MV78XX0 || ARMADA_XP
	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 MV88F6500 || MV88F6281 || MV78XX0 || ARMADA_XP
	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 MV88F6500 || MV88F6281 || MV78XX0 || ARMADA_XP
	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 MV88F6500 || MV88F6281 || MV78XX0 || ARMADA_XP
	default y

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

config MV_INCLUDE_NOR
	bool "NOR Support"
	depends on MV88F6500 || MV88F6281 || (MV78XX0 && !MV78XX0_Z0) || ARMADA_XP
	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 MV88F6500 || MV88F6281 || ARMADA_XP
	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 MV88F6500 || MV88F6281
	default n
        ---help---
        Please don't change this configs unless you know what you are doing.

config MV_INCLUDE_PON
	bool "PON Support"
	depends on MV88F6500
	default y
        ---help---
        Please don't change this configs unless you know what you are doing.

config MV_INCLUDE_SWITCH
        bool "Ethernet Switch Support"
        depends on MV88F6500 || MV88F6281 || MV78XX0 || ARMADA_XP
        default y

endmenu



menu "Armada AMP options"
		
config MV_AMP_ENABLE
        bool "Enable AMP support"
	depends on   (ARMADA_XP || (MV78XX0)) && (!ARMADA_XP_REV_Z1) && (SMP) && (!MV_ETH_BM)
        default n

config MV_IPC_DRIVER
        bool "Enable IPC basic driver"
        depends on   MV_AMP_ENABLE
        default y

config MV_IPC_NET
        bool "Enable IPC pseudo network driver"
        depends on   MV_IPC_DRIVER
        default y

config MV_DRAM_BASE
        hex "Base address of physical memory (= PHYS_OFFSET)"
        depends on   MV_AMP_ENABLE   
        default 0x00000000

config MV_DRAM_BASE_G0
        hex "Image 0 - Base address of physical memory"
        depends on   MV_AMP_ENABLE
        default 0x00000000

config MV_DRAM_BASE_G1
        hex "Image 1 - Base address of physical memory"
        depends on   MV_AMP_ENABLE
        default 0x20000000


config MV_UART_PORT
        int "UART port for prints"
        depends on   MV_AMP_ENABLE
        default 0

config MV_UART_PORT_G0
        int "Image 0 - UART port for prints"
        depends on   MV_AMP_ENABLE
        default 0

config MV_UART_PORT_G1
        int "Image 1 - UART port for prints"
        depends on   MV_AMP_ENABLE
        default 1

endmenu


config MV_GPP_MAX_PINS
	int
	default 32 if MV78XX0
	default 64 if MV88F6281
	default 70 if MV88F6500
	default 67 if ARMADA_XP

	
config MV_DCACHE_SIZE
	hex
	default 0x8000 if MV78XX0 || ARMADA_XP
	default 0x4000 if MV88F6500 || MV88F6281

config MV_ICACHE_SIZE
	hex
	default 0x8000 if MV78XX0 || ARMDAD_XP
	default 0x4000 if MV88F6500 || MV88F6281
	          
menu "Armada 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
	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 && !ARMADA_XP
   	default y

config MTD_NAND_LNC
	bool "MTD driver for the Legacy NAND controller"
	depends on MTD && MV_INCLUDE_LEGACY_NAND
	default y

config MTD_NAND_LNC_BOOT
	bool "Marvell boot support from MTD NAND device"
	depends on MTD_NAND_LNC
	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 MTD_NAND_LNC_RS_ECC
	bool "Support Reed-Solomon 4-bit ECC algorithm for Legacy Nand Controller"
	depends on MTD_NAND_LNC
	default y
	---help---
	Choose this option to support Reed-Solomon 4-bit ECC algorithm.
	Note this option also requires support by low-level boot loader.

config MTD_NAND_LNC_8BYTE_READ
	bool "Support 8B burst Read for Legacy Nand Controller"
	depends on MTD_NAND_LNC
	default n
	---help---
	Choose this option to support NAND 8 Byte Read burst algorithm.

config MTD_NAND_NFC
        tristate "MTD driver for the Armada Nand Flash Controller"
        depends on MTD_NAND && MV_INCLUDE_NFC
	default y
        help
          This enables the driver for the NAND flash controller found in
          the Marvell Armada SoC devices.

config MTD_NAND_NFC_GANG_SUPPORT
        bool "NAND Ganged mode support for the NFC"
        depends on MTD_NAND_NFC
	default y
        help
          This option enables the support for 2x8bit ganged mode in
          Marvell's NFC HAL driver and the MTD stack.

config MTD_NAND_NFC_MLC_SUPPORT
        bool "NAND MLC devices support for the NFC"
        depends on MTD_NAND_NFC
	default y
	help
          This option allows support for Nand devices with non-standard
          page/oob layout. These devices are detected incorrectly with
          standard autodetection mechanism based on the READ_ID command.

config MTD_NAND_NFC_INIT_RESET
        bool "NAND Enable Reset on Initialization"
        depends on MTD_NAND_NFC
	default n
	help
          This option forces NAND reset command on initialization. This
	  is required by certain NAND vendors (Micron).

endmenu

choice
	prompt "SoC USB Mode"
	depends on MV_INCLUDE_USB
	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"
	depends on !ARMADA_XP
	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  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  MV_PMU_PROC
        bool "Support procfs control on Power-Management features"
        depends on PROC_FS
        ---help---
          Choose this option to enable control over the power-management features through
          the proc file-system.

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_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-armada/mv_drivers_lsp/mv_xor/Kconfig

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

endmenu


menu "SoC Networking support"
depends on MV_INCLUDE_GIG_ETH

config MV_ETHERNET
        bool "Networking support"
	depends on MV_INCLUDE_GIG_ETH
	default y
        ---help---
        Choose this option to support Marvell Gigabit Ethernet Controller 

if MV_ETHERNET

choice 
        prompt "GbE Mode"
        depends on MV_INCLUDE_GIG_ETH 
        default MV_ETH_LEGACY

config MV_ETH_LEGACY
        bool "Legacy mode "
        ---help---

config MV_ETH_NETA
        bool "Acceleration mode "
	depends on ARCH_FEROCEON_KW2 || ARCH_ARMADA_XP
        ---help---

endchoice


if MV_ETH_LEGACY
source arch/arm/plat-armada/mv_drivers_lsp/mv_network/Kconfig
endif

if MV_ETH_NETA
source arch/arm/plat-armada/mv_drivers_lsp/mv_neta/Kconfig
endif

endif # MV_ETHERNET
endmenu # "SoC Networking support"

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

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


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

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

source arch/arm/plat-armada/mv_drivers_lsp/mv_pon/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-armada/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

config MV_UART_POLLING_MODE
        bool "Enable Polling mode for UART driver"
        depends on ARCH_FEROCEON_KW2
	default y
        ---help---
        Configure UART driver to work in polling mode.

endmenu


endif


