#
# Automatically generated make config: don't edit
# Linux/arm 2011.06.0 Barebox Configuration
# Wed Jun 27 20:05:21 2012
#
# CONFIG_BOARD_LINKER_SCRIPT is not set
CONFIG_GENERIC_LINKER_SCRIPT=y
CONFIG_ARM=y
CONFIG_ARM_LINUX=y

#
# System Type
#
CONFIG_ARCH_COMCERTO=y
# CONFIG_ARCH_AT91 is not set
# CONFIG_ARCH_EP93XX is not set
# CONFIG_ARCH_IMX is not set
# CONFIG_ARCH_MXS is not set
# CONFIG_ARCH_NETX is not set
# CONFIG_ARCH_NOMADIK is not set
# CONFIG_ARCH_OMAP is not set
# CONFIG_ARCH_S3C24xx is not set
# CONFIG_ARCH_VERSATILE is not set

#
# Comcerto Configuration
#
CONFIG_ARCH_HAS_LOWLEVEL_INIT=y
CONFIG_BOARDINFO="Mindspeed C2000"

#
# SoC Selection
#
CONFIG_COMCERTO_C2000=y

#
# Board Selection
#
# CONFIG_MACH_COMCERTO_C2K_EVM is not set
# CONFIG_MACH_COMCERTO_C2K_MFCNEVM is not set
CONFIG_MACH_COMCERTO_C2K_ASIC=y
# CONFIG_MACH_COMCERTO_C2K_RTSM is not set

#
# Build Selection
#
# CONFIG_COMCERTO_VERIFICATION is not set
# CONFIG_COMCERTO_DIAG is not set
CONFIG_COMCERTO_BOOTLOADER=y
# CONFIG_COMCERTO_ULOADER is not set
# CONFIG_COMCERTO_NAND_ULOADER is not set
CONFIG_COMCERTO_NAND=y
# CONFIG_M86201 is not set
# CONFIG_M86202 is not set
# CONFIG_M86203 is not set
# CONFIG_M86204 is not set
# CONFIG_M86206 is not set
# CONFIG_M86207 is not set
# CONFIG_M86208 is not set
# CONFIG_M8620X is not set
# CONFIG_M86260 is not set
# CONFIG_M86261 is not set
# CONFIG_M86261_NAS is not set
# CONFIG_M86262 is not set
# CONFIG_M8626X is not set
# CONFIG_M86291 is not set
# CONFIG_M86292 is not set
# CONFIG_M86293 is not set
# CONFIG_M86294 is not set
# CONFIG_M86295 is not set
# CONFIG_M86296 is not set
# CONFIG_M86297 is not set
# CONFIG_M86298 is not set
# CONFIG_M8629X is not set

CONFIG_COMCERTO_SERDES=y
CONFIG_COMCERTO_I2C=y

#
# Processor Type
#
CONFIG_CPU_32=y
CONFIG_CPU_32v7=y

#
# processor features
#
# CONFIG_BOOT_ENDIANNESS_SWITCH is not set
# CONFIG_AEABI is not set

#
# Arm specific settings
#
CONFIG_CMD_ARM_CPUINFO=y
# CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS is not set
CONFIG_ARM_EXCEPTIONS=y
CONFIG_DEFCONFIG_LIST="$ARCH_DEFCONFIG"
CONFIG_GREGORIAN_CALENDER=y
CONFIG_HAS_KALLSYMS=y
CONFIG_HAS_MODULES=y
CONFIG_CMD_MEMORY=y
CONFIG_ENV_HANDLING=y

#
# General Settings
#
CONFIG_LOCALVERSION_AUTO=y
CONFIG_ENVIRONMENT_VARIABLES=y

