Adafruit_Python_PlatformDetect/adafruit_platformdetect/constants/boards.py
Stephen Warren e3fede2f5c Convert _JETSON_IDS to a tuple
This will allow us to control the order that each entry is checked,
whereas the current dictionary is unordered. This will be useful when
adding support for future very similar boards.
2020-10-05 15:46:34 -06:00

390 lines
9.8 KiB
Python

"""Definition of boards and/or ids"""
# Allow for aligned constant definitions:
BEAGLEBONE = "BEAGLEBONE"
BEAGLEBONE_BLACK = "BEAGLEBONE_BLACK"
BEAGLEBONE_BLUE = "BEAGLEBONE_BLUE"
BEAGLEBONE_BLACK_WIRELESS = "BEAGLEBONE_BLACK_WIRELESS"
BEAGLEBONE_POCKETBEAGLE = "BEAGLEBONE_POCKETBEAGLE"
BEAGLEBONE_GREEN = "BEAGLEBONE_GREEN"
BEAGLEBONE_GREEN_WIRELESS = "BEAGLEBONE_GREEN_WIRELESS"
BEAGLEBONE_BLACK_INDUSTRIAL = "BEAGLEBONE_BLACK_INDUSTRIAL"
BEAGLEBONE_ENHANCED = "BEAGLEBONE_ENHANCED"
BEAGLEBONE_USOMIQ = "BEAGLEBONE_USOMIQ"
BEAGLEBONE_AIR = "BEAGLEBONE_AIR"
BEAGLEBONE_POCKETBONE = "BEAGLEBONE_POCKETBONE"
BEAGLELOGIC_STANDALONE = "BEAGLELOGIC_STANDALONE"
OSD3358_DEV_BOARD = "OSD3358_DEV_BOARD"
OSD3358_SM_RED = "OSD3358_SM_RED"
FEATHER_HUZZAH = "FEATHER_HUZZAH"
FEATHER_M0_EXPRESS = "FEATHER_M0_EXPRESS"
GENERIC_LINUX_PC = "GENERIC_LINUX_PC"
PYBOARD = "PYBOARD"
NODEMCU = "NODEMCU"
GIANT_BOARD = "GIANT_BOARD"
# ASUS Tinker Boards
ASUS_TINKER_BOARD = "ASUS_TINKER_BOARD"
# Clockwork Pi boards
CLOCKWORK_CPI3 = "CLOCKWORK_CPI3"
# Orange Pi boards
ORANGE_PI_PC = "ORANGE_PI_PC"
ORANGE_PI_R1 = "ORANGE_PI_R1"
ORANGE_PI_ZERO = "ORANGE_PI_ZERO"
ORANGE_PI_ONE = "ORANGE_PI_ONE"
ORANGE_PI_LITE = "ORANGE_PI_LITE"
ORANGE_PI_PC_PLUS = "ORANGE_PI_PC_PLUS"
ORANGE_PI_PLUS_2E = "ORANGE_PI_PLUS_2E"
ORANGE_PI_2 = "ORANGE_PI_2"
# NVIDIA Jetson boards
JETSON_TX1 = "JETSON_TX1"
JETSON_TX2 = "JETSON_TX2"
JETSON_XAVIER = "JETSON_XAVIER"
JETSON_NANO = "JETSON_NANO"
JETSON_NX = "JETSON_NX"
# Google Coral dev board
CORAL_EDGE_TPU_DEV = "CORAL_EDGE_TPU_DEV"
# Xilinx PYNQ FPGA dev boards
PYNQ_Z1 = "PYNQ_Z1"
PYNQ_Z2 = "PYNQ_Z2"
# STM32 MPU boards
STM32MP157C_DK2 = "STM32MP157C_DK2"
# Various Raspberry Pi models
RASPBERRY_PI_B_REV1 = "RASPBERRY_PI_B_REV1"
RASPBERRY_PI_B_REV2 = "RASPBERRY_PI_B_REV2"
RASPBERRY_PI_B_PLUS = "RASPBERRY_PI_B_PLUS"
RASPBERRY_PI_A = "RASPBERRY_PI_A"
RASPBERRY_PI_A_PLUS = "RASPBERRY_PI_A_PLUS"
RASPBERRY_PI_CM1 = "RASPBERRY_PI_CM1"
RASPBERRY_PI_ZERO = "RASPBERRY_PI_ZERO"
RASPBERRY_PI_ZERO_W = "RASPBERRY_PI_ZERO_W"
RASPBERRY_PI_2B = "RASPBERRY_PI_2B"
RASPBERRY_PI_3B = "RASPBERRY_PI_3B"
RASPBERRY_PI_3B_PLUS = "RASPBERRY_PI_3B_PLUS"
RASPBERRY_PI_CM3 = "RASPBERRY_PI_CM3"
RASPBERRY_PI_3A_PLUS = "RASPBERRY_PI_3A_PLUS"
RASPBERRY_PI_CM3_PLUS = "RASPBERRY_PI_CM3_PLUS"
RASPBERRY_PI_4B = "RASPBERRY_PI_4B"
RASPBERRY_PI_AVNET_IIOT_GW = "RASPBERY_PI_AVNET_IIOT_GW"
ODROID_C1 = "ODROID_C1"
ODROID_C1_PLUS = "ODROID_C1_PLUS"
ODROID_C2 = "ODROID_C2"
ODROID_C4 = "ODROID_C4"
ODROID_N2 = "ODROID_N2"
ODROID_XU4 = "ODROID_XU4"
FTDI_FT232H = "FTDI_FT232H"
DRAGONBOARD_410C = "DRAGONBOARD_410C"
SIFIVE_UNLEASHED = "SIFIVE_UNLEASHED"
MICROCHIP_MCP2221 = "MICROCHIP_MCP2221"
BINHO_NOVA = "BINHO_NOVA"
ONION_OMEGA = "ONION_OMEGA"
ONION_OMEGA2 = "ONION_OMEGA2"
PINE64 = "PINE64"
PINEBOOK = "PINEBOOK"
PINEPHONE = "PINEPHONE"
ROCK_PI_S = "ROCK_PI_S"
GREATFET_ONE = "GREATFET_ONE"
# Udoo boards
UDOO_BOLT_V3 = "UDOO_BOLT_V3"
UDOO_BOLT_V8 = "UDOO_BOLT_V8"
UDOO_X86 = "UDOO_X86"
# Asus Tinkerboard
_ASUS_TINKER_BOARD_IDS = (ASUS_TINKER_BOARD,)
# STM32MP1
_STM32MP1_IDS = (STM32MP157C_DK2,)
# OrangePI
_ORANGE_PI_IDS = (
ORANGE_PI_PC,
ORANGE_PI_R1,
ORANGE_PI_ZERO,
ORANGE_PI_ONE,
ORANGE_PI_LITE,
ORANGE_PI_PC_PLUS,
ORANGE_PI_PLUS_2E,
ORANGE_PI_2,
)
_CORAL_IDS = (CORAL_EDGE_TPU_DEV,)
_PYNQ_IDS = (PYNQ_Z1, PYNQ_Z2)
_JETSON_IDS = (
(
JETSON_TX1,
(
"nvidia,p2371-2180",
"nvidia,jetson-cv",
),
),
(
JETSON_TX2,
(
"nvidia,p2771-0000",
"nvidia,p2771-0888",
"nvidia,p3489-0000",
"nvidia,lightning",
"nvidia,quill",
"nvidia,storm",
),
),
(
JETSON_XAVIER,
(
"nvidia,p2972-0000",
"nvidia,p2972-0006",
"nvidia,jetson-xavier",
),
),
(
JETSON_NANO,
(
"nvidia,p3450-0000",
"nvidia,p3450-0002",
"nvidia,jetson-nano",
),
),
(
JETSON_NX,
(
"nvidia,p3509-0000+p3668-0000",
"nvidia,p3509-0000+p3668-0001",
"nvidia,p3449-0000+p3668-0000",
"nvidia,p3449-0000+p3668-0001",
),
),
)
_RASPBERRY_PI_40_PIN_IDS = (
RASPBERRY_PI_B_PLUS,
RASPBERRY_PI_A_PLUS,
RASPBERRY_PI_ZERO,
RASPBERRY_PI_ZERO_W,
RASPBERRY_PI_2B,
RASPBERRY_PI_3B,
RASPBERRY_PI_3B_PLUS,
RASPBERRY_PI_3A_PLUS,
RASPBERRY_PI_4B,
RASPBERRY_PI_AVNET_IIOT_GW,
)
_RASPBERRY_PI_CM_IDS = (RASPBERRY_PI_CM1, RASPBERRY_PI_CM3, RASPBERRY_PI_CM3_PLUS)
_ODROID_40_PIN_IDS = (
ODROID_C1,
ODROID_C1_PLUS,
ODROID_C2,
ODROID_C4,
ODROID_N2,
ODROID_XU4,
)
_BEAGLEBONE_IDS = (
BEAGLEBONE,
BEAGLEBONE_BLACK,
BEAGLEBONE_BLUE,
BEAGLEBONE_BLACK_WIRELESS,
BEAGLEBONE_POCKETBEAGLE,
BEAGLEBONE_GREEN,
BEAGLEBONE_GREEN_WIRELESS,
BEAGLEBONE_BLACK_INDUSTRIAL,
BEAGLEBONE_ENHANCED,
BEAGLEBONE_USOMIQ,
BEAGLEBONE_AIR,
BEAGLEBONE_POCKETBONE,
BEAGLELOGIC_STANDALONE,
OSD3358_DEV_BOARD,
OSD3358_SM_RED,
)
_LINARO_96BOARDS_IDS = (DRAGONBOARD_410C,)
_SIFIVE_IDS = (SIFIVE_UNLEASHED,)
# BeagleBone eeprom board ids from:
# https://github.com/beagleboard/image-builder
# Thanks to zmatt on freenode #beagle for pointers.
_BEAGLEBONE_BOARD_IDS = {
# Original bone/white:
BEAGLEBONE: (
("A4", "A335BONE00A4"),
("A5", "A335BONE00A5"),
("A6", "A335BONE00A6"),
("A6A", "A335BONE0A6A"),
("A6B", "A335BONE0A6B"),
("B", "A335BONE000B"),
),
BEAGLEBONE_BLACK: (
("A5", "A335BNLT00A5"),
("A5A", "A335BNLT0A5A"),
("A5B", "A335BNLT0A5B"),
("A5C", "A335BNLT0A5C"),
("A6", "A335BNLT00A6"),
("B", "A335BNLT000B"),
("C", "A335BNLT000C"),
("C", "A335BNLT00C0"),
),
BEAGLEBONE_BLUE: (("A2", "A335BNLTBLA2"),),
BEAGLEBONE_BLACK_WIRELESS: (("A5", "A335BNLTBWA5"),),
BEAGLEBONE_POCKETBEAGLE: (("A2", "A335PBGL00A2"),),
BEAGLEBONE_GREEN: (("1A", "A335BNLT...."), ("UNKNOWN", "A335BNLTBBG1")),
BEAGLEBONE_GREEN_WIRELESS: (("W1A", "A335BNLTGW1A"),),
BEAGLEBONE_BLACK_INDUSTRIAL: (
("A0", "A335BNLTAIA0"), # Arrow
("A0", "A335BNLTEIA0"), # Element14
),
BEAGLEBONE_ENHANCED: (("A", "A335BNLTSE0A"),),
BEAGLEBONE_USOMIQ: (("6", "A335BNLTME06"),),
BEAGLEBONE_AIR: (("A0", "A335BNLTNAD0"),),
BEAGLEBONE_POCKETBONE: (("0", "A335BNLTBP00"),),
OSD3358_DEV_BOARD: (("0.1", "A335BNLTGH01"),),
OSD3358_SM_RED: (("0", "A335BNLTOS00"),),
BEAGLELOGIC_STANDALONE: (("A", "A335BLGC000A"),),
}
# Pi revision codes from:
# https://www.raspberrypi.org/documentation/hardware/raspberrypi/revision-codes/README.md
# Each tuple here contains both the base codes, and the versions that indicate
# the Pi is overvolted / overclocked - for 4-digit codes, this will be prefixed
# with 1000, and for 6-digit codes it'll be prefixed with 1. These are placed
# on separate lines.
_PI_REV_CODES = {
RASPBERRY_PI_B_REV1: (
# Regular codes:
"0002",
"0003",
# Overvolted/clocked versions:
"1000002",
"1000003",
),
RASPBERRY_PI_B_REV2: (
"0005",
"0006",
"000d",
"000e",
"000f",
"1000005",
"1000006",
"100000d",
"100000e",
"100000f",
),
RASPBERRY_PI_B_PLUS: ("0010", "0013", "900032", "1000010", "1000013", "1900032"),
RASPBERRY_PI_A: ("0007", "0008", "0009", "1000007", "1000008", "1000009"),
RASPBERRY_PI_A_PLUS: ("0012", "0015", "900021", "1000012", "1000015", "1900021"),
RASPBERRY_PI_CM1: ("0011", "0014", "10000011", "10000014"),
RASPBERRY_PI_ZERO: (
"900092",
"920092",
"900093",
"920093",
"1900092",
"1920092",
"1900093",
"1920093", # warranty bit 24
"2900092",
"2920092",
"2900093",
"2920093", # warranty bit 25
),
RASPBERRY_PI_ZERO_W: ("9000c1", "19000c1", "29000c1"), # warranty bits
RASPBERRY_PI_2B: (
"a01040",
"a01041",
"a02042",
"a21041",
"a22042",
"1a01040",
"1a01041",
"1a02042",
"1a21041",
"1a22042", # warranty bit 24
"2a01040",
"2a01041",
"2a02042",
"2a21041",
"2a22042", # warranty bit 25
"3a01040",
"3a01041",
"3a02042",
"3a21041",
"3a22042",
),
RASPBERRY_PI_3B: (
"a02082",
"a22082",
"a32082",
"a52082",
"1a02082",
"1a22082",
"1a32082",
"1a52082", # warranty bit 24
"2a02082",
"2a22082",
"2a32082",
"2a52082", # warranty bit 25
),
RASPBERRY_PI_3B_PLUS: ("a020d3", "1a020d3", "2a020d3"), # warranty bits
RASPBERRY_PI_AVNET_IIOT_GW: ("60a220b0",),
RASPBERRY_PI_CM3: (
"a020a0",
"a220a0",
"1a020a0",
"2a020a0", # warranty bits
"1a220a0",
"2a220a0",
),
RASPBERRY_PI_3A_PLUS: ("9020e0", "19020e0", "29020e0"), # warranty bits
RASPBERRY_PI_CM3_PLUS: ("a02100", "1a02100", "2a02100"), # warranty bits
RASPBERRY_PI_4B: (
"a03111",
"b03111",
"c03111",
"a03112",
"b03112",
"c03112",
"d03114",
"1a03111",
"2a03111",
"1b03111",
"2b03111", # warranty bits
"1c03111",
"2c03111",
"1a03112",
"2a03112",
"1b03112",
"2b03112",
"1c03112",
"2c03112",
),
}
# Onion omega boards
_ONION_OMEGA_BOARD_IDS = (ONION_OMEGA, ONION_OMEGA2)
# Pine64 boards and devices
_PINE64_DEV_IDS = (PINE64, PINEBOOK, PINEPHONE)
# UDOO
_UDOO_BOARD_IDS = {UDOO_BOLT_V8: ("SC40-2000-0000-C0|C",), UDOO_X86: ("dummy",)}