|
|
|
/*
|
|
|
|
* config-pre.h - common defines for Blackfin boards in config.h
|
|
|
|
*
|
|
|
|
* Copyright (c) 2007-2009 Analog Devices Inc.
|
|
|
|
*
|
|
|
|
* Licensed under the GPL-2 or later.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __ASM_BLACKFIN_CONFIG_PRE_H__
|
|
|
|
#define __ASM_BLACKFIN_CONFIG_PRE_H__
|
|
|
|
|
|
|
|
/* Misc helper functions */
|
|
|
|
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
|
|
|
|
|
|
|
|
/* Bootmode defines -- your config needs to select this via CONFIG_BFIN_BOOT_MODE.
|
|
|
|
* Depending on your cpu, some of these may not be valid, check your HRM.
|
|
|
|
* The actual values here are meaningless as long as they're unique.
|
|
|
|
*/
|
|
|
|
#define BFIN_BOOT_BYPASS 1 /* bypass bootrom */
|
|
|
|
#define BFIN_BOOT_PARA 2 /* boot ldr out of parallel flash */
|
|
|
|
#define BFIN_BOOT_SPI_MASTER 3 /* boot ldr out of serial flash */
|
|
|
|
#define BFIN_BOOT_SPI_SLAVE 4 /* boot ldr as spi slave */
|
|
|
|
#define BFIN_BOOT_TWI_MASTER 5 /* boot ldr over twi device */
|
|
|
|
#define BFIN_BOOT_TWI_SLAVE 6 /* boot ldr over twi slave */
|
|
|
|
#define BFIN_BOOT_UART 7 /* boot ldr over uart */
|
|
|
|
#define BFIN_BOOT_IDLE 8 /* do nothing, just idle */
|
|
|
|
#define BFIN_BOOT_FIFO 9 /* boot ldr out of FIFO */
|
|
|
|
#define BFIN_BOOT_MEM 10 /* boot ldr out of memory (warmboot) */
|
|
|
|
#define BFIN_BOOT_16HOST_DMA 11 /* boot ldr from 16-bit host dma */
|
|
|
|
#define BFIN_BOOT_8HOST_DMA 12 /* boot ldr from 8-bit host dma */
|
|
|
|
#define BFIN_BOOT_NAND 13 /* boot ldr from nand flash */
|
|
|
|
#define BFIN_BOOT_RSI_MASTER 14 /* boot ldr from rsi */
|
|
|
|
#define BFIN_BOOT_LP_SLAVE 15 /* boot ldr from link port */
|
|
|
|
|
|
|
|
#ifndef __ASSEMBLY__
|
|
|
|
static inline const char *get_bfin_boot_mode(int bfin_boot)
|
|
|
|
{
|
|
|
|
switch (bfin_boot) {
|
|
|
|
case BFIN_BOOT_BYPASS: return "bypass";
|
|
|
|
case BFIN_BOOT_PARA: return "parallel flash";
|
|
|
|
case BFIN_BOOT_SPI_MASTER: return "spi flash";
|
|
|
|
case BFIN_BOOT_SPI_SLAVE: return "spi slave";
|
|
|
|
case BFIN_BOOT_TWI_MASTER: return "i2c flash";
|
|
|
|
case BFIN_BOOT_TWI_SLAVE: return "i2c slave";
|
|
|
|
case BFIN_BOOT_UART: return "uart";
|
|
|
|
case BFIN_BOOT_IDLE: return "idle";
|
|
|
|
case BFIN_BOOT_FIFO: return "fifo";
|
|
|
|
case BFIN_BOOT_MEM: return "memory";
|
|
|
|
case BFIN_BOOT_16HOST_DMA: return "16bit dma";
|
|
|
|
case BFIN_BOOT_8HOST_DMA: return "8bit dma";
|
|
|
|
case BFIN_BOOT_NAND: return "nand flash";
|
|
|
|
case BFIN_BOOT_RSI_MASTER: return "rsi master";
|
|
|
|
case BFIN_BOOT_LP_SLAVE: return "link port slave";
|
|
|
|
default: return "INVALID";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/* Most bootroms allow for EVT1 redirection */
|
|
|
|
#if ((defined(__ADSPBF531__) || defined(__ADSPBF532__) || defined(__ADSPBF533__)) \
|
|
|
|
&& __SILICON_REVISION__ < 3) || defined(__ADSPBF561__)
|
|
|
|
# undef CONFIG_BFIN_BOOTROM_USES_EVT1
|
|
|
|
#else
|
|
|
|
# define CONFIG_BFIN_BOOTROM_USES_EVT1
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/* Define the default SPI CS used when booting out of SPI */
|
|
|
|
#if defined(__ADSPBF531__) || defined(__ADSPBF532__) || defined(__ADSPBF533__) || \
|
|
|
|
defined(__ADSPBF538__) || defined(__ADSPBF539__) || defined(__ADSPBF561__) || \
|
|
|
|
defined(__ADSPBF51x__)
|
|
|
|
# define BFIN_BOOT_SPI_SSEL 2
|
|
|
|
#else
|
|
|
|
# define BFIN_BOOT_SPI_SSEL 1
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/* Define to get a GPIO CS with the Blackfin SPI controller */
|
|
|
|
#define MAX_CTRL_CS 8
|
|
|
|
|
|
|
|
/* There is no Blackfin/NetBSD port */
|
|
|
|
#undef CONFIG_BOOTM_NETBSD
|
|
|
|
|
|
|
|
/* We rarely use interrupts, so favor throughput over latency */
|
|
|
|
#define CONFIG_BFIN_INS_LOWOVERHEAD
|
|
|
|
|
|
|
|
#endif
|