stmark2.h 4.9 KB

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