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 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
