stmark2.h 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. /*
  2. * Sysam stmark2 board configuration
  3. *
  4. * (C) Copyright 2017 Angelo Dureghello <angelo@sysam.it>
  5. *
  6. * SPDX-License-Identifier: GPL-2.0+
  7. */
  8. #ifndef __STMARK2_CONFIG_H
  9. #define __STMARK2_CONFIG_H
  10. #define CONFIG_HOSTNAME stmark2
  11. #define CONFIG_MCFUART
  12. #define CONFIG_SYS_UART_PORT 0
  13. #define CONFIG_SYS_BAUDRATE_TABLE { 9600 , 19200 , 38400 , 57600, 115200 }
  14. #define LDS_BOARD_TEXT \
  15. board/sysam/stmark2/sbf_dram_init.o (.text*)
  16. #define CONFIG_TIMESTAMP
  17. #define CONFIG_BOOTARGS \
  18. "console=ttyS0,115200 root=/dev/ram0 rw " \
  19. "rootfstype=ramfs " \
  20. "rdinit=/bin/init " \
  21. "devtmpfs.mount=1"
  22. #define CONFIG_BOOTCOMMAND \
  23. "sf probe 0:1 50000000; " \
  24. "sf read ${loadaddr} 0x100000 ${kern_size}; " \
  25. "bootm ${loadaddr}"
  26. #define CONFIG_EXTRA_ENV_SETTINGS \
  27. "kern_size=0x700000\0" \
  28. "loadaddr=0x40001000\0" \
  29. "-(rootfs)\0" \
  30. "update_uboot=loady ${loadaddr}; " \
  31. "sf probe 0:1 50000000; " \
  32. "sf erase 0 0x80000; " \
  33. "sf write ${loadaddr} 0 ${filesize}\0" \
  34. "update_kernel=loady ${loadaddr}; " \
  35. "setenv kern_size ${filesize}; saveenv; " \
  36. "sf probe 0:1 50000000; " \
  37. "sf erase 0x100000 0x700000; " \
  38. "sf write ${loadaddr} 0x100000 ${filesize}\0" \
  39. "update_rootfs=loady ${loadaddr}; " \
  40. "sf probe 0:1 50000000; " \
  41. "sf erase 0x00800000 0x100000; " \
  42. "sf write ${loadaddr} 0x00800000 ${filesize}\0" \
  43. ""
  44. /* Realtime clock */
  45. #undef CONFIG_MCFRTC
  46. #define CONFIG_RTC_MCFRRTC
  47. #define CONFIG_SYS_MCFRRTC_BASE 0xFC0A8000
  48. /* spi not partitions */
  49. #define CONFIG_MTD_DEVICE
  50. #define CONFIG_JFFS2_CMDLINE
  51. #define CONFIG_JFFS2_DEV "nor0"
  52. /* Timer */
  53. #define CONFIG_MCFTMR
  54. #undef CONFIG_MCFPIT
  55. /* DSPI and Serial Flash */
  56. #define CONFIG_CF_SPI
  57. #define CONFIG_CF_DSPI
  58. #define CONFIG_SF_DEFAULT_SPEED 50000000
  59. #define CONFIG_SERIAL_FLASH
  60. #define CONFIG_HARD_SPI
  61. #define CONFIG_SPI_FLASH_ISSI
  62. #define CONFIG_ENV_SPI_BUS 0
  63. #define CONFIG_ENV_SPI_CS 1
  64. #define CONFIG_SYS_SBFHDR_SIZE 0x7
  65. #define CONFIG_SYS_DSPI_CTAR0 (DSPI_CTAR_TRSZ(7) | \
  66. DSPI_CTAR_PCSSCK_1CLK | \
  67. DSPI_CTAR_PASC(0) | \
  68. DSPI_CTAR_PDT(0) | \
  69. DSPI_CTAR_CSSCK(0) | \
  70. DSPI_CTAR_ASC(0) | \
  71. DSPI_CTAR_DT(1) | \
  72. DSPI_CTAR_BR(6))
  73. #define CONFIG_SYS_DSPI_CTAR1 (CONFIG_SYS_DSPI_CTAR0)
  74. #define CONFIG_SYS_DSPI_CTAR2 (CONFIG_SYS_DSPI_CTAR0)
  75. /* Input, PCI, Flexbus, and VCO */
  76. #define CONFIG_EXTRA_CLOCK
  77. #define CONFIG_PRAM 2048 /* 2048 KB */
  78. #define CONFIG_SYS_LONGHELP
  79. #define CONFIG_AUTO_COMPLETE
  80. #define CONFIG_SYS_CBSIZE 256 /* Console I/O Buffer Size */
  81. /* Print Buffer Size */
  82. #define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + \
  83. sizeof(CONFIG_SYS_PROMPT) + 16)
  84. #define CONFIG_SYS_MAXARGS 16
  85. /* Boot Argument Buffer Size */
  86. #define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE
  87. #define CONFIG_SYS_LOAD_ADDR (CONFIG_SYS_SDRAM_BASE + 0x10000)
  88. #define CONFIG_SYS_MBAR 0xFC000000
  89. /*
  90. * Definitions for initial stack pointer and data area (in internal SRAM)
  91. */
  92. #define CONFIG_SYS_INIT_RAM_ADDR 0x80000000
  93. /* End of used area in internal SRAM */
  94. #define CONFIG_SYS_INIT_RAM_SIZE 0x10000
  95. #define CONFIG_SYS_INIT_RAM_CTRL 0x221
  96. #define CONFIG_SYS_GBL_DATA_OFFSET ((CONFIG_SYS_INIT_RAM_SIZE - \
  97. GENERATED_GBL_DATA_SIZE) - 32)
  98. #define CONFIG_SYS_INIT_SP_OFFSET CONFIG_SYS_GBL_DATA_OFFSET
  99. #define CONFIG_SYS_SBFHDR_DATA_OFFSET (CONFIG_SYS_INIT_RAM_SIZE - 32)
  100. /*
  101. * Start addresses for the final memory configuration
  102. * (Set up by the startup code)
  103. * Please note that CONFIG_SYS_SDRAM_BASE _must_ start at 0
  104. */
  105. #define CONFIG_SYS_SDRAM_BASE 0x40000000
  106. #define CONFIG_SYS_SDRAM_SIZE 128 /* SDRAM size in MB */
  107. #define CONFIG_SYS_MEMTEST_START (CONFIG_SYS_SDRAM_BASE + 0x400)
  108. #define CONFIG_SYS_MEMTEST_END ((CONFIG_SYS_SDRAM_SIZE - 3) << 20)
  109. #define CONFIG_SYS_DRAM_TEST
  110. #if defined(CONFIG_CF_SBF)
  111. #define CONFIG_SERIAL_BOOT
  112. #endif
  113. #if defined(CONFIG_SERIAL_BOOT)
  114. #define CONFIG_SYS_MONITOR_BASE (CONFIG_SYS_TEXT_BASE + 0x400)
  115. #else
  116. #define CONFIG_SYS_MONITOR_BASE (CONFIG_SYS_FLASH_BASE + 0x400)
  117. #endif
  118. #define CONFIG_SYS_BOOTPARAMS_LEN (64 * 1024)
  119. /* Reserve 256 kB for Monitor */
  120. #define CONFIG_SYS_MONITOR_LEN (256 << 10)
  121. /* Reserve 256 kB for malloc() */
  122. #define CONFIG_SYS_MALLOC_LEN (256 << 10)
  123. /*
  124. * For booting Linux, the board info and command line data
  125. * have to be in the first 8 MB of memory, since this is
  126. * the maximum mapped by the Linux kernel during initialization ??
  127. */
  128. /* Initial Memory map for Linux */
  129. #define CONFIG_SYS_BOOTMAPSZ (CONFIG_SYS_SDRAM_BASE + \
  130. (CONFIG_SYS_SDRAM_SIZE << 20))
  131. /* Configuration for environment
  132. * Environment is embedded in u-boot in the second sector of the flash
  133. */
  134. #if defined(CONFIG_CF_SBF)
  135. #define CONFIG_ENV_IS_IN_SPI_FLASH 1
  136. #define CONFIG_ENV_SPI_CS 1
  137. #define CONFIG_ENV_OFFSET 0x40000
  138. #define CONFIG_ENV_SIZE 0x2000
  139. #define CONFIG_ENV_SECT_SIZE 0x10000
  140. #endif
  141. #undef CONFIG_ENV_OVERWRITE
  142. /* Cache Configuration */
  143. #define CONFIG_SYS_CACHELINE_SIZE 16
  144. #define ICACHE_STATUS (CONFIG_SYS_INIT_RAM_ADDR + \
  145. CONFIG_SYS_INIT_RAM_SIZE - 8)
  146. #define DCACHE_STATUS (CONFIG_SYS_INIT_RAM_ADDR + \
  147. CONFIG_SYS_INIT_RAM_SIZE - 4)
  148. #define CONFIG_SYS_ICACHE_INV (CF_CACR_BCINVA + CF_CACR_ICINVA)
  149. #define CONFIG_SYS_DCACHE_INV (CF_CACR_DCINVA)
  150. #define CONFIG_SYS_CACHE_ACR2 (CONFIG_SYS_SDRAM_BASE | \
  151. CF_ADDRMASK(CONFIG_SYS_SDRAM_SIZE) | \
  152. CF_ACR_EN | CF_ACR_SM_ALL)
  153. #define CONFIG_SYS_CACHE_ICACR (CF_CACR_BEC | CF_CACR_IEC | \
  154. CF_CACR_ICINVA | CF_CACR_EUSP)
  155. #define CONFIG_SYS_CACHE_DCACR ((CONFIG_SYS_CACHE_ICACR | \
  156. CF_CACR_DEC | CF_CACR_DDCM_P | \
  157. CF_CACR_DCINVA) & ~CF_CACR_ICINVA)
  158. #define CACR_STATUS (CONFIG_SYS_INIT_RAM_ADDR + \
  159. CONFIG_SYS_INIT_RAM_SIZE - 12)
  160. #endif /* __STMARK2_CONFIG_H */