blob: 8cd137f29bc92a70cdcab01182cdcad1fb9af0a5 [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_BOBCAT2_H
#define __CONFIG_BOBCAT2_H
#include <config.h>
#include "mv_version.h"
#include "../../board/mv_ebu/msys/mvSysHwConfig.h"
#define MV_RT_DEBUG
/* 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 Customer Boards */
/*********************************/
#if defined (CONFIG_CUSTOMER_BOARD_0) || defined (CONFIG_CUSTOMER_BOARD_1)
#define CONFIG_CUSTOMER_BOARD_SUPPORT
#endif
/* Defines for Binary Header linkage @ config_marvell.h */
#ifdef CONFIG_DB_BOBCAT2
#define DB_BOBCAT2
#endif
#ifdef CONFIG_RD_BOBCAT2
#define RD_BOBCAT2
#endif
#ifdef CONFIG_RD_MTL_BOBCAT2
#define RD_MTL_BOBCAT2
#endif
#ifdef CONFIG_DB_AC3
#define DB_AC3
#endif
#ifdef CONFIG_RD_AC3
#define RD_AC3
#endif
/***********/
/* General */
/***********/
#define MV_MSYS
#define MV_SEC_64K
#define MV_BOOTSIZE_512K
#define MV_LARGE_PAGE
#define MV_DDR_64BIT
#define MV_MEM_FASTPATH
#define MV_BOOTROM
#define CONFIG_BOARD_EARLY_INIT_F
#define MV_DDR_TRAINING_CMD_NEW_TIP
#ifdef CONFIG_ALLEYCAT3
#define MV_USB
#endif
/*********/
/* 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 mvCpuDdrClkGet(void);
extern unsigned int mvTclkGet(void);
extern unsigned int mvUartPortGet(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 mvCpuDdrClkGet()
#define CONFIG_SYS_BUS_CLK CONFIG_SYS_BUS_HZ
#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 */
/********************/
#undef CONFIG_AMP_SUPPORT
#ifdef CONFIG_AMP_SUPPORT
#define MAX_AMP_GROUPS 1
#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_BOOTZ
#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
#define CONFIG_CMD_BOOT_MENU
#define CONFIG_ENV_MIN_ENTRIES 128
#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
#undef CONFIG_OF_LIBFDT_IS_DEFAULT /* dft is the default for bootcmd */
/* 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_SYS_64BIT_LBA /* Support disk over 2TB */
#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 */
/* 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_DCACHE_OFF
#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 }
#define CONFIG_SYS_DUART_CHAN 0 /* channel to use for console */
#define CONFIG_SYS_INIT_CHAN1
#define CONFIG_SYS_INIT_CHAN2
#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"
#define ENV_ETH_PRIME "egiga0"
/************/
/* 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 CONFIG_USB_EHCI
#define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS 1
#define MV_INCLUDE_USB
#define CONFIG_CMD_USB
#define CONFIG_USB_STORAGE
#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_USB_ACTIVE "0"
#define ENV_USB_MODE "2" /* 3 = USB3.0 | 2 = USB2.0 */
/* Marvell encapsulate it's USB usage with usbActive internal index,
* the usb stack uses 1 controller simultaneously */
#define CONFIG_USB_MAX_CONTROLLER_COUNT 1
/* xHCI code relies on index receiving from that usbActive,
* which could go up to 2 for several SoCs. this requires xHCI arrays to be as big as
* the actual USB host count */
#define CONFIG_USB_MAX_CONTROLLER_HOST_COUNT 1
#define CONFIG_USB_HOST_ETHER
#define CONFIG_USB_ETHER_ASIX
#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 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
#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
#define CONFIG_SPARE_AREA 0x400000
#if defined(MV_SEC_64K)
#define CONFIG_ENV_SECT_SIZE_SPI 0x10000
#elif defined(MV_SEC_128K)
#define CONFIG_ENV_SECT_SIZE_SPI 0x20000
#elif defined(MV_SEC_256K)
#define CONFIG_ENV_SECT_SIZE_SPI 0x40000
#endif
#define CONFIG_ENV_SIZE_SPI CONFIG_ENV_SECT_SIZE_SPI /* environment takes one sector */
#define CONFIG_ENV_OFFSET_SPI 0x100000 /* (1MB For Image) environment starts here */
#define CONFIG_ENV_SPARE_BLOCK 4 /* A multiple of the NAND device's block size. *
* Specifying a range with more erase blocks than *
* are needed to hold CONFIG_ENV_SIZE allows bad *
* blocks within the range to be avoided. */
#define CONFIG_ENV_SIZE_NAND 0x80000 /* environment takes one erase block */
#define CONFIG_ENV_OFFSET_NAND nand_get_env_offs() /* environment starts here */
#define CONFIG_ENV_RANGE_NAND CONFIG_ENV_SIZE_NAND * CONFIG_ENV_SPARE_BLOCK
#define CONFIG_ENV_SIZE_NOR 0x20000
#define CONFIG_ENV_SECT_SIZE_NOR 0x20000
#define CONFIG_ENV_OFFSET_NOR 0x100000 /* environment starts here */
#define CONFIG_ENV_ADDR_NOR (NOR_CS_BASE + CONFIG_ENV_OFFSET_NOR)
/* 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
#ifndef CONFIG_BOBCAT2
#define CONFIG_ENV_SPI_MAX_HZ 50000000
#else
#define CONFIG_ENV_SPI_MAX_HZ 10000000 /* Temporarely reduce to 10MHz due to BC2 DB HW issue */
#endif
#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
#define CONFIG_ENV_SECT_SIZE CONFIG_ENV_SECT_SIZE_SPI
#define CONFIG_ENV_SIZE CONFIG_ENV_SIZE_SPI /* environment takes one sector */
#define CONFIG_ENV_OFFSET CONFIG_ENV_OFFSET_SPI /* (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 */
/************************/
#define CONFIG_SYS_NAND_MAX_CHIPS 1
#if defined(MV_NAND)
#ifndef __ASSEMBLY__
extern int nand_get_env_offs(void);
#endif /* __ASSEMBLY__ */
#define MV_NAND_PIO_MODE
#define MV_NAND_1CS_MODE
#define MV_NAND_4BIT_MODE
#define MTD_NAND_NFC_INIT_RESET
#define CONFIG_SYS_MAX_NAND_DEVICE 1
#define CONFIG_CMD_NAND
#define CONFIG_CMD_NAND_TRIMFFS
#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
#define CONFIG_JFFS2_NAND
/* Boot from NAND settings */
#if defined(MV_NAND_BOOT)
#define CONFIG_ENV_IS_IN_NAND
#define CONFIG_ENV_SIZE 0x10000 /* 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 nand_get_env_range()
#define MV_NBOOT_BASE 0
#define MV_NBOOT_LEN (4 << 10) /* Reserved 4KB for boot strap */
#endif /* MV_NAND_BOOT */
#endif /* 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_SYS_FLASH_CFI_AMD_RESET
//#define CONFIG_SYS_FLASH_QUIET_TEST
//#define CONFIG_SYS_FLASH_BANKS_LIST {BOOTDEV_CS_BASE}
#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 CONFIG_ENV_SIZE_NOR
#define CONFIG_ENV_SECT_SIZE CONFIG_ENV_SECT_SIZE_NOR
#define CONFIG_ENV_OFFSET CONFIG_ENV_OFFSET_NOR /* environment starts here */
#define CONFIG_ENV_ADDR CONFIG_ENV_ADDR_NOR
#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
#define CONFIG_BZIP2
#define MV_SWITCH_ADDRESS_COMPLETION
/* for running from L2 SRAM
#define CONFIG_STACKSIZE (128 << 10)
*/
#define CONFIG_STACKSIZE (1 << 20) /* regular stack - up to 4M (in case of exception)*/
/********************* Errata & Guide lines *****************************************************/
#define ERRATA_FE_982377 /* Internal CPU Temperature Read Out Stability */
#define ERRATA_FE_9123155 /* Boot from NAND Flash and Bad Blocks in SLC Default Mode */
#ifdef CONFIG_BOBCAT2
#define ERRATA_GL_5956802 /* Disable the external i2c debugger access */
#endif
/************************************************************************************************/
#endif /* __CONFIG_BOBCAT2_H */