#
# memory layout
#
CONFIG_HAVE_CONFIGURABLE_TEXT_BASE=y
CONFIG_TEXT_BASE=0x1000000
CONFIG_HAVE_CONFIGURABLE_MEMORY_LAYOUT=y
CONFIG_MEMORY_LAYOUT_DEFAULT=y
# CONFIG_MEMORY_LAYOUT_FIXED is not set
CONFIG_STACK_SIZE=0x8000
CONFIG_MALLOC_SIZE=0x500000
# CONFIG_BROKEN is not set
# CONFIG_EXPERIMENTAL is not set
CONFIG_MALLOC_DLMALLOC=y
# CONFIG_KALLSYMS is not set
CONFIG_PROMPT="Barebox-C2K >"
CONFIG_BAUDRATE=115200
CONFIG_LONGHELP=y
CONFIG_CBSIZE=1024
CONFIG_MAXARGS=16
CONFIG_SHELL_HUSH=y
# CONFIG_SHELL_SIMPLE is not set
CONFIG_GLOB=y
CONFIG_PROMPT_HUSH_PS2="> "
# CONFIG_HUSH_FANCY_PROMPT is not set
CONFIG_HUSH_GETOPT=y
CONFIG_CMDLINE_EDITING=y
CONFIG_AUTO_COMPLETE=y
CONFIG_MEM_SIZE=y
# CONFIG_MENU is not set
# CONFIG_PASSWORD is not set
CONFIG_DYNAMIC_CRC_TABLE=y
CONFIG_ERRNO_MESSAGES=y
CONFIG_TIMESTAMP=y
CONFIG_CONSOLE_FULL=y
CONFIG_CONSOLE_ACTIVATE_FIRST=y
# CONFIG_OF_FLAT_TREE is not set
CONFIG_PARTITION=y
CONFIG_DEFAULT_ENVIRONMENT=y
CONFIG_DEFAULT_ENVIRONMENT_GENERIC=y
CONFIG_DEFAULT_ENVIRONMENT_PATH="arch/arm/boards/comcerto-asic/env"
# CONFIG_POLLER is not set

#
# Debugging
#
# CONFIG_DEBUG_INFO is not set
# CONFIG_ENABLE_FLASH_NOISE is not set
# CONFIG_ENABLE_PARTITION_NOISE is not set
# CONFIG_ENABLE_DEVICE_NOISE is not set
CONFIG_COMMAND_SUPPORT=y

#
# commands
#

#
# scripting
#
CONFIG_CMD_EDIT=y
# CONFIG_CMD_SLEEP is not set
CONFIG_CMD_SAVEENV=y
CONFIG_CMD_LOADENV=y
# CONFIG_CMD_EXPORT is not set
CONFIG_CMD_PRINTENV=y
CONFIG_CMD_READLINE=y
CONFIG_CMD_TRUE=y
CONFIG_CMD_FALSE=y
# CONFIG_CMD_LOGIN is not set
# CONFIG_CMD_PASSWD is not set

#
# file commands
#
CONFIG_CMD_LS=y
CONFIG_CMD_RM=y
CONFIG_CMD_CAT=y
CONFIG_CMD_MKDIR=y
CONFIG_CMD_RMDIR=y
CONFIG_CMD_CP=y
CONFIG_CMD_PWD=y
CONFIG_CMD_CD=y
CONFIG_CMD_MOUNT=y
CONFIG_CMD_UMOUNT=y
CONFIG_CMD_NAND=y
CONFIG_CMD_NOR=y
CONFIG_CMD_UPDATE_SPI=y
CONFIG_CMD_UPDATE_FAST_SPI=y
CONFIG_CMD_UPDATE_I2C=y
CONFIG_CMD_COPY=y

#
# console
#
CONFIG_CMD_CLEAR=y
CONFIG_CMD_ECHO=y
# CONFIG_CMD_ECHO_E is not set

#
# memory
#
# CONFIG_CMD_LOADB is not set
# CONFIG_CMD_MEMINFO is not set
# CONFIG_CMD_CRC is not set
# CONFIG_CMD_MTEST is not set

#
# flash
#
CONFIG_CMD_FLASH=y
# CONFIG_CMD_UBI is not set

#
# booting
#
CONFIG_CMD_BOOTM=y
# CONFIG_CMD_BOOTM_ZLIB is not set
# CONFIG_CMD_BOOTM_BZLIB is not set
# CONFIG_CMD_BOOTM_SHOW_TYPE is not set
CONFIG_CMD_BOOTZ=y
CONFIG_CMD_BOOTU=y
CONFIG_CMD_RESET=y
# CONFIG_CMD_GO is not set
CONFIG_CMD_TIMEOUT=y
CONFIG_CMD_PARTITION=y
CONFIG_CMD_TEST=y
CONFIG_CMD_VERSION=y
CONFIG_CMD_HELP=y
CONFIG_CMD_DEVINFO=y
# CONFIG_CMD_UNLZO is not set
CONFIG_CMD_I2C=y
CONFIG_CMD_SATA=y
#
# c2000
#
CONFIG_CMD_SOCINFO=y
CONFIG_CMD_GEMAC_STATS=y
CONFIG_CMD_PFE_STATS=y
CONFIG_CMD_PFE_DIAGS=y
CONFIG_CMD_PFE_COMMANDS=y
CONFIG_NET=y
# CONFIG_NET_DHCP is not set
# CONFIG_NET_NFS is not set
CONFIG_NET_PING=y
CONFIG_NET_TFTP=y
# CONFIG_NET_TFTP_PUSH is not set
# CONFIG_NET_NETCONSOLE is not set
# CONFIG_NET_RESOLV is not set

