You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

340 lines
8.5 KiB

  1. """Definition of boards and/or ids"""
  2. # Allow for aligned constant definitions:
  3. # pylint: disable=bad-whitespace
  4. BEAGLEBONE = 'BEAGLEBONE'
  5. BEAGLEBONE_BLACK = 'BEAGLEBONE_BLACK'
  6. BEAGLEBONE_BLUE = 'BEAGLEBONE_BLUE'
  7. BEAGLEBONE_BLACK_WIRELESS = 'BEAGLEBONE_BLACK_WIRELESS'
  8. BEAGLEBONE_POCKETBEAGLE = 'BEAGLEBONE_POCKETBEAGLE'
  9. BEAGLEBONE_GREEN = 'BEAGLEBONE_GREEN'
  10. BEAGLEBONE_GREEN_WIRELESS = 'BEAGLEBONE_GREEN_WIRELESS'
  11. BEAGLEBONE_BLACK_INDUSTRIAL = 'BEAGLEBONE_BLACK_INDUSTRIAL'
  12. BEAGLEBONE_ENHANCED = 'BEAGLEBONE_ENHANCED'
  13. BEAGLEBONE_USOMIQ = 'BEAGLEBONE_USOMIQ'
  14. BEAGLEBONE_AIR = 'BEAGLEBONE_AIR'
  15. BEAGLEBONE_POCKETBONE = 'BEAGLEBONE_POCKETBONE'
  16. BEAGLELOGIC_STANDALONE = 'BEAGLELOGIC_STANDALONE'
  17. OSD3358_DEV_BOARD = 'OSD3358_DEV_BOARD'
  18. OSD3358_SM_RED = 'OSD3358_SM_RED'
  19. FEATHER_HUZZAH = "FEATHER_HUZZAH"
  20. FEATHER_M0_EXPRESS = "FEATHER_M0_EXPRESS"
  21. GENERIC_LINUX_PC = "GENERIC_LINUX_PC"
  22. PYBOARD = "PYBOARD"
  23. NODEMCU = "NODEMCU"
  24. GIANT_BOARD = "GIANT_BOARD"
  25. # Orange Pi boards
  26. ORANGE_PI_PC = "ORANGE_PI_PC"
  27. ORANGE_PI_R1 = "ORANGE_PI_R1"
  28. ORANGE_PI_ZERO = "ORANGE_PI_ZERO"
  29. ORANGE_PI_ONE = "ORANGE_PI_ONE"
  30. ORANGE_PI_LITE = "ORANGE_PI_LITE"
  31. ORANGE_PI_PC_PLUS = "ORANGE_PI_PC_PLUS"
  32. ORANGE_PI_PLUS_2E = "ORANGE_PI_PLUS_2E"
  33. # NVIDIA Jetson boards
  34. JETSON_TX1 = 'JETSON_TX1'
  35. JETSON_TX2 = 'JETSON_TX2'
  36. JETSON_XAVIER = 'JETSON_XAVIER'
  37. JETSON_NANO = 'JETSON_NANO'
  38. JETSON_NX = 'JETSON_NX'
  39. # Google Coral dev board
  40. CORAL_EDGE_TPU_DEV = "CORAL_EDGE_TPU_DEV"
  41. # Various Raspberry Pi models
  42. RASPBERRY_PI_B_REV1 = "RASPBERRY_PI_B_REV1"
  43. RASPBERRY_PI_B_REV2 = "RASPBERRY_PI_B_REV2"
  44. RASPBERRY_PI_B_PLUS = "RASPBERRY_PI_B_PLUS"
  45. RASPBERRY_PI_A = "RASPBERRY_PI_A"
  46. RASPBERRY_PI_A_PLUS = "RASPBERRY_PI_A_PLUS"
  47. RASPBERRY_PI_CM1 = "RASPBERRY_PI_CM1"
  48. RASPBERRY_PI_ZERO = "RASPBERRY_PI_ZERO"
  49. RASPBERRY_PI_ZERO_W = "RASPBERRY_PI_ZERO_W"
  50. RASPBERRY_PI_2B = "RASPBERRY_PI_2B"
  51. RASPBERRY_PI_3B = "RASPBERRY_PI_3B"
  52. RASPBERRY_PI_3B_PLUS = "RASPBERRY_PI_3B_PLUS"
  53. RASPBERRY_PI_CM3 = "RASPBERRY_PI_CM3"
  54. RASPBERRY_PI_3A_PLUS = "RASPBERRY_PI_3A_PLUS"
  55. RASPBERRY_PI_CM3_PLUS = "RASPBERRY_PI_CM3_PLUS"
  56. RASPBERRY_PI_4B = "RASPBERRY_PI_4B"
  57. ODROID_C1 = "ODROID_C1"
  58. ODROID_C1_PLUS = "ODROID_C1_PLUS"
  59. ODROID_C2 = "ODROID_C2"
  60. ODROID_N2 = "ODROID_N2"
  61. FTDI_FT232H = "FTDI_FT232H"
  62. DRAGONBOARD_410C = "DRAGONBOARD_410C"
  63. SIFIVE_UNLEASHED = "SIFIVE_UNLEASHED"
  64. MICROCHIP_MCP2221 = "MICROCHIP_MCP2221"
  65. BINHO_NOVA = "BINHO_NOVA"
  66. ONION_OMEGA = "ONION_OMEGA"
  67. ONION_OMEGA2 = "ONION_OMEGA2"
  68. PINE64 = "PINE64"
  69. PINEBOOK = "PINEBOOK"
  70. PINEPHONE = "PINEPHONE"
  71. # pylint: enable=bad-whitespace
  72. # OrangePI
  73. _ORANGE_PI_IDS = (
  74. ORANGE_PI_PC,
  75. ORANGE_PI_R1,
  76. ORANGE_PI_ZERO,
  77. ORANGE_PI_ONE,
  78. ORANGE_PI_LITE,
  79. ORANGE_PI_PC_PLUS,
  80. ORANGE_PI_PLUS_2E,
  81. )
  82. _CORAL_IDS = (
  83. CORAL_EDGE_TPU_DEV,
  84. )
  85. _JETSON_IDS = {
  86. JETSON_TX1: (
  87. 'nvidia,p2371-2180',
  88. 'nvidia,jetson-cv',
  89. ),
  90. JETSON_TX2: (
  91. 'nvidia,p2771-0000',
  92. 'nvidia,p2771-0888',
  93. 'nvidia,p3489-0000',
  94. 'nvidia,lightning',
  95. 'nvidia,quill',
  96. 'nvidia,storm',
  97. ),
  98. JETSON_XAVIER: (
  99. 'nvidia,p2972-0000',
  100. 'nvidia,p2972-0006',
  101. 'nvidia,jetson-xavier',
  102. ),
  103. JETSON_NANO: (
  104. 'nvidia,p3450-0000',
  105. 'nvidia,p3450-0002',
  106. 'nvidia,jetson-nano',
  107. ),
  108. JETSON_NX: (
  109. 'nvidia,p3509-0000+p3668-0000',
  110. 'nvidia,p3509-0000+p3668-0001',
  111. 'nvidia,p3449-0000+p3668-0000',
  112. 'nvidia,p3449-0000+p3668-0001',
  113. ),
  114. }
  115. _RASPBERRY_PI_40_PIN_IDS = (
  116. RASPBERRY_PI_B_PLUS,
  117. RASPBERRY_PI_A_PLUS,
  118. RASPBERRY_PI_ZERO,
  119. RASPBERRY_PI_ZERO_W,
  120. RASPBERRY_PI_2B,
  121. RASPBERRY_PI_3B,
  122. RASPBERRY_PI_3B_PLUS,
  123. RASPBERRY_PI_3A_PLUS,
  124. RASPBERRY_PI_4B
  125. )
  126. _RASPBERRY_PI_CM_IDS = (
  127. RASPBERRY_PI_CM1,
  128. RASPBERRY_PI_CM3,
  129. RASPBERRY_PI_CM3_PLUS
  130. )
  131. _ODROID_40_PIN_IDS = (
  132. ODROID_C1,
  133. ODROID_C1_PLUS,
  134. ODROID_C2,
  135. ODROID_N2
  136. )
  137. _BEAGLEBONE_IDS = (
  138. BEAGLEBONE,
  139. BEAGLEBONE_BLACK,
  140. BEAGLEBONE_BLUE,
  141. BEAGLEBONE_BLACK_WIRELESS,
  142. BEAGLEBONE_POCKETBEAGLE,
  143. BEAGLEBONE_GREEN,
  144. BEAGLEBONE_GREEN_WIRELESS,
  145. BEAGLEBONE_BLACK_INDUSTRIAL,
  146. BEAGLEBONE_ENHANCED,
  147. BEAGLEBONE_USOMIQ,
  148. BEAGLEBONE_AIR,
  149. BEAGLEBONE_POCKETBONE,
  150. BEAGLELOGIC_STANDALONE,
  151. OSD3358_DEV_BOARD,
  152. OSD3358_SM_RED,
  153. )
  154. _LINARO_96BOARDS_IDS = (
  155. DRAGONBOARD_410C,
  156. )
  157. _SIFIVE_IDS = (
  158. SIFIVE_UNLEASHED,
  159. )
  160. # BeagleBone eeprom board ids from:
  161. # https://github.com/beagleboard/image-builder
  162. # Thanks to zmatt on freenode #beagle for pointers.
  163. _BEAGLEBONE_BOARD_IDS = {
  164. # Original bone/white:
  165. BEAGLEBONE: (
  166. ('A4', 'A335BONE00A4'),
  167. ('A5', 'A335BONE00A5'),
  168. ('A6', 'A335BONE00A6'),
  169. ('A6A', 'A335BONE0A6A'),
  170. ('A6B', 'A335BONE0A6B'),
  171. ('B', 'A335BONE000B'),
  172. ),
  173. BEAGLEBONE_BLACK: (
  174. ('A5', 'A335BNLT00A5'),
  175. ('A5A', 'A335BNLT0A5A'),
  176. ('A5B', 'A335BNLT0A5B'),
  177. ('A5C', 'A335BNLT0A5C'),
  178. ('A6', 'A335BNLT00A6'),
  179. ('C', 'A335BNLT000C'),
  180. ('C', 'A335BNLT00C0'),
  181. ),
  182. BEAGLEBONE_BLUE: (
  183. ('A2', 'A335BNLTBLA2'),
  184. ),
  185. BEAGLEBONE_BLACK_WIRELESS: (
  186. ('A5', 'A335BNLTBWA5'),
  187. ),
  188. BEAGLEBONE_POCKETBEAGLE: (
  189. ('A2', 'A335PBGL00A2'),
  190. ),
  191. BEAGLEBONE_GREEN: (
  192. ('1A', 'A335BNLT....'),
  193. ('UNKNOWN', 'A335BNLTBBG1'),
  194. ),
  195. BEAGLEBONE_GREEN_WIRELESS: (
  196. ('W1A', 'A335BNLTGW1A'),
  197. ),
  198. BEAGLEBONE_BLACK_INDUSTRIAL: (
  199. ('A0', 'A335BNLTAIA0'), # Arrow
  200. ('A0', 'A335BNLTEIA0'), # Element14
  201. ),
  202. BEAGLEBONE_ENHANCED: (
  203. ('A', 'A335BNLTSE0A'),
  204. ),
  205. BEAGLEBONE_USOMIQ: (
  206. ('6', 'A335BNLTME06'),
  207. ),
  208. BEAGLEBONE_AIR: (
  209. ('A0', 'A335BNLTNAD0'),
  210. ),
  211. BEAGLEBONE_POCKETBONE: (
  212. ('0', 'A335BNLTBP00'),
  213. ),
  214. OSD3358_DEV_BOARD: (
  215. ('0.1', 'A335BNLTGH01'),
  216. ),
  217. OSD3358_SM_RED: (
  218. ('0', 'A335BNLTOS00'),
  219. ),
  220. BEAGLELOGIC_STANDALONE: (
  221. ('A', 'A335BLGC000A'),
  222. )
  223. }
  224. # Pi revision codes from:
  225. # https://www.raspberrypi.org/documentation/hardware/raspberrypi/revision-codes/README.md
  226. # Each tuple here contains both the base codes, and the versions that indicate
  227. # the Pi is overvolted / overclocked - for 4-digit codes, this will be prefixed
  228. # with 1000, and for 6-digit codes it'll be prefixed with 1. These are placed
  229. # on separate lines.
  230. _PI_REV_CODES = {
  231. RASPBERRY_PI_B_REV1: (
  232. # Regular codes:
  233. '0002', '0003',
  234. # Overvolted/clocked versions:
  235. '1000002', '1000003',
  236. ),
  237. RASPBERRY_PI_B_REV2: (
  238. '0005', '0006', '000d', '000e', '000f',
  239. '1000005', '1000006', '100000d', '100000e', '100000f',
  240. ),
  241. RASPBERRY_PI_B_PLUS: (
  242. '0010', '0013', '900032',
  243. '1000010', '1000013', '1900032',
  244. ),
  245. RASPBERRY_PI_A: (
  246. '0007', '0008', '0009',
  247. '1000007', '1000008', '1000009',
  248. ),
  249. RASPBERRY_PI_A_PLUS: (
  250. '0012', '0015', '900021',
  251. '1000012', '1000015', '1900021',
  252. ),
  253. RASPBERRY_PI_CM1: (
  254. '0011', '0014',
  255. '10000011', '10000014',
  256. ),
  257. RASPBERRY_PI_ZERO: (
  258. '900092', '920092', '900093', '920093',
  259. '1900092', '1920092', '1900093', '1920093', # warranty bit 24
  260. '2900092', '2920092', '2900093', '2920093', # warranty bit 25
  261. ),
  262. RASPBERRY_PI_ZERO_W: (
  263. '9000c1',
  264. '19000c1', '29000c1', # warranty bits
  265. ),
  266. RASPBERRY_PI_2B: (
  267. 'a01040', 'a01041', 'a21041', 'a22042',
  268. '1a01040', '1a01041', '1a21041', '1a22042', # warranty bit 24
  269. '2a01040', '2a01041', '2a21041', '2a22042', # warranty bit 25
  270. ),
  271. RASPBERRY_PI_3B: (
  272. 'a02082', 'a22082', 'a32082', 'a52082',
  273. '1a02082', '1a22082', '1a32082', '1a52082', # warranty bit 24
  274. '2a02082', '2a22082', '2a32082', '2a52082', # warranty bit 25
  275. ),
  276. RASPBERRY_PI_3B_PLUS: (
  277. 'a020d3',
  278. '1a020d3', '2a020d3', # warranty bits
  279. ),
  280. RASPBERRY_PI_CM3: (
  281. 'a020a0', 'a220a0',
  282. '1a020a0', '2a020a0', # warranty bits
  283. '1a220a0', '2a220a0',
  284. ),
  285. RASPBERRY_PI_3A_PLUS: (
  286. '9020e0',
  287. '19020e0', '29020e0', # warranty bits
  288. ),
  289. RASPBERRY_PI_CM3_PLUS: (
  290. 'a02100',
  291. '1a02100', '2a02100', # warranty bits
  292. ),
  293. RASPBERRY_PI_4B: (
  294. 'a03111', 'b03111', 'c03111',
  295. 'a03112', 'b03112', 'c03112',
  296. '1a03111', '2a03111', '1b03111', '2b03111', # warranty bits
  297. '1c03111', '2c03111', '1a03112', '2a03112',
  298. '1b03112', '2b03112', '1c03112', '2c03112',
  299. ),
  300. }
  301. # Onion omega boards
  302. _ONION_OMEGA_BOARD_IDS = (
  303. ONION_OMEGA,
  304. ONION_OMEGA2,
  305. )
  306. # Pine64 boards and devices
  307. _PINE64_DEV_IDS = (
  308. PINE64,
  309. PINEBOOK,
  310. PINEPHONE
  311. )