#
# Automatically generated make config: don't edit
# Linux/arm 2011.06.0 Barebox Configuration
# Thu Jun 28 22:38:53 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=y
# CONFIG_COMCERTO_NAND_ULOADER is not set
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
CONFIG_HAVE_NOSHELL=y

#
# 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_SHELL_NONE is not set
# CONFIG_CMDLINE_EDITING is not set
CONFIG_MEM_SIZE=y
# 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_NOR is not set
# CONFIG_CMD_UPDATE_SPI is not set
# CONFIG_CMD_UPDATE_FAST_SPI is not set
# CONFIG_CMD_UPDATE_I2C 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 is not set
# 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 is not set
CONFIG_CMD_BOOTB=y
# CONFIG_CMD_TIMEOUT is not set
# CONFIG_CMD_PARTITION is not set
# 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_DIAGS 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=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_I2C is not set

#
# flash drivers
#
# CONFIG_DRIVER_CFI is not set
# CONFIG_CSI_FLASH is not set
CONFIG_MTD=y
# CONFIG_NAND 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_I2C_MC13892 is not set
# CONFIG_DRIVER_SPI_MC13783 is not set
# CONFIG_LED is not set

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