#
# Automatically generated make config: don't edit
# Linux/arm 2011.06.0 Barebox Configuration
# Wed Jun 27 20:01:48 2012
#
# CONFIG_BOARD_LINKER_SCRIPT is not set
CONFIG_GENERIC_LINKER_SCRIPT=y
CONFIG_ARM=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 is not set
# CONFIG_COMCERTO_ULOADER is not set
CONFIG_COMCERTO_NAND_ULOADER=y
CONFIG_COMCERTO_PLL=y
CONFIG_COMCERTO_DDR=y
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=y
CONFIG_M8629X=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 is not set
# CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS is not set
# CONFIG_ARM_EXCEPTIONS is not set
CONFIG_DEFCONFIG_LIST="$ARCH_DEFCONFIG"
CONFIG_HAS_KALLSYMS=y
CONFIG_HAS_MODULES=y
# CONFIG_CMD_MEMORY is not set

#
# General Settings
#
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_ENVIRONMENT_VARIABLES=y

#
# memory layout
#
CONFIG_HAVE_CONFIGURABLE_TEXT_BASE=y
CONFIG_TEXT_BASE=0x83000000
CONFIG_HAVE_CONFIGURABLE_MEMORY_LAYOUT=y
# CONFIG_MEMORY_LAYOUT_DEFAULT is not set
CONFIG_MEMORY_LAYOUT_FIXED=y
CONFIG_STACK_BASE=0x8300C000
CONFIG_STACK_SIZE=0x1000
CONFIG_MALLOC_BASE=0x8300D000
CONFIG_MALLOC_SIZE=0x3000
# CONFIG_BROKEN is not set
# CONFIG_EXPERIMENTAL is not set
CONFIG_MALLOC_DLMALLOC=y
# CONFIG_KALLSYMS is not set
CONFIG_PROMPT="uLoader >"
CONFIG_BAUDRATE=115200
CONFIG_SIMPLE_READLINE=y
# CONFIG_LONGHELP is not set
CONFIG_CBSIZE=1024
CONFIG_MAXARGS=16
# CONFIG_SHELL_HUSH is not set
CONFIG_SHELL_SIMPLE=y
# CONFIG_CMDLINE_EDITING is not set
# CONFIG_MEM_SIZE is not set
# CONFIG_MENU is not set
# CONFIG_PASSWORD is not set
# CONFIG_ERRNO_MESSAGES is not set
# CONFIG_TIMESTAMP is not set
CONFIG_CONSOLE_FULL=y
CONFIG_CONSOLE_ACTIVATE_FIRST=y
# CONFIG_OF_FLAT_TREE is not set
# CONFIG_PARTITION is not set
# CONFIG_DEFAULT_ENVIRONMENT is not set
# 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 is not set
# CONFIG_CMD_EXEC is not set
# CONFIG_CMD_SLEEP is not set
# CONFIG_CMD_SAVEENV is not set
# CONFIG_CMD_LOADENV is not set
# CONFIG_CMD_EXPORT is not set
# CONFIG_CMD_PRINTENV is not set
# CONFIG_CMD_READLINE is not set
# CONFIG_CMD_TRUE is not set
# CONFIG_CMD_FALSE is not set
# CONFIG_CMD_LOGIN is not set
# CONFIG_CMD_PASSWD is not set

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

#
# console
#
# CONFIG_CMD_CLEAR is not set
# CONFIG_CMD_ECHO 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 is not set
# CONFIG_CMD_BOOTZ is not set
# CONFIG_CMD_BOOTU is not set
# CONFIG_CMD_RESET is not set
CONFIG_CMD_GO=y
CONFIG_CMD_BOOTB=y
# CONFIG_CMD_TIMEOUT is not set
CONFIG_CMD_PARTITION=y
# CONFIG_CMD_VERSION is not set
# CONFIG_CMD_HELP is not set
# CONFIG_CMD_DEVINFO is not set
# CONFIG_CMD_UNLZO is not set

#
# c2000
#
# CONFIG_CMD_SOCINFO is not set
# CONFIG_CMD_GEMAC_STATS is not set
# CONFIG_CMD_PFE_STATS is not set
# CONFIG_CMD_PFE_COMMANDS is not set
# CONFIG_NET 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

#
# SPI drivers
#
# CONFIG_SPI is not set
# CONFIG_SPI_FLASH is not set
# CONFIG_I2C is not set

#
# flash drivers
#
# CONFIG_DRIVER_CFI is not set
# CONFIG_CSI_FLASH is not set
CONFIG_MTD=y
CONFIG_NAND=y
# CONFIG_MTD_NAND_ECC_BCH is not set
# CONFIG_NAND_WRITE is not set
# CONFIG_NAND_ECC_SOFT is not set
# 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 is not set
CONFIG_NAND_INFO=y
# CONFIG_NAND_BBT is not set
# CONFIG_NAND_READ_OOB is not set
CONFIG_NAND_COMCERTO=y
# CONFIG_MTD_NAND_VERIFY_WRITE is not set
# CONFIG_MTD_NAND_ECC_SMC is not set
# CONFIG_MTD_NAND_IDS is not set
# CONFIG_UBI is not set
# 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_LED is not set

#
# OTP driver
#
# CONFIG_OTP is not set
# CONFIG_DRIVER_OTP is not set

#
# Filesystem support
#
# CONFIG_FS_CRAMFS is not set
# CONFIG_FS_RAMFS is not set
# CONFIG_FS_DEVFS is not set
# CONFIG_FS_FAT is not set
# CONFIG_DIGEST is not set
# CONFIG_GENERIC_FIND_NEXT_BIT is not set
# CONFIG_PROCESS_ESCAPE_SEQUENCE is not set
