Skip to content

Commit

Permalink
Adds chages to docker image and build scripts
Browse files Browse the repository at this point in the history
  • Loading branch information
brosahay committed Oct 8, 2023
1 parent f34b13c commit e030630
Show file tree
Hide file tree
Showing 12 changed files with 180 additions and 141 deletions.
14 changes: 7 additions & 7 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -243,13 +243,18 @@
[submodule "third_party/silabs/gecko_sdk"]
path = third_party/silabs/gecko_sdk
url = https://github.com/SiliconLabs/gecko_sdk.git
branch = v4.2.3
branch = v4.3.1
platforms = efr32
[submodule "third_party/silabs/wiseconnect-wifi-bt-sdk"]
path = third_party/silabs/wiseconnect-wifi-bt-sdk
url = https://github.com/SiliconLabs/wiseconnect-wifi-bt-sdk.git
branch = 2.7.1-Matter
platforms = efr32,silabs_docker
platforms = efr32
[submodule "third_party/silabs/wifi_sdk"]
path = third_party/silabs/wifi_sdk
url = https://github.com/SiliconLabs/wiseconnect
branch = v3.1.0-MatterCert1
platforms = efr32
[submodule "editline"]
path = third_party/editline/repo
url = https://github.com/troglobit/editline.git
Expand Down Expand Up @@ -314,11 +319,6 @@
url = https://github.com/asriot/ASR550X_Freertos.git
branch = matter
platforms = asr
[submodule "third_party/silabs/wifi_sdk"]
path = third_party/silabs/wifi_sdk
url = https://github.com/SiliconLabs/wiseconnect
branch = master
platforms = efr32
[submodule "third_party/st/STM32CubeWB"]
path = third_party/st/STM32CubeWB
url = https://github.com/STMicroelectronics/STM32CubeWB.git
Expand Down
6 changes: 2 additions & 4 deletions examples/platform/silabs/efr32/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -63,11 +63,9 @@ if (chip_enable_wifi) {
import("${chip_root}/src/platform/silabs/wifi_args.gni")

if (use_rs9116) {
wiseconnect_sdk_root =
"${chip_root}/third_party/silabs/wiseconnect-wifi-bt-sdk"
import("rs911x/rs911x.gni")
} else if (use_SiWx917) {
wifi_sdk_root = "${chip_root}/third_party/silabs/wifi_sdk"
}
if (use_SiWx917) {
import("rs911x/rs9117.gni")
}
if (use_wf200) {
Expand Down
6 changes: 2 additions & 4 deletions examples/platform/silabs/efr32/rs911x/rs9117.gni
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
import("//build_overrides/chip.gni")

examples_plat_dir = "${chip_root}/examples/platform/silabs/efr32"
wifi_sdk_dir = "${chip_root}/src/platform/silabs/efr32/wifi"
wifi_sdk_root = "${chip_root}/third_party/silabs/wifi_sdk"
import("//build_overrides/efr32_sdk.gni")
import("${efr32_sdk_build_root}/efr32_sdk.gni")

rs911x_src_plat = [
"${examples_plat_dir}/rs911x/sl_wifi_if.c",
Expand Down
6 changes: 2 additions & 4 deletions examples/platform/silabs/efr32/rs911x/rs911x.gni
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
import("//build_overrides/chip.gni")

examples_plat_dir = "${chip_root}/examples/platform/silabs/efr32"
wifi_sdk_dir = "${chip_root}/src/platform/silabs/efr32/wifi"
wiseconnect_sdk_root = "${chip_root}/third_party/silabs/wiseconnect-wifi-bt-sdk"
import("//build_overrides/efr32_sdk.gni")
import("${efr32_sdk_build_root}/efr32_sdk.gni")

rs911x_src_plat = [
"${examples_plat_dir}/rs911x/rsi_if.c",
Expand Down
2 changes: 1 addition & 1 deletion integrations/docker/images/base/chip-build/version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
16 : [Telink] Update Docker image (Zephyr update)
17 : [Silabs] Update Docker image (WiseConnect SDK(s) update)
15 changes: 11 additions & 4 deletions integrations/docker/images/stage-2/chip-build-efr32/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,14 @@ RUN git clone --depth=1 --branch=v4.3.1 https://github.com/SiliconLabs/gecko_sdk
rm -rf .git \
&& : # last line

# Clone Wiseconnect SDK 3.1.0-MatterCert (f84bf66)
RUN git clone --depth=1 --branch=MatterCert https://github.com/SiliconLabs/wiseconnect.git /tmp/wifi_sdk && \
cd /tmp/wifi_sdk && \
# Clone WiSeConnect Wi-Fi and Bluetooth Software 2.7.1-Matter (2be7a5b)
RUN git clone --depth=1 --branch=2.7.1-Matter https://github.com/SiliconLabs/wiseconnect-wifi-bt-sdk.git /tmp/wiseconnect-wifi-bt-sdk && \
cd /tmp/wiseconnect-wifi-bt-sdk && \
rm -rf .git \
&& : # last line

# Clone Wiseconnect SDK 3.1.0-MatterCert1 (f84bf66)
RUN git clone --depth=1 --branch=v3.1.0-MatterCert1 https://github.com/SiliconLabs/wiseconnect.git /tmp/wifi_sdk && \
rm -rf .git \
&& : # last line

Expand Down Expand Up @@ -61,9 +66,11 @@ RUN set -x \
&& : # last line

ENV GSDK_ROOT=/opt/silabs/gecko_sdk/
ENV WISECONNECT_PATH=/opt/silabs/wifi_sdk/
ENV WISECONNECT_SDK_ROOT=/opt/silabs/wiseconnect-wifi-bt-sdk/
ENV WIFI_SDK_ROOT=/opt/silabs/wifi_sdk/
ENV PATH="${PATH}:/opt/silabs/slc_cli/"

COPY --from=build /tmp/gecko_sdk /opt/silabs/gecko_sdk
COPY --from=build /tmp/wiseconnect-wifi-bt-sdk/ /opt/silabs/wiseconnect-wifi-bt-sdk/
COPY --from=build /tmp/wifi_sdk /opt/silabs/wifi_sdk
COPY --from=build /tmp/slc_cli /opt/silabs/slc_cli
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ COPY --from=bouffalolab /opt/bouffalolab_sdk /opt/bouffalolab_sdk
COPY --from=asr /opt/asr /opt/asr

COPY --from=efr32 /opt/silabs/gecko_sdk /opt/silabs/gecko_sdk
COPY --from=efr32 /opt/silabs/wiseconnect-wifi-bt-sdk /opt/silabs/wiseconnect-wifi-bt-sdk
COPY --from=efr32 /opt/silabs/wifi_sdk /opt/silabs/wifi_sdk

# Android license file "acceping" is done by writing license hashes
Expand Down Expand Up @@ -103,7 +104,8 @@ ENV ANDROID_NDK_HOME=/opt/android/android-ndk-r23c
ENV CY_TOOLS_PATHS="/opt/ModusToolbox/tools_2.4"
ENV SILABS_BOARD=BRD4161A
ENV GSDK_ROOT=/opt/silabs/gecko_sdk/
ENV WISECONNECT_PATH=/opt/silabs/wifi_sdk
ENV WISECONNECT_SDK_ROOT=/opt/silabs/wiseconnect-wifi-bt-sdk/
ENV WIFI_SDK_ROOT=/opt/silabs/wifi_sdk
ENV IDF_PATH=/opt/espressif/esp-idf/
ENV IDF_TOOLS_PATH=/opt/espressif/tools
ENV IMX_SDK_ROOT=/opt/fsl-imx-xwayland/6.1-langdale
Expand Down
7 changes: 7 additions & 0 deletions scripts/build/builders/efr32.py
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,14 @@ def __init__(self,
# case for pre-installed images), use it directly.
sdk_path = shlex.quote(os.environ['GSDK_ROOT'])
self.extra_gn_options.append(f"efr32_sdk_root=\"{sdk_path}\"")
if "GSDK_ROOT" in os.environ and not enable_wifi:
self.extra_gn_options.append(f"openthread_root=\"{sdk_path}/util/third_party/openthread\"")
if "WISECONNECT_SDK_ROOT" in os.environ and enable_rs911x:
wiseconnect_sdk_path = shlex.quote(os.environ['WISECONNECT_SDK_ROOT'])
self.extra_gn_options.append(f"wiseconnect_sdk_root=\"{wiseconnect_sdk_path}\"")
if "WIFI_SDK_ROOT" in os.environ and enable_917_soc:
wifi_sdk_path = shlex.quote(os.environ['WIFI_SDK_ROOT'])
self.extra_gn_options.append(f"wifi_sdk_root=\"{wifi_sdk_path}\"")

def GnBuildArgs(self):
return self.extra_gn_options
Expand Down
223 changes: 119 additions & 104 deletions scripts/examples/gn_silabs_example.sh
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ USE_GIT_SHA_FOR_VERSION=true
USE_SLC=false
GN_PATH=gn
GN_PATH_PROVIDED=false
SILABS_WISECONNECT_SDK_VERSION=3

DOTFILE=".gn"

Expand Down Expand Up @@ -157,112 +158,114 @@ else
shift
while [ $# -gt 0 ]; do
case $1 in
--clean)
DIR_CLEAN=true
shift
;;
--wifi)
if [ -z "$2" ]; then
echo "--wifi requires rs9116 or SiWx917 or wf200"
exit 1
fi
if [ "$2" = "rs9116" ]; then
optArgs+="use_rs9116=true "
elif [ "$2" = "SiWx917" ]; then
optArgs+="use_SiWx917=true "
elif [ "$2" = "wf200" ]; then
optArgs+="use_wf200=true "
else
echo "Wifi usage: --wifi rs9116|SiWx917|wf200"
exit 1
fi
--clean)
DIR_CLEAN=true
shift
;;
--wifi)
if [ -z "$2" ]; then
echo "--wifi requires rs9116 or SiWx917 or wf200"
exit 1
fi
if [ "$2" = "rs9116" ]; then
optArgs+="use_rs9116=true "
SILABS_WISECONNECT_SDK_VERSION=2
elif [ "$2" = "SiWx917" ]; then
optArgs+="use_SiWx917=true "
SILABS_WISECONNECT_SDK_VERSION=3
elif [ "$2" = "wf200" ]; then
optArgs+="use_wf200=true "
else
echo "Wifi usage: --wifi rs9116|SiWx917|wf200"
exit 1
fi
USE_WIFI=true
optArgs+="chip_device_platform =\"efr32\" "
shift
shift
;;
--icd)
optArgs+="chip_enable_icd_server=true chip_openthread_ftd=false "
shift
;;
--low-power)
optArgs+="chip_build_libshell=false enable_openthread_cli=false show_qr_code=false disable_lcd=true "
shift
;;
--chip_enable_wifi_ipv4)
optArgs="chip_enable_wifi_ipv4=true chip_inet_config_enable_ipv4=true "
shift
;;
--additional_data_advertising)
optArgs+="chip_enable_additional_data_advertising=true chip_enable_rotating_device_id=true "
shift
;;
--use_ot_lib)
optArgs+="use_silabs_thread_lib=true chip_openthread_target=$SILABS_THREAD_TARGET openthread_external_platform=\"""\" "
shift
;;
--use_ot_coap_lib)
optArgs+="use_silabs_thread_lib=true chip_openthread_target=$SILABS_THREAD_TARGET openthread_external_platform=\"""\" use_thread_coap_lib=true "
shift
;;
--use_chip_lwip_lib)
optArgs+="lwip_root=\""//third_party/connectedhomeip/third_party/lwip"\" "
shift
;;
# Option not to be used until ot-efr32 github is updated
# --use_ot_github_sources)
# optArgs+="openthread_root=\"//third_party/connectedhomeip/third_party/openthread/ot-efr32/openthread\" openthread_efr32_root=\"//third_party/connectedhomeip/third_party/openthread/ot-efr32/src/src\""
# shift
# ;;
--release)
optArgs+="is_debug=false disable_lcd=true chip_build_libshell=false enable_openthread_cli=false use_external_flash=false chip_logging=false silabs_log_enabled=false "
shift
;;
--docker)
optArgs+="efr32_sdk_root=\"$GSDK_ROOT\" "
USE_DOCKER=true
shift
;;
--uart_log)
optArgs+="sl_uart_log_output=true "
shift
;;

