blob: 5896d6d902eaf8a27778ad73b945e0673a7a7886 [file] [log] [blame]
/*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*/
/*******************************************************************************
Copyright (C) Marvell International Ltd. and its affiliates
********************************************************************************
Marvell GPL License Option
If you received this File from Marvell, you may opt to use, redistribute and/or
modify this File in accordance with the terms and conditions of the General
Public License Version 2, June 1991 (the "GPL License"), a copy of which is
available along with the File in the license.txt file or by writing to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 or
on the worldwide web at http://www.gnu.org/licenses/gpl.txt.
THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY
DISCLAIMED. The GPL License provides additional details about this warranty
disclaimer.
*******************************************************************************/
#ifndef __CONFIG_H
#define __CONFIG_H
#include <config.h>
#include "../../board/mv_ebu/axp/mvSysHwConfig.h"
#define MV_RT_DEBUG
/************/
/* VERSIONS */
/************/
#define CONFIG_IDENT_STRING " Marvell version: v2013.01 2013_Q1.0"
/* version number passing when loading Kernel */
#define VER_NUM 0x11120000 /* 2011.12 */
#ifndef MV_NAND
#define CONFIG_SYS_NAND_MAX_CHIPS 1 //pass compilation for non NAND board configuration
#endif // MV_NAND
/**********************************/
/* defines for DB-78x60-BP REV2 */
/**********************************/
#ifdef CONFIG_DB_78x60_BP_REV2
#define DB_88F78X60_REV2
#ifdef MV_NAND
#define MV_NAND_PIO_MODE
#define MV_NAND_1CS_MODE
#define MV_NAND_4BIT_MODE
#define MTD_NAND_NFC_INIT_RESET
#endif // MV_NAND
#endif // CONFIG_DB_78x60_BP_REV2
/**********************************/
/* defines for DB-78x60-PCAC REV2 */
/**********************************/
#ifdef CONFIG_DB_78X60_PCAC_REV2
#define DB_78X60_PCAC_REV2
#ifdef MV_NAND
#define MV_NAND_PIO_MODE
#define MV_NAND_2CS_MODE
#define MV_NAND_4BIT_MODE
#define MTD_NAND_NFC_INIT_RESET
#endif // MV_NAND
#endif // CONFIG_DB_78X60_PCAC_REV2
/**********************************/
/* defines for DB-78x60-NAS */
/**********************************/
#ifdef CONFIG_RD_78460_NAS
#define RD_78460_NAS
#ifdef MV_NAND
#define MV_NAND_PIO_MODE
#define MV_NAND_1CS_MODE
#define MV_NAND_4BIT_MODE
#define MTD_NAND_NFC_INIT_RESET
#endif // MV_NAND
#endif // CONFIG_RD_78460_NAS
/**********************************/
/* defines for RD-78x60-SERVER */
/**********************************/
#ifdef CONFIG_RD_78460_SERVER_REV2
#define RD_78460_SERVER_REV2
#ifdef MV_NAND
#define MV_NAND_PIO_MODE
#define MV_NAND_1CS_MODE
#define MV_NAND_4BIT_MODE
#define MTD_NAND_NFC_INIT_RESET
#endif // MV_NAND
#endif // CONFIG_RD_78460_NAS
/**********************************/
/* defines for DB-78x60-GP */
/**********************************/
#ifdef CONFIG_DB_784MP_GP
#define DB_784MP_GP
#ifdef MV_NAND
#define MV_NAND_PIO_MODE
#define MV_NAND_1CS_MODE
#define MV_NAND_4BIT_MODE
#define MTD_NAND_NFC_INIT_RESET
#endif // MV_NAND
#endif // CONFIG_RD_78460_GP
/**********************************/
/* defines for DB-78460-CUSTOMER */
/**********************************/
#ifdef CONFIG_RD_78460_CUSTOMER
#define RD_78460_CUSTOMER
#ifdef MV_NAND
#define MV_NAND_PIO_MODE
#define MV_NAND_1CS_MODE
#define MV_NAND_4BIT_MODE
#define MTD_NAND_NFC_INIT_RESET
#endif // MV_NAND
#endif // CONFIG_RD_78460_CUSTOMER
/***********/
/* General */
/***********/
#define MV88F78X60
#define MV_SEC_64K
#define MV_BOOTSIZE_512K
#define MV_LARGE_PAGE
#define MV_DDR_64BIT
#define MV_MEM_FASTPATH
#define MV_BOOTROM
#define MV_USB
/*********/
/* Debug */
/*********/
#define CONFIG_SYS_INIT_SP_ADDR 0x00FF0000 /* end of 16M scrubbed by training in bootrom*/
#define CONFIG_SYS_ATA_BASE_ADDR 0x20000000
#define CONFIG_SYS_ATA_REG_OFFSET 0x0000 /* Offset for normal register accesses*/
#define CONFIG_SYS_ATA_DATA_OFFSET 0x0000 /* Offset for data I/O */
/**********************************/
/* Marvell Monitor Extension */
/**********************************/
#define enaMonExt()( /*(!getenv("enaMonExt")) ||\*/\
( getenv("enaMonExt") && \
((!strcmp(getenv("enaMonExt"),"yes")) ||\
(!strcmp(getenv("enaMonExt"),"Yes"))) \
)\
)
/********/
/* CLKs */
/********/
#ifndef __ASSEMBLY__
extern unsigned int mvSysClkGet(void);
extern unsigned int mvTclkGet(void);
#define UBOOT_CNTR 0 /* counter to use for uboot timer */
#define MV_TCLK_CNTR 1 /* counter to use for uboot timer */
#define MV_REF_CLK_DEV_BIT 1000 /* Number of cycle to eanble timer */
#define MV_REF_CLK_BIT_RATE 100000 /* Ref clock frequency */
#define MV_REF_CLK_INPUT_GPP 6 /* Ref clock frequency input */
#define CONFIG_SYS_HZ 1000 /*800*/
#define CONFIG_SYS_TCLK mvTclkGet()
#define CONFIG_SYS_BUS_HZ mvSysClkGet()
#define CONFIG_SYS_BUS_CLK CONFIG_SYS_BUS_HZ
#define CONFIG_SYS_FPGA_DRAM_SIZE _256M
#endif /* __ASSEMBLY__ */
#define CONFIG_DISPLAY_CPUINFO
/********************/
/* Page Table settings */
/********************/
#define MV_PT
#ifdef MV_PT
#define MV_PT_BASE(cpu) (CONFIG_SYS_MALLOC_BASE - 0x20000 - (cpu*0x20000))
#endif /* MV_PT */
/********************/
/* AMP settings */
/********************/
#define CONFIG_AMP_SUPPORT 1
#ifdef CONFIG_AMP_SUPPORT
#define MAX_AMP_GROUPS 2
#endif
/*******************/
/* LPAE support */
/*******************/
#define CONFIG_ARM_LPAE 1
/* The amount of DRAM that should be reserved for IO windows mapping.
** This is translated to a "hole" before the 4GB boundary of the DRAM mapping
** that is passed to the OS (Linux).
*/
#ifdef CONFIG_ARM_LPAE
#define ARM_LPAE_SUPPORT
#endif
#define CONFIG_IO_MEMORY_RESERVE (1024 << 20)
/*************************************/
/* High Level Configuration Options */
/* (easy to change) */
/*************************************/
#define CONFIG_MARVELL
#define CONFIG_SYS_64BIT_VSPRINTF
#define CONFIG_SYS_64BIT_STRTOUL
#define CONFIG_API
/* commands */
#define CONFIG_BOOTP_MASK (CONFIG_BOOTP_DEFAULT | CONFIG_BOOTP_BOOTFILESIZE)
#define CONFIG_CMD_DHCP
#define CONFIG_CMD_ELF
#define CONFIG_CMD_I2C
#define CONFIG_CMD_EEPROM
#define CONFIG_CMD_NET
#define CONFIG_CMD_PING
#define CONFIG_CMD_DATE
#define CONFIG_CMD_LOADS
#define CONFIG_CMD_BSP
#define CONFIG_CMD_MEMORY
#define CONFIG_CMD_BOOTD
#define CONFIG_CMD_CONSOLE
#define CONFIG_CMD_RUN
#define CONFIG_CMD_MISC
#define CONFIG_CMD_IDE
#define CONFIG_CMD_SCSI
#define CONFIG_CMD_SAR
#define CONFIG_CMD_STAGE_BOOT
#define CONFIG_CMD_RCVR
#if (defined(MV_INCLUDE_PEX) || defined(MV_INCLUDE_PCI))
#define CONFIG_PCI
#define CONFIG_CMD_PCI
#endif
/* Pre eXecution Environment (PXE) support*/
#define CONFIG_CMD_PXE
#define CONFIG_BOOTP_PXE
#define CONFIG_MENU
#define CONFIG_BOOTP_PXE_CLIENTARCH 0x100
#define CONFIG_BOOTP_VCI_STRING "U-boot.armv7.armada_xp"
/* Flattened Device Tree (FDT) support */
//#define CONFIG_OF_LIBFDT 1
//#define CONFIG_OF_BOARD_SETUP
/* FS supported */
#define CONFIG_CMD_EXT2
#define CONFIG_CMD_EXT4
#define CONFIG_FS_EXT4
#define CONFIG_CMD_EXT4_WRITE
#define CONFIG_EXT4_WRITE
#define CONFIG_CMD_JFFS2
#define CONFIG_CMD_FAT
#define CONFIG_FS_FAT
#define CONFIG_SUPPORT_VFAT
#define CONFIG_SYS_USE_UBI
#ifdef CONFIG_SYS_USE_UBI
#define CONFIG_CMD_UBI
#define CONFIG_CMD_UBIFS
#define CONFIG_MTD_DEVICE
#define CONFIG_MTD_PARTITIONS
#define CONFIG_CMD_MTDPARTS
#define CONFIG_RBTREE
#define CONFIG_LZO
#endif /* CONFIG_SYS_USE_UBI */
/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */
#include <config_cmd_default.h>
#define CONFIG_SYS_MAXARGS 32 /* max number of command args */
/*-----------------------------------------------------------------------
* IDE/ATA/SATA stuff (Supports IDE harddisk on PCMCIA Adapter)
*-----------------------------------------------------------------------
*/
#undef CONFIG_IDE_8xx_PCCARD /* Use IDE with PC Card Adapter */
#undef CONFIG_IDE_8xx_DIRECT /* Direct IDE not supported */
#undef CONFIG_IDE_LED /* LED for ide not supported */
#undef CONFIG_IDE_RESET /* reset for ide not supported */
#define CONFIG_SYS_IDE_MAXBUS 4 /* max. 1 IDE bus */
#define CONFIG_SYS_IDE_MAXDEVICE CONFIG_SYS_IDE_MAXBUS * 8 /* max. 1 drive per IDE bus */
#define CONFIG_SYS_ATA_IDE0_OFFSET 0x0000
#undef CONFIG_MAC_PARTITION
#define CONFIG_DOS_PARTITION
#define CONFIG_EFI_PARTITION
#define CONFIG_LBA48
//#define CONFIG_SCSI_AHCI
#ifdef CONFIG_SCSI_AHCI
#define CONFIG_SATA_6121
#define CONFIG_SYS_SCSI_MAX_SCSI_ID 4
#define CONFIG_SYS_SCSI_MAX_LUN 1
#define CONFIG_SYS_SCSI_MAX_DEVICE (CONFIG_SYS_SCSI_MAX_SCSI_ID * CONFIG_SYS_SCSI_MAX_LUN)
#endif /* CONFIG_SCSI_AHCI */
#define CONFIG_SCSI_MV94XX
#ifdef CONFIG_SCSI_MV94XX
//#define CONFIG_SATA_6121
#define CONFIG_SYS_SCSI_MAX_SCSI_ID 40 /*8 PM * 5 sata port*/
#define CONFIG_SYS_SCSI_MAX_LUN 1
#define CONFIG_SYS_SCSI_MAX_DEVICE (CONFIG_SYS_SCSI_MAX_SCSI_ID * CONFIG_SYS_SCSI_MAX_LUN)
#endif /* CONFIG_SCSI_AHCI */
/*
* Staggered Spin-up support for SATA disks
* ----------------------------------------
* Set the following U-Boot environment variable:
* setenv spinup_config <spinup_max>,<spinup_timeout>
* For example: spinup_config=2,6 will config the module for 2 maximum disks spinning-up with 6 seconds timeout.
* Parameters explanation:
* 1. <spinup_max> - The maximum spinning-up disks(can be between 1 and 8) ֲ will be like this:
* a. 0 = feature off.
* b. 1 ג€“ 8 = number of disks
* c. <0,>8 = invalid parameter (will behave like feature off)
* 2. <spinup_timeout> - The spin-up timeout (can be between 1 and 6) will be like this:
* a. 0 = feature off.
* b. 1 ג€“ 6 = in seconds
* c. <0,>6 = invalid parameter (will behave like feature off)
* Any parsing error will cause an invalid parameters print and will behave as feature off.
*/
#undef CONFIG_MV_SCATTERED_SPINUP
/* which initialization functions to call for this board */
#define CONFIG_MISC_INIT_R /* after relloc initialization*/
#define CONFIG_ENV_OVERWRITE /* allow to change env parameters */
#undef CONFIG_WATCHDOG /* watchdog disabled */
/* Cache */
#define CONFIG_SYS_CACHELINE_SIZE 32
/* global definitions. */
#define CONFIG_SYS_TEXT_BASE 0x00000000
#define CONFIG_SYS_SDRAM_BASE 0x00000000
#define CONFIG_SYS_RESET_ADDRESS 0xffff0000
#define CONFIG_SYS_MALLOC_BASE (CONFIG_SYS_TEXT_BASE + (3 << 20)) /* TEXT_BASE + 3M */
/*
* When locking data in cache you should point the INIT_RAM_ADDRESS
* To an unused memory region. The stack will remain in cache until RAM
* is initialized
*/
/* for running from L2 SRAM
#define CONFIG_SYS_MALLOC_LEN 0xD0000
*/
#define CONFIG_SYS_MALLOC_LEN (5 << 20) /* Reserve 5MB for malloc*/
#define CONFIG_SYS_GBL_DATA_SIZE 128 /* size in bytes reserved for init data */
#undef CONFIG_INIT_CRITICAL /* critical code in start.S */
/********/
/* DRAM */
/********/
#define CONFIG_SYS_DRAM_BANKS 4
#define CONFIG_NR_DRAM_BANKS 4
#define CONFIG_ECC_SUPPORT
/* this defines whether we want to use the lowest CAL or the highest CAL available,*/
/* we also check for the env parameter CASset. */
#define MV_MIN_CAL
#define CONFIG_SYS_MEMTEST_START 0x00400000
#define CONFIG_SYS_MEMTEST_END 0x007fffff
/********/
/* RTC */
/********/
#if defined(CONFIG_CMD_DATE)
#define CONFIG_SYS_NVRAM_SIZE 0x00 /* dummy */
#define CONFIG_SYS_NVRAM_BASE_ADDR DEVICE_CS1_BASE /* dummy */
#endif /* #if defined(CONFIG_CMD_DATE) */
/********************/
/* Serial + parser */
/********************/
/*
* The following defines let you select what serial you want to use
* for your console driver.
*/
#define CONFIG_BAUDRATE 115200 /* console baudrate = 115200 */
#define CONFIG_SYS_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600 }
#if defined(RD_88F6781_AVNG) || defined(DB_88F6781Y0) || defined(RD_88F6781Y0_AVNG) || defined(DB_88F6781X0) || defined(RD_88F6781X0_PLUG) || defined(RD_88F6781X0_AVNG) || defined(DB_88AP510BP_B) || defined(DB_88AP510_PCAC)
#define CONFIG_SYS_DUART_CHAN 0 /* channel to use for console */
#else
#define CONFIG_SYS_DUART_CHAN 1 /* channel to use for console */
#endif
#define CONFIG_SYS_INIT_CHAN1
#if !defined(RD_88F6781_AVNG) && !defined(RD_88F6781Y0_AVNG) && !defined(RD_88F6781X0_AVNG)
#define CONFIG_SYS_INIT_CHAN2
#endif
#define CONFIG_LOADS_ECHO 0 /* echo off for serial download */
#define CONFIG_SYS_LOADS_BAUD_CHANGE /* allow baudrate changes */
#define CONFIG_SYS_CONSOLE_INFO_QUIET /* don't print In/Out/Err console assignment. */
#undef CONFIG_SILENT_CONSOLE /* define for Pex complince */
/* parser */
#define CONFIG_SYS_HUSH_PARSER
#define CONFIG_AUTO_COMPLETE
#define CONFIG_SYS_PROMPT_HUSH_PS2 "> "
#define CONFIG_SYS_LONGHELP /* undef to save memory */
#define CONFIG_SYS_PROMPT "Marvell>> " /* Monitor Command Prompt */
#define CONFIG_SYS_CBSIZE 1024 /* Console I/O Buffer Size */
#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE+sizeof(CONFIG_SYS_PROMPT)+16) /* Print Buffer Size */
/************/
/* ETHERNET */
/************/
#define MV_ETH_NETA
#define CONFIG_MV_ETH_NETA
/* to change the default ethernet port, use this define (options: 0, 1, 2) */
#define CONFIG_NET_MULTI
#define CONFIG_IPADDR 10.4.50.165
#define CONFIG_SERVERIP 10.4.50.5
#define CONFIG_NETMASK 255.255.255.0
#define ETHADDR "00:00:00:00:51:81"
#define ETH1ADDR "00:00:00:00:51:82"
#ifdef RD_78460_SERVER_REV2
#define ENV_ETH_PRIME "egiga1"
#else
#define ENV_ETH_PRIME "egiga0"
#endif
/************/
/* PCI */
/************/
#if defined(MV_INCLUDE_PCI)
#if defined(DB_PEX_PCI)
#define ENV_PCI_MODE "device" /* PCI */
#else
#define ENV_PCI_MODE "host" /* PCI */
#endif
#endif /* MV_INCLUDE_PCI */
/************/
/* USB */
/************/
#ifdef MV_USB
#define MV_INCLUDE_USB
/* TODO: removed for now, waiting for HW */
#define CONFIG_CMD_USB
#define CONFIG_USB_STORAGE
#define CONFIG_USB_EHCI
// #define CONFIG_USB_EHCI_MARVELL
// omriii : CONFIG_USB_EHCI_MARVELL disabled beacuase cause compilation of drivers/usb/host/echi-marvell.c with errors
#define CONFIG_EHCI_IS_TDI
#define CONFIG_DOS_PARTITION
#define CONFIG_ISO_PARTITION
#define ENV_USB0_MODE "host"
#define ENV_USB1_MODE "host"
#define ENV_USB2_MODE "device"
#define ENV_USB_ACTIVE "0"
#else
#undef MV_INCLUDE_USB
#undef CONFIG_CMD_USB
#undef CONFIG_USB_STORAGE
#endif /* MV_USB */
/************/
/* SDIO/MMC */
/************/
#define CONFIG_MMC
#define CONFIG_CMD_MMC
#define CONFIG_GENERIC_MMC
#define CONFIG_MRVL_MMC
#define CONFIG_SYS_MMC_BASE (INTER_REGS_BASE + 0xd4000)
#define CONFIG_SYS_MMC_MAX_DEVICE 1
/***************************************/
/* LINUX BOOT and other ENV PARAMETERS */
/***************************************/
#define MV_BOOTARGS_END ":10.4.50.254:255.255.255.0:DSMP:eth0:none"
#define MV_BOOTARGS_END_SWITCH ":::RD88FXX81:eth0:none"
#define RCVR_IP_ADDR "169.254.100.100"
#define RCVR_LOAD_ADDR "0x02000000"
#define CONFIG_ZERO_BOOTDELAY_CHECK
#define CONFIG_SYS_LOAD_ADDR 0x02000000 /* default load address */
#define CONFIG_SYS_MIN_HDR_DEL_SIZE 0x100
#undef CONFIG_BOOTARGS
/* auto boot*/
#define CONFIG_BOOTDELAY 3 /* by default no autoboot */
#define CONFIG_ROOTPATH "/srv/nfs/" /* Default Dir for NFS */
#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE /* Boot Argument Buffer Size */
/*
* For booting Linux, the board info and command line data
* have to be in the first 8 MB of memory, since this is
* the maximum mapped by the Linux kernel during initialization.
*/
#define CONFIG_SYS_BOOTMAPSZ (16 << 20) /* Initial Memory map for Linux */
#define BRIDGE_REG_BASE_BOOTM 0xfbe00000 /* this paramaters are used when booting the linux kernel */
#define CONFIG_CMDLINE_TAG 1 /* enable passing of ATAGs */
#define CONFIG_CMDLINE_EDITING 1
#define CONFIG_INITRD_TAG 1 /* enable INITRD tag for ramdisk data */
#define CONFIG_SETUP_MEMORY_TAGS 1
#define CONFIG_MARVELL_TAG
#define ATAG_MARVELL 0x41000403
/********/
/* I2C */
/********/
#if defined(CONFIG_CMD_I2C)
#define CONFIG_I2C_MULTI_BUS
#define CONFIG_SYS_MAX_I2C_BUS 2
#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1
#define CONFIG_SYS_I2C_MULTI_EEPROMS
#define CONFIG_SYS_I2C_SPEED 100000 /* I2C speed default */
#endif
/********/
/* PCI */
/********/
#ifdef CONFIG_PCI
#define CONFIG_PCI_HOST PCI_HOST_FORCE /* select pci host function */
#define CONFIG_PCI_PNP /* do pci plug-and-play */
/* Pnp PCI Network cards */
#define CONFIG_EEPRO100 /* Support for Intel 82557/82559/82559ER chips */
#define CONFIG_E1000
#define CONFIG_SK98 /* yukon */
#define YUK_ETHADDR "00:00:00:EE:51:81"
#define CONFIG_DRIVER_RTL8029
/* DB_PRPMC support only Yukon */
#if defined (DB_PRPMC) || defined (DB_MNG)
#undef CONFIG_EEPRO100
#undef CONFIG_DRIVER_RTL8029
#endif
#endif /* #ifdef CONFIG_PCI */
#define PCI_HOST_ADAPTER 0 /* configure ar pci adapter */
#define PCI_HOST_FORCE 1 /* configure as pci host */
#define PCI_HOST_AUTO 2 /* detected via arbiter enable */
/* for Yukon */
#define __io_pci(x) x
#define __arch_getw(a) (*(volatile unsigned short *)(a))
#define __arch_putw(v,a) (*(volatile unsigned short *)(a) = (v))
/***********************/
/* FLASH organization */
/***********************/
#define CONFIG_SYS_MAX_FLASH_BANKS 1
#define CONFIG_UBOOT_SIZE 0x100000
/* SPI Flash configuration */
/*****************************/
#if defined(MV_INCLUDE_SPI)
#define CONFIG_CMD_SPI
#define CONFIG_CMD_SF
#define CONFIG_SPI_FLASH
#define CONFIG_SPI_FLASH_STMICRO
#define CONFIG_SPI_FLASH_MACRONIX
#define CONFIG_ENV_SPI_MAX_HZ 50000000
#define CONFIG_ENV_SPI_CS 0
#define CONFIG_ENV_SPI_BUS 0
#ifndef CONFIG_SF_DEFAULT_SPEED
# define CONFIG_SF_DEFAULT_SPEED CONFIG_ENV_SPI_MAX_HZ
#endif
#ifndef CONFIG_SF_DEFAULT_MODE
# define CONFIG_SF_DEFAULT_MODE SPI_MODE_3
#endif
#ifndef CONFIG_SF_DEFAULT_CS
# define CONFIG_SF_DEFAULT_CS CONFIG_ENV_SPI_CS
#endif
#ifndef CONFIG_SF_DEFAULT_BUS
#define CONFIG_SF_DEFAULT_BUS CONFIG_ENV_SPI_BUS
#endif
/* Boot from SPI settings */
#if defined(MV_SPI_BOOT)
#define CONFIG_ENV_IS_IN_SPI_FLASH
#if defined(MV_SEC_64K)
#define CONFIG_ENV_SECT_SIZE 0x10000
#elif defined(MV_SEC_128K)
#define CONFIG_ENV_SECT_SIZE 0x20000
#elif defined(MV_SEC_256K)
#define CONFIG_ENV_SECT_SIZE 0x40000
#endif
#define CONFIG_ENV_SIZE CONFIG_ENV_SECT_SIZE /* environment takes one sector */
#define CONFIG_ENV_OFFSET 0x100000 /* (1MB For Image) environment starts here */
#define CONFIG_ENV_ADDR CONFIG_ENV_OFFSET
#define MONITOR_HEADER_LEN 0x200
#define CONFIG_SYS_MONITOR_BASE 0
#define CONFIG_SYS_MONITOR_LEN 0x80000 /*(512 << 10) Reserve 512 kB for Monitor */
#ifndef MV_INCLUDE_NOR
#ifdef MV_BOOTROM
#define CONFIG_SYS_FLASH_BASE DEVICE_SPI_BASE
#define CONFIG_SYS_FLASH_SIZE _16M
#else
#define CONFIG_SYS_FLASH_BASE BOOTDEV_CS_BASE
#define CONFIG_SYS_FLASH_SIZE BOOTDEV_CS_SIZE
#endif /* ifdef MV_BOOTROM */
#endif
#endif //#if defined(MV_SPI_BOOT)
#endif //#if defined(MV_SPI)
/* NAND-FLASH stuff */
/************************/
#if defined(MV_NAND)
#define CONFIG_SYS_MAX_NAND_DEVICE 1 /* Max number of NAND devices */
#if defined(MV_NAND_2CS_MODE)
#define CONFIG_SYS_NAND_MAX_CHIPS 2
#elif defined(MV_NAND_1CS_MODE)
#define CONFIG_SYS_NAND_MAX_CHIPS 1
#endif
#ifndef RD_78460_SERVER_REV2
#define CONFIG_CMD_NAND
#endif
//#define CONFIG_NAND_RS_ECC_SUPPORT
#define CONFIG_MV_MTD_GANG_SUPPORT
#define CONFIG_MV_MTD_MLC_NAND_SUPPORT
#define CONFIG_SYS_64BIT_VSPRINTF
#define CONFIG_SKIP_BAD_BLOCK
#undef MV_NFC_DBG
/* Boot from NAND settings */
#if defined(MV_NAND_BOOT)
#define CONFIG_ENV_IS_IN_NAND
#define CONFIG_ENV_SIZE 0x80000 /* environment takes one erase block */
#define CONFIG_ENV_OFFSET nand_get_env_offs() /* environment starts here */
#define CONFIG_ENV_ADDR CONFIG_ENV_OFFSET
#define MONITOR_HEADER_LEN 0x200
#define CONFIG_SYS_MONITOR_BASE 0
#define CONFIG_SYS_MONITOR_LEN 0x80000 /* Reserve 512 kB for Monitor */
#define CONFIG_ENV_RANGE CONFIG_ENV_SIZE * 8
#define MV_NBOOT_BASE 0
#define MV_NBOOT_LEN (4 << 10) /* Reserved 4KB for boot strap */
#endif /* MV_NAND_BOOT */
#endif //#if defined(MV_NAND)
/* NOR-FLASH stuff */
/************************/
#if defined(MV_INCLUDE_NOR)
#define CONFIG_NOR_FLASH
#define CONFIG_SYS_FLASH_CFI
#define CONFIG_SYS_FLASH_PROTECTION
#define CONFIG_FLASH_CFI_DRIVER
//#define CONFIG_FLASH_CFI_MTD
#define CONFIG_SYS_MAX_FLASH_SECT 128
#define CONFIG_SYS_FLASH_BASE NOR_CS_BASE
#define CONFIG_SYS_FLASH_CFI_WIDTH FLASH_CFI_8BIT
//#define CONFIG_SYS_WRITE_SWAPPED_DATA
#define CONFIG_FLASH_SHOW_PROGRESS 1
#define CONFIG_SYS_FLASH_EMPTY_INFO
#define CONFIG_SYS_FLASH_USE_BUFFER_WRITE
#define CONFIG_CMD_FLASH
#undef CONFIG_CMD_IMLS
/* Boot from NOR settings */
#if defined(MV_NOR_BOOT)
// #define MV_RUN_FROM_FLASH
#define CONFIG_ENV_IS_IN_FLASH
#define CONFIG_ENV_SIZE 0x20000
#define CONFIG_ENV_SECT_SIZE 0x20000
#define CONFIG_ENV_OFFSET 0x100000 /* environment starts here */
#define CONFIG_ENV_RANGE CONFIG_ENV_SIZE * 8
#define CONFIG_ENV_ADDR (NOR_CS_BASE + CONFIG_ENV_OFFSET)
#define MONITOR_HEADER_LEN 0x200
#define CONFIG_SYS_MONITOR_BASE 0
#define CONFIG_SYS_MONITOR_LEN 0xC0000 /* Reserve 768 kB for Monitor */
#endif /* MV_NOR_BOOT */
#else
#define CONFIG_SYS_NO_FLASH
#undef CONFIG_CMD_FLASH
#undef CONFIG_CMD_IMLS
#endif /* MV_INCLUDE_NOR */
/*****************/
/* others */
/*****************/
#define MV_DFL_REGS INTER_REGS_BASE /* boot time MV_REGS */
#define MV_REGS INTER_REGS_BASE /* MV Registers will be mapped here */
#define BOARD_LATE_INIT
#define CONFIG_BOARD_LATE_INIT
#undef CONFIG_USE_IRQ
/* for running from L2 SRAM
#define CONFIG_STACKSIZE (128 << 10)
*/
#define CONFIG_STACKSIZE (1 << 20) /* regular stack - up to 4M (in case of exception)*/
#endif /* __CONFIG_H */