From cb4e08d64dd1a55251a1599d2774ffe51f743eca Mon Sep 17 00:00:00 2001 From: armandomontanez Date: Mon, 25 Nov 2024 12:00:32 -0800 Subject: [PATCH] Add pico-sdk@2.1.0 and picotool@2.1.0 (#3253) Adds latest releases of the Pico SDK and Picotool to the BCR. --- modules/pico-sdk/2.1.0/MODULE.bazel | 150 +++++++++++++++++++++++++++ modules/pico-sdk/2.1.0/presubmit.yml | 14 +++ modules/pico-sdk/2.1.0/source.json | 4 + modules/pico-sdk/metadata.json | 3 +- modules/picotool/2.1.0/MODULE.bazel | 26 +++++ modules/picotool/2.1.0/presubmit.yml | 13 +++ modules/picotool/2.1.0/source.json | 4 + modules/picotool/metadata.json | 3 +- 8 files changed, 215 insertions(+), 2 deletions(-) create mode 100644 modules/pico-sdk/2.1.0/MODULE.bazel create mode 100644 modules/pico-sdk/2.1.0/presubmit.yml create mode 100644 modules/pico-sdk/2.1.0/source.json create mode 100644 modules/picotool/2.1.0/MODULE.bazel create mode 100644 modules/picotool/2.1.0/presubmit.yml create mode 100644 modules/picotool/2.1.0/source.json diff --git a/modules/pico-sdk/2.1.0/MODULE.bazel b/modules/pico-sdk/2.1.0/MODULE.bazel new file mode 100644 index 00000000000..9cdcce3b2ff --- /dev/null +++ b/modules/pico-sdk/2.1.0/MODULE.bazel @@ -0,0 +1,150 @@ +module( + name = "pico-sdk", + version = "2.1.0", +) + +bazel_dep(name = "platforms", version = "0.0.9") +bazel_dep(name = "bazel_skylib", version = "1.6.1") +bazel_dep(name = "rules_python", version = "0.36.0") +bazel_dep(name = "picotool", version = "2.1.0") +bazel_dep(name = "rules_cc", version = "0.0.10") + +http_archive = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") + +http_archive( + name = "arm_gcc_linux-aarch64", + build_file = "//bazel/toolchain:gcc_arm_none_eabi.BUILD", + sha256 = "8fd8b4a0a8d44ab2e195ccfbeef42223dfb3ede29d80f14dcf2183c34b8d199a", + strip_prefix = "arm-gnu-toolchain-13.2.Rel1-aarch64-arm-none-eabi", + url = "https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-aarch64-arm-none-eabi.tar.xz", +) + +http_archive( + name = "arm_gcc_linux-x86_64", + build_file = "//bazel/toolchain:gcc_arm_none_eabi.BUILD", + sha256 = "6cd1bbc1d9ae57312bcd169ae283153a9572bd6a8e4eeae2fedfbc33b115fdbb", + strip_prefix = "arm-gnu-toolchain-13.2.Rel1-x86_64-arm-none-eabi", + url = "https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x86_64-arm-none-eabi.tar.xz", +) + +http_archive( + name = "arm_gcc_win-x86_64", + build_file = "//bazel/toolchain:gcc_arm_none_eabi.BUILD", + sha256 = "51d933f00578aa28016c5e3c84f94403274ea7915539f8e56c13e2196437d18f", + strip_prefix = "arm-gnu-toolchain-13.2.Rel1-mingw-w64-i686-arm-none-eabi", + url = "https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-mingw-w64-i686-arm-none-eabi.zip", +) + +http_archive( + name = "arm_gcc_mac-x86_64", + build_file = "//bazel/toolchain:gcc_arm_none_eabi.BUILD", + sha256 = "075faa4f3e8eb45e59144858202351a28706f54a6ec17eedd88c9fb9412372cc", + strip_prefix = "arm-gnu-toolchain-13.2.Rel1-darwin-x86_64-arm-none-eabi", + url = "https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-darwin-x86_64-arm-none-eabi.tar.xz", +) + +http_archive( + name = "arm_gcc_mac-aarch64", + build_file = "//bazel/toolchain:gcc_arm_none_eabi.BUILD", + sha256 = "39c44f8af42695b7b871df42e346c09fee670ea8dfc11f17083e296ea2b0d279", + strip_prefix = "arm-gnu-toolchain-13.2.Rel1-darwin-arm64-arm-none-eabi", + url = "https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-darwin-arm64-arm-none-eabi.tar.xz", +) + +http_archive( + name = "clang_linux-x86_64", + build_file = "//bazel/toolchain:clang.BUILD", + sha256 = "6c599d1aba568236064c340d7813324849896d5a4e2f3fd8225a8c31bfcbf884", + type = "zip", + url = "https://chrome-infra-packages.appspot.com/dl/fuchsia/third_party/clang/linux-amd64/+/git_revision:2b0a708f41dd6291ee744704d43febc975e3d026", +) + +http_archive( + name = "clang_win-x86_64", + build_file = "//bazel/toolchain:clang.BUILD", + sha256 = "f49ba4123ee3958f2b47289d017a5b3f1ca01f82dd7a2168c45412c18101fd13", + type = "zip", + # Windows doesn't like `:` in the produced filename, so replace it with `%3A`. + url = "https://chrome-infra-packages.appspot.com/dl/fuchsia/third_party/clang/windows-amd64/+/git_revision:2b0a708f41dd6291ee744704d43febc975e3d026".replace("git_revision:", "git_revision%3A"), +) + +http_archive( + name = "clang_mac-x86_64", + build_file = "//bazel/toolchain:clang.BUILD", + sha256 = "d3516f2eb4c12d17ae77ee84c9226fbea581d4fb806910ceac4717d5adfcf748", + type = "zip", + url = "https://chrome-infra-packages.appspot.com/dl/fuchsia/third_party/clang/mac-amd64/+/git_revision:2b0a708f41dd6291ee744704d43febc975e3d026", +) + +http_archive( + name = "clang_mac-aarch64", + build_file = "//bazel/toolchain:clang.BUILD", + sha256 = "68e551f41c7e9473063b09819f6ab8ec6e7e53677f4078189656cb14dc52984b", + type = "zip", + url = "https://chrome-infra-packages.appspot.com/dl/fuchsia/third_party/clang/mac-arm64/+/git_revision:2b0a708f41dd6291ee744704d43febc975e3d026", +) + +new_git_repository = use_repo_rule("@bazel_tools//tools/build_defs/repo:git.bzl", "new_git_repository") + +# TODO: Provide tinyusb as a proper Bazel module. +new_git_repository( + name = "tinyusb", + build_file = "//src/rp2_common/tinyusb:tinyusb.BUILD", + commit = "5217cee5de4cd555018da90f9f1bcc87fb1c1d3a", # keep-in-sync-with-submodule: lib/tinyusb + remote = "https://github.com/hathach/tinyusb.git", +) + +# TODO: Provide btstack as a proper Bazel module. +new_git_repository( + name = "btstack", + build_file = "//src/rp2_common/pico_btstack:btstack.BUILD", + commit = "2b49e57bd1fae85ac32ac1f41cdb7c794de335f6", # keep-in-sync-with-submodule: lib/btstack + remote = "https://github.com/bluekitchen/btstack.git", +) + +# TODO: Provide cyw43-driver as a proper Bazel module. +new_git_repository( + name = "cyw43-driver", + build_file = "//src/rp2_common/pico_cyw43_driver:cyw43-driver.BUILD", + commit = "cf924bb04c8984675ca0fc2178f082e404e048c3", # keep-in-sync-with-submodule: lib/cyw43-driver + remote = "https://github.com/georgerobotics/cyw43-driver.git", +) + +# TODO: Provide lwip as a proper Bazel module. +new_git_repository( + name = "lwip", + build_file = "//src/rp2_common/pico_lwip:lwip.BUILD", + commit = "0a0452b2c39bdd91e252aef045c115f88f6ca773", # keep-in-sync-with-submodule: lib/lwip + remote = "https://github.com/lwip-tcpip/lwip.git", +) + +register_toolchains( + "//bazel/toolchain:linux-aarch64-rp2040", + "//bazel/toolchain:linux-aarch64-rp2350", + "//bazel/toolchain:linux-x86_64-rp2040", + "//bazel/toolchain:linux-x86_64-rp2350", + "//bazel/toolchain:win-x86_64-rp2040", + "//bazel/toolchain:win-x86_64-rp2350", + "//bazel/toolchain:mac-x86_64-rp2040", + "//bazel/toolchain:mac-x86_64-rp2350", + "//bazel/toolchain:mac-aarch64-rp2040", + "//bazel/toolchain:mac-aarch64-rp2350", + # Require users to opt-in to the Pico SDK's toolchains. + dev_dependency = True, +) + +python = use_extension("@rules_python//python/extensions:python.bzl", "python") +python.toolchain( + configure_coverage_tool = True, + python_version = "3.9", +) + +use_repo(python, "pythons_hub") +register_toolchains( + "@pythons_hub//:all", + dev_dependency = True, +) +register_toolchains( + "@rules_python//python/runtime_env_toolchains:all", + dev_dependency = True, +) diff --git a/modules/pico-sdk/2.1.0/presubmit.yml b/modules/pico-sdk/2.1.0/presubmit.yml new file mode 100644 index 00000000000..396ef501122 --- /dev/null +++ b/modules/pico-sdk/2.1.0/presubmit.yml @@ -0,0 +1,14 @@ +matrix: + platform: + - ubuntu2004 + - macos + - macos_arm64 + bazel: + - 7.x +tasks: + verify_targets: + name: Verify build targets + platform: ${{ platform }} + bazel: ${{ bazel }} + build_targets: + - '@pico-sdk//src/host/pico_stdlib' diff --git a/modules/pico-sdk/2.1.0/source.json b/modules/pico-sdk/2.1.0/source.json new file mode 100644 index 00000000000..5714f9f135a --- /dev/null +++ b/modules/pico-sdk/2.1.0/source.json @@ -0,0 +1,4 @@ +{ + "url": "https://github.com/raspberrypi/pico-sdk/releases/download/2.1.0/pico-sdk-2.1.0.tar.gz", + "integrity": "sha256-kz4LgcCK5OIX1gGc/j44i6M/4W/vrlKo04cj+UCOReU=" +} diff --git a/modules/pico-sdk/metadata.json b/modules/pico-sdk/metadata.json index 0e6993d7655..74e2d6d0e10 100644 --- a/modules/pico-sdk/metadata.json +++ b/modules/pico-sdk/metadata.json @@ -23,7 +23,8 @@ ], "versions": [ "1.6.0-rc1", - "2.0.0" + "2.0.0", + "2.1.0" ], "yanked_versions": {} } diff --git a/modules/picotool/2.1.0/MODULE.bazel b/modules/picotool/2.1.0/MODULE.bazel new file mode 100644 index 00000000000..eedd6674704 --- /dev/null +++ b/modules/picotool/2.1.0/MODULE.bazel @@ -0,0 +1,26 @@ +module( + name = "picotool", + version = "2.1.0", +) + +bazel_dep(name = "rules_libusb", version = "0.1.0-rc1") +bazel_dep(name = "pico-sdk", version = "2.1.0") +bazel_dep(name = "rules_cc", version = "0.0.9") +bazel_dep(name = "bazel_skylib", version = "1.6.1") +bazel_dep(name = "rules_python", version = "0.22.1") +bazel_dep(name = "platforms", version = "0.0.9") + +libusb = use_extension("@rules_libusb//:extensions.bzl", "libusb") +libusb.source_release(min_version = "1.0.22") +use_repo(libusb, "libusb") + +http_archive = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") + +# TODO: Upstream a bazel build +http_archive( + name = "mbedtls", + build_file = "//bazel:mbedtls.BUILD", + sha256 = "241c68402cef653e586be3ce28d57da24598eb0df13fcdea9d99bfce58717132", + strip_prefix = "mbedtls-2.28.8", + url = "https://github.com/Mbed-TLS/mbedtls/releases/download/v2.28.8/mbedtls-2.28.8.tar.bz2", +) diff --git a/modules/picotool/2.1.0/presubmit.yml b/modules/picotool/2.1.0/presubmit.yml new file mode 100644 index 00000000000..6a98e5ed369 --- /dev/null +++ b/modules/picotool/2.1.0/presubmit.yml @@ -0,0 +1,13 @@ +matrix: + platform: + - macos + - macos_arm64 + bazel: + - 7.x +tasks: + verify_targets: + name: Verify build targets + platform: ${{ platform }} + bazel: ${{ bazel }} + build_targets: + - '@picotool' diff --git a/modules/picotool/2.1.0/source.json b/modules/picotool/2.1.0/source.json new file mode 100644 index 00000000000..93396d3699c --- /dev/null +++ b/modules/picotool/2.1.0/source.json @@ -0,0 +1,4 @@ +{ + "url": "https://github.com/raspberrypi/picotool/releases/download/2.1.0/picotool-2.1.0.tar.gz", + "integrity": "sha256-WQvJSLOiuFB8ez0ufKEzrnADa5srUKAHV/N092LmSfo=" +} diff --git a/modules/picotool/metadata.json b/modules/picotool/metadata.json index 37658035012..71fa7b8f864 100644 --- a/modules/picotool/metadata.json +++ b/modules/picotool/metadata.json @@ -17,7 +17,8 @@ ], "versions": [ "1.1.3-rc1", - "2.0.0" + "2.0.0", + "2.1.0" ], "yanked_versions": {} }