Arrow / Mbed OS DAPLink Reset
Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers info.py Source File

info.py

00001 #
00002 # DAPLink Interface Firmware
00003 # Copyright (c) 2009-2019, ARM Limited, All Rights Reserved
00004 # SPDX-License-Identifier: Apache-2.0
00005 #
00006 # Licensed under the Apache License, Version 2.0 (the "License"); you may
00007 # not use this file except in compliance with the License.
00008 # You may obtain a copy of the License at
00009 #
00010 # http://www.apache.org/licenses/LICENSE-2.0
00011 #
00012 # Unless required by applicable law or agreed to in writing, software
00013 # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
00014 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00015 # See the License for the specific language governing permissions and
00016 # limitations under the License.
00017 #
00018 
00019 from __future__ import absolute_import
00020 
00021 # Name of all projects ready for public release
00022 # and info on the file to be distributed
00023 PROJECT_RELEASE_INFO = {
00024     # Project Name                                  Legacy      Offset      Extension
00025     ("k20dx_frdmk22f_if",                           True,       0x8000,     "bin"       ),
00026     ("k20dx_frdmk64f_if",                           True,       0x5000,     "bin"       ),
00027     ("k20dx_hexiwear_if",                           True,       0x8000,     "bin"       ),
00028     ("k20dx_rapid_iot_if",                          True,       0x8000,     "bin"       ),
00029     ("k20dx_frdmk66f_if",                           True,       0x8000,     "bin"       ),
00030     ("k20dx_frdmk28f_if",                           True,       0x8000,     "bin"       ),
00031     ("k20dx_frdmk82f_if",                           True,       0x8000,     "bin"       ),
00032     ("kl26z_microbit_if",                           False,      0x8000,     "hex"       ),
00033     ("lpc11u35_lpc812xpresso_if",                   False,      0x0000,     "bin"       ),
00034     ("lpc11u35_lpc824xpresso_if",                   False,      0x0000,     "bin"       ),
00035     ("lpc4322_lpc54114xpresso_if",                  False,      0x10000,    "bin"       ),
00036     ("lpc4322_lpc54608xpresso_if",                  False,      0x10000,    "bin"       ),
00037     ("lpc4322_lpc55s69xpresso_if",                  False,      0x10000,    "bin"       ),
00038     ("lpc11u35_ssci1114_if",                        False,      0x0000,     "bin"       ),
00039     ("sam3u2c_mkit_dk_dongle_nrf5x_if",             True,       0x5000,     "bin"       ),
00040     ("k20dx_frdmk20dx_if",                          True,       0x8000,     "bin"       ),
00041     ("k20dx_frdmkw24d_if",                          True,       0x8000,     "bin"       ),
00042     ("k20dx_frdmkw41z_if",                          True,       0x8000,     "bin"       ),
00043     ("k20dx_frdmkl02z_if",                          True,       0x8000,     "bin"       ),
00044     ("k20dx_frdmkl05z_if",                          True,       0x8000,     "bin"       ),
00045     ("k20dx_frdmkl25z_if",                          True,       0x8000,     "bin"       ),
00046     ("k20dx_frdmkl26z_if",                          True,       0x8000,     "bin"       ),
00047     ("k20dx_frdmkl27z_if",                          True,       0x8000,     "bin"       ),
00048     ("k20dx_frdmkl28z_if",                          True,       0x8000,     "bin"       ),
00049     ("k20dx_twrkl28z72m_if",                        True,       0x8000,     "bin"       ),
00050     ("k20dx_frdmkl43z_if",                          True,       0x8000,     "bin"       ),
00051     ("k20dx_frdmkl46z_if",                          True,       0x8000,     "bin"       ),
00052     ("k20dx_frdmkl82z_if",                          True,       0x5000,     "bin"       ),
00053     ("k20dx_frdmke15z_if",                          True,       0x8000,     "bin"       ),
00054     ("k20dx_twrke18f_if",                           True,       0x8000,     "bin"       ),
00055     ("k20dx_hvpke18f_if",                           True,       0x8000,     "bin"       ),
00056     ("k20dx_mimxrt1020_evk_qspi_if",                True,       0x8000,     "bin"       ),
00057     ("k20dx_mimxrt1050_evk_hyper_if",               True,       0x8000,     "bin"       ),
00058     ("k20dx_mimxrt1050_evk_qspi_if",                True,       0x8000,     "bin"       ),
00059     ('k20dx_ep_agora_if',                           True,       0x0000,     "bin"       ),
00060     ("k26f_frdmk32w042_if",                         False,      0x8000,     "bin"       ),
00061     ("lpc11u35_archble_if",                         False,      0x0000,     "bin"       ),
00062     ("lpc11u35_archpro_if",                         False,      0x0000,     "bin"       ),
00063     ("lpc11u35_archmax_if",                         False,      0x0000,     "bin"       ),
00064     ("lpc11u35_wio3g_if",                           False,      0x0000,     "bin"       ),
00065     ("lpc11u35_wiobg96_if",                         False,      0x0000,     "bin"       ),
00066     ("lpc11u35_wio_emw3166_if",                     False,      0x0000,     "bin"       ),
00067     ("lpc11u35_hrm1017_if",                         False,      0x0000,     "bin"       ),
00068     ("lpc11u35_sscity_if",                          False,      0x0000,     "bin"       ),
00069     ("lpc11u35_ssci824_if",                         False,      0x0000,     "bin"       ),
00070     ("lpc11u35_ro359b_if",                          False,      0x0000,     "bin"       ),
00071     ("k20dx_rbl_if",                                True,       0x5000,     "bin"       ),
00072     ("k20dx_rblnano_if",                            True,       0x5000,     "bin"       ),
00073     ("lpc11u35_archlink_if",                        False,      0x0000,     "bin"       ),
00074     ("lpc11u35_tiny_if",                            False,      0x0000,     "bin"       ),
00075     ("lpc11u35_c027_if",                            False,      0x0000,     "bin"       ),
00076     ("sam3u2c_ncs36510rf_if",                       False,      0x8000,     "bin"       ),
00077     ("kl26z_nina_b1_if",                            False,      0x8000,     "bin"       ),
00078     ("lpc11u35_lpc4088dm_if",                       False,      0x0000,     "bin"       ),
00079     ("lpc11u35_lpc4088qsb_if",                      False,      0x0000,     "bin"       ),
00080     ('lpc11u35_ssci_chibi_if',                      False,      0x0000,     "bin"       ),
00081     ('lpc11u35_ff1705_l151_if',                     False,      0x0000,     "bin"       ),
00082     ('lpc11u35_ff_lpc546xx_if',                     False,      0x0000,     "bin"       ),
00083     ('lpc11u35_mini_iot_lpc54018_if',               False,      0x0000,     "bin"       ),
00084     ("k20dx_xdot_l151_if",                          False,      0x8000,     "bin"       ),
00085     ('lpc11u35_6lowpan_borderrouterhat_if',         None,       0x0000,     "bin"       ),
00086     ('lpc11u35_6lowpan_borderrouterusb_if',         None,       0x0000,     "bin"       ),
00087     ('lpc11u35_6lowpan_borderrouterethernet_if',    None,       0x0000,     "bin"       ),
00088     ('lpc11u35_gr_peach_if',                        None,       0x0000,     "bin"       ),
00089     ('lpc11u35_gr_lychee_if',                       None,       0x0000,     "bin"       ),
00090     ('lpc11u35_nz32_sc151_if',                      False,      0x0000,     "bin"       ),
00091     ('lpc11u35_wizwiki_w7500_if',                   False,      0x0000,     "bin"       ),
00092     ('lpc11u35_wizwiki_w7500_eco_if',               False,      0x0000,     "bin"       ),
00093     ('lpc11u35_wizwiki_w7500p_if',                  False,      0x0000,     "bin"       ),
00094     ("sam3u2c_ublox_evk_nina_b1_if",                True,       0x5000,     "bin"       ),
00095     ("lpc11u35_vbluno51_if",                        False,      0x0000,     "bin"       ),
00096     ('lpc11u35_mtconnect04s_if',                    False,      0x0000,     "bin"       ),
00097     ('lpc11u35_mbed_cloud_connect_if',              False,      0x0000,     "bin"       ),
00098     ("lpc11u35_rtl8195am_if",                       False,      0x0000,     "bin"       ),
00099     ("lpc11u35_96b_nitrogen_if",                    False,      0x0000,     "bin"       ),
00100     ('lpc11u35_mtb_mxchip_emw3166_if',              False,      0x0000,     "bin"       ),
00101     ('lpc11u35_mtb_nina_b112_if',                   False,      0x0000,     "bin"       ),
00102     ('lpc11u35_mtb_murata_abz_078_if',              False,      0x0000,     "bin"       ),
00103     ('lpc11u35_mtb_rak811_if',                      False,      0x0000,     "bin"       ),
00104     ('lpc11u35_mtb_wise1510_if',                    False,      0x0000,     "bin"       ),
00105     ('lpc11u35_mtb_wise1530_if',                    False,      0x0000,     "bin"       ),
00106     ('lpc11u35_mtb_wise1570_if',                    False,      0x0000,     "bin"       ),
00107     ('lpc11u35_mtb_laird_bl652_if',                 False,      0x0000,     "bin"       ),
00108     ('lpc11u35_mtb_usi_wm_bn_bm_22_if',             False,      0x0000,     "bin"       ),
00109     ('lpc11u35_dipdap_sdt52832b_if',                False,      0x0000,     "bin"       ),
00110     ('lpc11u35_dipdap_sdt32429b_if',                False,      0x0000,     "bin"       ),
00111     ('lpc11u35_dipdap_sdt32439b_if',                False,      0x0000,     "bin"       ),
00112     ('lpc11u35_dipdap_sdt64b_if',                   False,      0x0000,     "bin"       ),
00113     ('lpc11u35_dipdap_sdt51822b_if',                False,      0x0000,     "bin"       ),
00114     ('lpc11u35_mtb_ublox_odin_w2_if',               False,      0x0000,     "bin"       ),
00115     ('lpc11u35_mtb_mts_dragonfly_if',               False,      0x0000,     "bin"       ),
00116     ('lpc11u35_mtb_mts_xdot_if',                    False,      0x0000,     "bin"       ),
00117     ('lpc11u35_dipdap_cc3220sf_if',                 False,      0x0000,     "bin"       ),
00118     ('lpc11u35_mtb_laird_bl654_if',                 False,      0x0000,     "bin"       ),
00119     ('lpc11u35_mtb_murata_bl241_if',                False,      0x0000,     "bin"       ),
00120     ('lpc11u35_mtb_stm_s2lp_if',                    False,      0x0000,     "bin"       ),
00121     ('lpc11u35_mtb_stm32l475_if',                   False,      0x0000,     "bin"       ),
00122     ('lpc11u35_mtb_aconno_acn52832_if',             False,      0x0000,     "bin"       ),
00123     ('lpc11u35_mtb_stm32f439_if',                   False,      0x0000,     "bin"       ),
00124     ('lpc11u35_musca_a_if',                         False,      0x0000,     "bin"       ),
00125     ('lpc11u35_musca_b_if',                         False,      0x0000,     "bin"       ),
00126     ('lpc11u35_musca_b_eflash_if',                  False,      0x0000,     "bin"       ),
00127     ('max32620_max32625mbed_if',                    False,      0x0000,     "bin"       ),
00128     ('max32625_max32620fthr_if',                    False,      0x0000,     "bin"       ),
00129     ('max32625_max32630fthr_if',                    False,      0x0000,     "bin"       ),
00130     ('kl26z_if',                                    False,      0x0000,     "bin"       ),
00131     ('k20dx_if',                                    False,      0x0000,     "bin"       ),
00132     ('k26f_if',                                     False,      0x0000,     "bin"       ),
00133     ('lpc11u35_if',                                 False,      0x0000,     "bin"       ),
00134     ('lpc4322_if',                                  False,      0x0000,     "bin"       ),
00135     ('max32620_if',                                 False,      0x0000,     "bin"       ),
00136     ('max32625_if',                                 False,      0x0000,     "bin"       ),
00137     ('sam3u2c_if',                                  False,      0x0000,     "bin"       ),
00138     ('stm32f103xb_if',                              False,      0x0000,     "bin"       ),
00139 }
00140 
00141 # Add new HICs here
00142 VENDOR_ID = {
00143     'Stub': 0,
00144     'NXP': 11,
00145     'TI': 16,
00146     'Nordic': 54,
00147     'Toshiba': 92,
00148     'Renesas' : 117,
00149     'Wiznet': 122,
00150     'Realtek': 124,
00151 }
00152 
00153 def VENDOR_TO_FAMILY(x, y) : return (VENDOR_ID[x] <<8) | y
00154 
00155 # All supported configurations
00156 SUPPORTED_CONFIGURATIONS = [
00157     #   Board ID    Family ID                           Firmware                                    Bootloader          Target
00158     (   0x0200,     VENDOR_TO_FAMILY('NXP', 2),         'k20dx_frdmkl25z_if',                       'k20dx_bl',         'KL25Z'                                 ),
00159     (   0x0201,     VENDOR_TO_FAMILY('NXP', 2),         'k20dx_frdmkw41z_if',                       'k20dx_bl',         'FRDM-KW41Z'                            ),
00160     (   0x0203,     VENDOR_TO_FAMILY('NXP', 2),         'k20dx_twrkl28z72m_if',                     'k20dx_bl',         None                                    ),
00161     (   0x0204,     VENDOR_TO_FAMILY('NXP', 2),         'k20dx_frdmkl02z_if',                       'k20dx_bl',         None                                    ),
00162     (   0x0205,     VENDOR_TO_FAMILY('NXP', 2),         'k20dx_frdmkl28z_if',                       'k20dx_bl',         None                                    ),
00163     (   0x0206,     VENDOR_TO_FAMILY('NXP', 1),         'k20dx_twrke18f_if',                        'k20dx_bl',         None                                    ),
00164     (   0x0210,     VENDOR_TO_FAMILY('NXP', 2),         'k20dx_frdmkl05z_if',                       'k20dx_bl',         'FRDM-KL05Z'                            ),
00165     (   0x0213,     VENDOR_TO_FAMILY('NXP', 2),         'k20dx_frdmke15z_if',                       'k20dx_bl',         None                                    ),
00166     (   0x0214,     VENDOR_TO_FAMILY('NXP', 4),         'k20dx_hexiwear_if',                        'k20dx_bl',         'HEXIWEAR'                              ),
00167     (   0x0216,     VENDOR_TO_FAMILY('NXP', 1),         'k20dx_hvpke18f_if',                        'k20dx_bl',         None                                    ),
00168     (   0x0217,     VENDOR_TO_FAMILY('NXP', 1),         'k20dx_frdmk82f_if',                        'k20dx_bl',         'FRDM-K82F'                             ),
00169     (   0x0218,     VENDOR_TO_FAMILY('NXP', 2),         'k20dx_frdmkl82z_if',                       'k20dx_bl',         'FRDM-KL82Z'                            ),
00170     (   0x0220,     VENDOR_TO_FAMILY('NXP', 2),         'k20dx_frdmkl46z_if',                       'k20dx_bl',         'FRDM-KL46Z'                            ),
00171     (   0x0224,     VENDOR_TO_FAMILY('NXP', 1),         'k20dx_frdmk28f_if',                        'k20dx_bl',         None                                    ), # TODO - set target to 'FRDM-K28F' when mbed-os supports this
00172     (   0x0225,     VENDOR_TO_FAMILY('NXP', 1),         'k26f_frdmk32w042_if',                      'k26f_bl',          None                                    ), # TODO - set target to 'FRDM-K32W042' when mbed-os supports this
00173     (   0x0226,     VENDOR_TO_FAMILY('NXP', 3),         'k20dx_mimxrt1020_evk_qspi_if',             'k20dx_bl',         None                                    ), # TODO - set target to 'MIMX6RT1050' when mbed-os supports this
00174     (   0x0227,     VENDOR_TO_FAMILY('NXP', 3),         'k20dx_mimxrt1050_evk_hyper_if',            'k20dx_bl',         None                                    ), # TODO - set target to 'MIMX6RT1050' when mbed-os supports this
00175     (   0x0227,     VENDOR_TO_FAMILY('NXP', 3),         'k20dx_mimxrt1050_evk_qspi_if',             'k20dx_bl',         None                                    ), # TODO - set target to 'MIMX6RT1050' when mbed-os supports this
00176     (   0x0228,     VENDOR_TO_FAMILY('NXP', 4),         'k20dx_rapid_iot_if',                       'k20dx_bl',         None                                    ), # TODO - set target to 'Rapid-IoT' when mbed-os supports this
00177     (   0x0230,     VENDOR_TO_FAMILY('NXP', 1),         'k20dx_frdmk20dx_if',                       'k20dx_bl',         'FRDM-K20D50M'                          ),
00178     (   0x0231,     VENDOR_TO_FAMILY('NXP', 1),         'k20dx_frdmk22f_if',                        'k20dx_bl',         'FRDM-K22F'                             ),
00179     (   0x0236,     VENDOR_TO_FAMILY('NXP', 0),         'lpc4322_lpc55s69xpresso_if',               'lpc4322_bl',       'LPCXpresso55S69'                       ),
00180     (   0x0240,     VENDOR_TO_FAMILY('NXP', 1),         'k20dx_frdmk64f_if',                        'k20dx_bl',         'FRDM-K64F'                             ),
00181     (   0x0250,     VENDOR_TO_FAMILY('NXP', 1),         'k20dx_frdmkw24d_if',                       'k20dx_bl',         'FRDM-KW24D512'                         ),
00182     (   0x0260,     VENDOR_TO_FAMILY('NXP', 2),         'k20dx_frdmkl26z_if',                       'k20dx_bl',         None                                    ),
00183     (   0x0261,     VENDOR_TO_FAMILY('NXP', 2),         'k20dx_frdmkl27z_if',                       'k20dx_bl',         'FRDM-KL27Z'                            ),
00184     (   0x0262,     VENDOR_TO_FAMILY('NXP', 2),         'k20dx_frdmkl43z_if',                       'k20dx_bl',         'FRDM-KL43Z'                            ),
00185     (   0x0311,     VENDOR_TO_FAMILY('NXP', 1),         'k20dx_frdmk66f_if',                        'k20dx_bl',         'FRDM-K66F'                             ),
00186     (   0x0350,     VENDOR_TO_FAMILY('Stub', 1),        'k20dx_xdot_l151_if',                       'k20dx_bl',         None                                    ), # TODO - set target to 'MTS-xDot-L151CC' when mbed-os supports this
00187     (   0x0360,     VENDOR_TO_FAMILY('NXP', 1),         'lpc4322_hani_iot_if',                      'lpc4322_bl',       'HANI-IOT'                              ),
00188     (   0x0409,     VENDOR_TO_FAMILY('Stub', 1),        'max32625_max32630fthr_if',                 'max32625_bl',      'MAX32630'                              ),
00189     (   0x0415,     VENDOR_TO_FAMILY('Stub', 1),        'max32620_max32625mbed_if',                 'max32620_bl',      'MAX32625'                              ),
00190     (   0x0418,     VENDOR_TO_FAMILY('Stub', 1),        'max32625_max32620fthr_if',                 'max32625_bl',      'MAX32620'                              ),
00191     (   0x0450,     VENDOR_TO_FAMILY('Stub', 1),        'lpc11u35_mtb_ublox_odin_w2_if',            None,               None                                    ),
00192     (   0x0451,     VENDOR_TO_FAMILY('Stub', 1),        'lpc11u35_mtb_mxchip_emw3166_if',           None,               None                                    ), # TODO - set target when mbed-os supports this
00193     (   0x0453,     VENDOR_TO_FAMILY('Stub', 1),        'lpc11u35_mtb_mts_xdot_if',                 None,               None                                    ),
00194     (   0x0454,     VENDOR_TO_FAMILY('Stub', 1),        'lpc11u35_mtb_mts_dragonfly_if',            None,               None                                    ),
00195     (   0x0455,     VENDOR_TO_FAMILY('Nordic', 2),      'lpc11u35_mtb_nina_b112_if',                None,               None                                    ), # TODO - set target when mbed-os supports this
00196     (   0x0456,     VENDOR_TO_FAMILY('Stub', 1),        'lpc11u35_mtb_murata_abz_078_if',           None,               None                                    ), # TODO - set target when mbed-os supports this
00197     (   0x0457,     VENDOR_TO_FAMILY('Stub', 1),        'lpc11u35_mtb_rak811_if',                   None,               None                                    ), # TODO - set target when mbed-os supports this
00198     (   0x0458,     VENDOR_TO_FAMILY('Stub', 1),        'lpc11u35_mtb_wise1510_if',                 None,               None                                    ), # TODO - set target when mbed-os supports this
00199     (   0x0459,     VENDOR_TO_FAMILY('Stub', 1),        'lpc11u35_mtb_wise1530_if',                 None,               None                                    ), # TODO - set target when mbed-os supports this
00200     (   0x0460,     VENDOR_TO_FAMILY('Stub', 1),        'lpc11u35_mtb_wise1570_if',                 None,               None                                    ), # TODO - set target when mbed-os supports this
00201     (   0x0461,     VENDOR_TO_FAMILY('Nordic', 2),      'lpc11u35_mtb_laird_bl652_if',              None,               None                                    ), # TODO - set target when mbed-os supports this
00202     (   0x0462,     VENDOR_TO_FAMILY('Stub', 1),        'lpc11u35_mtb_usi_wm_bn_bm_22_if',          None,               None                                    ), # TODO - set target when mbed-os supports this
00203     (   0x0465,     VENDOR_TO_FAMILY('Nordic', 2),      'lpc11u35_mtb_laird_bl654_if',              None,               None                                    ), # TODO - set target when mbed-os supports this
00204     (   0x0466,     VENDOR_TO_FAMILY('Nordic', 2),      'lpc11u35_mtb_murata_bl241_if',             None,               None                                    ), # TODO - set target when mbed-os supports this
00205     (   0x0467,     VENDOR_TO_FAMILY('Stub', 1),        'lpc11u35_mtb_stm_s2lp_if',                 None,               None                                    ), # TODO - set target when mbed-os supports this
00206     (   0x0468,     VENDOR_TO_FAMILY('Stub', 1),        'lpc11u35_mtb_stm32l475_if',                None,               None                                    ), # TODO - set target when mbed-os supports this
00207     (   0x0469,     VENDOR_TO_FAMILY('Stub', 1),        'lpc11u35_mtb_stm32f439_if',                None,               None                                    ), # TODO - set target when mbed-os supports this
00208     (   0x0472,     VENDOR_TO_FAMILY('Nordic', 2),      'lpc11u35_mtb_aconno_acn52832_if',          None,               None                                    ), # TODO - set target when mbed-os supports this
00209     (   0x0700,     VENDOR_TO_FAMILY('Stub', 1),        'stm32f103xb_stm32f103rb_if',               'stm32f103xb_bl',   'ST-Nucleo-F103RB'                      ),
00210     (   0x0720,     VENDOR_TO_FAMILY('Stub', 1),        'stm32f103xb_stm32f401re_if',               'stm32f103xb_bl',   'ST-Nucleo-F401RE'                      ),
00211     (   0x0720,     VENDOR_TO_FAMILY('Stub', 1),        'stm32f103xb_stm32f072rb_if',               'stm32f103xb_bl',   'ST-Nucleo-F072RB'                      ),
00212     (   0x0735,     VENDOR_TO_FAMILY('Stub', 1),        'stm32f103xb_stm32f334r8_if',               'stm32f103xb_bl',   'ST-Nucleo-F334R8'                      ),
00213     (   0x0740,     VENDOR_TO_FAMILY('Stub', 1),        'stm32f103xb_stm32f411re_if',               'stm32f103xb_bl',   'ST-Nucleo-F411RE'                      ),
00214     (   0x0765,     VENDOR_TO_FAMILY('Stub', 1),        'stm32f103xb_stm32l476rg_if',               'stm32f103xb_bl',   'ST-Nucleo-L476RG'                      ),
00215     (   0x0796,     VENDOR_TO_FAMILY('Stub', 1),        'stm32f103xb_stm32f429zi_if',               'stm32f103xb_bl',   'ST-Nucleo-F429ZI'                      ),
00216     (   0x0816,     VENDOR_TO_FAMILY('Stub', 1),        'stm32f103xb_stm32f746zg_if',               'stm32f103xb_bl',   'ST-Nucleo-F746ZG'                      ),
00217     (   0x0824,     VENDOR_TO_FAMILY('Stub', 1),        'lpc11u35_lpc824xpresso_if',                None,               'LPCXpresso824-MAX'                     ),
00218     (   0x0835,     VENDOR_TO_FAMILY('Stub', 1),        'stm32f103xb_stm32f207zg_if',               'stm32f103xb_bl',   'ST-Nucleo-F207ZG'                      ),
00219     (   0x1017,     VENDOR_TO_FAMILY('Nordic', 1),      'lpc11u35_hrm1017_if',                      None,               'mbed-HRM1017'                          ),
00220     (   0x1018,     VENDOR_TO_FAMILY('Stub', 1),        'lpc11u35_ssci824_if',                      None,               'Switch-Science-mbed-LPC824'            ),
00221     (   0x1019,     VENDOR_TO_FAMILY('Nordic', 1),      'lpc11u35_sscity_if',                       None,               'Switch-Science-mbed-TY51822r3'         ),
00222     (   0x1021,     VENDOR_TO_FAMILY('Nordic', 1),      'lpc11u35_ssci_chibi_if',                   None,               None                                    ), # TODO - set target to 'SSCI-MBIT' when mbed-os supports this
00223     (   0x1022,     VENDOR_TO_FAMILY('Stub', 1),        'lpc11u35_ro359b_if',                       None,               None                                    ),
00224     (   0x1050,     VENDOR_TO_FAMILY('Stub', 1),        'lpc11u35_lpc812xpresso_if',                None,               'NXP-LPC800-MAX'                        ),
00225     (   0x1054,     VENDOR_TO_FAMILY('Stub', 1),        'lpc4322_lpc54114xpresso_if',               'lpc4322_bl',       'LPCXpresso54114'                       ),
00226     (   0x1056,     VENDOR_TO_FAMILY('Stub', 1),        'lpc4322_lpc54608xpresso_if',               'lpc4322_bl',       'LPCXpresso54608'                       ),
00227     (   0x1060,     VENDOR_TO_FAMILY('NXP', 0),         'lpc11u35_lpc4088qsb_if',                   None,               'EA-LPC4088'                            ),
00228     (   0x1062,     VENDOR_TO_FAMILY('NXP', 0),         'lpc11u35_lpc4088dm_if',                    None,               'EA-LPC4088-Display-Module'             ),
00229     (   0x1070,     VENDOR_TO_FAMILY('Nordic', 1),      'sam3u2c_mkit_dk_dongle_nrf5x_if',          'sam3u2c_bl',       'Nordic-nRF51822'                       ),
00230     (   0x1090,     VENDOR_TO_FAMILY('Nordic', 1),      'k20dx_rbl_if',                             'k20dx_bl',         'RedBearLab-nRF51822'                   ),
00231     (   0x1095,     VENDOR_TO_FAMILY('Nordic', 1),      'k20dx_rblnano_if',                         'k20dx_bl',         'RedBearLab-BLE-Nano'                   ),
00232     (   0x1100,     VENDOR_TO_FAMILY('Nordic', 1),      'sam3u2c_mkit_dk_dongle_nrf5x_if',          'sam3u2c_bl',       'Nordic-nRF51-DK'                       ),
00233     (   0x1101,     VENDOR_TO_FAMILY('Nordic', 2),      'sam3u2c_mkit_dk_dongle_nrf5x_if',          'sam3u2c_bl',       'Nordic-nRF52-DK'                       ),
00234     (   0x1102,     VENDOR_TO_FAMILY('Nordic', 2),      'sam3u2c_mkit_dk_dongle_nrf5x_if',          'sam3u2c_bl',       'Nordic-nRF52840-DK'                    ),
00235     (   0x1114,     VENDOR_TO_FAMILY('Stub', 1),        'lpc11u35_ssci1114_if',                     None,               'LPC1114FN28'                           ),
00236     (   0x1120,     VENDOR_TO_FAMILY('Nordic', 1),      'sam3u2c_mkit_dk_dongle_nrf5x_if',          'sam3u2c_bl',       'Nordic-nRF51-Dongle'                   ),
00237     (   0x1200,     VENDOR_TO_FAMILY('Stub', 3),        'sam3u2c_ncs36510rf_if',                   'sam3u2c_bl',        None                                    ),# TODO - Set to 'ncs36510' when non-zero flash addresses are supported
00238     (   0x1234,     VENDOR_TO_FAMILY('Stub', 1),        'lpc11u35_c027_if',                         None,               'u-blox-C027'                           ),
00239     (   0x1236,     VENDOR_TO_FAMILY('Stub', 1),        'stm32f103xb_ublox_evk_odin_w2_if',        'stm32f103xb_bl',    'ublox-EVK-ODIN-W2'                     ),
00240     (   0x1237,     VENDOR_TO_FAMILY('Nordic', 2),      'sam3u2c_ublox_evk_nina_b1_if',            'sam3u2c_bl',        'U-BLOX-EVK-NINA-B1'                    ),
00241     (   0x1238,     VENDOR_TO_FAMILY('Nordic', 1),      'kl26z_nina_b1_if',                        'kl26z_bl',          'u-blox-NINA-B1'                        ),
00242     (   0x1309,     VENDOR_TO_FAMILY('Stub', 3),        'm48ssidae_numaker_m252kg_if',              'm48ssidae_bl',     None                                    ),
00243     (   0x1310,     VENDOR_TO_FAMILY('Stub', 3),        'm48ssidae_numaker_iot_m263a_if',           'm48ssidae_bl',     None                                    ),
00244     (   0x2201,     VENDOR_TO_FAMILY('Wiznet', 1),      'lpc11u35_wizwiki_w7500_if',                None,               'WIZwiki-W7500'                         ),
00245     (   0x2202,     VENDOR_TO_FAMILY('Wiznet', 1),      'lpc11u35_wizwiki_w7500_eco_if',            None,               'WIZwiki-W7500ECO'                      ),
00246     (   0x2203,     VENDOR_TO_FAMILY('Wiznet', 1),      'lpc11u35_wizwiki_w7500p_if',               None,               'WIZwiki-W7500P'                        ),
00247     (   0x2410,     VENDOR_TO_FAMILY('Stub', 1),        'lpc11u35_mbed_cloud_connect_if',           None,               None                                    ),
00248     (   0x2600,     VENDOR_TO_FAMILY('Nordic', 2),      'k20dx_ep_agora_if',                        None,               None                                    ),
00249     (   0x3104,     VENDOR_TO_FAMILY('Nordic', 2),      'lpc11u35_dipdap_sdt52832b_if',             None,               None                                    ),
00250     (   0x3108,     VENDOR_TO_FAMILY('Stub', 1),        'lpc11u35_dipdap_sdt32429b_if',             None,               None                                    ),
00251     (   0x3105,     VENDOR_TO_FAMILY('NXP', 1),         'lpc11u35_dipdap_sdt64b_if',                None,               None                                    ),
00252     (   0x3103,     VENDOR_TO_FAMILY('Nordic', 1),      'lpc11u35_dipdap_sdt51822b_if',             None,               None                                    ),
00253     (   0x3110,     VENDOR_TO_FAMILY('Stub', 1),        'lpc11u35_dipdap_sdt32439b_if',             None,               None                                    ),
00254     (   0x3300,     VENDOR_TO_FAMILY('TI', 1),          'lpc11u35_dipdap_cc3220sf_if',              None,               'CC3220SF'                              ),
00255     (   0x4600,     VENDOR_TO_FAMILY('Realtek', 1),     'lpc11u35_rtl8195am_if',                    None,               'REALTEK-RTL8195AM'                     ),
00256     (   0x5006,     VENDOR_TO_FAMILY('Stub', 1),        'lpc11u35_musca_a_if',                      None,               'ARM_MUSCA_A1'                          ),
00257     (   0x5007,     VENDOR_TO_FAMILY('Stub', 1),        'lpc11u35_musca_b_if',                      None,               'ARM_MUSCA_B1'                          ),
00258     (   0x5007,     VENDOR_TO_FAMILY('Stub', 1),        'lpc11u35_musca_b_eflash_if',               None,               'ARM_MUSCA_B1'                          ),
00259     (   0x5050,     VENDOR_TO_FAMILY('Stub', 1),        'lpc11u35_arm_watch_stm32f411_if',          None,               None                                    ),
00260     (   0x5051,     VENDOR_TO_FAMILY('Stub', 3),        'lpc11u35_arm_watch_efm32_if',              None,               None                                    ),
00261     (   0x5052,     VENDOR_TO_FAMILY('Nordic', 1),      'lpc11u35_arm_watch_nrf51_if',              None,               None                                    ),
00262     (   0x5500,     VENDOR_TO_FAMILY('Renesas', 1),     'lpc11u35_gr_peach_if',                     None,               None                                    ), # TODO - Set to 'Renesas-GR-PEACH' once this target builds
00263     (   0x5501,     VENDOR_TO_FAMILY('Renesas', 1),     'lpc11u35_gr_lychee_if',                    None,               None                                    ), # TODO - Set to 'Renesas-GR-LYCHEE' once this target builds
00264     (   0x6660,     VENDOR_TO_FAMILY('Stub', 1),        'lpc11u35_nz32_sc151_if',                   None,               None                                    ), # TODO - set target to 'NZ32-SC151' when mbed-os supports this
00265     (   0x7010,     VENDOR_TO_FAMILY('Toshiba', 1),     'lpc11u35_blueninja_if',                    None,               None                                    ), # TODO - set target to 'BlueNinja-CDP-TZ01B' when mbed-os supports this
00266     (   0x7402,     VENDOR_TO_FAMILY('NXP', 1),         'lpc11u35_6lowpan_borderrouterhat_if',      None,               'mbed-6LoWPAN-Border-Router-HAT'        ),
00267     (   0x7403,     VENDOR_TO_FAMILY('NXP', 1),         'lpc11u35_6lowpan_borderrouterusb_if',      None,               'mbed-6LoWPAN-Border-Router-USB'        ),
00268     (   0x7404,     VENDOR_TO_FAMILY('NXP', 1),         'lpc11u35_6lowpan_borderrouterethernet_if', None,               'mbed-6LoWPAN-Border-Router-ETHERNET'   ),
00269     (   0x8080,     VENDOR_TO_FAMILY('Stub', 1),        'lpc11u35_ff1705_l151_if',                  None,               None                                    ), # TODO - set target to 'L-TEK-FF1705' when mbed-os supports this
00270     (   0x8081,     VENDOR_TO_FAMILY('Stub', 1),        'lpc11u35_ff_lpc546xx_if',                  None,               None                                    ), # TODO - set target to 'L-TEK-FF-LPC546XX' when mbed-os supports this
00271     (   0x9004,     VENDOR_TO_FAMILY('Stub', 1),        'lpc11u35_archpro_if',                      None,               'Seeeduino-Arch-Pro'                    ),
00272     (   0x9009,     VENDOR_TO_FAMILY('Nordic', 1),      'lpc11u35_archble_if',                      None,               'Seeed-Arch-BLE'                        ),
00273     (   0x9011,     VENDOR_TO_FAMILY('Stub', 1),        'lpc11u35_archmax_if',                      None,               'Seeed-Arch-Max'                        ),
00274     (   0x9012,     VENDOR_TO_FAMILY('Nordic', 1),      'lpc11u35_tiny_if',                         None,               'Seeed-Tiny-BLE'                        ),
00275     (   0x9013,     VENDOR_TO_FAMILY('Nordic', 1),      'lpc11u35_archlink_if',                     None,               'Seeed-Arch-Link'                       ),
00276     (   0x9014,     VENDOR_TO_FAMILY('Stub', 1),        'lpc11u35_wio3g_if',                        None,               None                                    ),
00277     (   0x9015,     VENDOR_TO_FAMILY('Stub', 1),        'lpc11u35_wiobg96_if',                      None,               None                                    ),
00278     (   0x9016,     VENDOR_TO_FAMILY('Nordic', 2),      'lpc11u35_96b_nitrogen_if',                 None,               None                                    ), # TODO - set target to 'Seeed-96Boards-Nitrogen' when mbed-os supports this
00279     (   0x9017,     VENDOR_TO_FAMILY('Stub', 1),        'lpc11u35_wio_emw3166_if',                  None,               'WIO_EMW3166'                                    ), # TODO - set target to 'Seeed-96Boards-Nitrogen' when mbed-os supports this
00280     (   0x9900,     VENDOR_TO_FAMILY('Nordic', 1),      'kl26z_microbit_if',                        'kl26z_bl',         'Microbit'                              ),
00281     (   0x9901,     VENDOR_TO_FAMILY('Nordic', 1),      'kl26z_microbit_if',                        'kl26z_bl',         'Microbit'                              ),
00282     (   0xC000,     VENDOR_TO_FAMILY('Stub', 1),        'lpc11u35_cocorico_if',                     None,               'CoCo-ri-Co'                            ),
00283     (   0xC006,     VENDOR_TO_FAMILY('Nordic', 1),      'lpc11u35_vbluno51_if',                     None,               'VBLUNO51'                              ),
00284     (   0xC005,     VENDOR_TO_FAMILY('Nordic', 1),      'lpc11u35_mtconnect04s_if',                 None,               'MtConnect04S'                          ),
00285     (   0x0000,     VENDOR_TO_FAMILY('Stub', 1),        'kl26z_if',                                 None,               None                                    ),
00286     (   0x0000,     VENDOR_TO_FAMILY('Stub', 1),        'k20dx_if',                                 None,               None                                    ),
00287     (   0x0000,     VENDOR_TO_FAMILY('Stub', 1),        'k26f_if',                                  None,               None                                    ),
00288     (   0x0000,     VENDOR_TO_FAMILY('Stub', 1),        'lpc11u35_if',                              None,               None                                    ),
00289     (   0x0000,     VENDOR_TO_FAMILY('Stub', 1),        'lpc4322_if',                               None,               None                                    ),
00290     (   0x0000,     VENDOR_TO_FAMILY('Stub', 1),        'max32620_if',                              None,               None                                    ),
00291     (   0x0000,     VENDOR_TO_FAMILY('Stub', 1),        'max32625_if',                              None,               None                                    ),
00292     (   0x0000,     VENDOR_TO_FAMILY('Stub', 1),        'sam3u2c_if',                               None,               None                                    ),
00293     (   0x0000,     VENDOR_TO_FAMILY('Stub', 1),        'stm32f103xb_if',                           None,               None                                    ),
00294 ]
00295 
00296 # Add new HICs here
00297 HIC_STRING_TO_ID = {
00298     'k20dx': 0x97969900,
00299     'kl26z': 0x97969901,
00300     'lpc11u35': 0x97969902,
00301     'sam3u2c': 0x97969903,
00302     'max32620': 0x97969904,
00303     'lpc4322': 0x97969905,
00304     'max32625': 0x97969906,
00305     'stm32f103xb': 0x97969908,
00306     'k26f': 0x97969909,
00307     'm48ssidae': 0x97969921,
00308 }
00309 
00310 BOARD_ID_LOCKED_WHEN_ERASED = set([
00311     0x0231,  # K22F
00312     0x0224,  # K28F
00313     0x0240,  # K64F
00314     0x0214,  # HEXIWEAR
00315     0x0228,  # RAPID-IOT
00316     0x0311,  # K66F
00317     0x0230,  # K20DX
00318     0x0200,  # KL25Z
00319     0x0205,  # FRDM-KL28Z
00320     0x0203,  # TWR-KL28Z72M
00321     0x0206,  # TWR-KE18F
00322     0x0220,  # KL46Z
00323     0x0210,  # KL05Z
00324     0x0213,  # FRDM-KE15Z
00325     0x0216,  # HVP-KE18F
00326     0x0217,  # FRDM-K82F
00327     0x0225,  # FRDM-K32W042
00328     0x0261,  # FRDM-KL27Z
00329     0x0262,  # FRDM-KL43Z
00330     0x0218,  # FRDM-KL82Z
00331     0x1022,  # RO359B (K24F)
00332     0x0201,  # KW41Z
00333 ])
00334 
00335 BOARD_ID_SUPPORTING_PAGE_ERASE = set([
00336     0x0214,  # HEXIWEAR
00337     0x0225,  # FRDM-K32W042
00338     0x0226,  # MIMXRT1020 EVK
00339     0x0227,  # MIMXRT1050 EVK
00340     0x0228,  # k20dx_rapid_iot_if
00341     0x0235,  # lpc11u35_mini_iot_lpc54018_if
00342     0x0236,  # LPCXpresso55S69
00343     0x0240,  # K64F
00344     0x0311,  # K66F
00345     0x0409,  # MAX32630FTHR
00346     0x0415,  # MAX32625MBED
00347     0x0418,  # MAX32620FTHR
00348     0x0450,  # mtb_ublox_odin_w2
00349     0x0456,  # lpc11u35_mtb_murata_abz_078_if
00350     0x0457,  # lpc11u35_mtb_rak811_if
00351     0x0460,  # WISE-1570
00352     0x0468,  # lpc11u35_mtb_stm32l475_if
00353     0x0469,  # lpc11u35_mtb_stm32f439_if
00354     0x1101,  # Nordic-nRF52-DK
00355     0x1102,  # Nordic-nRF52840-DK
00356     0x1309,  # NuMaker-M252KG
00357     0x1310,  # NuMaker-IoT-M263A
00358     0x2410,  # lpc11u35_mbed_cloud_connect_if
00359     0x3103,  # dipdap_sdt51822b
00360     0x3104,  # dipdap_sdt52832b
00361     0x3105,  # dipdap_sdt64b
00362     0x3108,  # dipdap_sdt32429b
00363     0x3110,  # dipdap_sdt32439b
00364     0x3300,  # dipdap_cc3220sf
00365     0x4600,  # REALTEK-RTL8195AM
00366     0x5500,  # GR-PEACH
00367     0x5501,  # GR-LYCHEE
00368 ])
00369 
00370 #Hack until these targets have an image with a valid vector table
00371 TARGET_WITH_BAD_VECTOR_TABLE_LIST = [
00372     'Microbit',
00373     'Nordic-nRF51-DK',
00374     'Nordic-nRF52-DK',
00375     'Nordic-nRF52840-DK',
00376     'Nordic-nRF51822',
00377     'Nordic-nRF51-Dongle',
00378     'Seeed-Arch-BLE',
00379     'mbed-HRM1017',
00380     'Switch-Science-mbed-TY51822r3',
00381     'RedBearLab-nRF51822',
00382     'RedBearLab-BLE-Nano',
00383     'Seeed-Tiny-BLE',
00384     'Seeed-Arch-Link',
00385     'SSCI-MBIT',
00386     'BlueNinja',
00387     'U-BLOX-EVK-NINA-B1',
00388     'VNG-VBLUno51',
00389     'REALTEK-RTL8195AM']
00390 
00391 BOARD_ID_TO_BUILD_TARGET = {config[0]: config[4] for config in
00392                             SUPPORTED_CONFIGURATIONS}
00393 FIRMWARE_SET = set((config[2] for config in SUPPORTED_CONFIGURATIONS))
00394 TARGET_SET = set((target[4] for target in SUPPORTED_CONFIGURATIONS if
00395                   target[4] is not None))
00396 
00397 TARGET_WITH_COMPILE_API_LIST = [config[4] for config in
00398                                 SUPPORTED_CONFIGURATIONS if
00399                                 config[4] is not None]