vinco.h 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. /*
  2. * Configuration settings for the VInCo platform.
  3. *
  4. * Based on the settings for the SAMA5-EK board
  5. * Copyright (C) 2014 Atmel
  6. * Bo Shen <voice.shen@atmel.com>
  7. * Copyright (C) 2015 Free Electrons
  8. * Gregory CLEMENT gregory.clement@free-electrons.com
  9. *
  10. * SPDX-License-Identifier: GPL-2.0+
  11. */
  12. #ifndef __CONFIG_H
  13. #define __CONFIG_H
  14. /* No NOR flash, this definition should be put before common header */
  15. #define CONFIG_SYS_NO_FLASH
  16. #include "at91-sama5_common.h"
  17. /* The value in the common file is too far away for the VInCo platform */
  18. #ifdef CONFIG_SYS_TEXT_BASE
  19. #undef CONFIG_SYS_TEXT_BASE
  20. #endif
  21. #define CONFIG_SYS_TEXT_BASE 0x20f00000
  22. /* serial console */
  23. #define CONFIG_ATMEL_USART
  24. #define CONFIG_USART_BASE ATMEL_BASE_USART3
  25. #define CONFIG_USART_ID ATMEL_ID_USART3
  26. /* SDRAM */
  27. #define CONFIG_NR_DRAM_BANKS 1
  28. #define CONFIG_SYS_SDRAM_BASE ATMEL_BASE_DDRCS
  29. #define CONFIG_SYS_SDRAM_SIZE 0x4000000
  30. #define CONFIG_SYS_INIT_SP_ADDR \
  31. (CONFIG_SYS_SDRAM_BASE + 4 * 1024 - GENERATED_GBL_DATA_SIZE)
  32. #define CONFIG_SYS_LOAD_ADDR 0x22000000 /* load address */
  33. /* SerialFlash */
  34. #ifdef CONFIG_CMD_SF
  35. #define CONFIG_ATMEL_SPI
  36. #define CONFIG_ATMEL_SPI0
  37. #define CONFIG_SPI_FLASH_STMICRO
  38. #define CONFIG_SF_DEFAULT_BUS 0
  39. #define CONFIG_SF_DEFAULT_CS 0
  40. #define CONFIG_SF_DEFAULT_SPEED 50000000
  41. #define CONFIG_ENV_SPI_MAX_HZ 50000000
  42. #define CONFIG_SF_DEFAULT_MODE (SPI_MODE_0)
  43. #define CONFIG_ENV_SPI_MODE (SPI_MODE_0)
  44. #endif
  45. /* MMC */
  46. #ifdef CONFIG_CMD_MMC
  47. #define CONFIG_SUPPORT_EMMC_BOOT
  48. #define CONFIG_GENERIC_MMC
  49. #define CONFIG_GENERIC_ATMEL_MCI
  50. #define ATMEL_BASE_MMCI ATMEL_BASE_MCI1
  51. #define CONFIG_SYS_MMC_CLK_OD 500000
  52. /* For generating MMC partitions */
  53. #define CONFIG_PARTITION_UUIDS
  54. #define CONFIG_RANDOM_UUID
  55. #define CONFIG_EFI_PARTITION
  56. #define CONFIG_CMD_GPT
  57. #endif
  58. /* USB */
  59. #ifdef CONFIG_CMD_USB
  60. #define CONFIG_USB_EHCI
  61. #define CONFIG_USB_EHCI_ATMEL
  62. #define CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS 3
  63. #endif
  64. /* USB device */
  65. #define CONFIG_USB_ETHER
  66. #define CONFIG_USB_ETH_RNDIS
  67. #define CONFIG_USBNET_MANUFACTURER "L+G VInCo"
  68. #if defined(CONFIG_CMD_USB) || defined(CONFIG_CMD_MMC)
  69. #define CONFIG_DOS_PARTITION
  70. #endif
  71. /* Ethernet Hardware */
  72. #define CONFIG_PHY_SMSC
  73. #define CONFIG_MACB
  74. #define CONFIG_RMII
  75. #define CONFIG_NET_RETRY_COUNT 20
  76. #define CONFIG_MACB_SEARCH_PHY
  77. #define CONFIG_USB_HOST_ETHER
  78. #define CONFIG_USB_ETHER_SMSC95XX
  79. #define CONFIG_USB_ETHER_RNDIS
  80. #ifdef CONFIG_SYS_USE_SERIALFLASH
  81. /* bootstrap + u-boot + env + linux in serial flash */
  82. #define CONFIG_ENV_SPI_BUS CONFIG_SF_DEFAULT_BUS
  83. #define CONFIG_ENV_SPI_CS CONFIG_SF_DEFAULT_CS
  84. /* Use our own mapping for the VInCo platform */
  85. #undef CONFIG_ENV_OFFSET
  86. #undef CONFIG_ENV_SIZE
  87. #define CONFIG_ENV_OFFSET 0x10000
  88. #define CONFIG_ENV_SIZE 0x10000
  89. /* Update the bootcommand according to our mapping for the VInCo platform */
  90. #undef CONFIG_BOOTCOMMAND
  91. #define CONFIG_BOOTCOMMAND "mmc dev 0 0;" \
  92. "mmc read ${loadaddr} ${k_offset} ${k_blksize};" \
  93. "mmc read ${oftaddr} ${dtb_offset} ${dtb_blksize};" \
  94. "bootz ${loadaddr} - ${oftaddr}"
  95. #undef CONFIG_BOOTARGS
  96. #define CONFIG_BOOTARGS "console=ttyS0,115200 earlyprintk rw root=/dev/mmcblk0p2 rootfstype=ext4 rootwait quiet lpj=1990656"
  97. #define CONFIG_EXTRA_ENV_SETTINGS \
  98. "kernel_start=0x20000\0" \
  99. "kernel_size=0x800000\0" \
  100. "mmcblksize=0x200\0" \
  101. "oftaddr=0x21000000\0" \
  102. "loadaddr=0x22000000\0" \
  103. "update_uboot=tftp ${loadaddr} u-boot.bin;sf probe 0;" \
  104. "sf erase 0x20000 0x4B000; sf write ${loadaddr} 0x20000 0x4B000\0" \
  105. "create_partition=setexpr dtb_start ${kernel_start} + 0x400000;" \
  106. "setexpr rootfs_start ${kernel_start} + ${kernel_size};" \
  107. "setenv partitions 'name=kernel,size=${kernel_size}," \
  108. "start=${kernel_start};name=rootfs,size=-';" \
  109. "gpt write mmc 0 ${partitions} \0"\
  110. "f2blk_size=setexpr fileblksize ${filesize} / ${mmcblksize};" \
  111. "setexpr fileblksize ${fileblksize} + 1\0" \
  112. "store_kernel=tftp ${loadaddr} zImage; run f2blk_size;" \
  113. "setexpr k_blksize ${fileblksize};" \
  114. "setexpr k_offset ${kernel_start} / ${mmcblksize};" \
  115. "mmc write ${fileaddr} ${k_offset} ${fileblksize}\0" \
  116. "store_dtb=tftp ${loadaddr} at91-vinco.dtb; run f2blk_size;" \
  117. "setexpr dtb_blksize ${fileblksize};" \
  118. "setexpr dtb_offset ${dtb_start} / ${mmcblksize};" \
  119. "mmc write ${fileaddr} ${dtb_offset} ${fileblksize}\0" \
  120. "store_rootfs=tftp ${loadaddr} vinco-gateway-image-vinco.ext4;" \
  121. "setexpr rootfs_offset ${rootfs_start} / ${mmcblksize};" \
  122. "mmc write ${fileaddr} ${rootfs_offset} ${fileblksize}\0" \
  123. "bootdelay=0\0"
  124. #endif
  125. #endif