- # SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
- #
- # SPDX-License-Identifier: MIT
-
- """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_GREEN_GATEWAY = "BEAGLEBONE_GREEN_GATEWAY"
- BEAGLEBONE_BLACK_INDUSTRIAL = "BEAGLEBONE_BLACK_INDUSTRIAL"
- BEAGLEBONE_ENHANCED = "BEAGLEBONE_ENHANCED"
- BEAGLEBONE_USOMIQ = "BEAGLEBONE_USOMIQ"
- BEAGLEBONE_AIR = "BEAGLEBONE_AIR"
- BEAGLEBONE_AI = "BEAGLEBONE_AI"
- BEAGLEBONE_POCKETBONE = "BEAGLEBONE_POCKETBONE"
- BEAGLEV_STARLIGHT = "BEAGLEV_STARLIGHT"
- 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"
- RASPBERRY_PI_PICO = "RASPBERRY_PI_PICO"
- 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"
- ORANGE_PI_ZERO_PLUS_2H5 = "ORANGE_PI_ZERO_PLUS_2H5"
- ORANGE_PI_ZERO_PLUS = "ORANGE_PI_ZERO_PLUS"
- ORANGE_PI_ZERO_2 = "ORANGE_PI_ZERO_2"
- ORANGE_PI_3 = "ORANGE_PI_3"
-
- # Nano Pi boards
- NANOPI_NEO_AIR = "NANOPI_NEO_AIR"
- NANOPI_DUO2 = "NANOPI_DUO2"
- NANOPI_NEO = "NANOPI_NEO"
-
- # Banana Pi boards
- BANANA_PI_M2_ZERO = "BANANA_PI_M2_ZERO"
-
- # NVIDIA Jetson boards
- JETSON_TX1 = "JETSON_TX1"
- JETSON_TX2 = "JETSON_TX2"
- JETSON_TX2_NX = "JETSON_TX2_NX"
- CLARA_AGX_XAVIER = "CLARA_AGX_XAVIER"
- JETSON_XAVIER = "JETSON_XAVIER"
- JETSON_NANO = "JETSON_NANO"
- JETSON_NX = "JETSON_NX"
-
- # Texas Instruments SK boards
- TI_J721E_SK = "TI_J721E_SK"
-
- # Google Coral dev board
- CORAL_EDGE_TPU_DEV = "CORAL_EDGE_TPU_DEV"
- CORAL_EDGE_TPU_DEV_MINI = "CORAL_EDGE_TPU_DEV_MINI"
-
- # Xilinx PYNQ FPGA dev boards
- PYNQ_Z1 = "PYNQ_Z1"
- PYNQ_Z2 = "PYNQ_Z2"
-
- # STM32 MPU boards
- STM32MP157C_DK2 = "STM32MP157C_DK2"
- OSD32MP1_BRK = "OSD32MP1_BRK"
- OSD32MP1_RED = "OSD32MP1_RED"
-
- # Embedfire LubanCat board
- LUBANCAT_IMX6ULL = "LUBANCAT_IMX6ULL"
- LUBANCAT_STM32MP157 = "LUBANCAT_STM32MP157"
-
- # 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_ZERO_2_W = "RASPBERRY_PI_ZERO_2_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"
- RASPBERRY_PI_400 = "RASPBERRY_PI_400"
- RASPBERRY_PI_CM4 = "RASPBERRY_PI_CM4"
-
- 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"
- FTDI_FT2232H = "FTDI_FT2232H"
- DRAGONBOARD_410C = "DRAGONBOARD_410C"
-
- SIFIVE_UNLEASHED = "SIFIVE_UNLEASHED"
-
- ALLWINER_D1 = "ALLWINER_D1"
-
- MICROCHIP_MCP2221 = "MICROCHIP_MCP2221"
-
- # Boards with u2if firmware
- # https://github.com/execuc/u2if
- PICO_U2IF = "PICO_U2IF"
- FEATHER_U2IF = "FEATHER_U2IF"
- ITSYBITSY_U2IF = "ITSYBITSY_U2IF"
- MACROPAD_U2IF = "MACROPAD_U2IF"
- QTPY_U2IF = "QTPY_U2IF"
- QT2040_TRINKEY_U2IF = "QT2040_TRINKEY_U2IF"
-
- BINHO_NOVA = "BINHO_NOVA"
-
- ONION_OMEGA = "ONION_OMEGA"
- ONION_OMEGA2 = "ONION_OMEGA2"
-
- PINE64 = "PINE64"
- PINEH64 = "PINEH64"
- PINEBOOK = "PINEBOOK"
- PINEPHONE = "PINEPHONE"
- SOPINE = "SOPINE"
-
- ROCK_PI_S = "ROCK_PI_S"
- ROCK_PI_4 = "ROCK_PI_4"
- ROCK_PI_X = "ROCK_PI_X"
- ROCK_PI_E = "ROCK_PI_E"
-
- GREATFET_ONE = "GREATFET_ONE"
-
- # Udoo boards
- UDOO_BOLT_V3 = "UDOO_BOLT_V3"
- UDOO_BOLT_V8 = "UDOO_BOLT_V8"
- UDOO_X86 = "UDOO_X86"
-
- # MaaXBoard
- MAAXBOARD = "MAAXBOARD"
- MAAXBOARD_MINI = "MAAXBOARD_MINI"
-
- # Asus Tinkerboard
- _ASUS_TINKER_BOARD_IDS = (ASUS_TINKER_BOARD,)
-
- # STM32MP1
- _STM32MP1_IDS = (STM32MP157C_DK2, LUBANCAT_STM32MP157, OSD32MP1_BRK, OSD32MP1_RED)
-
- # 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,
- ORANGE_PI_ZERO_PLUS_2H5,
- ORANGE_PI_ZERO_PLUS,
- ORANGE_PI_ZERO_2,
- ORANGE_PI_3,
- )
-
- # NanoPi
- _NANOPI_IDS = (NANOPI_NEO_AIR, NANOPI_DUO2, NANOPI_NEO)
-
- # BananaPI
- _BANANA_PI_IDS = (BANANA_PI_M2_ZERO,)
-
- # LubanCat
- _LUBANCAT_IDS = (LUBANCAT_IMX6ULL, LUBANCAT_STM32MP157)
-
- # Coral boards
- _CORAL_IDS = (CORAL_EDGE_TPU_DEV, CORAL_EDGE_TPU_DEV_MINI)
-
- _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_TX2_NX, ("nvidia,p3509-0000+p3636-0001",)),
- (CLARA_AGX_XAVIER, ("nvidia,e3900-0000+p2888-0004",)),
- (
- JETSON_XAVIER,
- (
- "nvidia,p2972-0000",
- "nvidia,p2972-0006",
- "nvidia,jetson-xavier",
- "nvidia,jetson-xavier-industrial",
- "nvidia,galen-industrial",
- ),
- ),
- (JETSON_NANO, ("nvidia,p3450-0000", "nvidia,p3450-0002", "nvidia,jetson-nano")),
- (
- JETSON_NX,
- (
- "nvidia,p3509-0000+p3668-0000",
- "nvidia,p3509-0000+p3668-0001",
- "nvidia,p3509-0000-a00+p3668-0000-a01",
- "nvidia,p3509-0000-a00+p3668-0001-a01",
- "nvidia,p3449-0000+p3668-0000",
- "nvidia,p3449-0000+p3668-0001",
- ),
- ),
- )
-
- _TI_SK_BOARD_IDS = ((TI_J721E_SK, ("ti,j721e-sk", "ti,j721e")),)
-
- _RASPBERRY_PI_40_PIN_IDS = (
- RASPBERRY_PI_B_PLUS,
- RASPBERRY_PI_A_PLUS,
- RASPBERRY_PI_ZERO,
- RASPBERRY_PI_ZERO_W,
- RASPBERRY_PI_ZERO_2_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_400,
- )
-
- _RASPBERRY_PI_CM_IDS = (
- RASPBERRY_PI_CM1,
- RASPBERRY_PI_CM3,
- RASPBERRY_PI_CM3_PLUS,
- RASPBERRY_PI_CM4,
- )
-
- _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_GREEN_GATEWAY,
- BEAGLEBONE_BLACK_INDUSTRIAL,
- BEAGLEBONE_ENHANCED,
- BEAGLEBONE_USOMIQ,
- BEAGLEBONE_AIR,
- BEAGLEBONE_AI,
- BEAGLEBONE_POCKETBONE,
- BEAGLELOGIC_STANDALONE,
- BEAGLEV_STARLIGHT,
- 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_GREEN_GATEWAY: (("GA1", "A335BNLTGG1A"),),
- 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: (
- "0004",
- "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",
- "b03114",
- "c03114",
- "a03115",
- "c03115",
- "d03114",
- "d03115",
- "b03115",
- "1a03111",
- "2a03111",
- "1b03111",
- "2b03111", # warranty bits
- "1c03111",
- "2c03111",
- "1a03112",
- "2a03112",
- "1b03112",
- "2b03112",
- "1c03112",
- "2c03112",
- ),
- RASPBERRY_PI_400: ("c03130", "c03131"),
- RASPBERRY_PI_CM4: ("a03140", "b03140", "c03140", "d03140"),
- RASPBERRY_PI_ZERO_2_W: ("902120", "2902120"),
- }
-
- # Onion omega boards
- _ONION_OMEGA_BOARD_IDS = (ONION_OMEGA, ONION_OMEGA2)
-
- # Pine64 boards and devices
- _PINE64_DEV_IDS = (PINE64, PINEH64, PINEBOOK, PINEPHONE, SOPINE)
-
- # RockPi boards and devices
- _ROCK_PI_IDS = (ROCK_PI_S, ROCK_PI_4, ROCK_PI_X, ROCK_PI_E)
-
- # UDOO
- _UDOO_BOARD_IDS = {UDOO_BOLT_V8: ("SC40-2000-0000-C0|C",), UDOO_X86: ("dummy",)}
-
- # MaaXBoard boards
- _MAAXBOARD_IDS = ("MAAXBOARD", "MAAXBOARD_MINI")
|