if ARCH_COMCERTO

menu "Comcerto Implementation Options"

config ARCH_SUPPORTS_BIG_ENDIAN
	bool "Architecture supports Big Endian"
        default n

choice
	prompt "Comcerto System Type"
	default CONFIG_ARCH_M86XXX

config ARCH_M86XXX
	bool "M86xxx"
	select CPU_V7
	select ARM_GIC
	select ARM_ERRATA_743622
	select ARM_ERRATA_751472
	select ARM_ERRATA_754322
	select ARM_ERRATA_764369 if SMP
	select MTD_COMCERTO_NOR
	select COMCERTO_UART1_SUPPORT
	select COMCERTO_PFE_UART_SUPPORT
	select COMCERTO_USB2_SUPPORT
	select COMCERTO_USB3_SUPPORT
 	select COMCERTO_USB3_INTERNAL_CLK
	select COMCERTO_IPSEC_SUPPORT
	select COMCERTO_I2C_SUPPORT
	select GENERIC_TIME
	select GENERIC_CLOCKEVENTS
	select HAVE_SCHED_CLOCK
	select COMCERTO_DW_DMA_SUPPORT
	select CLKDEV_LOOKUP
	select ARCH_HAS_CPUFREQ
	select ARCH_HAS_OPP
	select MIGHT_HAVE_PCI if !RTSM_C2K
	select PCI_MSI if PCI
	help
	  Say Y here if you intend to run this kernel with a Comcerto2000 device.

endchoice



choice
	prompt "Comcerto Board type"
	default RTSM_C2K

config GOOGLE_FIBER_OPTIMUS
	bool "Google Fiber Optimus"
	depends on ARCH_M86XXX
	help
	  Say Y here if you intend to run this kernel with a Google Fiber Optimus board.

config C2K_EVM
	bool "EVM"
	depends on ARCH_M86XXX
	help
	  Say Y here if you intend to run this kernel with a C2K EVM.

config C2K_MFCN_EVM
	bool "MFCN EVM"
	depends on ARCH_M86XXX
	help
	  Say Y here if you intend to run this kernel with a C2K MFCN EVM.

config C2K_ASIC
	bool "ASIC"
	depends on ARCH_M86XXX
	select COMCERTO_UART0_SUPPORT
	help
	  Say Y here if you intend to run this kernel with a C2K ASIC.

config RTSM_C2K
	bool "RTSM"
	depends on ARCH_M86XXX
	help
	  Say Y here if you intend to run this kernel with a C2K RTSM.
	  
endchoice

config GOOGLE_SPACECAST
	bool "Google Spacecast"
	select GOOGLE_FIBER_OPTIMUS
	help
	  Say Y here if you intend to run this kernel with a Google Fiber Spacecast board
	  (a variation of Optimus board).

config MTD_COMCERTO_NOR
	bool
	default y

config COMCERTO_TDM_CLOCK
        bool "Comcerto device TDM clock and frame sync control through sysfs"
	default y
	help
	  Say Y if you intend to use the Comcerto TDM and be able to change
	  different parameters through sysfs.

config COMCERTO_CSYS_TPI_CLOCK
        bool "Comcerto device TPI and CSYS clock control "
	default n
	help
	  Say Y if you intend to use the Comcerto TPI (Cortex A9 JTAG interface) and CSYS clock (Cortex A9 CoreSight module).

config COMCERTO_PCIE_OCC_CLOCK
        bool "Comcerto device PCIE OCC clock control "
	default n
	help
	  Say Y if you intend to use the Comcerto PCIE OCC clock.

config COMCERTO_SATA_OCC_CLOCK
        bool "Comcerto device SATA OCC clock control "
	default n
	help
	  Say Y if you intend to use the Comcerto SATA OCC clock.

config COMCERTO_SGMII_OCC_CLOCK
        bool "Comcerto device SGMII OCC clock control "
	default n
	help
	  Say Y if you intend to use the Comcerto SGMII OCC clock.

config COMCERTO_MEMBUF
	bool "Comcerto memory buffer driver"
	default n
	help
	  Say Y if you intend to use the memory buffer driver. This driver helps
	  Linux user space applications setup a physical scatter buffer that can be used
	  directly by the PFE. Currently the PFE hold tone generation feature requires
	  this driver to be enabled.

config COMCERTO_NUM_PCIES
	int "Number of PCIe controllers to be enabled (0-2)"
	range 0 2
	depends on ARCH_M86XXX 
	default "2"

config COMCERTO_FP
	bool "Comcerto Fast Path Support"
	depends on ARCH_M86XXX
	default y

config COMCERTO_UART0_SUPPORT
	bool
	default n

config COMCERTO_UART1_SUPPORT
	bool
	default y

config COMCERTO_USB2_SUPPORT
	bool
	default n

config COMCERTO_USB3_SUPPORT
	bool
	default n

config COMCERTO_IPSEC_SUPPORT
	bool
	default n

config COMCERTO_EPAVIS
	bool "DPI EPAVIS content inspection driver"
	default n