--slc_generate)
optArgs+="slc_generate=true "
USE_SLC=true
shift
;;
--slc_reuse_files)
optArgs+="slc_reuse_files=true "
USE_SLC=true
shift
;;
--gn_path)
if [ -z "$2" ]; then
echo "--gn_path requires a path to GN"
exit 1
else
GN_PATH="$2"
fi
GN_PATH_PROVIDED=true
shift
shift
;;
*"sl_matter_version_str="*)
optArgs+="$1 "
USE_GIT_SHA_FOR_VERSION=false
shift
;;
*)
if [ "$1" =~ *"use_rs9116=true"* ] || [ "$1" =~ *"use_SiWx917=true"* ] || [ "$1" =~ *"use_wf200=true"* ]; then
USE_WIFI=true
# NCP Mode so base MCU is an EFR32
optArgs+="chip_device_platform =\"efr32\" "
shift
shift
;;
--icd)
optArgs+="chip_enable_icd_server=true chip_openthread_ftd=false "
shift
;;
--low-power)
optArgs+="chip_build_libshell=false enable_openthread_cli=false show_qr_code=false disable_lcd=true "
shift
;;
--chip_enable_wifi_ipv4)
optArgs="chip_enable_wifi_ipv4=true chip_inet_config_enable_ipv4=true "
shift
;;
--additional_data_advertising)
optArgs+="chip_enable_additional_data_advertising=true chip_enable_rotating_device_id=true "
shift
;;
--use_ot_lib)
optArgs+="use_silabs_thread_lib=true chip_openthread_target=$SILABS_THREAD_TARGET openthread_external_platform=\"""\" "
shift
;;
--use_ot_coap_lib)
optArgs+="use_silabs_thread_lib=true chip_openthread_target=$SILABS_THREAD_TARGET openthread_external_platform=\"""\" use_thread_coap_lib=true "
shift
;;
--use_chip_lwip_lib)
optArgs+="lwip_root=\""//third_party/connectedhomeip/third_party/lwip"\" "
shift
;;
# Option not to be used until ot-efr32 github is updated
# --use_ot_github_sources)
# optArgs+="openthread_root=\"//third_party/connectedhomeip/third_party/openthread/ot-efr32/openthread\" openthread_efr32_root=\"//third_party/connectedhomeip/third_party/openthread/ot-efr32/src/src\""
# shift
# ;;
--release)
optArgs+="is_debug=false disable_lcd=true chip_build_libshell=false enable_openthread_cli=false use_external_flash=false chip_logging=false silabs_log_enabled=false "
shift
;;
--docker)
optArgs+="efr32_sdk_root=\"$GSDK_ROOT\" "
USE_DOCKER=true
shift
;;
--uart_log)
optArgs+="sl_uart_log_output=true "
shift
;;

