/*
 * U-Boot - Configuration file for SSV DNP5370 board
 */

#ifndef __CONFIG_DNP5370_H__
#define __CONFIG_DNP5370_H__

/* this must come first */
#include <asm/config-pre.h>

/*
 * Processor Settings
 */
#define CONFIG_BFIN_CPU       bf537-0.3
#define CONFIG_BFIN_BOOT_MODE BFIN_BOOT_BYPASS

/*
 * Clock Settings
 *	CCLK = (CLKIN * VCO_MULT) / CCLK_DIV
 *	SCLK = (CLKIN * VCO_MULT) / SCLK_DIV
 */
#define CONFIG_CLKIN_HZ                 25000000
#define CONFIG_CLKIN_HALF               0
#define CONFIG_PLL_BYPASS               0
#define CONFIG_VCO_MULT                 24
#define CONFIG_CCLK_DIV                 1
#define CONFIG_SCLK_DIV                 5

/*
 * Memory Settings
 */
#define CONFIG_MEM_ADD_WDTH     9
#define CONFIG_MEM_SIZE         32

#define CONFIG_EBIU_SDRRC_VAL   0x03a0
#define CONFIG_EBIU_SDBCTL_VAL  0x0013
#define CONFIG_EBIU_SDGCTL_VAL  0x8091998d

#define CONFIG_EBIU_AMGCTL_VAL  0xF7
#define CONFIG_EBIU_AMBCTL0_VAL 0x7BB07BB0
#define CONFIG_EBIU_AMBCTL1_VAL 0xFFC27BB0

#define CONFIG_SYS_MONITOR_LEN  (256 * 1024)
#define CONFIG_SYS_MALLOC_LEN   (128 * 1024)

/*
 * Network Settings
 */
#ifndef __ADSPBF534__
#define CONFIG_ROOTPATH        "/romfs"

#define CONFIG_BFIN_MAC         1
#define CONFIG_PHY_ADDR         0
#define CONFIG_RMII             1

#endif

/*
 * Flash Settings
 *
 * Only 3 MB of the 4 MB NOR flash are addressable.
 * But limiting the flash size does not seem to work.
 * It seems the CFI detection has precedence.
 */
#define CONFIG_FLASH_CFI_DRIVER
#define CONFIG_SYS_FLASH_BASE       0x20000000
#define CONFIG_SYS_FLASH_CFI
#define CONFIG_SYS_FLASH_PROTECTION
#define CONFIG_SYS_MAX_FLASH_BANKS  1
#define CONFIG_SYS_MAX_FLASH_SECT   71 /* (M29W320EB) */

/* 512k reserved for u-boot */
#define CONFIG_SYS_JFFS2_FIRST_SECTOR 15

/*
 * Env Storage Settings
 */
#define CONFIG_ENV_IS_IN_FLASH     1
#define CONFIG_ENV_ADDR       0x20004000
#define CONFIG_ENV_SIZE       0x00002000
#define CONFIG_ENV_SECT_SIZE  0x00002000 /* Total Size of Environment Sector */
#define CONFIG_ENV_OFFSET     0x00004000 /* (CONFIG_ENV_ADDR - CONFIG_FLASH_BASE) */

#define ENV_IS_EMBEDDED
#define LDS_BOARD_TEXT \
	arch/blackfin/lib/built-in.o (.text*); \
	arch/blackfin/cpu/built-in.o (.text*); \
	. = DEFINED(env_offset) ? env_offset : .; \
	common/env_embedded.o (.text*);

/*
 * Misc Settings
 */
#define CONFIG_CMD_STRINGS
#define CONFIG_MISC_INIT_R
#define CONFIG_RTC_BFIN
#define CONFIG_SYS_LONGHELP

/* This disables the hardware watchdog (not inside the bfin) */
#define CONFIG_DNP5370_EXT_WD_DISABLE 1

#define CONFIG_UART_CONSOLE 0
#define CONFIG_BFIN_SERIAL
#define CONFIG_BAUDRATE     115200
#define CONFIG_BOOTCOMMAND  "bootm 0x20030000"
#define CONFIG_BOOTARGS     "console=ttyBF0,115200 root=/dev/mtdblock3 rootfstype=ext2"

/* Convenience commands to update Linux in NOR flash */
#define CONFIG_EXTRA_ENV_SETTINGS \
	"fetchme=tftpboot 0x01000000 uImage;" \
		"iminfo\0" \
	"flashme=protect off 0x20030000 0x2003ffff;" \
		"erase 0x20030000 0x202effff;" \
		"cp.b 0x01000000 0x20030000 0x2c0000\0" \
	"runme=bootm 0x01000000\0"

#endif