config COMCERTO_ELP_SUPPORT
	bool "Elliptic EPN1802 SPAcc/PKA crypto driver"
	default y

config COMCERTO_I2C_SUPPORT
        bool
        default n

config COMCERTO_DW_DMA_SUPPORT
        bool
        default n

config COMCERTO_DDR_ECC_SUPPORT
        bool "Fix for the Comcerto DDR ECC Support problem"
        default n
        help
          There is a limitation with Denali DDRC Controller when ECC is enabled. It expects that the
          burst writes of greater than or equal to 16 bytes must start and end at a 16-byte boundary.
          Saying Y for this option will make the dma memory area to be non-writeable, apart from being
          non-cacheable so that single write should happen instead of burst.

config COMCERTO_MSP
	bool "Mindspeed Comcerto VoIP"
	depends on ARCH_M86XXX
	select FIQ
	default y

config COMCERTO_SATA
	bool "Comcerto SATA"
	select ATA
	select ATA_VERBOSE_ERROR
	select SATA_AHCI_PLATFORM
	select BLK_DEV_SD
	select LBDAF

config COMCERTO_IMPROVED_SPLICE
	bool "Comcerto improved splice call"
	default n
	help
	  Say Y if you intend to use the Comcerto improved splice call. When writing data to a file on an
	  ext4 partition, re-organize the splice code to gather all the memcpy calls in one place, instead
	  of allocating pages and releasing pipe buffers one by one. This improves performance and makes it
	  possible to use a DMA engine with scatter-gather in-place of mempcy.

config COMCERTO_SPLICE_USE_MDMA
	bool "Comcerto splice using MDMA"
	default n
	depends on COMCERTO_IMPROVED_SPLICE
	select COMCERTO_DMA_BASIC
	help
	  Say Y if you intend to use the Comcerto MDMA engine to replace memcpy calls inside the improved 
	  splice call.

config COMCERTO_ZONE_DMA_NCNB
	bool "Comcerto Zone DMA"
	select ZONE_DMA
	default n

config COMCERTO_CUSTOM_SKB_LAYOUT
	bool "Mindspeed customized skb layout, to reduce NCNB access overhead, when NCNB buffer is used in skb"
	depends on COMCERTO_ZONE_DMA_NCNB
	default n

config DSPG_DECT_CSS
	bool "DSPG DECT CSS"
	default n

config COMCERTO_USB3_INTERNAL_CLK
	bool "Comcerto internal clock for USB3"
	default n

config COMCERTO_AHCI_PROF
	bool "Comcerto AHCI profiling"
	bool
	default n

config COMCERTO_SPLICE_PROF
	bool "Comcerto splice profiling"
	depends on COMCERTO_IMPROVED_SPLICE
	default n

config COMCERTO_MDMA_PROF
	bool "Comcerto MDMA profiling"
	depends on COMCERTO_DMA_BASIC
	default n

config COMCERTO_64K_PAGES
	bool "Comcerto 64kB pages"
	default n
	help
	  Say Y to enable 64kB pages instead of the default 4kB. Memory usage will be increased, but
          per-page operations will be reduced, and data transfers will become more efficient.

config COMCERTO_CC_OPTIMIZE_O3
	bool "Compile the kernel with -O3"
	default n
	depends on !CC_OPTIMIZE_FOR_SIZE
	help
	  Compile the kernel with -O3 instead of -O2 option. Resulting kernel can be a bit faster, but
	  it will also be bigger.

config COMCERTO_HW_KERNEL_PAGETABLE
	bool "Use the 2nd HW page table for kernel memory space"
	select VMSPLIT_2G
	default n
	help
	  By default, Linux uses only one page table at a time, and switches page tables when switching
	  between processes. Say Y to enable the 2nd hardware page table, which will be used to map kernel
	  addresses.
	  Note that because of the way the ARM MMU determines which page table to use, this option can
	  only be enabled with a 2G/2G userspace/kernel memory split.

config COMCERTO_UNCACHED_DMA
	bool "Make pages uncacheable when doing DMA operations"
	depends on COMCERTO_HW_KERNEL_PAGETABLE
	default n
	help
	  When transferring ownership of a page to a device through the DMA API, make the page uncacheable
	  for the duration of the transfer. This makes the 2nd cache invalidate (that was needed because
	  of the possibility of speculative accesses by the A9 cores) unnecessary, which can increase
	  performance during heavy IO workloads. The page tables will be more complex though, resulting in
	  more TLB misses when a DMA transfer is going on.

config COMCERTO_SPLICE_READ_NOCONTIG
	bool "Use find_get_pages in splice read code"
	default n
	help
	  The splice read code normally calls find_get_pages_contig to retrieve pages mapping the requested
	  portion of the file to read. However, using find_get_pages works just as well, as the splice code
	  is able to handle both situations.
	  Say Y to use find_get_pages instead of find_get_pages_contig, which seems to yield a significant
	  performance improvement in Samba read tests.
endmenu
endif
