config-pre.h 3.0 KB

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