blackfin-config-pre.h 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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. #ifndef __ASM_BLACKFIN_CONFIG_PRE_H__
  9. #define __ASM_BLACKFIN_CONFIG_PRE_H__
  10. /* Misc helper functions */
  11. #define XMK_STR(x) #x
  12. #define MK_STR(x) XMK_STR(x)
  13. #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
  14. /* Bootmode defines -- your config needs to select this via CONFIG_BFIN_BOOT_MODE.
  15. * Depending on your cpu, some of these may not be valid, check your HRM.
  16. * The actual values here are meaningless as long as they're unique.
  17. */
  18. #define BFIN_BOOT_BYPASS 1 /* bypass bootrom */
  19. #define BFIN_BOOT_PARA 2 /* boot ldr out of parallel flash */
  20. #define BFIN_BOOT_SPI_MASTER 3 /* boot ldr out of serial flash */
  21. #define BFIN_BOOT_SPI_SLAVE 4 /* boot ldr as spi slave */
  22. #define BFIN_BOOT_TWI_MASTER 5 /* boot ldr over twi device */
  23. #define BFIN_BOOT_TWI_SLAVE 6 /* boot ldr over twi slave */
  24. #define BFIN_BOOT_UART 7 /* boot ldr over uart */
  25. #define BFIN_BOOT_IDLE 8 /* do nothing, just idle */
  26. #define BFIN_BOOT_FIFO 9 /* boot ldr out of FIFO */
  27. #define BFIN_BOOT_MEM 10 /* boot ldr out of memory (warmboot) */
  28. #define BFIN_BOOT_16HOST_DMA 11 /* boot ldr from 16-bit host dma */
  29. #define BFIN_BOOT_8HOST_DMA 12 /* boot ldr from 8-bit host dma */
  30. #define BFIN_BOOT_NAND 13 /* boot ldr from nand flash */
  31. #ifndef __ASSEMBLY__
  32. static inline const char *get_bfin_boot_mode(int bfin_boot)
  33. {
  34. switch (bfin_boot) {
  35. case BFIN_BOOT_BYPASS: return "bypass";
  36. case BFIN_BOOT_PARA: return "parallel flash";
  37. case BFIN_BOOT_SPI_MASTER: return "spi flash";
  38. case BFIN_BOOT_SPI_SLAVE: return "spi slave";
  39. case BFIN_BOOT_TWI_MASTER: return "i2c flash";
  40. case BFIN_BOOT_TWI_SLAVE: return "i2c slave";
  41. case BFIN_BOOT_UART: return "uart";
  42. case BFIN_BOOT_IDLE: return "idle";
  43. case BFIN_BOOT_FIFO: return "fifo";
  44. case BFIN_BOOT_MEM: return "memory";
  45. case BFIN_BOOT_16HOST_DMA: return "16bit dma";
  46. case BFIN_BOOT_8HOST_DMA: return "8bit dma";
  47. case BFIN_BOOT_NAND: return "nand flash";
  48. default: return "INVALID";
  49. }
  50. }
  51. #endif
  52. /* Most bootroms allow for EVT1 redirection */
  53. #if (defined(__ADSPBF531__) || defined(__ADSPBF532__) || defined(__ADSPBF533__) \
  54. && __SILICON_REVISION__ < 3) || defined(__ADSPBF561__)
  55. # undef CONFIG_BFIN_BOOTROM_USES_EVT1
  56. #else
  57. # define CONFIG_BFIN_BOOTROM_USES_EVT1
  58. #endif
  59. /* Define the default SPI CS used when booting out of SPI */
  60. #if defined(__ADSPBF531__) || defined(__ADSPBF532__) || defined(__ADSPBF533__) || \
  61. defined(__ADSPBF538__) || defined(__ADSPBF539__) || defined(__ADSPBF561__) || \
  62. defined(__ADSPBF51x__)
  63. # define BFIN_BOOT_SPI_SSEL 2
  64. #else
  65. # define BFIN_BOOT_SPI_SSEL 1
  66. #endif
  67. #endif