--slc_generate)
optArgs+="slc_generate=true "
USE_SLC=true
shift
;;
--slc_reuse_files)
optArgs+="slc_reuse_files=true "
USE_SLC=true
shift
;;
--gn_path)
if [ -z "$2" ]; then
echo "--gn_path requires a path to GN"
exit 1
else
GN_PATH="$2"
fi
GN_PATH_PROVIDED=true
shift
shift
;;
*"sl_matter_version_str="*)
optArgs+="$1 "
USE_GIT_SHA_FOR_VERSION=false
shift
;;
*)
if [ "$1" =~ *"use_rs9116=true"* ] || [ "$1" =~ *"use_SiWx917=true"* ] || [ "$1" =~ *"use_wf200=true"* ]; then
USE_WIFI=true
# NCP Mode so base MCU is an EFR32
optArgs+="chip_device_platform =\"efr32\" "
fi
optArgs+=$1" "
shift
;;
fi
optArgs+=$1" "
shift
;;
esac
done

Expand Down Expand Up @@ -315,6 +318,18 @@ else
optArgs+="openthread_root=\"$GSDK_ROOT/util/third_party/openthread\" "
fi

if [ "$USE_DOCKER" == true ] && [ "$USE_WIFI" == true ]; then
if [ "$SILABS_WISECONNECT_SDK_VERSION" == "2" ]; then
echo "Switching WiseConnect 2 SDK ROOT"
optArgs+="wiseconnect_sdk_root=\"$WISECONNECT_SDK_ROOT\" "
fi