#
# Drivers
#

#
# serial drivers
#
# CONFIG_DRIVER_SERIAL_ARM_DCC is not set
CONFIG_DRIVER_FAST_UART=y
# CONFIG_DRIVER_SERIAL_NS16550 is not set
CONFIG_MIIDEV=y

#
# Network drivers
#
# CONFIG_DRIVER_NET_SMC911X is not set
# CONFIG_DRIVER_NET_SMC91111 is not set
CONFIG_NET_COMCERTO=y
CONFIG_NET_COMCERTO_2000=y

#
# SPI drivers
#
CONFIG_SPI=y
CONFIG_DRIVER_SPI_C2K=y
CONFIG_DRIVER_FAST_SPI_C2K=y
CONFIG_C2K_SPI_API=y
CONFIG_C2K_SPI_COMMON=y
CONFIG_SPI_FLASH=y
CONFIG_FAST_SPI_FLASH=y
CONFIG_CSI_FLASH=y
CONFIG_I2C=y

#
# I2C Hardware Bus support
#
CONFIG_I2C_C2K=y

#
# flash drivers
#
CONFIG_DRIVER_CFI=y
CONFIG_DRIVER_CFI_INTEL=y
CONFIG_DRIVER_CFI_AMD=y
CONFIG_DRIVER_CFI_BANK_WIDTH_1=y
CONFIG_DRIVER_CFI_BANK_WIDTH_2=y
CONFIG_DRIVER_CFI_BANK_WIDTH_4=y
# CONFIG_DRIVER_CFI_BANK_WIDTH_8 is not set
CONFIG_CFI_BUFFER_WRITE=y
CONFIG_MTD=y
CONFIG_NAND=y
CONFIG_MTD_NAND_ECC_BCH=y
# CONFIG_MTD_NAND_BCH is not set
CONFIG_NAND_WRITE=y
CONFIG_NAND_ECC_SOFT=y
# CONFIG_NAND_ECC_HW is not set
CONFIG_NAND_ECC_HW_SYNDROME=y
# CONFIG_NAND_ECC_HW_NONE is not set
# CONFIG_NAND_COMCERTO_ECC_8_HW_BCH is not set
CONFIG_NAND_COMCERTO_ECC_24_HW_BCH=y
CONFIG_COMCERTO_NAND_ERASE_FBB=y
CONFIG_NAND_INFO=y
CONFIG_NAND_BBT=y
CONFIG_NAND_READ_OOB=y
CONFIG_NAND_COMCERTO=y
# CONFIG_MTD_NAND_VERIFY_WRITE is not set
# CONFIG_MTD_NAND_ECC_SMC is not set
CONFIG_MTD_NAND_IDS=y
CONFIG_UBI=y
# CONFIG_ATA is not set
# CONFIG_USB is not set
# CONFIG_USB_GADGET is not set
# CONFIG_VIDEO is not set
# CONFIG_MCI is not set

#
# MFD
#
# CONFIG_I2C_MC13892 is not set
# CONFIG_I2C_MC34704 is not set
# CONFIG_I2C_MC9SDZ60 is not set
# CONFIG_I2C_LP3972 is not set
# CONFIG_I2C_TWL4030 is not set
# CONFIG_DRIVER_SPI_MC13783 is not set
# CONFIG_LED is not set

#
# OTP
#
CONFIG_OTP=y
CONFIG_DRIVER_OTP=y

#
# Filesystem support
#
CONFIG_FS_CRAMFS=y
CONFIG_FS_RAMFS=y
CONFIG_FS_DEVFS=y
# CONFIG_FS_FAT is not set
CONFIG_PARTITION_NEED_MTD=y
CONFIG_ZLIB=y
CONFIG_CRC32=y
# CONFIG_DIGEST is not set
# CONFIG_GENERIC_FIND_NEXT_BIT is not set
# CONFIG_PROCESS_ESCAPE_SEQUENCE is not set

#
# SATA support
#
CONFIG_COMCERTO_SATA=y
