Merge branch 'master' of git://git.denx.de/u-boot-nand-flash
[platform/kernel/u-boot.git] / include / asm-blackfin / blackfin-config-pre.h
1 /*
2  * blackfin-config-pre.h - common defines for Blackfin boards in config.h
3  *
4  * Copyright (c) 2007 Analog Devices Inc.
5  *
6  * Licensed under the GPL-2 or later.
7  */
8
9 #ifndef __ASM_BLACKFIN_CONFIG_PRE_H__
10 #define __ASM_BLACKFIN_CONFIG_PRE_H__
11
12 /* Misc helper functions */
13 #define XMK_STR(x) #x
14 #define MK_STR(x) XMK_STR(x)
15 #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
16
17 /* Configurable Blackfin-specific monitor commands */
18 #define CONFIG_SYS_BFIN_CMD_BOOTLDR     0x01
19 #define CONFIG_SYS_BFIN_CMD_CPLBINFO    0x02
20 #define CONFIG_SYS_BFIN_CMD_OTP         0x04
21 #define CONFIG_SYS_BFIN_CMD_CACHE_DUMP  0x08
22
23 /* Bootmode defines -- your config needs to select this via CONFIG_BFIN_BOOT_MODE.
24  * Depending on your cpu, some of these may not be valid, check your HRM.
25  * The actual values here are meaningless as long as they're unique.
26  */
27 #define BFIN_BOOT_BYPASS      1       /* bypass bootrom */
28 #define BFIN_BOOT_PARA        2       /* boot ldr out of parallel flash */
29 #define BFIN_BOOT_SPI_MASTER  3       /* boot ldr out of serial flash */
30 #define BFIN_BOOT_SPI_SLAVE   4       /* boot ldr as spi slave */
31 #define BFIN_BOOT_TWI_MASTER  5       /* boot ldr over twi device */
32 #define BFIN_BOOT_TWI_SLAVE   6       /* boot ldr over twi slave */
33 #define BFIN_BOOT_UART        7       /* boot ldr over uart */
34 #define BFIN_BOOT_IDLE        8       /* do nothing, just idle */
35 #define BFIN_BOOT_FIFO        9       /* boot ldr out of FIFO */
36 #define BFIN_BOOT_MEM         10      /* boot ldr out of memory (warmboot) */
37 #define BFIN_BOOT_16HOST_DMA  11      /* boot ldr from 16-bit host dma */
38 #define BFIN_BOOT_8HOST_DMA   12      /* boot ldr from 8-bit host dma */
39 #define BFIN_BOOT_NAND        13      /* boot ldr from nand flash */
40
41 #ifndef __ASSEMBLY__
42 static inline const char *get_bfin_boot_mode(int bfin_boot)
43 {
44         switch (bfin_boot) {
45         case BFIN_BOOT_BYPASS:     return "bypass";
46         case BFIN_BOOT_PARA:       return "parallel flash";
47         case BFIN_BOOT_SPI_MASTER: return "spi flash";
48         case BFIN_BOOT_SPI_SLAVE:  return "spi slave";
49         case BFIN_BOOT_TWI_MASTER: return "i2c flash";
50         case BFIN_BOOT_TWI_SLAVE:  return "i2c slave";
51         case BFIN_BOOT_UART:       return "uart";
52         case BFIN_BOOT_IDLE:       return "idle";
53         case BFIN_BOOT_FIFO:       return "fifo";
54         case BFIN_BOOT_MEM:        return "memory";
55         case BFIN_BOOT_16HOST_DMA: return "16bit dma";
56         case BFIN_BOOT_8HOST_DMA:  return "8bit dma";
57         case BFIN_BOOT_NAND:       return "nand flash";
58         default:                   return "INVALID";
59         }
60 }
61 #endif
62
63 /* Define the default SPI CS used when booting out of SPI */
64 #if defined(__ADSPBF531__) || defined(__ADSPBF532__) || defined(__ADSPBF533__) || \
65     defined(__ADSPBF538__) || defined(__ADSPBF539__) || defined(__ADSPBF561__) || \
66     defined(__ADSPBF51x__)
67 # define BFIN_BOOT_SPI_SSEL 2
68 #else
69 # define BFIN_BOOT_SPI_SSEL 1
70 #endif
71
72 #endif