if [ "$SILABS_WISECONNECT_SDK_VERSION" == "3" ]; then
echo "Switching WiseConnect 3 SDK ROOT"
optArgs+="wifi_sdk_root=\"$WIFI_SDK_ROOT\" "
fi
fi

"$GN_PATH" gen --check --script-executable="$PYTHON_PATH" --fail-on-unused-args --export-compile-commands --root="$ROOT" --dotfile="$DOTFILE" --args="silabs_board=\"$SILABS_BOARD\" $optArgs" "$BUILD_DIR"

if [ "$USE_SLC" == true ]; then
Expand Down
8 changes: 8 additions & 0 deletions scripts/setup/requirements.silabs_docker.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Jinja2==3.1.2
lark==1.1.7
linkify-it-py==2.0.2
myst-parser==2.0.0
Sphinx==7.2.6
sphinx-rtd-theme==1.3.0
sphinx-tabs==3.4.1
stringcase==1.2.0
1 change: 0 additions & 1 deletion third_party/silabs/SiWx917_sdk.gni
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ import("${chip_root}/src/lib/lib.gni")
import("silabs_board.gni")

declare_args() {
wifi_sdk_root = "${chip_root}/third_party/silabs/wifi_sdk"
examples_plat_dir = "${chip_root}/examples/platform/silabs/SiWx917"

if (silabs_board == "BRD4338A") {
Expand Down
Loading

0 comments on commit e030630

Please sign in to comment.