#
# Automatically generated make config: don't edit
# Linux/arm 2011.06.0 Barebox Configuration
# Fri Mar 23 12:00: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_ASIC is not set
CONFIG_MACH_COMCERTO_C2K_RTSM=y

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

#
# 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=0x8300B000
CONFIG_STACK_SIZE=0x1000
CONFIG_MALLOC_BASE=0x8300C000
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=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=y
CONFIG_DEFAULT_ENVIRONMENT_PATH=""
# 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=y
# 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=y
# 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=y
CONFIG_CMD_COPY=y

#
# 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=y
# CONFIG_CMD_DEVINFO is not set
# CONFIG_CMD_UNLZO is not set

#
# c2000
#
CONFIG_CMD_SOCINFO=y
# 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 is not set
# CONFIG_DRIVER_FAST_SPI_C2K is not set
# CONFIG_C2K_SPI_API is not set
# CONFIG_I2C is not set

#
# 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=y
CONFIG_CFI_BUFFER_WRITE=y
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
