1#!/usr/bin/env python3 2 3""" 4Copyright (c) 2024 Silicon Laboratories Inc. 5 6SPDX-License-Identifier: Apache-2.0 7""" 8 9import argparse 10import os 11import shutil 12import tempfile 13import subprocess 14from pathlib import Path 15 16 17paths = [ 18 "components/common/inc/sl_additional_status.h", 19 "components/common/inc/sl_constants.h", 20 "components/common/inc/sl_ieee802_types.h", 21 "components/common/inc/sl_ip_types.h", 22 "components/common/inc/sl_utility.h", 23 "components/common/src/sl_utility.c", 24 "components/device/silabs/si91x/mcu/core/chip/config/sl_board_configuration.h", 25 "components/device/silabs/si91x/mcu/core/chip/inc/base_types.h", 26 "components/device/silabs/si91x/mcu/core/chip/inc/data_types.h", 27 "components/device/silabs/si91x/mcu/core/chip/inc/em_device.h", 28 "components/device/silabs/si91x/mcu/core/chip/inc/rsi_ccp_common.h", 29 "components/device/silabs/si91x/mcu/core/chip/inc/rsi_error.h", 30 "components/device/silabs/si91x/mcu/core/chip/inc/rsi_ps_ram_func.h", 31 "components/device/silabs/si91x/mcu/core/chip/inc/rsi_system_config.h", 32 "components/device/silabs/si91x/mcu/core/chip/inc/si91x_device.h", 33 "components/device/silabs/si91x/mcu/core/chip/inc/si91x_mvp.h", 34 "components/device/silabs/si91x/mcu/core/chip/inc/system_si91x.h", 35 "components/device/silabs/si91x/mcu/core/chip/src/iPMU_prog/iPMU_dotc/ipmu_apis.c", 36 "components/device/silabs/si91x/mcu/core/chip/src/iPMU_prog/iPMU_dotc/rsi_system_config_917.c", 37 "components/device/silabs/si91x/mcu/core/chip/src/rsi_deepsleep_soc.c", 38 "components/device/silabs/si91x/mcu/core/chip/src/system_si91x.c", 39 "components/device/silabs/si91x/mcu/core/config/rsi_ccp_user_config.h", 40 "components/device/silabs/si91x/mcu/drivers/cmsis_driver/CMSIS/Driver/Include/Driver_Common.h", 41 "components/device/silabs/si91x/mcu/drivers/cmsis_driver/CMSIS/Driver/Include/Driver_I2C.h", 42 "components/device/silabs/si91x/mcu/drivers/cmsis_driver/CMSIS/Driver/Include/Driver_SAI.h", 43 "components/device/silabs/si91x/mcu/drivers/cmsis_driver/CMSIS/Driver/Include/Driver_SPI.h", 44 "components/device/silabs/si91x/mcu/drivers/cmsis_driver/CMSIS/Driver/Include/Driver_USART.h", 45 "components/device/silabs/si91x/mcu/drivers/cmsis_driver/config/RTE_Device_917.h", 46 "components/device/silabs/si91x/mcu/drivers/cmsis_driver/GSPI.h", 47 "components/device/silabs/si91x/mcu/drivers/cmsis_driver/I2C.h", 48 "components/device/silabs/si91x/mcu/drivers/cmsis_driver/SAI.h", 49 "components/device/silabs/si91x/mcu/drivers/cmsis_driver/SPI.h", 50 "components/device/silabs/si91x/mcu/drivers/cmsis_driver/UDMA.h", 51 "components/device/silabs/si91x/mcu/drivers/cmsis_driver/USART.h", 52 "components/device/silabs/si91x/mcu/drivers/peripheral_drivers/inc/rsi_crc.h", 53 "components/device/silabs/si91x/mcu/drivers/peripheral_drivers/inc/rsi_ct.h", 54 "components/device/silabs/si91x/mcu/drivers/peripheral_drivers/inc/rsi_efuse.h", 55 "components/device/silabs/si91x/mcu/drivers/peripheral_drivers/inc/rsi_egpio.h", 56 "components/device/silabs/si91x/mcu/drivers/peripheral_drivers/inc/rsi_gpdma.h", 57 "components/device/silabs/si91x/mcu/drivers/peripheral_drivers/inc/rsi_pwm.h", 58 "components/device/silabs/si91x/mcu/drivers/peripheral_drivers/inc/rsi_qspi.h", 59 "components/device/silabs/si91x/mcu/drivers/peripheral_drivers/inc/rsi_qspi_proto.h", 60 "components/device/silabs/si91x/mcu/drivers/peripheral_drivers/inc/rsi_rng.h", 61 "components/device/silabs/si91x/mcu/drivers/peripheral_drivers/inc/rsi_timers.h", 62 "components/device/silabs/si91x/mcu/drivers/peripheral_drivers/inc/rsi_udma.h", 63 "components/device/silabs/si91x/mcu/drivers/peripheral_drivers/inc/rsi_udma_wrapper.h", 64 "components/device/silabs/si91x/mcu/drivers/peripheral_drivers/src/clock_update.c", 65 "components/device/silabs/si91x/mcu/drivers/peripheral_drivers/src/clock_update.h", 66 "components/device/silabs/si91x/mcu/drivers/peripheral_drivers/src/rsi_rng.c", 67 "components/device/silabs/si91x/mcu/drivers/rom_driver/inc/rsi_packing.h", 68 "components/device/silabs/si91x/mcu/drivers/rom_driver/inc/rsi_rom_clks.h", 69 "components/device/silabs/si91x/mcu/drivers/rom_driver/inc/rsi_rom_egpio.h", 70 "components/device/silabs/si91x/mcu/drivers/rom_driver/inc/rsi_rom_power_save.h", 71 "components/device/silabs/si91x/mcu/drivers/rom_driver/inc/rsi_rom_rng.h", 72 "components/device/silabs/si91x/mcu/drivers/rom_driver/inc/rsi_rom_table_si91x.h", 73 "components/device/silabs/si91x/mcu/drivers/rom_driver/inc/rsi_rom_udma.h", 74 "components/device/silabs/si91x/mcu/drivers/rom_driver/inc/rsi_rom_udma_wrapper.h", 75 "components/device/silabs/si91x/mcu/drivers/rom_driver/inc/rsi_rom_ulpss_clk.h", 76 "components/device/silabs/si91x/mcu/drivers/rom_driver/src/rsi_rom_table_si91x.c", 77 "components/device/silabs/si91x/mcu/drivers/service/clock_manager/inc/sl_si91x_clock_manager.h", 78 "components/device/silabs/si91x/mcu/drivers/service/clock_manager/src/sl_si91x_clock_manager.c", 79 "components/device/silabs/si91x/mcu/drivers/systemlevel/inc/rsi_ipmu.h", 80 "components/device/silabs/si91x/mcu/drivers/systemlevel/inc/rsi_pll.h", 81 "components/device/silabs/si91x/mcu/drivers/systemlevel/inc/rsi_power_save.h", 82 "components/device/silabs/si91x/mcu/drivers/systemlevel/inc/rsi_processor_sensor.h", 83 "components/device/silabs/si91x/mcu/drivers/systemlevel/inc/rsi_reg_spi.h", 84 "components/device/silabs/si91x/mcu/drivers/systemlevel/inc/rsi_retention.h", 85 "components/device/silabs/si91x/mcu/drivers/systemlevel/inc/rsi_temp_sensor.h", 86 "components/device/silabs/si91x/mcu/drivers/systemlevel/inc/rsi_time_period.h", 87 "components/device/silabs/si91x/mcu/drivers/systemlevel/inc/rsi_ulpss_clk.h", 88 "components/device/silabs/si91x/mcu/drivers/systemlevel/inc/rsi_wwdt.h", 89 "components/device/silabs/si91x/mcu/drivers/systemlevel/src/rsi_ipmu.c", 90 "components/device/silabs/si91x/mcu/drivers/systemlevel/src/rsi_pll.c", 91 "components/device/silabs/si91x/mcu/drivers/systemlevel/src/rsi_ulpss_clk.c", 92 "components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h", 93 "components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h", 94 "components/device/silabs/si91x/mcu/drivers/unified_api/src/sl_si91x_driver_gpio.c", 95 "components/device/silabs/si91x/mcu/drivers/unified_peripheral_drivers/inc/sl_si91x_gpio_common.h", 96 "components/device/silabs/si91x/mcu/drivers/unified_peripheral_drivers/inc/sl_si91x_gpio.h", 97 "components/device/silabs/si91x/mcu/drivers/unified_peripheral_drivers/inc/sl_si91x_peripheral_gpio.h", 98 "components/device/silabs/si91x/mcu/drivers/unified_peripheral_drivers/src/sl_si91x_peripheral_gpio.c", 99 "components/device/silabs/si91x/wireless/ahb_interface/inc/rsi_m4.h", 100 "components/device/silabs/si91x/wireless/ahb_interface/inc/rsi_os.h", 101 "components/device/silabs/si91x/wireless/ahb_interface/inc/rsi_pkt_mgmt.h", 102 "components/device/silabs/si91x/wireless/ahb_interface/inc/rsi_wisemcu_hardware_setup.h", 103 "components/device/silabs/si91x/wireless/ahb_interface/inc/sl_device.h", 104 "components/device/silabs/si91x/wireless/ahb_interface/inc/sli_siwx917_soc.h", 105 "components/device/silabs/si91x/wireless/ahb_interface/inc/sli_siwx917_timer.h", 106 "components/device/silabs/si91x/wireless/ahb_interface/src/rsi_hal_mcu_m4_ram.c", 107 "components/device/silabs/si91x/wireless/ahb_interface/src/rsi_hal_mcu_m4_rom.c", 108 "components/device/silabs/si91x/wireless/ahb_interface/src/sli_siwx917_soc.c", 109 "components/device/silabs/si91x/wireless/ahb_interface/src/sl_platform.c", 110 "components/device/silabs/si91x/wireless/ahb_interface/src/sl_platform_wireless.c", 111 "components/device/silabs/si91x/wireless/ahb_interface/src/sl_si91x_bus.c", 112 "components/device/silabs/si91x/wireless/asynchronous_socket/inc/sl_si91x_socket.h", 113 "components/device/silabs/si91x/wireless/asynchronous_socket/src/sl_si91x_socket.c", 114 "components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h", 115 "components/device/silabs/si91x/wireless/ble/inc/rsi_ble_common_config.h", 116 "components/device/silabs/si91x/wireless/ble/inc/rsi_ble.h", 117 "components/device/silabs/si91x/wireless/ble/inc/rsi_bt_common_apis.h", 118 "components/device/silabs/si91x/wireless/ble/inc/rsi_bt_common_config.h", 119 "components/device/silabs/si91x/wireless/ble/inc/rsi_bt_common.h", 120 "components/device/silabs/si91x/wireless/ble/inc/rsi_common_apis.h", 121 "components/device/silabs/si91x/wireless/ble/inc/rsi_common.h", 122 "components/device/silabs/si91x/wireless/ble/inc/rsi_user.h", 123 "components/device/silabs/si91x/wireless/ble/inc/rsi_utils.h", 124 "components/device/silabs/si91x/wireless/ble/inc/sl_si91x_ble.h", 125 "components/device/silabs/si91x/wireless/ble/src/rsi_bt_ble.c", 126 "components/device/silabs/si91x/wireless/ble/src/rsi_common_apis.c", 127 "components/device/silabs/si91x/wireless/ble/src/rsi_utils.c", 128 "components/device/silabs/si91x/wireless/host_mcu/si91x/siwx917_soc_ncp_host.c", 129 "components/device/silabs/si91x/wireless/inc/sl_rsi_utility.h", 130 "components/device/silabs/si91x/wireless/inc/sl_si91x_constants.h", 131 "components/device/silabs/si91x/wireless/inc/sl_si91x_core_utilities.h", 132 "components/device/silabs/si91x/wireless/inc/sl_si91x_driver.h", 133 "components/device/silabs/si91x/wireless/inc/sl_si91x_host_interface.h", 134 "components/device/silabs/si91x/wireless/inc/sl_si91x_protocol_types.h", 135 "components/device/silabs/si91x/wireless/inc/sl_si91x_status.h", 136 "components/device/silabs/si91x/wireless/inc/sl_si91x_types.h", 137 "components/device/silabs/si91x/wireless/inc/sl_wifi_device.h", 138 "components/device/silabs/si91x/wireless/memory/malloc_buffers.c", 139 "components/device/silabs/si91x/wireless/sl_net/inc/sl_net_rsi_utility.h", 140 "components/device/silabs/si91x/wireless/sl_net/inc/sl_net_si91x.h", 141 "components/device/silabs/si91x/wireless/sl_net/inc/sl_net_si91x_integration_handler.h", 142 "components/device/silabs/si91x/wireless/sl_net/src/sl_net_rsi_utility.c", 143 "components/device/silabs/si91x/wireless/sl_net/src/sl_net_si91x_callback_framework.c", 144 "components/device/silabs/si91x/wireless/sl_net/src/sl_net_si91x_integration_handler.c", 145 "components/device/silabs/si91x/wireless/sl_net/src/sl_si91x_net_credentials.c", 146 "components/device/silabs/si91x/wireless/sl_net/src/sl_si91x_net_internal_stack.c", 147 "components/device/silabs/si91x/wireless/socket/inc/sl_bsd_utility.h", 148 "components/device/silabs/si91x/wireless/socket/inc/sl_si91x_socket_callback_framework.h", 149 "components/device/silabs/si91x/wireless/socket/inc/sl_si91x_socket_constants.h", 150 "components/device/silabs/si91x/wireless/socket/inc/sl_si91x_socket_types.h", 151 "components/device/silabs/si91x/wireless/socket/inc/sl_si91x_socket_utility.h", 152 "components/device/silabs/si91x/wireless/socket/src/sl_si91x_socket_utility.c", 153 "components/device/silabs/si91x/wireless/src/sl_rsi_utility.c", 154 "components/device/silabs/si91x/wireless/src/sl_si91x_callback_framework.c", 155 "components/device/silabs/si91x/wireless/src/sl_si91x_driver.c", 156 "components/device/silabs/si91x/wireless/threading/sli_si91x_multithreaded.c", 157 "components/protocol/wifi/inc/sl_wifi_callback_framework.h", 158 "components/protocol/wifi/inc/sl_wifi_constants.h", 159 "components/protocol/wifi/inc/sl_wifi_credentials.h", 160 "components/protocol/wifi/inc/sl_wifi.h", 161 "components/protocol/wifi/inc/sl_wifi_host_interface.h", 162 "components/protocol/wifi/inc/sl_wifi_types.h", 163 "components/protocol/wifi/si91x/sl_wifi.c", 164 "components/protocol/wifi/src/sl_wifi_basic_credentials.c", 165 "components/protocol/wifi/src/sl_wifi_callback_framework.c", 166 "components/service/bsd_socket/si91x_socket/sl_si91x_socket_support.h", 167 "components/service/network_manager/inc/sl_net_constants.h", 168 "components/service/network_manager/inc/sl_net_dns.h", 169 "components/service/network_manager/inc/sl_net.h", 170 "components/service/network_manager/inc/sl_net_ip_types.h", 171 "components/service/network_manager/inc/sl_net_types.h", 172 "components/service/network_manager/inc/sl_net_wifi_types.h", 173 "components/service/network_manager/si91x/sl_net_si91x.c", 174 "components/service/network_manager/src/sl_net_basic_credentials.c", 175 "components/service/network_manager/src/sl_net_basic_profiles.c", 176 "components/service/network_manager/src/sl_net.c", 177 "components/service/network_manager/src/sl_net_credentials.c", 178 "resources/defaults/sl_net_default_values.h", 179 "resources/defaults/sl_wifi_region_db_config.h", 180] 181 182def copy_files(src: Path, dst: Path, paths: list[str]) -> None: 183 for path in paths: 184 for f in src.glob(path): 185 if not os.path.exists(f): 186 print(f"Invalid path: {f}") 187 continue 188 destfile = dst / f.relative_to(src) 189 if os.path.exists(destfile): 190 continue 191 print(f"Import {f.relative_to(src)}") 192 destfile.parent.mkdir(parents=True, exist_ok=True) 193 shutil.copy(f, destfile) 194 195if __name__ == "__main__": 196 parser = argparse.ArgumentParser() 197 parser.add_argument("sdk", type=Path, 198 help="Source WiseConnect directory") 199 parser.add_argument("--dest", "-d", type=Path, 200 help="store the result somewhere else than \"wiseconnect/\" directory") 201 parser.add_argument("--overwrite", "-f", action="store_true", 202 help="Remove DEST before to continue") 203 args = parser.parse_args() 204 205 if args.dest: 206 dst = args.dest 207 else: 208 dst = (Path(__file__).parent.parent / "wiseconnect").resolve() 209 210 if args.overwrite: 211 shutil.rmtree(dst) 212 copy_files(args.sdk, dst, paths) 213 214