starfive-jh7100.h 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. // SPDX-License-Identifier: GPL-2.0+
  2. /*
  3. * Copyright (C) 2021 Shanghai StarFive Technology Co., Ltd.
  4. * Micheal Zhu <michael.zhu@starfivetech.com>
  5. */
  6. #ifndef __CONFIG_H
  7. #define __CONFIG_H
  8. #include <version.h>
  9. #include <linux/sizes.h>
  10. /*
  11. * Miscellaneous configurable options
  12. */
  13. #define CONFIG_SYS_CBSIZE 1024 /* Console I/O Buffer Size */
  14. #define CONFIG_SYS_BOOTM_LEN (64 << 20) /* 64MB */
  15. /*
  16. * Print Buffer Size
  17. */
  18. #define CONFIG_SYS_PBSIZE \
  19. (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16)
  20. /*
  21. * Boot Argument Buffer Size
  22. */
  23. #define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE
  24. /*
  25. * max number of command args
  26. */
  27. #define CONFIG_SYS_MAXARGS 16
  28. #define CONFIG_SYS_SDRAM_BASE 0x80000000
  29. /* Init Stack Pointer */
  30. #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_SDRAM_BASE + SZ_2M)
  31. #define CONFIG_STANDALONE_LOAD_ADDR (CONFIG_SYS_SDRAM_BASE + SZ_2M)
  32. /*mac addr offset in otp*/
  33. #define STARFIVE_OTP_MAC_OFFSET 0x28
  34. /*
  35. * Ethernet
  36. */
  37. #if CONFIG_IS_ENABLED(CMD_NET)
  38. #define CONFIG_DW_ALTDESCRIPTOR
  39. #define CONFIG_ARP_TIMEOUT 0x5000
  40. #endif
  41. /* HACK these should have '#if defined (stuff) around them like zynqp*/
  42. #define BOOT_TARGET_DEVICES(func) func(DHCP, dhcp, na) \
  43. func(MMC, mmc, 0)
  44. #include <config_distro_bootcmd.h>
  45. #include <environment/distro/sf.h>
  46. #define STARLIGHT_FEDORA_BOOTENV \
  47. "bootdir=/boot\0" \
  48. "bootenv=uEnv.txt\0" \
  49. "mmcdev=0\0" \
  50. "mmcpart=3\0"
  51. #define STARLIGHT_TEST_BOOTENV \
  52. "testpart=0:1\0" \
  53. "testenv=u74_uEnv.txt\0" \
  54. "mmcsetup=mmc part\0" \
  55. "fdtsetup=fdt addr ${fdtcontroladdr}\0" \
  56. "fatenv=fatload mmc ${testpart} ${loadaddr} ${testenv};" \
  57. "env import -t ${loadaddr} ${filesize}\0"
  58. #define CONFIG_EXTRA_ENV_SETTINGS \
  59. STARLIGHT_FEDORA_BOOTENV \
  60. "loadaddr=0xa0000000\0" \
  61. STARLIGHT_TEST_BOOTENV \
  62. "loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenv}\0" \
  63. "ext4bootenv=ext4load mmc ${bootpart} ${loadaddr} ${bootdir}/${bootenv}\0" \
  64. "importbootenv=echo Importing environment from mmc${mmcdev} ...; " \
  65. "env import -t ${loadaddr} ${filesize}\0" \
  66. "mmcbootenv=setenv bootpart ${mmcdev}:${mmcpart}; " \
  67. "mmc dev ${mmcdev}; " \
  68. "if mmc rescan; then " \
  69. "run loadbootenv && run importbootenv; " \
  70. "run ext4bootenv && run importbootenv; " \
  71. "if test -n $uenvcmd; then " \
  72. "echo Running uenvcmd ...; " \
  73. "run uenvcmd; " \
  74. "fi; " \
  75. "fi\0" \
  76. "fdtfile=" CONFIG_DEFAULT_FDT_FILE "\0" \
  77. BOOTENV \
  78. BOOTENV_SF
  79. #define CONFIG_SYS_MAX_FLASH_SECT 0
  80. #define CONFIG_SYS_MAX_FLASH_BANKS 0
  81. #define __io
  82. /*
  83. * QSPI support
  84. */
  85. #ifdef CONFIG_OF_CONTROL /* QSPI is controlled via DT */
  86. #define CONFIG_CQSPI_REF_CLK (250000000)
  87. #endif
  88. #ifdef CONFIG_ID_EEPROM /* EEPROM for SN and MAC */
  89. #define CONFIG_SYS_EEPROM_BUS_NUM 0
  90. #define FORMAT_VERSION 0x1
  91. #define PCB_VERSION 0x1
  92. #define BOM_VERSION 'A'
  93. /*
  94. * BYTES_PER_EEPROM_PAGE: the 24FC04H datasheet says that data can
  95. * only be written in page mode, which means 16 bytes at a time:
  96. * 16-Byte Page Write Buffer
  97. */
  98. #define BYTES_PER_EEPROM_PAGE 16
  99. /*
  100. * EEPROM_WRITE_DELAY_MS: the 24FC04H datasheet says it takes up to
  101. * 5ms to complete a given write:
  102. * Write Cycle Time (byte or page) ro Page Write Time 5 ms, Maximum
  103. */
  104. #define EEPROM_WRITE_DELAY_MS 5000
  105. /*
  106. * StarFive OUI. Registration Date is 20xx-xx-xx
  107. */
  108. #define STARFIVE_OUI_PREFIX "6C:CF:39:"
  109. #define STARFIVE_DEFAULT_MAC {0x6C, 0xCF, 0x39, 0x08, 0x08, 0x08}
  110. /* Magic number at the first four bytes of EEPROM HATs */
  111. #define STARFIVE_EEPROM_HATS_SIG "SFVF" /* StarFive VisionFive */
  112. #define CONFIG_STARFIVE_EEPROM_HATS_SIZE_MAX 128 /* Header + Atom1&4(v1) */
  113. #define CONFIG_STARFIVE_EEPROM_WP_OFFSET 256 /* Read only field */
  114. #define CONFIG_STARFIVE_EEPROM_ATOM1_PSTR "VF7100A1-2201-D008E000-00000001\0"
  115. #define CONFIG_STARFIVE_EEPROM_ATOM1_PSTR_SIZE 32
  116. #define CONFIG_STARFIVE_EEPROM_ATOM1_SN_OFFSET 23
  117. #define CONFIG_STARFIVE_EEPROM_ATOM1_VSTR "StarFive Technology Co., Ltd.\0\0\0"
  118. #define CONFIG_STARFIVE_EEPROM_ATOM1_VSTR_SIZE 32
  119. #endif
  120. #endif /* __CONFIG_H */