zephyr: Build hello world for robokit1
To build from examples/hello_dts:
bazelisk clean && bazelisk build :app --platforms=:robokit1
BUG=b/380001331
Change-Id: Id3672debf2cb3024df5bb1c32caf366cfd692243
Reviewed-on: https://pigweed-review.googlesource.com/c/zephyr/zephyr-bazel/+/235635
Commit-Queue: Auto-Submit <auto-submit@pigweed-service-accounts.iam.gserviceaccount.com>
Reviewed-by: Ted Pudlik <tpudlik@google.com>
Presubmit-Verified: CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com>
Pigweed-Auto-Submit: Yuval Peress <peress@google.com>
Lint: Lint 🤖 <android-build-ayeaye@system.gserviceaccount.com>
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..9a5118a
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,5 @@
+{
+ "example": "hello_dts",
+ "platform": "robokit1",
+ "target": "app"
+}
\ No newline at end of file
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
new file mode 100644
index 0000000..99f828c
--- /dev/null
+++ b/.vscode/tasks.json
@@ -0,0 +1,55 @@
+{
+ // See https://go.microsoft.com/fwlink/?LinkId=733558
+ // for the documentation about the tasks.json format
+ "version": "2.0.0",
+ "tasks": [
+ {
+ "label": "Clean",
+ "type": "shell",
+ "command": "bazelisk clean",
+ "options": {
+ "cwd": "${workspaceFolder:pw_zephyr_bazel}/examples/${config:example}"
+ }
+ },
+ {
+ "label": "Build local",
+ "type": "shell",
+ "command": "bazelisk build :${config:target} --platforms=:${config:platform} --sandbox_debug --verbose_failures -s --override_module=pigweed=${workspaceFolder:pigweed} --override_repository=pigweed++_repo_rules+zephyr_toolchain=${userHome}/bin/zephyr-sdk-0.17.0",
+ "options": {
+ "cwd": "${workspaceFolder:pw_zephyr_bazel}/examples/${config:example}"
+ },
+ "dependsOn": [
+ "Clean"
+ ],
+ "presentation": {
+ "echo": true,
+ "reveal": "always",
+ "focus": false,
+ "panel": "shared",
+ "showReuseMessage": true,
+ "clear": false
+ },
+ "problemMatcher": []
+ },
+ {
+ "label": "Build",
+ "type": "shell",
+ "command": "bazelisk build :${config:target} --platforms=:${config:platform} --sandbox_debug --verbose_failures -s",
+ "options": {
+ "cwd": "${workspaceFolder:pw_zephyr_bazel}/examples/${config:example}"
+ },
+ "dependsOn": [
+ "Clean"
+ ],
+ "presentation": {
+ "echo": true,
+ "reveal": "always",
+ "focus": false,
+ "panel": "shared",
+ "showReuseMessage": true,
+ "clear": false
+ },
+ "problemMatcher": []
+ }
+ ]
+}
diff --git a/BUILD.bazel b/BUILD.bazel
index 90d9741..9d6c871 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -12,23 +12,143 @@
# License for the specific language governing permissions and limitations under
# the License.
+# load("@bazel_skylib//rules:common_settings.bzl", "label_flag")
load("@rules_cc//cc:defs.bzl", "cc_library")
+load(":defs.bzl", "syscall_library_files", "zephyr_offset_header")
package(default_visibility = ["//visibility:public"])
exports_files(glob(["**"]))
cc_library(
+ name = "syscall_tracing",
+ hdrs = [
+ "//include:zephyr/llext/symbol.h",
+ "//include:zephyr/sys/__assert.h",
+ "//include:zephyr/sys/iterable_sections.h",
+ "//include:zephyr/toolchain.h",
+ "//include:zephyr/toolchain/common.h",
+ "//include:zephyr/toolchain/gcc.h",
+ "//include:zephyr/tracing/tracing_syscall.h",
+ ],
+ includes = ["include"],
+)
+
+syscall_library_files(
+ name = "syscall_files",
+ hdrs = [
+ "//include:zephyr/cache.h",
+ "//include:zephyr/device.h",
+ "//include:zephyr/drivers/counter.h",
+ "//include:zephyr/drivers/entropy.h",
+ "//include:zephyr/drivers/gpio.h",
+ "//include:zephyr/drivers/uart.h",
+ "//include:zephyr/drivers/watchdog.h",
+ "//include:zephyr/kernel.h",
+ "//include:zephyr/logging/log_ctrl.h",
+ "//include:zephyr/logging/log_msg.h",
+ "//include:zephyr/random/random.h",
+ "//include:zephyr/sys/kobject.h",
+ "//include:zephyr/sys/libc-hooks.h",
+ ],
+ # deps = [
+ # ":syscall_tracing",
+ # "//kernel",
+ # ],
+)
+
+cc_library(
+ name = "syscall_list",
+ hdrs = [":syscall_files"],
+ includes = ["include/generated"],
+)
+
+label_flag(
+ name = "dts_cc_library",
+ build_setting_default = "@pigweed//pw_build:unspecified_backend",
+)
+
+label_flag(
+ name = "autoconf_library",
+ build_setting_default = "@pigweed//pw_build:unspecified_backend",
+)
+
+label_flag(
+ name = "autoconf_file",
+ build_setting_default = "@pigweed//pw_build:unspecified_backend",
+)
+
+label_flag(
+ name = "soc",
+ build_setting_default = "@pigweed//pw_build:unspecified_backend",
+)
+
+label_flag(
+ name = "soc_linkerscript",
+ build_setting_default = "@pigweed//pw_build:unspecified_backend",
+)
+
+label_flag(
+ name = "offsets_lib",
+ build_setting_default = "@pigweed//pw_build:unspecified_backend",
+)
+
+zephyr_offset_header(
+ name = "offsets_header",
+ lib = ":offsets_lib",
+ tool = "//scripts/build:gen_offset_header",
+ output = "zephyr/offsets.h"
+)
+
+cc_library(
+ name = "offsets_header_lib",
+ hdrs = [":offsets_header"],
+ includes = ["."],
+)
+
+cc_library(
name = "zephyr",
hdrs = [
- "//:kernel/include/offsets_short.h",
"//include:core",
+ "//kernel:include/offsets_short.h",
],
includes = [
"dts",
"dts/common",
"include",
],
+ deps = [
+ ],
)
-exports_files(["defs.bzl"])
+cc_library(
+ name = "cortex_m",
+ hdrs = [
+ "//arch/arm:cortex_m",
+ "//include:zephyr/arch/arm/cortex_m/arm_mpu_mem_cfg.h",
+ "//include:zephyr/arch/arm/cortex_m/cpu.h",
+ "//include:zephyr/arch/arm/cortex_m/exception.h",
+ "//include:zephyr/arch/arm/cortex_m/fpu.h",
+ "//include:zephyr/arch/arm/cortex_m/memory_map.h",
+ "//include:zephyr/arch/arm/cortex_m/nvic.h",
+ "//include:zephyr/arch/arm/mpu/arm_mpu.h",
+ "//include:zephyr/arch/arm/mpu/arm_mpu_v7m.h",
+ ],
+ copts = ["-include generated/zephyr/autoconf.h"],
+ includes = [
+ "arch/arm/include",
+ "include",
+ ],
+ deps = [
+ "//:autoconf_library",
+ "//:dts_cc_library",
+ "//:zephyr",
+ "//modules/cmsis",
+ "@cmsis//:core",
+ ],
+)
+
+exports_files([
+ "cc.bzl",
+ "defs.bzl",
+])
diff --git a/MODULE.bazel b/MODULE.bazel
index 00bb183..94ef71f 100644
--- a/MODULE.bazel
+++ b/MODULE.bazel
@@ -4,3 +4,7 @@
#
# For more details, please check https://github.com/bazelbuild/bazel/issues/18958
###############################################################################
+module(
+ name = "zephyr-bazel",
+ version = "0.0.1",
+)
diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock
index ed98fda..15453fc 100644
--- a/MODULE.bazel.lock
+++ b/MODULE.bazel.lock
@@ -1,64 +1,161 @@
{
- "lockFileVersion": 11,
+ "lockFileVersion": 18,
"registryFileHashes": {
"https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497",
"https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2",
"https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589",
- "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/source.json": "7e3a9adf473e9af076ae485ed649d5641ad50ec5c11718103f34de03170d94ad",
- "https://bcr.bazel.build/modules/apple_support/1.5.0/MODULE.bazel": "50341a62efbc483e8a2a6aec30994a58749bd7b885e18dd96aa8c33031e558ef",
- "https://bcr.bazel.build/modules/apple_support/1.5.0/source.json": "eb98a7627c0bc486b57f598ad8da50f6625d974c8f723e9ea71bd39f709c9862",
+ "https://bcr.bazel.build/modules/abseil-cpp/20230125.1/MODULE.bazel": "89047429cb0207707b2dface14ba7f8df85273d484c2572755be4bab7ce9c3a0",
+ "https://bcr.bazel.build/modules/abseil-cpp/20230802.0.bcr.1/MODULE.bazel": "1c8cec495288dccd14fdae6e3f95f772c1c91857047a098fad772034264cc8cb",
+ "https://bcr.bazel.build/modules/abseil-cpp/20230802.0/MODULE.bazel": "d253ae36a8bd9ee3c5955384096ccb6baf16a1b1e93e858370da0a3b94f77c16",
+ "https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915",
+ "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/MODULE.bazel": "37bcdb4440fbb61df6a1c296ae01b327f19e9bb521f9b8e26ec854b6f97309ed",
+ "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/source.json": "9be551b8d4e3ef76875c0d744b5d6a504a27e3ae67bc6b28f46415fd2d2957da",
+ "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd",
"https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8",
- "https://bcr.bazel.build/modules/bazel_features/1.11.0/source.json": "c9320aa53cd1c441d24bd6b716da087ad7e4ff0d9742a9884587596edfe53015",
+ "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d",
+ "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d",
+ "https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a",
+ "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58",
+ "https://bcr.bazel.build/modules/bazel_features/1.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b",
+ "https://bcr.bazel.build/modules/bazel_features/1.21.0/source.json": "3e8379efaaef53ce35b7b8ba419df829315a880cb0a030e5bb45c96d6d5ecb5f",
+ "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7",
+ "https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a",
"https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8",
+ "https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e",
+ "https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686",
"https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a",
"https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5",
+ "https://bcr.bazel.build/modules/bazel_skylib/1.4.1/MODULE.bazel": "a0dcb779424be33100dcae821e9e27e4f2901d9dfd5333efe5ac6a8d7ab75e1d",
+ "https://bcr.bazel.build/modules/bazel_skylib/1.4.2/MODULE.bazel": "3bd40978e7a1fac911d5989e6b09d8f64921865a45822d8b09e815eaa726a651",
+ "https://bcr.bazel.build/modules/bazel_skylib/1.5.0/MODULE.bazel": "32880f5e2945ce6a03d1fbd588e9198c0a959bb42297b2cfaf1685b7bc32e138",
"https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917",
- "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/source.json": "082ed5f9837901fada8c68c2f3ddc958bb22b6d654f71dd73f3df30d45d4b749",
+ "https://bcr.bazel.build/modules/bazel_skylib/1.7.0/MODULE.bazel": "0db596f4563de7938de764cc8deeabec291f55e8ec15299718b93c4423e9796d",
+ "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/MODULE.bazel": "3120d80c5861aa616222ec015332e5f8d3171e062e3e804a2a0253e1be26e59b",
+ "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/source.json": "f121b43eeefc7c29efbd51b83d08631e2347297c95aac9764a701f2a6a2bb953",
"https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84",
"https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8",
+ "https://bcr.bazel.build/modules/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb",
"https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4",
- "https://bcr.bazel.build/modules/googletest/1.11.0/source.json": "c73d9ef4268c91bd0c1cd88f1f9dfa08e814b1dbe89b5f594a9f08ba0244d206",
+ "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6",
+ "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/source.json": "41e9e129f80d8c8bf103a7acc337b76e54fad1214ac0a7084bf24f4cd924b8b4",
+ "https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f",
+ "https://bcr.bazel.build/modules/jsoncpp/1.9.5/MODULE.bazel": "31271aedc59e815656f5736f282bb7509a97c7ecb43e927ac1a37966e0578075",
+ "https://bcr.bazel.build/modules/jsoncpp/1.9.5/source.json": "4108ee5085dd2885a341c7fab149429db457b3169b86eb081fa245eadf69169d",
+ "https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902",
+ "https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5",
+ "https://bcr.bazel.build/modules/platforms/0.0.10/source.json": "f22828ff4cf021a6b577f1bf6341cb9dcd7965092a439f64fc1bb3b7a5ae4bd5",
"https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee",
"https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37",
"https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615",
"https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814",
- "https://bcr.bazel.build/modules/platforms/0.0.9/MODULE.bazel": "4a87a60c927b56ddd67db50c89acaa62f4ce2a1d2149ccb63ffd871d5ce29ebc",
- "https://bcr.bazel.build/modules/platforms/0.0.9/source.json": "cd74d854bf16a9e002fb2ca7b1a421f4403cda29f824a765acd3a8c56f8d43e6",
+ "https://bcr.bazel.build/modules/platforms/0.0.8/MODULE.bazel": "9f142c03e348f6d263719f5074b21ef3adf0b139ee4c5133e2aa35664da9eb2d",
"https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7",
- "https://bcr.bazel.build/modules/protobuf/21.7/source.json": "bbe500720421e582ff2d18b0802464205138c06056f443184de39fbb8187b09b",
+ "https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c",
+ "https://bcr.bazel.build/modules/protobuf/27.1/MODULE.bazel": "703a7b614728bb06647f965264967a8ef1c39e09e8f167b3ca0bb1fd80449c0d",
+ "https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df",
+ "https://bcr.bazel.build/modules/protobuf/29.0/MODULE.bazel": "319dc8bf4c679ff87e71b1ccfb5a6e90a6dbc4693501d471f48662ac46d04e4e",
+ "https://bcr.bazel.build/modules/protobuf/29.0/source.json": "b857f93c796750eef95f0d61ee378f3420d00ee1dd38627b27193aa482f4f981",
"https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0",
- "https://bcr.bazel.build/modules/protobuf/3.19.6/MODULE.bazel": "9233edc5e1f2ee276a60de3eaa47ac4132302ef9643238f23128fea53ea12858",
+ "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e",
+ "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/source.json": "be4789e951dd5301282729fe3d4938995dc4c1a81c2ff150afc9f1b0504c6022",
+ "https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel": "cb3d511531b16cfc78a225a9e2136007a48cf8a677e4264baeab57fe78a80206",
+ "https://bcr.bazel.build/modules/re2/2023-09-01/source.json": "e044ce89c2883cd957a2969a43e79f7752f9656f6b20050b62f90ede21ec6eb4",
+ "https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8",
+ "https://bcr.bazel.build/modules/rules_android/0.1.1/source.json": "e6986b41626ee10bdc864937ffb6d6bf275bb5b9c65120e6137d56e6331f089e",
"https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647",
+ "https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002",
+ "https://bcr.bazel.build/modules/rules_cc/0.0.13/MODULE.bazel": "0e8529ed7b323dad0775ff924d2ae5af7640b23553dfcd4d34344c7e7a867191",
+ "https://bcr.bazel.build/modules/rules_cc/0.0.14/MODULE.bazel": "5e343a3aac88b8d7af3b1b6d2093b55c347b8eefc2e7d1442f7a02dc8fea48ac",
+ "https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc",
+ "https://bcr.bazel.build/modules/rules_cc/0.0.16/MODULE.bazel": "7661303b8fc1b4d7f532e54e9d6565771fea666fbdf839e0a86affcd02defe87",
+ "https://bcr.bazel.build/modules/rules_cc/0.0.17/MODULE.bazel": "2ae1d8f4238ec67d7185d8861cb0a2cdf4bc608697c331b95bf990e69b62e64a",
+ "https://bcr.bazel.build/modules/rules_cc/0.0.17/source.json": "4db99b3f55c90ab28d14552aa0632533e3e8e5e9aea0f5c24ac0014282c2a7c5",
"https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c",
+ "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f",
"https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e",
"https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5",
- "https://bcr.bazel.build/modules/rules_cc/0.0.9/source.json": "1f1ba6fea244b616de4a554a0f4983c91a9301640c8fe0dd1d410254115c8430",
+ "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6",
+ "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8",
+ "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/source.json": "c8b1e2c717646f1702290959a3302a178fb639d987ab61d548105019f11e527e",
"https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74",
+ "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86",
+ "https://bcr.bazel.build/modules/rules_java/6.0.0/MODULE.bazel": "8a43b7df601a7ec1af61d79345c17b31ea1fedc6711fd4abfd013ea612978e39",
+ "https://bcr.bazel.build/modules/rules_java/6.4.0/MODULE.bazel": "e986a9fe25aeaa84ac17ca093ef13a4637f6107375f64667a15999f77db6c8f6",
+ "https://bcr.bazel.build/modules/rules_java/6.5.2/MODULE.bazel": "1d440d262d0e08453fa0c4d8f699ba81609ed0e9a9a0f02cd10b3e7942e61e31",
+ "https://bcr.bazel.build/modules/rules_java/7.10.0/MODULE.bazel": "530c3beb3067e870561739f1144329a21c851ff771cd752a49e06e3dc9c2e71a",
+ "https://bcr.bazel.build/modules/rules_java/7.12.2/MODULE.bazel": "579c505165ee757a4280ef83cda0150eea193eed3bef50b1004ba88b99da6de6",
+ "https://bcr.bazel.build/modules/rules_java/7.2.0/MODULE.bazel": "06c0334c9be61e6cef2c8c84a7800cef502063269a5af25ceb100b192453d4ab",
+ "https://bcr.bazel.build/modules/rules_java/7.3.2/MODULE.bazel": "50dece891cfdf1741ea230d001aa9c14398062f2b7c066470accace78e412bc2",
"https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe",
- "https://bcr.bazel.build/modules/rules_java/7.6.1/source.json": "8f3f3076554e1558e8e468b2232991c510ecbcbed9e6f8c06ac31c93bcf38362",
+ "https://bcr.bazel.build/modules/rules_java/8.6.1/MODULE.bazel": "f4808e2ab5b0197f094cabce9f4b006a27766beb6a9975931da07099560ca9c2",
+ "https://bcr.bazel.build/modules/rules_java/8.6.1/source.json": "f18d9ad3c4c54945bf422ad584fa6c5ca5b3116ff55a5b1bc77e5c1210be5960",
"https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7",
- "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/source.json": "a075731e1b46bc8425098512d038d416e966ab19684a10a34f4741295642fc35",
+ "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909",
+ "https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036",
+ "https://bcr.bazel.build/modules/rules_jvm_external/5.3/MODULE.bazel": "bf93870767689637164657731849fb887ad086739bd5d360d90007a581d5527d",
+ "https://bcr.bazel.build/modules/rules_jvm_external/6.1/MODULE.bazel": "75b5fec090dbd46cf9b7d8ea08cf84a0472d92ba3585b476f44c326eda8059c4",
+ "https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0",
+ "https://bcr.bazel.build/modules/rules_jvm_external/6.3/source.json": "6f5f5a5a4419ae4e37c35a5bb0a6ae657ed40b7abc5a5189111b47fcebe43197",
+ "https://bcr.bazel.build/modules/rules_kotlin/1.9.0/MODULE.bazel": "ef85697305025e5a61f395d4eaede272a5393cee479ace6686dba707de804d59",
+ "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3",
+ "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5",
"https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0",
"https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d",
- "https://bcr.bazel.build/modules/rules_license/0.0.7/source.json": "355cc5737a0f294e560d52b1b7a6492d4fff2caf0bef1a315df5a298fca2d34a",
+ "https://bcr.bazel.build/modules/rules_license/1.0.0/MODULE.bazel": "a7fda60eefdf3d8c827262ba499957e4df06f659330bbe6cdbdb975b768bb65c",
+ "https://bcr.bazel.build/modules/rules_license/1.0.0/source.json": "a52c89e54cc311196e478f8382df91c15f7a2bfdf4c6cd0e2675cc2ff0b56efb",
"https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc",
- "https://bcr.bazel.build/modules/rules_pkg/0.7.0/source.json": "c2557066e0c0342223ba592510ad3d812d4963b9024831f7f66fd0584dd8c66c",
+ "https://bcr.bazel.build/modules/rules_pkg/1.0.1/MODULE.bazel": "5b1df97dbc29623bccdf2b0dcd0f5cb08e2f2c9050aab1092fd39a41e82686ff",
+ "https://bcr.bazel.build/modules/rules_pkg/1.0.1/source.json": "bd82e5d7b9ce2d31e380dd9f50c111d678c3bdaca190cb76b0e1c71b05e1ba8a",
"https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06",
"https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7",
- "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/source.json": "d57902c052424dfda0e71646cb12668d39c4620ee0544294d9d941e7d12bc3a9",
+ "https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73",
+ "https://bcr.bazel.build/modules/rules_proto/7.0.2/MODULE.bazel": "bf81793bd6d2ad89a37a40693e56c61b0ee30f7a7fdbaf3eabbf5f39de47dea2",
+ "https://bcr.bazel.build/modules/rules_proto/7.0.2/source.json": "1e5e7260ae32ef4f2b52fd1d0de8d03b606a44c91b694d2f1afb1d3b28a48ce1",
"https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f",
- "https://bcr.bazel.build/modules/rules_python/0.22.1/MODULE.bazel": "26114f0c0b5e93018c0c066d6673f1a2c3737c7e90af95eff30cfee38d0bbac7",
- "https://bcr.bazel.build/modules/rules_python/0.22.1/source.json": "57226905e783bae7c37c2dd662be078728e48fa28ee4324a7eabcafb5a43d014",
+ "https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300",
+ "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel": "72f1506841c920a1afec76975b35312410eea3aa7b63267436bfb1dd91d2d382",
+ "https://bcr.bazel.build/modules/rules_python/0.28.0/MODULE.bazel": "cba2573d870babc976664a912539b320cbaa7114cd3e8f053c720171cde331ed",
+ "https://bcr.bazel.build/modules/rules_python/0.31.0/MODULE.bazel": "93a43dc47ee570e6ec9f5779b2e64c1476a6ce921c48cc9a1678a91dd5f8fd58",
"https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c",
+ "https://bcr.bazel.build/modules/rules_python/0.40.0/MODULE.bazel": "9d1a3cd88ed7d8e39583d9ffe56ae8a244f67783ae89b60caafc9f5cf318ada7",
+ "https://bcr.bazel.build/modules/rules_python/0.40.0/source.json": "939d4bd2e3110f27bfb360292986bb79fd8dcefb874358ccd6cdaa7bda029320",
+ "https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c",
+ "https://bcr.bazel.build/modules/rules_shell/0.2.0/source.json": "7f27af3c28037d9701487c4744b5448d26537cc66cdef0d8df7ae85411f8de95",
"https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8",
- "https://bcr.bazel.build/modules/stardoc/0.5.1/source.json": "a96f95e02123320aa015b956f29c00cb818fa891ef823d55148e1a362caacf29",
+ "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c",
+ "https://bcr.bazel.build/modules/stardoc/0.5.6/MODULE.bazel": "c43dabc564990eeab55e25ed61c07a1aadafe9ece96a4efabb3f8bf9063b71ef",
+ "https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c",
+ "https://bcr.bazel.build/modules/stardoc/0.7.1/MODULE.bazel": "3548faea4ee5dda5580f9af150e79d0f6aea934fc60c1cc50f4efdd9420759e7",
+ "https://bcr.bazel.build/modules/stardoc/0.7.1/source.json": "b6500ffcd7b48cd72c29bb67bcac781e12701cc0d6d55d266a652583cfcdab01",
"https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43",
- "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/source.json": "f1ef7d3f9e0e26d4b23d1c39b5f5de71f584dd7d1b4ef83d9bbba6ec7a6a6459",
"https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0",
- "https://bcr.bazel.build/modules/zlib/1.2.12/MODULE.bazel": "3b1a8834ada2a883674be8cbd36ede1b6ec481477ada359cd2d3ddc562340b27",
- "https://bcr.bazel.build/modules/zlib/1.3/MODULE.bazel": "6a9c02f19a24dcedb05572b2381446e27c272cd383aed11d41d99da9e3167a72",
- "https://bcr.bazel.build/modules/zlib/1.3/source.json": "b6b43d0737af846022636e6e255fd4a96fee0d34f08f3830e6e0bac51465c37c"
+ "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.3/MODULE.bazel": "af322bc08976524477c79d1e45e241b6efbeb918c497e8840b8ab116802dda79",
+ "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.3/source.json": "2be409ac3c7601245958cd4fcdff4288be79ed23bd690b4b951f500d54ee6e7d",
+ "https://bcr.bazel.build/modules/zlib/1.3.1/MODULE.bazel": "751c9940dcfe869f5f7274e1295422a34623555916eb98c174c1e945594bf198"
},
"selectedYankedVersions": {},
- "moduleExtensions": {}
+ "moduleExtensions": {
+ "@@rules_java+//java:rules_java_deps.bzl%compatibility_proxy": {
+ "general": {
+ "bzlTransitiveDigest": "84xJEZ1jnXXwo8BXMprvBm++rRt4jsTu9liBxz0ivps=",
+ "usagesDigest": "jTQDdLDxsS43zuRmg1faAjIEPWdLAbDAowI1pInQSoo=",
+ "recordedFileInputs": {},
+ "recordedDirentsInputs": {},
+ "envVariables": {},
+ "generatedRepoSpecs": {
+ "compatibility_proxy": {
+ "repoRuleId": "@@rules_java+//java:rules_java_deps.bzl%_compatibility_proxy_repo_rule",
+ "attributes": {}
+ }
+ },
+ "recordedRepoMappingEntries": [
+ [
+ "rules_java+",
+ "bazel_tools",
+ "bazel_tools"
+ ]
+ ]
+ }
+ }
+ }
}
diff --git a/arch/arm/BUILD.bazel b/arch/arm/BUILD.bazel
new file mode 100644
index 0000000..02f1f09
--- /dev/null
+++ b/arch/arm/BUILD.bazel
@@ -0,0 +1,49 @@
+# Copyright 2024 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+package(default_visibility = ["//visibility:public"])
+
+cc_library(
+ name = "offsets",
+ hdrs = [
+ "//arch/arm/core:offsets/offsets_aarch32.c",
+ ],
+ srcs = [
+ "//arch/arm/core:offsets/offsets.c",
+ ],
+ includes = [
+ "core/offsets",
+ ],
+ copts = ["-include generated/zephyr/autoconf.h"],
+ alwayslink = True,
+ deps = [
+ "//:zephyr",
+ "//:autoconf_library",
+ "//:dts_cc_library",
+ "//:soc",
+ "//kernel:offset",
+ "//:cortex_m",
+ "//modules/cmsis",
+ "@cmsis//:core",
+ ]
+)
+
+filegroup(
+ name = "cortex_m",
+ srcs = [
+ "include/kernel_arch_data.h",
+ "include/kernel_arch_func.h",
+ "include/offsets_short_arch.h",
+ ] + glob(["include/cortex_m/**/*.h"]),
+)
\ No newline at end of file
diff --git a/arch/arm/core/BUILD.bazel b/arch/arm/core/BUILD.bazel
new file mode 100644
index 0000000..d4c5c11
--- /dev/null
+++ b/arch/arm/core/BUILD.bazel
@@ -0,0 +1,50 @@
+# Copyright 2025 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+load("//:cc.bzl", "zephyr_cc_library")
+
+package(default_visibility = ["//visibility:public"])
+
+zephyr_cc_library(
+ name = "core_asm",
+ srcs = [
+ "nmi_on_reset.S",
+ ],
+ local_defines = [
+ "_ASMLANGUAGE",
+ ],
+ deps = [
+ "//lib/libc:common",
+ ],
+)
+
+zephyr_cc_library(
+ name = "core",
+ srcs = [
+ "__aeabi_atexit.c",
+ "fatal.c",
+ "nmi.c",
+ "tls.c", # CONFIG_THREAD_LOCAL_STORAGE
+ ],
+ deps = [
+ ":core_asm",
+ "//arch/arm/core/mpu", # CONFIG_ARM_MPU
+ "//kernel",
+ ],
+)
+
+exports_files([
+ "offsets/offsets_aarch32.c",
+ "offsets/offsets.c",
+])
diff --git a/arch/arm/core/cortex_m/BUILD.bazel b/arch/arm/core/cortex_m/BUILD.bazel
new file mode 100644
index 0000000..e2e5700
--- /dev/null
+++ b/arch/arm/core/cortex_m/BUILD.bazel
@@ -0,0 +1,73 @@
+# Copyright 2025 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+load("//:cc.bzl", "zephyr_cc_library")
+
+package(default_visibility = ["//visibility:public"])
+
+genrule(
+ name = "prepend_asm",
+ srcs = [
+ "__aeabi_read_tp.S", # CONFIG_THREAD_LOCAL_STORAGE
+ "fault_s.S",
+ "reset.S",
+ "swap_helper.S",
+ "vector_table.S",
+ ],
+ outs = [
+ "__aeabi_read_tp.out.S", # CONFIG_THREAD_LOCAL_STORAGE
+ "fault_s.out.S",
+ "reset.out.S",
+ "swap_helper.out.S",
+ "vector_table.out.S",
+ ],
+ cmd = """
+ srcs_array=($(SRCS))
+ outs_array=($(OUTS))
+ for i in $$(seq 0 $$(( $${#srcs_array[@]} - 1 )) ); do
+ input_file=$${srcs_array[$${i}]}
+ output_file=$${outs_array[$${i}]}
+ echo "#define _ASMLANGUAGE" > $${output_file}
+ cat $${input_file} >> $${output_file}
+ done
+ """,
+)
+
+zephyr_cc_library(
+ name = "cortex_m",
+ srcs = [
+ "cpu_idle.c",
+ "exc_exit.c",
+ "fault.c",
+ "fpu.c",
+ "irq_init.c", # !CONFIG_ARM_CUSTOM_INTERRUPT_CONTROLLER
+ "irq_manage.c",
+ "isr_wrapper.c", # CONFIG_GEN_SW_ISR_TABLE
+ "prep_c.c",
+ "scb.c",
+ "thread.c",
+ "thread_abort.c",
+ ":prepend_asm",
+ ],
+ hdrs = ["vector_table.h"],
+ includes = ["."],
+ deps = [
+ "//arch/arm/core",
+ "//kernel",
+ "//lib/os",
+ "//modules/cmsis",
+ "//subsys/mem_mgmt",
+ ],
+ alwayslink = True,
+)
diff --git a/arch/arm/core/mpu/BUILD.bazel b/arch/arm/core/mpu/BUILD.bazel
new file mode 100644
index 0000000..dd15a3d
--- /dev/null
+++ b/arch/arm/core/mpu/BUILD.bazel
@@ -0,0 +1,40 @@
+# Copyright 2025 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+load("//:cc.bzl", "zephyr_cc_library")
+
+package(default_visibility = ["//visibility:public"])
+
+zephyr_cc_library(
+ name = "mpu",
+ srcs = [
+ "arm_core_mpu.c",
+ "arm_mpu.c", # CONFIG_CPU_HAS_ARM_MPU
+ "arm_mpu_regions.c", # CONFIG_CPU_CORTEX_M && CONFIG_CPU_HAS_ARM_MPU && !CONFIG_CPU_HAS_CUSTOM_FIXED_SOC_MPU_REGIONS
+ ],
+ hdrs = [
+ "arm_core_mpu_dev.h",
+ "arm_mpu_v7_internal.h",
+ "arm_mpu_v8_internal.h",
+ "cortex_m/arm_mpu_internal.h",
+ ],
+ includes = [
+ ".",
+ "cortex_m",
+ ],
+ deps = [
+ "//:offsets_header_lib",
+ "//modules/cmsis",
+ ],
+)
diff --git a/arch/common/BUILD.bazel b/arch/common/BUILD.bazel
new file mode 100644
index 0000000..66e2912
--- /dev/null
+++ b/arch/common/BUILD.bazel
@@ -0,0 +1,49 @@
+# Copyright 2025 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+load("//:cc.bzl", "zephyr_cc_library")
+
+package(default_visibility = ["//visibility:public"])
+
+zephyr_cc_library(
+ name = "interface",
+ hdrs = glob(["include/**/*.h"]),
+ includes = ["include"],
+ deps = [
+ "//modules/cmsis",
+ ],
+)
+
+zephyr_cc_library(
+ name = "common",
+ srcs = [
+ "sw_isr_common.c", # CONFIG_GEN_ISR_TABLES
+ ],
+ hdrs = glob(["include/**/*.h"]),
+ copts = [
+ "-ffunction-sections",
+ "-fdata-sections",
+ ],
+ deps = [
+ ":interface",
+ ],
+)
+
+zephyr_cc_library(
+ name = "isr_tables",
+ srcs = ["isr_tables.c"],
+ deps = [
+ "//modules/cmsis",
+ ],
+)
diff --git a/boards/BUILD.bazel b/boards/BUILD.bazel
new file mode 100644
index 0000000..695c84a
--- /dev/null
+++ b/boards/BUILD.bazel
@@ -0,0 +1,17 @@
+# Copyright 2024 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+package(default_visibility = ["//visibility:public"])
+
+constraint_setting(name = "board_name")
\ No newline at end of file
diff --git a/boards/native/BUILD.bazel b/boards/native/BUILD.bazel
new file mode 100644
index 0000000..f243ef0
--- /dev/null
+++ b/boards/native/BUILD.bazel
@@ -0,0 +1,28 @@
+# Copyright 2024 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+package(default_visibility = ["//visibility:public"])
+
+constraint_value(
+ name = "board_name_native_sim",
+ constraint_setting = "//boards:board_name",
+)
+
+platform(
+ name = "native_sim",
+ parents = ["@platforms//host:host"],
+ constraint_values = [
+ ":board_name_native_sim",
+ ],
+)
diff --git a/boards/tdk/BUILD.bazel b/boards/tdk/BUILD.bazel
new file mode 100644
index 0000000..579a4f7
--- /dev/null
+++ b/boards/tdk/BUILD.bazel
@@ -0,0 +1,57 @@
+# Copyright 2024 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+load("@pigweed//pw_build:merge_flags.bzl", "flags_from_dict")
+load("//:cc.bzl", "zephyr_cc_library")
+
+package(default_visibility = ["//visibility:public"])
+
+constraint_value(
+ name = "tdk_robokit1",
+ constraint_setting = "//boards:board_name",
+)
+
+# TODO this should be in Pigweed once I can get Zephyr in Pigweed's MODULE.bazel
+zephyr_cc_library(
+ name = "pw_sys_io_zephyr",
+ srcs = ["@pigweed//pw_sys_io_zephyr:sys_io.cc"],
+ deps = [
+ "@pigweed//pw_sys_io:default_putget_bytes",
+ "@pigweed//pw_sys_io:pw_sys_io.facade",
+ "//modules/cmsis",
+ "@zephyr_version//:version",
+ ],
+)
+
+platform(
+ name = "robokit1",
+ constraint_values = [
+ "@pigweed//pw_build/constraints/arm:cortex-m7",
+ ":tdk_robokit1",
+ "@platforms//cpu:armv7e-m",
+ "@platforms//os:none",
+ ],
+ flags = flags_from_dict({
+ "@zephyr//:dts_cc_library": "@zephyr//boards/tdk/robokit1:devicetree_generated",
+ "@zephyr//:soc": "@zephyr//soc/atmel/sam:samx7x",
+ "@zephyr//:soc_linkerscript": "@zephyr//include/zephyr/arch/arm/cortex_m/scripts:linker",
+ "@zephyr//:offsets_lib": "@zephyr//arch/arm:offsets",
+ "@pigweed//pw_assert:backend": "@pigweed//pw_assert_basic",
+ "@pigweed//pw_assert:check_backend": "@pigweed//pw_assert_basic",
+ "@pigweed//pw_sys_io:backend": "@zephyr//boards/tdk:pw_sys_io_zephyr",
+ "@pigweed//pw_log:backend": "@pigweed//pw_log_basic",
+ "@pigweed//pw_log:backend_impl": "@pigweed//pw_build:empty_cc_library",
+ "@pigweed//pw_malloc:backend": "@pigweed//pw_malloc:bucket_block_allocator",
+ }),
+)
diff --git a/boards/tdk/robokit1/BUILD.bazel b/boards/tdk/robokit1/BUILD.bazel
new file mode 100644
index 0000000..41c19c5
--- /dev/null
+++ b/boards/tdk/robokit1/BUILD.bazel
@@ -0,0 +1,45 @@
+# Copyright 2024 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+load("//:defs.bzl", "dts_library", "dts_cc_library")
+
+package(default_visibility = ["//visibility:public"])
+
+dts_library(
+ name = "devicetree_lib",
+ includes = [
+ "../../../dts",
+ "../../../dts/arm",
+ "../../../dts/common",
+ "../../../include",
+ "@hal_atmel//include",
+ ],
+ overlay = "robokit1.dts",
+ references = [
+ "robokit1-common.dtsi",
+ "robokit1-pinctrl.dtsi",
+ "//dts/arm:armv7-m",
+ "//dts/arm/atmel:same70q21b",
+ "//dts/common:skeleton",
+ "//include:dt_bindings",
+ "@hal_atmel//:dt_bindings",
+ ],
+)
+
+dts_cc_library(
+ name = "devicetree_generated",
+ bindings = ["@zephyr//dts:bindings"],
+ dts_lib = ":devicetree_lib",
+ target_compatible_with = ["@zephyr//boards/tdk:tdk_robokit1"],
+)
diff --git a/cc.bzl b/cc.bzl
new file mode 100644
index 0000000..9e63dd7
--- /dev/null
+++ b/cc.bzl
@@ -0,0 +1,146 @@
+# Copyright 2024 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+def zephyr_cc_library(*, name, skip_deps = [], **kwargs):
+ """
+ A macro that creates a cc_library with Zephyr-specific dependencies and options.
+
+ Args:
+ name: The name of the library
+ skip_deps: Dependencies to skip that are usuaully added
+ **kwargs: Keyword arguments to pass to the cc_library rule.
+ """
+ deps = kwargs.pop("deps", [])
+ kwargs["alwayslink"] = 1
+ for dep in [
+ "@zephyr//:autoconf_library",
+ "@zephyr//:dts_cc_library",
+ "@zephyr//:syscall_list",
+ "@zephyr//:zephyr",
+ "@zephyr//:soc",
+ ]:
+ # TODO revisit this as per
+ # http://pwrev.dev/235635/comment/c36d1453_5d9b7b3b/
+ if dep in deps:
+ continue
+ should_skip_dep = False
+ for skip_dep in skip_deps:
+ if Label(dep) == Label(skip_dep):
+ should_skip_dep = True
+ break
+ if should_skip_dep:
+ continue
+ deps.append(dep)
+
+ additional_compiler_inputs = kwargs.pop("additional_compiler_inputs", []) + [
+ "@zephyr//:autoconf_file",
+ ]
+ copts = kwargs.pop("copts", []) + [
+ "-include generated/zephyr/autoconf.h",
+ "-include $(execpath @zephyr//:autoconf_file)",
+ ]
+
+ native.cc_library(
+ name = name,
+ deps = deps,
+ copts = copts,
+ additional_compiler_inputs = additional_compiler_inputs,
+ **kwargs
+ )
+
+def zephyr_cc_binary(*, name, deps = [], **kwargs):
+ """
+ A macro that creates a cc_binary with Zephyr-specific dependencies and options.
+
+ Args:
+ name: The name of the final binary
+ deps: The dependencies for the app
+ **kwargs: Keyword arguments to pass to the cc_binary rule.
+ """
+
+ # TODO convert to symbolic macro (https://bazel.build/extending/macros)
+ name_pre0 = name + "._pre0.elf"
+ target_pre0 = ":" + name_pre0
+ # TODO revisit this, some of these might need to be a part of the toolchain
+ linkopts = kwargs.pop("linkopts", []) + [
+ "-nostdlib",
+ "-lgcc",
+ "-mfp16-format=ieee",
+ "-mtp=soft",
+ "-fuse-ld=bfd",
+ "-Wl,--build-id=none",
+ "-Wl,--sort-common=descending",
+ "-Wl,--sort-section=alignment",
+ "-Wl,-u,_OffsetAbsSyms",
+ "-Wl,-u,_ConfigAbsSyms",
+ "-static",
+ "-Wl,-X",
+ "-Wl,-N",
+ "-Wl,--orphan-handling=warn",
+ "-Wl,-no-pie",
+ "-DPICOLIBC_LONG_LONG_PRINTF_SCANF",
+ ]
+ native.cc_binary(
+ name = name_pre0,
+ deps = deps + [
+ ":linkerscripts/linker_zephyr_pre0.ld",
+ ],
+ linkopts = linkopts + [
+ "-T $(execpath :linkerscripts/linker_zephyr_pre0.ld)",
+ ],
+ **kwargs
+ )
+
+ # This should only run if CONFIG_GEN_ISR_TABLES=y
+ # TODO isr_table.c and the other outs should be scoped to the name
+ native.genrule(
+ name = name + "_isr_tables",
+ srcs = [target_pre0],
+ outs = ["isr_table.c", "isr_tables_vt.ld", "isr_tables_swi.ld"],
+ cmd = """
+ ./$(execpath @zephyr//scripts/build:gen_isr_tables) \
+ --output-source $(location isr_table.c) \
+ --linker-output-files $(location isr_tables_vt.ld) $(location isr_tables_swi.ld) \
+ --kernel $(SRCS) \
+ --intlist-section .intList \
+ --intlist-section intList \
+ --sw-isr-table \
+ --vector-table
+ """,
+ tools = ["@zephyr//scripts/build:gen_isr_tables"],
+ )
+
+ zephyr_cc_library(
+ name = name + "._isr_table",
+ srcs = [":isr_table.c"],
+ deps = [":{}_isr_tables".format(name)],
+ )
+ native.cc_binary(
+ name = name,
+ deps = deps + [
+ ":linkerscripts/linker.ld",
+ ":{}._isr_table".format(name),
+ ],
+ linkopts = linkopts + [
+ "-T $(execpath linkerscripts/linker.ld)",
+ "-Wl,--print-memory-usage",
+ ],
+ **kwargs
+ )
+
+ # zephyr_final_binary(
+ # name = name,
+ # lds = ":linkerscripts/linker.ld",
+ # pre0_elf = target_pre0,
+ # )
diff --git a/defs.bzl b/defs.bzl
index 547d915..f230def 100644
--- a/defs.bzl
+++ b/defs.bzl
@@ -12,8 +12,11 @@
# License for the specific language governing permissions and limitations under
# the License.
+load("@bazel_tools//tools/build_defs/cc:action_names.bzl", "ACTION_NAMES")
load("@bazel_tools//tools/cpp:toolchain_utils.bzl", "find_cpp_toolchain", "use_cpp_toolchain")
-load("@rules_cc//cc:action_names.bzl", "C_COMPILE_ACTION_NAME")
+load("@pigweed//pw_build:binary_tools.bzl", "run_action_on_executable")
+load("@pigweed//pw_build/bazel_internal:pigweed_internal.bzl", "compile_cc")
+load("@rules_cc//cc:action_names.bzl", "CPP_LINK_EXECUTABLE_ACTION_NAME", "C_COMPILE_ACTION_NAME")
def _get_inputs(ctx):
all_input_files = [ctx.file.overlay]
@@ -69,8 +72,15 @@
source_count += 1
root_path = _package_exec_path(ctx)
+ # TODO revisit this, cc_library doesn't allow labels in the include paths,
+ # it's possible we should use the deps and inherit includes depending on
+ # the providers.
for path in include_paths:
- flag = "-I" + root_path + "/" + path
+ if path.startswith("@"):
+ label = Label(path)
+ flag = "-I" + label.workspace_root + "/" + label.package
+ else:
+ flag = "-I" + root_path + "/" + path
print(" flag=%s" % (flag))
args.append(flag)
args.extend([
@@ -110,36 +120,63 @@
)
def _dts_cc_library_impl(ctx):
- output_dts = ctx.actions.declare_file("dts_out.dts")
+ output_dts = ctx.actions.declare_file("zephyr.dts")
+ output_edt_pickle = ctx.actions.declare_file("edt.pickle")
output_header_name = "zephyr/devicetree_generated.h"
output_header = ctx.actions.declare_file(output_header_name)
dts_file = ctx.attr.dts_lib[DefaultInfo].files.to_list()[0]
+ bindings_files = []
+ bindings_dirs = []
+
+ for bindings_file_provider in ctx.attr.bindings:
+ provider = bindings_file_provider[DefaultInfo].files.to_list()
+ bindings_files.extend(provider)
+ bindings_dirs += [f.dirname for f in provider]
gen_defines_target = ctx.attr._gen_defines[DefaultInfo]
+ gen_edt_target = ctx.attr._gen_edt[DefaultInfo]
+ inputs = gen_defines_target.files.to_list() + gen_edt_target.files.to_list() + [dts_file] + bindings_files
+
+ ctx.actions.run(
+ inputs = inputs,
+ outputs = [output_edt_pickle, output_dts],
+ executable = gen_edt_target.files_to_run.executable,
+ arguments = [
+ "--edt-pickle-out",
+ output_edt_pickle.path,
+ "--dts",
+ dts_file.path,
+ "--bindings-dirs",
+ ] + depset(bindings_dirs).to_list() + [
+ # "--bindings-dirs",
+ # "external/zephyr/dts/bindings",
+ "--dts-out",
+ output_dts.path,
+ "--dtc-flags",
+ "Wno-simple_bus_reg",
+ ],
+ mnemonic = "DtsGenEdtPickle",
+ progress_message = "Generating EDT pickle",
+ )
args = [
- "--dts",
- dts_file.path,
- "--bindings-dirs",
- "external/zephyr/dts/bindings",
"--header-out",
output_header.path,
- "--dts-out",
- output_dts.path,
- "--dtc-flags",
- "Wno-simple_bus_reg",
+ "--edt-pickle",
+ output_edt_pickle.path,
]
- print(" ".join(args))
ctx.actions.run(
- inputs = gen_defines_target.files.to_list() + [dts_file],
- outputs = [output_header, output_dts],
+ inputs = inputs + [output_edt_pickle],
+ outputs = [output_header],
executable = gen_defines_target.files_to_run.executable,
arguments = args,
mnemonic = "DtsGenDefines",
progress_message = "Running DTS definition generator",
)
return [
- DefaultInfo(files = depset([output_header])),
+ DefaultInfo(
+ files = depset([output_header]),
+ ),
CcInfo(
compilation_context = cc_common.create_compilation_context(
includes = depset([output_header.path[:-len(output_header_name)]]),
@@ -152,11 +189,347 @@
implementation = _dts_cc_library_impl,
attrs = {
"dts_lib": attr.label(allow_files = False),
+ "bindings": attr.label_list(allow_files = True),
"_gen_defines": attr.label(
default = "//scripts/dts:gen_defines",
executable = True,
cfg = "exec",
),
+ "_gen_edt": attr.label(
+ default = "//scripts/dts:gen_edt",
+ executable = True,
+ cfg = "exec",
+ ),
},
provides = [CcInfo],
)
+
+def _syscall_library_files_impl(ctx):
+ print(",".join([str(f.path) for f in ctx.files.hdrs]))
+ syscalls_json = ctx.actions.declare_file("syscalls.json")
+ struct_tags_json = ctx.actions.declare_file("struct_tags.json")
+ syscall_file_list = ctx.actions.declare_file("syscalls_file_list.txt")
+
+ # Generated sources
+ syscall_dispatcher_c = ctx.actions.declare_file("include/generated/zephyr/syscall_dispatch.c")
+ syscall_list_h = ctx.actions.declare_file("include/generated/zephyr/syscall_list.h")
+ syscall_export_llext_c = ctx.actions.declare_file("include/generated/zephyr/syscall_export_llext.c")
+
+ # TODO This file is always generated but only compiled if CONFIG_LLEXT=y
+ syscall_weakdefs_llext_c = ctx.actions.declare_file("syscall_weakdefs_llext.c")
+
+ ctx.actions.write(
+ output = syscall_file_list,
+ content = ";".join([f.path for f in ctx.files.hdrs]),
+ )
+
+ scan_dirs = depset([f.dirname for f in ctx.files.hdrs])
+ scan_list = []
+ include_list = []
+ for d in scan_dirs.to_list():
+ scan_list += ["--scan", d]
+ include_list += ["--include", d]
+
+ ctx.actions.run(
+ inputs = ctx.files.hdrs + [syscall_file_list],
+ outputs = [syscalls_json, struct_tags_json],
+ executable = ctx.attr._parse_syscalls[DefaultInfo].files_to_run.executable,
+ arguments = scan_list + include_list + [
+ "--json-file",
+ syscalls_json.path,
+ "--tag-struct-file",
+ struct_tags_json.path,
+ "--file-list",
+ syscall_file_list.path,
+ ],
+ mnemonic = "ParseSyscalls",
+ progress_message = "Parsing syscalls",
+ )
+
+ syscall_headers = [
+ ctx.actions.declare_file("include/generated/zephyr/syscalls/" + f.basename)
+ for f in ctx.files.hdrs
+ ]
+ base_output_dir = syscall_headers[0].path
+ base_output_dir = base_output_dir[:-len(ctx.files.hdrs[0].basename)]
+ syscall_include_path = base_output_dir[:-len("zephyr/syscalls/")]
+ print("base_output_dir = " + base_output_dir)
+ print("syscall_include_path = " + syscall_include_path)
+
+ ctx.actions.run(
+ inputs = [syscalls_json],
+ outputs = [
+ syscall_dispatcher_c,
+ syscall_list_h,
+ syscall_export_llext_c,
+ syscall_weakdefs_llext_c,
+ ] + syscall_headers,
+ executable = ctx.attr._gen_syscalls[DefaultInfo].files_to_run.executable,
+ arguments = [
+ "--json-file",
+ syscalls_json.path,
+ "--base-output",
+ base_output_dir,
+ "--syscall-dispatch",
+ syscall_dispatcher_c.path,
+ "--syscall-exports-llext",
+ syscall_export_llext_c.path,
+ "--syscall-weakdefs-llext",
+ syscall_weakdefs_llext_c.path,
+ "--syscall-list",
+ syscall_list_h.path,
+ ],
+ mnemonic = "GenSyscalls",
+ progress_message = "Generating syscalls",
+ )
+ return [
+ DefaultInfo(
+ files = depset([
+ syscall_file_list,
+ syscalls_json,
+ struct_tags_json,
+ syscall_dispatcher_c,
+ syscall_list_h,
+ syscall_export_llext_c,
+ ] + syscall_headers),
+ ),
+ ]
+
+syscall_library_files = rule(
+ implementation = _syscall_library_files_impl,
+ attrs = {
+ "hdrs": attr.label_list(allow_files = True),
+ "_parse_syscalls": attr.label(
+ default = "//scripts/build:parse_syscalls",
+ executable = True,
+ cfg = "exec",
+ ),
+ "_gen_syscalls": attr.label(
+ default = "//scripts/build:gen_syscalls",
+ executable = True,
+ cfg = "exec",
+ ),
+ },
+ output_to_genfiles = True,
+)
+
+def _syscall_library_impl(ctx):
+ print(",".join([str(f.path) for f in ctx.files.hdrs]))
+ syscalls_json = ctx.actions.declare_file("syscalls.json")
+ struct_tags_json = ctx.actions.declare_file("struct_tags.json")
+
+ # include/generated/zephyr/
+ syscall_dispatcher_c = ctx.actions.declare_file("syscall_dispatch.c")
+ syscall_list_h = ctx.actions.declare_file("include/generated/zephyr/syscall_list.h")
+ syscall_export_llext_c = ctx.actions.declare_file("syscall_export_llext.c")
+ syscall_file_list = ctx.actions.declare_file("syscalls_file_list.txt")
+ # output_file = ctx.actions.declare_file(ctx.label.name + ".a")
+
+ ctx.actions.write(
+ output = syscall_file_list,
+ content = ";".join([f.path for f in ctx.files.hdrs]),
+ )
+
+ scan_dirs = depset([f.dirname for f in ctx.files.hdrs])
+ scan_list = []
+ include_list = []
+ for d in scan_dirs.to_list():
+ scan_list += ["--scan", d]
+ include_list += ["--include", d]
+
+ print("Running:\n" + " ".join(scan_list + include_list + [
+ "--json-file",
+ syscalls_json.path,
+ "--tag-struct-file",
+ struct_tags_json.path,
+ "--file-list",
+ syscall_file_list.path,
+ ]))
+ ctx.actions.run(
+ inputs = ctx.files.hdrs + [syscall_file_list],
+ outputs = [syscalls_json, struct_tags_json],
+ executable = ctx.attr._parse_syscalls[DefaultInfo].files_to_run.executable,
+ arguments = scan_list + include_list + [
+ "--json-file",
+ syscalls_json.path,
+ "--tag-struct-file",
+ struct_tags_json.path,
+ "--file-list",
+ syscall_file_list.path,
+ ],
+ mnemonic = "ParseSyscalls",
+ progress_message = "Parsing syscalls",
+ )
+
+ syscall_headers = [
+ ctx.actions.declare_file("include/generated/zephyr/syscalls/" + f.basename)
+ for f in ctx.files.hdrs
+ ]
+ base_output_dir = syscall_headers[0].path
+ base_output_dir = base_output_dir[:-len(ctx.files.hdrs[0].basename)]
+ syscall_include_path = base_output_dir[:-len("zephyr/syscalls/")]
+ print("base_output_dir = " + base_output_dir)
+ print("syscall_include_path = " + syscall_include_path)
+
+ ctx.actions.run(
+ inputs = [syscalls_json],
+ outputs = [
+ syscall_dispatcher_c,
+ syscall_list_h,
+ syscall_export_llext_c,
+ ] + syscall_headers,
+ executable = ctx.attr._gen_syscalls[DefaultInfo].files_to_run.executable,
+ arguments = [
+ "--json-file",
+ syscalls_json.path,
+ "--base-output",
+ base_output_dir,
+ "--syscall-dispatch",
+ syscall_dispatcher_c.path,
+ "--syscall-export-llext",
+ syscall_export_llext_c.path,
+ "--syscall-list",
+ syscall_list_h.path,
+ ],
+ mnemonic = "GenSyscalls",
+ progress_message = "Generating syscalls",
+ )
+ return compile_cc(
+ ctx = ctx,
+ srcs = [syscall_dispatcher_c],
+ hdrs = [syscall_list_h, syscall_export_llext_c] + syscall_headers,
+ deps = ctx.attr.deps,
+ includes = [syscall_include_path],
+ ) + [
+ DefaultInfo(
+ files = depset([syscall_list_h]),
+ ),
+ ]
+
+syscall_library = rule(
+ implementation = _syscall_library_impl,
+ attrs = {
+ "hdrs": attr.label_list(allow_files = True),
+ "deps": attr.label_list(allow_files = False),
+ "_parse_syscalls": attr.label(
+ default = "//scripts/build:parse_syscalls",
+ executable = True,
+ cfg = "exec",
+ ),
+ "_gen_syscalls": attr.label(
+ default = "//scripts/build:gen_syscalls",
+ executable = True,
+ cfg = "exec",
+ ),
+ "_cc_toolchain": attr.label(
+ default = Label("@rules_cc//cc:current_cc_toolchain"),
+ ),
+ },
+ toolchains = use_cpp_toolchain(),
+ fragments = ["cpp"],
+ output_to_genfiles = True,
+ provides = [CcInfo],
+)
+
+def _zephyr_final_binary_impl(ctx):
+ cc_toolchain = find_cpp_toolchain(ctx)
+ feature_configuration = cc_common.configure_features(
+ ctx = ctx,
+ cc_toolchain = cc_toolchain,
+ requested_features = ctx.features,
+ unsupported_features = ctx.disabled_features,
+ )
+ cxx_linker_path = cc_common.get_tool_for_action(
+ feature_configuration = feature_configuration,
+ action_name = CPP_LINK_EXECUTABLE_ACTION_NAME,
+ )
+
+ output_elf = ctx.actions.declare_file(ctx.label.name)
+
+ ctx.actions.run(
+ inputs = depset(
+ direct = [ctx.executable.pre0_elf, ctx.file.lds],
+ transitive = [cc_toolchain.all_files],
+ ),
+ outputs = [output_elf],
+ arguments = [
+ "-T",
+ ctx.file.lds.path,
+ ctx.executable.pre0_elf.path,
+ "-o",
+ output_elf.path,
+ ],
+ executable = cxx_linker_path,
+ tools = cc_toolchain.all_files,
+ mnemonic = "Linking",
+ )
+ return [
+ DefaultInfo(
+ files = depset([output_elf, ctx.executable.pre0_elf]),
+ executable = output_elf,
+ ),
+ ]
+
+zephyr_final_binary = rule(
+ implementation = _zephyr_final_binary_impl,
+ attrs = {
+ "lds": attr.label(
+ mandatory = True,
+ allow_single_file = True,
+ ),
+ "pre0_elf": attr.label(
+ mandatory = True,
+ executable = True,
+ cfg = "target",
+ ),
+ "_cc_toolchain": attr.label(
+ default = Label("@rules_cc//cc:current_cc_toolchain"),
+ ),
+ },
+ executable = True,
+ toolchains = use_cpp_toolchain(),
+ fragments = ["cpp"],
+)
+
+def _zephyr_offset_header_impl(ctx):
+ cc_info = ctx.attr.lib[DefaultInfo]
+ library_archive = cc_info.files.to_list()[0]
+ linker_output = ctx.actions.declare_file("offsets.o")
+ output_file = ctx.actions.declare_file(ctx.attr.output)
+
+ run_action_on_executable(
+ ctx = ctx,
+ action_name = ACTION_NAMES.cpp_link_static_library,
+ action_args = "x {input} --output={output_dir} offsets.o".format(
+ input = str(library_archive.path),
+ output_dir = str(linker_output.dirname),
+ ),
+ inputs = [library_archive],
+ output = linker_output,
+ additional_outputs = [],
+ output_executable = False,
+ )
+
+ ctx.actions.run(
+ outputs = [output_file],
+ inputs = [linker_output],
+ executable = ctx.executable.tool,
+ arguments = [
+ "-i",
+ linker_output.path,
+ "-o",
+ output_file.path,
+ ],
+ )
+ return [DefaultInfo(files = depset([output_file]))]
+
+zephyr_offset_header = rule(
+ implementation = _zephyr_offset_header_impl,
+ attrs = {
+ "lib": attr.label(mandatory = True, allow_files = False, providers = [CcInfo]),
+ "tool": attr.label(executable = True, allow_files = False, mandatory = True, cfg = "exec"),
+ "output": attr.string(mandatory = True),
+ },
+ toolchains = use_cpp_toolchain(),
+ fragments = ["cpp"],
+)
diff --git a/drivers/clock_control/BUILD.bazel b/drivers/clock_control/BUILD.bazel
new file mode 100644
index 0000000..4bed338
--- /dev/null
+++ b/drivers/clock_control/BUILD.bazel
@@ -0,0 +1,31 @@
+# Copyright 2025 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+load("//:cc.bzl", "zephyr_cc_library")
+
+package(default_visibility = ["//visibility:public"])
+
+zephyr_cc_library(
+ name = "npcx",
+ srcs = [
+ "clock_control_npcx.c",
+ ],
+)
+
+zephyr_cc_library(
+ name = "clock_control",
+ srcs = [
+ "clock_control_sam_pmc.c", # CONFIG_CLOCK_CONTROL_SAM
+ ],
+)
diff --git a/drivers/console/BUILD.bazel b/drivers/console/BUILD.bazel
new file mode 100644
index 0000000..de6cd3c
--- /dev/null
+++ b/drivers/console/BUILD.bazel
@@ -0,0 +1,26 @@
+# Copyright 2025 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+load("//:cc.bzl", "zephyr_cc_library")
+
+package(default_visibility = ["//visibility:public"])
+
+zephyr_cc_library(
+ name = "uart_console",
+ srcs = ["uart_console.c"],
+ deps = [
+ "//modules/cmsis",
+ "//:offsets_header_lib",
+ ],
+)
diff --git a/drivers/gpio/BUILD.bazel b/drivers/gpio/BUILD.bazel
new file mode 100644
index 0000000..d6abcf5
--- /dev/null
+++ b/drivers/gpio/BUILD.bazel
@@ -0,0 +1,30 @@
+# Copyright 2025 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+load("//:cc.bzl", "zephyr_cc_library")
+
+package(default_visibility = ["//visibility:public"])
+
+zephyr_cc_library(
+ name = "npcx",
+ srcs = ["gpio_npcx.c"],
+ deps = [
+ "//modules/cmsis",
+ ],
+)
+
+zephyr_cc_library(
+ name = "sam",
+ srcs = ["gpio_sam.c"],
+)
diff --git a/drivers/interrupt_controller/BUILD.bazel b/drivers/interrupt_controller/BUILD.bazel
new file mode 100644
index 0000000..b0a7dfe
--- /dev/null
+++ b/drivers/interrupt_controller/BUILD.bazel
@@ -0,0 +1,25 @@
+# Copyright 2025 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+load("//:cc.bzl", "zephyr_cc_library")
+
+package(default_visibility = ["//visibility:public"])
+
+zephyr_cc_library(
+ name = "miwu",
+ srcs = ["intc_miwu.c"],
+ deps = [
+ "//arch/common:interface",
+ ],
+)
\ No newline at end of file
diff --git a/drivers/pinctrl/BUILD.bazel b/drivers/pinctrl/BUILD.bazel
new file mode 100644
index 0000000..d363b60
--- /dev/null
+++ b/drivers/pinctrl/BUILD.bazel
@@ -0,0 +1,39 @@
+# Copyright 2025 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+load("//:cc.bzl", "zephyr_cc_library")
+
+package(default_visibility = ["//visibility:public"])
+
+zephyr_cc_library(
+ name = "npcx",
+ srcs = [
+ "common.c",
+ "pinctrl_npcx.c",
+ ],
+ deps = [
+ "@hal_atmel//:dt_interface",
+ ],
+)
+
+zephyr_cc_library(
+ name = "sam",
+ srcs = [
+ "common.c",
+ "pinctrl_sam.c",
+ ],
+ deps = [
+ "@hal_atmel//:dt_interface",
+ ],
+)
diff --git a/drivers/serial/BUILD.bazel b/drivers/serial/BUILD.bazel
new file mode 100644
index 0000000..bb996b0
--- /dev/null
+++ b/drivers/serial/BUILD.bazel
@@ -0,0 +1,28 @@
+# Copyright 2025 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+load("//:cc.bzl", "zephyr_cc_library")
+
+package(default_visibility = ["//visibility:public"])
+
+zephyr_cc_library(
+ name = "atmel_sam_uart",
+ srcs = [
+ "uart_sam.c",
+ "usart_sam.c",
+ ],
+ deps = [
+ "@hal_atmel//:dt_interface",
+ ],
+)
\ No newline at end of file
diff --git a/drivers/timer/BUILD.bazel b/drivers/timer/BUILD.bazel
new file mode 100644
index 0000000..dee5c09
--- /dev/null
+++ b/drivers/timer/BUILD.bazel
@@ -0,0 +1,31 @@
+# Copyright 2025 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+load("//:cc.bzl", "zephyr_cc_library")
+
+package(default_visibility = ["//visibility:public"])
+
+zephyr_cc_library(
+ name = "sys_clock",
+ srcs = ["sys_clock_init.c"],
+ deps = [
+ "//modules/cmsis",
+ ],
+)
+
+zephyr_cc_library(
+ name = "cortex_m_systick",
+ srcs = ["cortex_m_systick.c"],
+ deps = [":sys_clock"],
+)
diff --git a/drivers/watchdog/BUILD.bazel b/drivers/watchdog/BUILD.bazel
new file mode 100644
index 0000000..9f67928
--- /dev/null
+++ b/drivers/watchdog/BUILD.bazel
@@ -0,0 +1,24 @@
+# Copyright 2025 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+load("//:cc.bzl", "zephyr_cc_library")
+
+package(default_visibility = ["//visibility:public"])
+
+zephyr_cc_library(
+ name = "watchdog",
+ srcs = [
+ "wdt_sam.c", # CONFIG_WDT_SAM
+ ],
+)
\ No newline at end of file
diff --git a/dts/BUILD.bazel b/dts/BUILD.bazel
index 443fbb6..215b534 100644
--- a/dts/BUILD.bazel
+++ b/dts/BUILD.bazel
@@ -13,3 +13,8 @@
# the License.
package(default_visibility = ["//visibility:public"])
+
+filegroup(
+ name = "bindings",
+ srcs = glob(["bindings/**/*.yaml"]),
+)
\ No newline at end of file
diff --git a/dts/arm/BUILD.bazel b/dts/arm/BUILD.bazel
new file mode 100644
index 0000000..b939790
--- /dev/null
+++ b/dts/arm/BUILD.bazel
@@ -0,0 +1,22 @@
+# Copyright 2024 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+package(default_visibility = ["//visibility:public"])
+
+filegroup(
+ name = "armv7-m",
+ srcs = [
+ "armv7-m.dtsi",
+ ],
+)
diff --git a/dts/arm/atmel/BUILD.bazel b/dts/arm/atmel/BUILD.bazel
new file mode 100644
index 0000000..a178a7e
--- /dev/null
+++ b/dts/arm/atmel/BUILD.bazel
@@ -0,0 +1,28 @@
+# Copyright 2024 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+package(default_visibility = ["//visibility:public"])
+
+filegroup(
+ name = "same70q21b",
+ srcs = [
+ # "dma_atmel_same70.h",
+ "same70x21b.dtsi",
+ "same70b.dtsi",
+ "same70.dtsi",
+ "samx7xb.dtsi",
+ "samx7x.dtsi",
+ "samx7xx21.dtsi",
+ ],
+)
diff --git a/examples/hello_dts/.bazelrc b/examples/hello_dts/.bazelrc
index 7a075a8..a48fdf3 100644
--- a/examples/hello_dts/.bazelrc
+++ b/examples/hello_dts/.bazelrc
@@ -1,4 +1,4 @@
-# Copyright 2023 The Pigweed Authors
+# Copyright 2024 The Pigweed Authors
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
@@ -11,14 +11,15 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
+
+# Standard Pigweed flags
+# ======================
+# All Pigweed projects are expected to set these flags. They mostly pre-adopt
+# future Bazel settings.
#
-# TODO: https://pwbug.dev/258836641#comment4: Enabling bzlmod breaks the build.
-common --noenable_bzlmod
-
-# TODO: https://pwbug.dev/319665090: Disable hermetic sandbox tmp due to issues
-# with arm toolchain.
-build --noincompatible_sandbox_hermetic_tmp
-
+# The source of truth for these flags is pw_build/pigweed.bazelrc in the main
+# Pigweed repo.
+#
# Do not attempt to configure an autodetected (local) toolchain. We vendor all
# our toolchains, and CI VMs may not have any local toolchain to detect.
common --repo_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1
@@ -26,8 +27,94 @@
# Required for new toolchain resolution API.
build --incompatible_enable_cc_toolchain_resolution
-# Use the remote cache. This will only work for users who have permission to access it.
-common:remote_cache --remote_cache=grpcs://remotebuildexecution.googleapis.com
+# Expose exec toolchains for Python. We use these toolchains in some rule
+# implementations (git grep for
+# "@rules_python//python:exec_tools_toolchain_type").
+build --@rules_python//python/config_settings:exec_tools_toolchain=enabled
+
+# Don't propagate flags or defines to the exec config. This will become the
+# default one day (https://github.com/bazelbuild/bazel/issues/22457) and will
+# improve cache hit rates between builds targeting different platforms. This is
+# especially impactful for large host tools like protoc, which will have its
+# cache invalidated when your host C++ config changes.
+common --experimental_exclude_defines_from_exec_config
+common --experimental_exclude_starlark_flags_from_exec_config
+
+# Don't automatically create __init__.py files.
+#
+# This prevents spurious package name collisions at import time, and should be
+# the default (https://github.com/bazelbuild/bazel/issues/7386). It's
+# particularly helpful for Pigweed, because we have many potential package name
+# collisions due to a profusion of stuttering paths like
+# pw_transfer/py/pw_transfer.
+common --incompatible_default_to_explicit_init_py
+
+# Don't inherit system PATH. Improves hermeticity and cache hit rates. Should
+# be true by default one day (https://github.com/bazelbuild/bazel/issues/7026).
+common --incompatible_strict_action_env
+
+# C++ toolchain configuration
+# ===========================
+
+# Ignore all warnings in third-party code.
+common --per_file_copt=external/.*@-w
+common --host_per_file_copt=external/.*@-w
+
+# Picotool needs to build with exceptions and RTTI enabled.
+common --per_file_copt=external.*picotool.*@-fexceptions,-frtti
+common --host_per_file_copt=external.*picotool.*@-fexceptions,-frtti
+
+# Keep debugging symbols, but don't send them when flashing.
+build --strip=never
+
+# Sanitizer configs
+# =================
+common:asan --@pigweed//pw_toolchain/host_clang:asan
+common:tsan --@pigweed//pw_toolchain/host_clang:tsan
+common:ubsan --@pigweed//pw_toolchain/host_clang:ubsan
+
+# UX settings
+# ===========
+# Error output settings.
+common --verbose_failures
+test --test_output=errors
+
+# Suppress the DEBUG: log messages from bazel. We get spammy DEBUG:
+# messages from rules_python.
+#
+# TODO: https://github.com/bazelbuild/rules_python/issues/1818 - Re-enable DEBUG
+# messages once rules_python stops spamming us.
+common --ui_event_filters=-debug
+
+# Remote cache
+# ============
+# Use the remote cache. This will only work for users who have permission to
+# access it (including the CI system!).
+common:remote_cache --bes_backend="buildeventservice.googleapis.com"
+common:remote_cache --bes_instance_name=pigweed-rbe-open
+common:remote_cache --bes_results_url="https://source.cloud.google.com/results/invocations/"
+common:remote_cache --bes_timeout=600s
+common:remote_cache --experimental_remote_cache_eviction_retries=5
common:remote_cache --google_default_credentials=true
+# Required to use buildeventservice on Bazel 8+.
+# TODO: b/345556899 -- Remove this flag when no longer required.
+common:remote_cache --legacy_important_outputs
+common:remote_cache --remote_cache=grpcs://remotebuildexecution.googleapis.com
common:remote_cache --remote_instance_name=projects/pigweed-rbe-open/instances/default-instance
common:remote_cache --remote_upload_local_results=false
+
+# RP2040 platform configuration
+build:rp2040 --platforms=//targets/rp2:rp2040
+test:rp2040 --run_under=@pigweed//targets/rp2040/py:unit_test_client
+
+# RP2350 is the same as rp2040 but with a different --platforms setting.
+build:rp2350 --config=rp2040
+build:rp2350 --platforms=//targets/rp2:rp2350
+
+# User bazelrc file; see
+# https://bazel.build/configure/best-practices#bazelrc-file
+#
+# Note: this should be at the bottom of the file, so that user-specified
+# options override anything in this file
+# (https://bazel.build/run/bazelrc#imports)
+try-import %workspace%/user.bazelrc
\ No newline at end of file
diff --git a/examples/hello_dts/.bazelversion b/examples/hello_dts/.bazelversion
new file mode 100644
index 0000000..ae9a76b
--- /dev/null
+++ b/examples/hello_dts/.bazelversion
@@ -0,0 +1 @@
+8.0.0
diff --git a/examples/hello_dts/BUILD.bazel b/examples/hello_dts/BUILD.bazel
index 277b90a..185f56e 100644
--- a/examples/hello_dts/BUILD.bazel
+++ b/examples/hello_dts/BUILD.bazel
@@ -12,8 +12,9 @@
# License for the specific language governing permissions and limitations under
# the License.
+load("@pigweed//pw_build:merge_flags.bzl", "flags_from_dict")
load("@pigweed//pw_build:pigweed.bzl", "pw_cc_test")
-load("@rules_cc//cc:defs.bzl", "cc_binary")
+load("@zephyr//:cc.bzl", "zephyr_cc_binary", "zephyr_cc_library")
load("@zephyr//:defs.bzl", "dts_cc_library")
package(default_visibility = ["//visibility:public"])
@@ -23,37 +24,114 @@
build_setting_default = "@pigweed//pw_assert_log:assert_backend",
)
+# dts_library(
+# name = "app_overlay",
+# dts_parent = "@zephyr//boards/native/native_sim:native_sim",
+# overlay = "app.overlay",
+# )
+
dts_cc_library(
name = "app_host_dts",
dts_lib = "@zephyr//boards/native/native_sim:native_sim",
+ target_compatible_with = ["@zephyr//boards/native:board_name_native_sim"],
+ # dts_lib = ":app_overlay",
)
-cc_binary(
+dts_cc_library(
+ name = "app_tdk_robokit1",
+ bindings = ["@zephyr//dts:bindings"],
+ dts_lib = "@zephyr//boards/tdk/robokit1:robokit1",
+ target_compatible_with = ["@zephyr//boards/tdk:tdk_robokit1"],
+)
+
+filegroup(
+ name = "autoconf_file",
+ srcs = ["generated/zephyr/autoconf.h"],
+)
+
+cc_library(
+ name = "autoconf",
+ srcs = [
+ ":autoconf_file",
+ "generated/zephyr/kobj-types-enum.h",
+ ],
+ includes = ["generated"],
+)
+
+platform(
+ name = "robokit1",
+ flags = flags_from_dict({
+ "@zephyr//:autoconf_library": ":autoconf",
+ "@zephyr//:autoconf_file": ":autoconf_file",
+ }),
+ parents = ["@zephyr//boards/tdk:robokit1"],
+)
+
+zephyr_cc_library(
+ name = "app_main",
+ srcs = ["hello_dts.cc"]
+)
+
+zephyr_cc_binary(
name = "app",
- srcs = ["hello_dts.cc"],
- copts = select({
- "@platforms//cpu:armv7e-m": [],
+ srcs = [
+ "@zephyr//lib/cpp/abi:cpp_dtors.c", # CONFIG_STATIC_INIT_GNU
+ "@zephyr//subsys/tracing:tracing_none.c", # NOT CONFIG_PERCEPIO_TRACERECORDER AND
+ # NOT CONFIG_TRACING_CTF AND
+ # NOT CONFIG_SEGGER_SYSTEMVIEW AND
+ # NOT CONFIG_TRACING_TEST AND
+ # NOT CONFIG_TRACING_USER
+ "generated/configs.c", # Should be generated in misc/
+ ],
+ defines = select({
+ "@platforms//cpu:armv7e-m": [
+ "CONFIG_ARM=1",
+ "CONFIG_BUILD_OUTPUT_HEX=1",
+ "CONFIG_ARM_MPU=1",
+ "CONFIG_HW_STACK_PROTECTION=1",
+ "CONFIG_WDT_DISABLE_AT_BOOT=1",
+ "CONFIG_CONSOLE=1",
+ "CONFIG_UART_CONSOLE=1",
+ "CONFIG_SERIAL=1",
+ ],
"@platforms//cpu:x86_64": [
- "-DCONFIG_ARCH_POSIX=1",
+ "CONFIG_ARCH_POSIX=1",
],
}),
- malloc = select({
- "@platforms//cpu:armv7e-m": "@pigweed//pw_malloc",
- "@platforms//cpu:x86_64": "@bazel_tools//tools/cpp:malloc",
- }),
deps = [
+ ":app_main",
"@pigweed//pw_assert:backend_impl",
"@pigweed//pw_log",
"@pigweed//pw_log:backend_impl",
"@pigweed//pw_sys_io",
"@zephyr",
+ "@zephyr//:autoconf_library",
+ "@zephyr//:dts_cc_library",
+ "@zephyr//arch/common",
+ "@zephyr//arch/common:isr_tables", # CONFIG_GEN_ISR_TABLES
+ "@zephyr//drivers/clock_control", # CONFIG_CLOCK_CONTROL
+ "@zephyr//drivers/console:uart_console", # CONFIG_UART_CONSOLE
+ "@zephyr//drivers/gpio:sam", # CONFIG_GPIO_SAM
+ "@zephyr//drivers/pinctrl:sam", # CONFIG_PINCTRL_SAM
+ "@zephyr//drivers/watchdog", # CONFIG_WATCHDOG
+ "@zephyr//lib/libc/picolibc", # CONFIG_PICOLIBC
+ "@zephyr//lib/heap",
+ "@zephyr//lib/os",
] + select({
"@platforms//cpu:armv7e-m": [
- "@pigweed//pw_toolchain/arm_gcc:arm_none_eabi_gcc_support",
- "@pigweed//targets/stm32f429i_disc1:basic_linker_script",
- "@pigweed//targets/stm32f429i_disc1:pre_init",
+ "@zephyr//arch/arm/core/cortex_m",
+ "@zephyr//drivers/timer:cortex_m_systick",
+ # "@pigweed//pw_toolchain/arm_gcc:arm_none_eabi_gcc_support",
+ # "@pigweed//targets/stm32f429i_disc1:basic_linker_script",
+ # "@pigweed//targets/stm32f429i_disc1:pre_init",
],
- "@platforms//cpu:x86_64": [
+ }) + select({
+ "@zephyr//boards/tdk:tdk_robokit1": [
+ # "@zephyr//boards/tdk/robokit1:devicetree_generated",
+ "@zephyr//include:posix",
+ "@zephyr//drivers/serial:atmel_sam_uart",
+ ],
+ "@zephyr//boards/native:board_name_native_sim": [
":app_host_dts",
"@zephyr//include:posix",
],
@@ -65,12 +143,12 @@
srcs = [
"native_sim_test.cc",
],
+ copts = [
+ "-DCONFIG_ARCH_POSIX=1",
+ ],
deps = [
":app_host_dts",
"@zephyr",
"@zephyr//include:posix",
],
- copts = [
- "-DCONFIG_ARCH_POSIX=1",
- ],
)
diff --git a/examples/hello_dts/MODULE.bazel b/examples/hello_dts/MODULE.bazel
index 00bb183..de01009 100644
--- a/examples/hello_dts/MODULE.bazel
+++ b/examples/hello_dts/MODULE.bazel
@@ -4,3 +4,119 @@
#
# For more details, please check https://github.com/bazelbuild/bazel/issues/18958
###############################################################################
+
+module(
+ name = "hello_dts",
+ version = "0.0.1",
+)
+
+bazel_dep(name = "bazel_skylib", version = "1.7.1")
+bazel_dep(name = "pigweed")
+bazel_dep(name = "platforms", version = "0.0.10")
+bazel_dep(name = "rules_platform", version = "0.1.0")
+bazel_dep(name = "rules_python", version = "0.40.0")
+bazel_dep(name = "rules_cc", version = "0.0.17")
+bazel_dep(name = "zephyr-bazel")
+bazel_dep(name = "protobuf", version = "29.0")
+
+# Module overrides
+# ================
+
+git_override(
+ module_name = "pigweed",
+ # ROLL: Warning: this entry is automatically updated.
+ # ROLL: Last updated 2025-02-02.
+ # ROLL: By https://cr-buildbucket.appspot.com/build/8733894332032585473.
+ commit = "ea358b710d56bf003fc916c29b2362cdc036d073",
+ remote = "https://pigweed.googlesource.com/pigweed/pigweed",
+)
+
+# Toolchain registration
+# ======================
+# Register Pigweed's C++ toolchains.
+register_toolchains(
+ "@pigweed//pw_toolchain:cc_toolchain_cortex-m0",
+ "@pigweed//pw_toolchain/zephyr/arm:toolchain_cortex-m7",
+ "@pigweed//pw_toolchain:cc_toolchain_cortex-m33",
+ "@pigweed//pw_toolchain/host_clang:host_cc_toolchain_linux",
+ "@pigweed//pw_toolchain/host_clang:host_cc_toolchain_macos",
+ dev_dependency = True,
+)
+
+local_path_override(
+ module_name = "zephyr-bazel",
+ path = "../..",
+)
+
+create_zephyr_patch_file = use_repo_rule(
+ "@zephyr-bazel//:setup.bzl",
+ "create_zephyr_patch_file"
+)
+
+create_zephyr_patch_file(
+ name = "zephyr-patch",
+ filename = "patch.diff",
+ debug = True,
+)
+
+git_repository = use_repo_rule(
+ "@bazel_tools//tools/build_defs/repo:git.bzl",
+ "git_repository"
+)
+
+git_repository(
+ name = "zephyr",
+ # Use a local file::// to override the Zephyr git repo and avoid downloads
+ # remote = "file:///path/to/zephyrproject/zephyr"
+ remote = "https://github.com/zephyrproject-rtos/zephyr.git",
+ commit = "af2f497ad0e89e5dc99efc627040a7a7813a3e28",
+ patches = [
+ "@zephyr-patch//:patch.diff",
+ ],
+)
+
+create_version_h = use_repo_rule(
+ "@zephyr-bazel//:setup.bzl",
+ "version_header",
+)
+
+create_version_h(
+ name = "zephyr_version",
+ version_file = "@zephyr//:VERSION",
+ version_template = "@zephyr//:version.h.in",
+)
+
+new_git_repository = use_repo_rule("@bazel_tools//tools/build_defs/repo:git.bzl", "new_git_repository")
+
+new_git_repository(
+ name = "hal_atmel",
+ remote = "https://github.com/zephyrproject-rtos/hal_atmel.git",
+ commit = "56d60ebc909ad065bf6554cee73487969857614b",
+ build_file = "@zephyr-bazel//modules:hal_atmel.BUILD"
+)
+
+new_git_repository(
+ name = "cmsis",
+ remote = "https://github.com/zephyrproject-rtos/cmsis.git",
+ commit = "4b96cbb174678dcd3ca86e11e1f24bc5f8726da0",
+ build_file = "@zephyr-bazel//modules:cmsis.BUILD",
+)
+
+python = use_extension("@rules_python//python/extensions:python.bzl", "python")
+python.toolchain(
+ configure_coverage_tool = True,
+ # Only set when you have multiple toolchain versions.
+ is_default = True,
+ python_version = "3.11",
+)
+
+pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
+
+# Load the Zephyr pip requirements
+pip.parse(
+ hub_name = "pip",
+ python_version = "3.11",
+ requirements_lock = "@zephyr//:scripts/requirements-base.txt",
+)
+
+use_repo(pip, "pip")
diff --git a/examples/hello_dts/MODULE.bazel.lock b/examples/hello_dts/MODULE.bazel.lock
index f5cd531..f7bd0d0 100644
--- a/examples/hello_dts/MODULE.bazel.lock
+++ b/examples/hello_dts/MODULE.bazel.lock
@@ -1,88 +1,674 @@
{
- "lockFileVersion": 11,
+ "lockFileVersion": 16,
"registryFileHashes": {
"https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497",
"https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2",
"https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589",
- "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/source.json": "7e3a9adf473e9af076ae485ed649d5641ad50ec5c11718103f34de03170d94ad",
- "https://bcr.bazel.build/modules/apple_support/1.5.0/MODULE.bazel": "50341a62efbc483e8a2a6aec30994a58749bd7b885e18dd96aa8c33031e558ef",
- "https://bcr.bazel.build/modules/apple_support/1.5.0/source.json": "eb98a7627c0bc486b57f598ad8da50f6625d974c8f723e9ea71bd39f709c9862",
+ "https://bcr.bazel.build/modules/abseil-cpp/20230125.1/MODULE.bazel": "89047429cb0207707b2dface14ba7f8df85273d484c2572755be4bab7ce9c3a0",
+ "https://bcr.bazel.build/modules/abseil-cpp/20230802.0.bcr.1/MODULE.bazel": "1c8cec495288dccd14fdae6e3f95f772c1c91857047a098fad772034264cc8cb",
+ "https://bcr.bazel.build/modules/abseil-cpp/20230802.0/MODULE.bazel": "d253ae36a8bd9ee3c5955384096ccb6baf16a1b1e93e858370da0a3b94f77c16",
+ "https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915",
+ "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/MODULE.bazel": "37bcdb4440fbb61df6a1c296ae01b327f19e9bb521f9b8e26ec854b6f97309ed",
+ "https://bcr.bazel.build/modules/abseil-cpp/20240116.2/MODULE.bazel": "73939767a4686cd9a520d16af5ab440071ed75cec1a876bf2fcfaf1f71987a16",
+ "https://bcr.bazel.build/modules/abseil-cpp/20240116.2/source.json": "750d5e29326fb59cbe61116a7b803c8a1d0a7090a9c8ed89888d188e3c473fc7",
+ "https://bcr.bazel.build/modules/apple_support/1.13.0/MODULE.bazel": "7c8cdea7e031b7f9f67f0b497adf6d2c6a2675e9304ca93a9af6ed84eef5a524",
+ "https://bcr.bazel.build/modules/apple_support/1.15.1/MODULE.bazel": "a0556fefca0b1bb2de8567b8827518f94db6a6e7e7d632b4c48dc5f865bc7c85",
+ "https://bcr.bazel.build/modules/apple_support/1.17.1/MODULE.bazel": "655c922ab1209978a94ef6ca7d9d43e940cd97d9c172fb55f94d91ac53f8610b",
+ "https://bcr.bazel.build/modules/apple_support/1.17.1/source.json": "6b2b8c74d14e8d485528a938e44bdb72a5ba17632b9e14ef6e68a5ee96c8347f",
+ "https://bcr.bazel.build/modules/aspect_bazel_lib/1.31.2/MODULE.bazel": "7bee702b4862612f29333590f4b658a5832d433d6f8e4395f090e8f4e85d442f",
+ "https://bcr.bazel.build/modules/aspect_bazel_lib/1.38.0/MODULE.bazel": "6307fec451ba9962c1c969eb516ebfe1e46528f7fa92e1c9ac8646bef4cdaa3f",
+ "https://bcr.bazel.build/modules/aspect_bazel_lib/1.40.3/MODULE.bazel": "668e6bcb4d957fc0e284316dba546b705c8d43c857f87119619ee83c4555b859",
+ "https://bcr.bazel.build/modules/aspect_bazel_lib/2.7.7/MODULE.bazel": "491f8681205e31bb57892d67442ce448cda4f472a8e6b3dc062865e29a64f89c",
+ "https://bcr.bazel.build/modules/aspect_bazel_lib/2.8.1/MODULE.bazel": "812d2dd42f65dca362152101fbec418029cc8fd34cbad1a2fde905383d705838",
+ "https://bcr.bazel.build/modules/aspect_bazel_lib/2.8.1/source.json": "95a6b56904e2d8bfea164dc6c98ccafe8cb75cb0623cb6ef5b3cfb15fdddabd6",
+ "https://bcr.bazel.build/modules/aspect_rules_js/1.33.1/MODULE.bazel": "db3e7f16e471cf6827059d03af7c21859e7a0d2bc65429a3a11f005d46fc501b",
+ "https://bcr.bazel.build/modules/aspect_rules_js/1.39.0/MODULE.bazel": "aece421d479e3c31dc3e5f6d49a12acc2700457c03c556650ec7a0ff23fc0d95",
+ "https://bcr.bazel.build/modules/aspect_rules_js/2.1.0/MODULE.bazel": "f747a24e13bc3c35c712580fc4e30186c54d80d21997b9503e29705e4d864533",
+ "https://bcr.bazel.build/modules/aspect_rules_js/2.1.0/source.json": "3a43843c6bd0ac65d118e72f504ff553a1ba1e65fec91938e5546effb4245104",
+ "https://bcr.bazel.build/modules/aspect_rules_lint/0.12.0/MODULE.bazel": "e767c5dbfeb254ec03275a7701b5cfde2c4d2873676804bc7cb27ddff3728fed",
+ "https://bcr.bazel.build/modules/bazel_features/0.1.0/MODULE.bazel": "47011d645b0f949f42ee67f2e8775188a9cf4a0a1528aa2fa4952f2fd00906fd",
+ "https://bcr.bazel.build/modules/bazel_features/1.1.0/MODULE.bazel": "cfd42ff3b815a5f39554d97182657f8c4b9719568eb7fded2b9135f084bf760b",
+ "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd",
+ "https://bcr.bazel.build/modules/bazel_features/1.10.0/MODULE.bazel": "f75e8807570484a99be90abcd52b5e1f390362c258bcb73106f4544957a48101",
"https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8",
- "https://bcr.bazel.build/modules/bazel_features/1.11.0/source.json": "c9320aa53cd1c441d24bd6b716da087ad7e4ff0d9742a9884587596edfe53015",
+ "https://bcr.bazel.build/modules/bazel_features/1.13.0/MODULE.bazel": "c14c33c7c3c730612bdbe14ebbb5e61936b6f11322ea95a6e91cd1ba962f94df",
+ "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d",
+ "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d",
+ "https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a",
+ "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58",
+ "https://bcr.bazel.build/modules/bazel_features/1.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b",
+ "https://bcr.bazel.build/modules/bazel_features/1.21.0/source.json": "3e8379efaaef53ce35b7b8ba419df829315a880cb0a030e5bb45c96d6d5ecb5f",
+ "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7",
+ "https://bcr.bazel.build/modules/bazel_features/1.9.0/MODULE.bazel": "885151d58d90d8d9c811eb75e3288c11f850e1d6b481a8c9f766adee4712358b",
+ "https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a",
"https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8",
+ "https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e",
+ "https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686",
"https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a",
"https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5",
+ "https://bcr.bazel.build/modules/bazel_skylib/1.4.1/MODULE.bazel": "a0dcb779424be33100dcae821e9e27e4f2901d9dfd5333efe5ac6a8d7ab75e1d",
+ "https://bcr.bazel.build/modules/bazel_skylib/1.4.2/MODULE.bazel": "3bd40978e7a1fac911d5989e6b09d8f64921865a45822d8b09e815eaa726a651",
+ "https://bcr.bazel.build/modules/bazel_skylib/1.5.0/MODULE.bazel": "32880f5e2945ce6a03d1fbd588e9198c0a959bb42297b2cfaf1685b7bc32e138",
"https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917",
- "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/source.json": "082ed5f9837901fada8c68c2f3ddc958bb22b6d654f71dd73f3df30d45d4b749",
+ "https://bcr.bazel.build/modules/bazel_skylib/1.7.0/MODULE.bazel": "0db596f4563de7938de764cc8deeabec291f55e8ec15299718b93c4423e9796d",
+ "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/MODULE.bazel": "3120d80c5861aa616222ec015332e5f8d3171e062e3e804a2a0253e1be26e59b",
+ "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/source.json": "f121b43eeefc7c29efbd51b83d08631e2347297c95aac9764a701f2a6a2bb953",
+ "https://bcr.bazel.build/modules/boringssl/0.20240913.0/MODULE.bazel": "fcaa7503a5213290831a91ed1eb538551cf11ac0bc3a6ad92d0fef92c5bd25fb",
+ "https://bcr.bazel.build/modules/boringssl/0.20240913.0/source.json": "540753d29c271a302442a3d3c6ccd4faace597e7bcf0f77049fe59535782ce9f",
"https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84",
"https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8",
+ "https://bcr.bazel.build/modules/emboss/2024.1017.203246/MODULE.bazel": "e0c58f6ab1622089c414fd4192a5f8792599ca938d224506d60eae09ef68ca44",
+ "https://bcr.bazel.build/modules/emboss/2024.1017.203246/source.json": "b0cec0e38af36f1dff88ec402e5b464594e81f0c39172704f373a96440a53923",
+ "https://bcr.bazel.build/modules/freertos/10.5.1.bcr.2/MODULE.bazel": "dcc13aef86495f5418f4cdd532eefe9a4319c44771ef57b8abda0c3560d8e6ed",
+ "https://bcr.bazel.build/modules/freertos/10.5.1.bcr.2/source.json": "a35b2479d5ede2c414512e3e287fad3348eb1def5800e93cd85b1449002a4d12",
+ "https://bcr.bazel.build/modules/gazelle/0.27.0/MODULE.bazel": "3446abd608295de6d90b4a8a118ed64a9ce11dcb3dda2dc3290a22056bd20996",
+ "https://bcr.bazel.build/modules/gazelle/0.30.0/MODULE.bazel": "f888a1effe338491f35f0e0e85003b47bb9d8295ccba73c37e07702d8d31c65b",
+ "https://bcr.bazel.build/modules/gazelle/0.32.0/MODULE.bazel": "b499f58a5d0d3537f3cf5b76d8ada18242f64ec474d8391247438bf04f58c7b8",
+ "https://bcr.bazel.build/modules/gazelle/0.33.0/MODULE.bazel": "a13a0f279b462b784fb8dd52a4074526c4a2afe70e114c7d09066097a46b3350",
+ "https://bcr.bazel.build/modules/gazelle/0.34.0/MODULE.bazel": "abdd8ce4d70978933209db92e436deb3a8b737859e9354fb5fd11fb5c2004c8a",
+ "https://bcr.bazel.build/modules/gazelle/0.36.0/MODULE.bazel": "e375d5d6e9a6ca59b0cb38b0540bc9a05b6aa926d322f2de268ad267a2ee74c0",
+ "https://bcr.bazel.build/modules/gazelle/0.36.0/source.json": "0823f097b127e0201ae55d85647c94095edfe27db0431a7ae880dcab08dfaa04",
+ "https://bcr.bazel.build/modules/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb",
"https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4",
- "https://bcr.bazel.build/modules/googletest/1.11.0/source.json": "c73d9ef4268c91bd0c1cd88f1f9dfa08e814b1dbe89b5f594a9f08ba0244d206",
+ "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6",
+ "https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f",
+ "https://bcr.bazel.build/modules/googletest/1.15.0/MODULE.bazel": "c4515ecca65378b9035bb6ccee496c1a362b31311c2380ca7740a73bfdaccb51",
+ "https://bcr.bazel.build/modules/googletest/1.15.2/MODULE.bazel": "6de1edc1d26cafb0ea1a6ab3f4d4192d91a312fd2d360b63adaa213cd00b2108",
+ "https://bcr.bazel.build/modules/googletest/1.15.2/source.json": "dbdda654dcb3a0d7a8bc5d0ac5fc7e150b58c2a986025ae5bc634bb2cb61f470",
+ "https://bcr.bazel.build/modules/jsoncpp/1.9.5/MODULE.bazel": "31271aedc59e815656f5736f282bb7509a97c7ecb43e927ac1a37966e0578075",
+ "https://bcr.bazel.build/modules/jsoncpp/1.9.5/source.json": "4108ee5085dd2885a341c7fab149429db457b3169b86eb081fa245eadf69169d",
+ "https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902",
+ "https://bcr.bazel.build/modules/nanopb/0.4.9.1/MODULE.bazel": "334e396616b40359425806bafdfaa0b3086b54298cf177e6b6a56af784d964bd",
+ "https://bcr.bazel.build/modules/nanopb/0.4.9.1/source.json": "7daaff82d4e698dfc6cdd0b8a22a71d65f2f3b7c4e176d67f92fecd6a6598532",
+ "https://bcr.bazel.build/modules/pico-sdk/2.0.0/MODULE.bazel": "f96b730c6e871c1ca0a879b961a1a2430a4afbcb08a8dae8c8fa3ed2c86d9655",
+ "https://bcr.bazel.build/modules/pico-sdk/2.1.0/MODULE.bazel": "93dabc91a5b4736f5a5e299ccdc224cd1fb6b29fa667619cb8e985311bb469d5",
+ "https://bcr.bazel.build/modules/pico-sdk/2.1.1-develop.bcr.20250113-4b6e6475/MODULE.bazel": "7bd95dc59d1a256268d4e18c3f89ebc641cf8d4235fa967eabe4f01719955498",
+ "https://bcr.bazel.build/modules/pico-sdk/2.1.1-develop.bcr.20250113-4b6e6475/source.json": "0ffdcf0514c663ea1778f7fd1dfa6a24c505d5cb0e527d7b5a08c6999ec11b46",
+ "https://bcr.bazel.build/modules/picotool/2.0.0/MODULE.bazel": "52915a6a48c0a98ce5fabf64264e574ffc6e4f0086524133c7c79d0ced90e8be",
+ "https://bcr.bazel.build/modules/picotool/2.1.0/MODULE.bazel": "809dcf7795f3846ce29b4d676dabc664e57e935926ec5c147ffe02602a63a76f",
+ "https://bcr.bazel.build/modules/picotool/2.1.0/source.json": "d4593572549b2ea2c646d7e6f98668780ba04f85355d9036509a5f9ab2b741df",
+ "https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5",
+ "https://bcr.bazel.build/modules/platforms/0.0.10/source.json": "f22828ff4cf021a6b577f1bf6341cb9dcd7965092a439f64fc1bb3b7a5ae4bd5",
"https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee",
"https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37",
"https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615",
"https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814",
+ "https://bcr.bazel.build/modules/platforms/0.0.8/MODULE.bazel": "9f142c03e348f6d263719f5074b21ef3adf0b139ee4c5133e2aa35664da9eb2d",
"https://bcr.bazel.build/modules/platforms/0.0.9/MODULE.bazel": "4a87a60c927b56ddd67db50c89acaa62f4ce2a1d2149ccb63ffd871d5ce29ebc",
- "https://bcr.bazel.build/modules/platforms/0.0.9/source.json": "cd74d854bf16a9e002fb2ca7b1a421f4403cda29f824a765acd3a8c56f8d43e6",
"https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7",
- "https://bcr.bazel.build/modules/protobuf/21.7/source.json": "bbe500720421e582ff2d18b0802464205138c06056f443184de39fbb8187b09b",
+ "https://bcr.bazel.build/modules/protobuf/23.1/MODULE.bazel": "88b393b3eb4101d18129e5db51847cd40a5517a53e81216144a8c32dfeeca52a",
+ "https://bcr.bazel.build/modules/protobuf/24.4/MODULE.bazel": "7bc7ce5f2abf36b3b7b7c8218d3acdebb9426aeb35c2257c96445756f970eb12",
+ "https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c",
+ "https://bcr.bazel.build/modules/protobuf/27.1/MODULE.bazel": "703a7b614728bb06647f965264967a8ef1c39e09e8f167b3ca0bb1fd80449c0d",
+ "https://bcr.bazel.build/modules/protobuf/28.2/MODULE.bazel": "c0c8e51757df486d0314fa290e174d707bad4a6c2aa5ccb08a4b4abd76a23e90",
+ "https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df",
+ "https://bcr.bazel.build/modules/protobuf/29.0/MODULE.bazel": "319dc8bf4c679ff87e71b1ccfb5a6e90a6dbc4693501d471f48662ac46d04e4e",
+ "https://bcr.bazel.build/modules/protobuf/29.0/source.json": "b857f93c796750eef95f0d61ee378f3420d00ee1dd38627b27193aa482f4f981",
"https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0",
+ "https://bcr.bazel.build/modules/protobuf/3.19.2/MODULE.bazel": "532ffe5f2186b69fdde039efe6df13ba726ff338c6bc82275ad433013fa10573",
"https://bcr.bazel.build/modules/protobuf/3.19.6/MODULE.bazel": "9233edc5e1f2ee276a60de3eaa47ac4132302ef9643238f23128fea53ea12858",
+ "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e",
+ "https://bcr.bazel.build/modules/pybind11_bazel/2.12.0/MODULE.bazel": "e6f4c20442eaa7c90d7190d8dc539d0ab422f95c65a57cc59562170c58ae3d34",
+ "https://bcr.bazel.build/modules/pybind11_bazel/2.12.0/source.json": "6900fdc8a9e95866b8c0d4ad4aba4d4236317b5c1cd04c502df3f0d33afed680",
+ "https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel": "cb3d511531b16cfc78a225a9e2136007a48cf8a677e4264baeab57fe78a80206",
+ "https://bcr.bazel.build/modules/re2/2024-07-02.bcr.1/MODULE.bazel": "b4963dda9b31080be1905ef085ecd7dd6cd47c05c79b9cdf83ade83ab2ab271a",
+ "https://bcr.bazel.build/modules/re2/2024-07-02.bcr.1/source.json": "2ff292be6ef3340325ce8a045ecc326e92cbfab47c7cbab4bd85d28971b97ac4",
+ "https://bcr.bazel.build/modules/re2/2024-07-02/MODULE.bazel": "0eadc4395959969297cbcf31a249ff457f2f1d456228c67719480205aa306daa",
+ "https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8",
+ "https://bcr.bazel.build/modules/rules_android/0.1.1/source.json": "e6986b41626ee10bdc864937ffb6d6bf275bb5b9c65120e6137d56e6331f089e",
+ "https://bcr.bazel.build/modules/rules_buf/0.1.1/MODULE.bazel": "6189aec18a4f7caff599ad41b851ab7645d4f1e114aa6431acf9b0666eb92162",
"https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647",
+ "https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002",
+ "https://bcr.bazel.build/modules/rules_cc/0.0.13/MODULE.bazel": "0e8529ed7b323dad0775ff924d2ae5af7640b23553dfcd4d34344c7e7a867191",
+ "https://bcr.bazel.build/modules/rules_cc/0.0.14/MODULE.bazel": "5e343a3aac88b8d7af3b1b6d2093b55c347b8eefc2e7d1442f7a02dc8fea48ac",
+ "https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc",
+ "https://bcr.bazel.build/modules/rules_cc/0.0.16/MODULE.bazel": "7661303b8fc1b4d7f532e54e9d6565771fea666fbdf839e0a86affcd02defe87",
+ "https://bcr.bazel.build/modules/rules_cc/0.0.17/MODULE.bazel": "2ae1d8f4238ec67d7185d8861cb0a2cdf4bc608697c331b95bf990e69b62e64a",
+ "https://bcr.bazel.build/modules/rules_cc/0.0.17/source.json": "4db99b3f55c90ab28d14552aa0632533e3e8e5e9aea0f5c24ac0014282c2a7c5",
"https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c",
+ "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f",
"https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e",
"https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5",
- "https://bcr.bazel.build/modules/rules_cc/0.0.9/source.json": "1f1ba6fea244b616de4a554a0f4983c91a9301640c8fe0dd1d410254115c8430",
+ "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6",
+ "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8",
+ "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/source.json": "c8b1e2c717646f1702290959a3302a178fb639d987ab61d548105019f11e527e",
+ "https://bcr.bazel.build/modules/rules_go/0.33.0/MODULE.bazel": "a2b11b64cd24bf94f57454f53288a5dacfe6cb86453eee7761b7637728c1910c",
+ "https://bcr.bazel.build/modules/rules_go/0.38.1/MODULE.bazel": "fb8e73dd3b6fc4ff9d260ceacd830114891d49904f5bda1c16bc147bcc254f71",
+ "https://bcr.bazel.build/modules/rules_go/0.39.1/MODULE.bazel": "d34fb2a249403a5f4339c754f1e63dc9e5ad70b47c5e97faee1441fc6636cd61",
+ "https://bcr.bazel.build/modules/rules_go/0.41.0/MODULE.bazel": "55861d8e8bb0e62cbd2896f60ff303f62ffcb0eddb74ecb0e5c0cbe36fc292c8",
+ "https://bcr.bazel.build/modules/rules_go/0.42.0/MODULE.bazel": "8cfa875b9aa8c6fce2b2e5925e73c1388173ea3c32a0db4d2b4804b453c14270",
+ "https://bcr.bazel.build/modules/rules_go/0.46.0/MODULE.bazel": "3477df8bdcc49e698b9d25f734c4f3a9f5931ff34ee48a2c662be168f5f2d3fd",
+ "https://bcr.bazel.build/modules/rules_go/0.49.0/MODULE.bazel": "61cfc1ba17123356d1b12b6c50f6e0162b2cc7fd6f51753c12471e973a0f72a5",
+ "https://bcr.bazel.build/modules/rules_go/0.49.0/source.json": "ab2261ea5e29d29a41c8e5c67896f946ab7855b786d28fe25d74987b84e5e85d",
"https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74",
+ "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86",
+ "https://bcr.bazel.build/modules/rules_java/6.0.0/MODULE.bazel": "8a43b7df601a7ec1af61d79345c17b31ea1fedc6711fd4abfd013ea612978e39",
+ "https://bcr.bazel.build/modules/rules_java/6.3.0/MODULE.bazel": "a97c7678c19f236a956ad260d59c86e10a463badb7eb2eda787490f4c969b963",
+ "https://bcr.bazel.build/modules/rules_java/6.4.0/MODULE.bazel": "e986a9fe25aeaa84ac17ca093ef13a4637f6107375f64667a15999f77db6c8f6",
+ "https://bcr.bazel.build/modules/rules_java/6.5.2/MODULE.bazel": "1d440d262d0e08453fa0c4d8f699ba81609ed0e9a9a0f02cd10b3e7942e61e31",
+ "https://bcr.bazel.build/modules/rules_java/7.1.0/MODULE.bazel": "30d9135a2b6561c761bd67bd4990da591e6bdc128790ce3e7afd6a3558b2fb64",
+ "https://bcr.bazel.build/modules/rules_java/7.10.0/MODULE.bazel": "530c3beb3067e870561739f1144329a21c851ff771cd752a49e06e3dc9c2e71a",
+ "https://bcr.bazel.build/modules/rules_java/7.12.2/MODULE.bazel": "579c505165ee757a4280ef83cda0150eea193eed3bef50b1004ba88b99da6de6",
+ "https://bcr.bazel.build/modules/rules_java/7.2.0/MODULE.bazel": "06c0334c9be61e6cef2c8c84a7800cef502063269a5af25ceb100b192453d4ab",
+ "https://bcr.bazel.build/modules/rules_java/7.3.2/MODULE.bazel": "50dece891cfdf1741ea230d001aa9c14398062f2b7c066470accace78e412bc2",
+ "https://bcr.bazel.build/modules/rules_java/7.4.0/MODULE.bazel": "a592852f8a3dd539e82ee6542013bf2cadfc4c6946be8941e189d224500a8934",
"https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe",
- "https://bcr.bazel.build/modules/rules_java/7.6.1/source.json": "8f3f3076554e1558e8e468b2232991c510ecbcbed9e6f8c06ac31c93bcf38362",
+ "https://bcr.bazel.build/modules/rules_java/7.9.0/MODULE.bazel": "aa1ebea5c5e2a4b31fbabe07bf3e9951ccc0f4e92499c42d325580f86c456020",
+ "https://bcr.bazel.build/modules/rules_java/8.6.1/MODULE.bazel": "f4808e2ab5b0197f094cabce9f4b006a27766beb6a9975931da07099560ca9c2",
+ "https://bcr.bazel.build/modules/rules_java/8.6.1/source.json": "f18d9ad3c4c54945bf422ad584fa6c5ca5b3116ff55a5b1bc77e5c1210be5960",
"https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7",
- "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/source.json": "a075731e1b46bc8425098512d038d416e966ab19684a10a34f4741295642fc35",
+ "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909",
+ "https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036",
+ "https://bcr.bazel.build/modules/rules_jvm_external/5.3/MODULE.bazel": "bf93870767689637164657731849fb887ad086739bd5d360d90007a581d5527d",
+ "https://bcr.bazel.build/modules/rules_jvm_external/6.1/MODULE.bazel": "75b5fec090dbd46cf9b7d8ea08cf84a0472d92ba3585b476f44c326eda8059c4",
+ "https://bcr.bazel.build/modules/rules_jvm_external/6.2/MODULE.bazel": "36a6e52487a855f33cb960724eb56547fa87e2c98a0474c3acad94339d7f8e99",
+ "https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0",
+ "https://bcr.bazel.build/modules/rules_jvm_external/6.3/source.json": "6f5f5a5a4419ae4e37c35a5bb0a6ae657ed40b7abc5a5189111b47fcebe43197",
+ "https://bcr.bazel.build/modules/rules_kotlin/1.9.0/MODULE.bazel": "ef85697305025e5a61f395d4eaede272a5393cee479ace6686dba707de804d59",
+ "https://bcr.bazel.build/modules/rules_kotlin/1.9.5/MODULE.bazel": "043a16a572f610558ec2030db3ff0c9938574e7dd9f58bded1bb07c0192ef025",
+ "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3",
+ "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5",
+ "https://bcr.bazel.build/modules/rules_libusb/0.1.0-rc1/MODULE.bazel": "e125975624d259e4c1749d5e80693bc6d7ebc8cdb6feb2b7f453b997d4467706",
+ "https://bcr.bazel.build/modules/rules_libusb/0.1.0-rc1/source.json": "3cfaff8651ceb8e6d57134a9a13a286bb424dc43b6c145765368581f22bb6391",
"https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0",
"https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d",
- "https://bcr.bazel.build/modules/rules_license/0.0.7/source.json": "355cc5737a0f294e560d52b1b7a6492d4fff2caf0bef1a315df5a298fca2d34a",
+ "https://bcr.bazel.build/modules/rules_license/0.0.8/MODULE.bazel": "5669c6fe49b5134dbf534db681ad3d67a2d49cfc197e4a95f1ca2fd7f3aebe96",
+ "https://bcr.bazel.build/modules/rules_license/1.0.0/MODULE.bazel": "a7fda60eefdf3d8c827262ba499957e4df06f659330bbe6cdbdb975b768bb65c",
+ "https://bcr.bazel.build/modules/rules_license/1.0.0/source.json": "a52c89e54cc311196e478f8382df91c15f7a2bfdf4c6cd0e2675cc2ff0b56efb",
+ "https://bcr.bazel.build/modules/rules_nodejs/5.8.2/MODULE.bazel": "6bc03c8f37f69401b888023bf511cb6ee4781433b0cb56236b2e55a21e3a026a",
+ "https://bcr.bazel.build/modules/rules_nodejs/6.3.0/MODULE.bazel": "45345e4aba35dd6e4701c1eebf5a4e67af4ed708def9ebcdc6027585b34ee52d",
+ "https://bcr.bazel.build/modules/rules_nodejs/6.3.0/source.json": "1254ffd8d0d908a19c67add7fb5e2a1f604df133bc5d206425264293e2e537fc",
"https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc",
- "https://bcr.bazel.build/modules/rules_pkg/0.7.0/source.json": "c2557066e0c0342223ba592510ad3d812d4963b9024831f7f66fd0584dd8c66c",
+ "https://bcr.bazel.build/modules/rules_pkg/1.0.1/MODULE.bazel": "5b1df97dbc29623bccdf2b0dcd0f5cb08e2f2c9050aab1092fd39a41e82686ff",
+ "https://bcr.bazel.build/modules/rules_pkg/1.0.1/source.json": "bd82e5d7b9ce2d31e380dd9f50c111d678c3bdaca190cb76b0e1c71b05e1ba8a",
+ "https://bcr.bazel.build/modules/rules_platform/0.1.0/MODULE.bazel": "1fe546d3ced195ad1632ed3621446d3c0bb4757e5becc44b12303a4ac23d6058",
+ "https://bcr.bazel.build/modules/rules_platform/0.1.0/source.json": "98becf9569572719b65f639133510633eb3527fb37d347d7ef08447f3ebcf1c9",
+ "https://bcr.bazel.build/modules/rules_probe_rs/0.0.2/MODULE.bazel": "179cdc37a7cd532fcbb8d3127572f7e238181c4897c58529797a36496691369c",
+ "https://bcr.bazel.build/modules/rules_probe_rs/0.0.2/source.json": "6d18e8365920c371f92a551de67abad262d45efd0f822bb3dc1522d0e34c0b38",
"https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06",
"https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7",
- "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/source.json": "d57902c052424dfda0e71646cb12668d39c4620ee0544294d9d941e7d12bc3a9",
+ "https://bcr.bazel.build/modules/rules_proto/6.0.0-rc1/MODULE.bazel": "1e5b502e2e1a9e825eef74476a5a1ee524a92297085015a052510b09a1a09483",
+ "https://bcr.bazel.build/modules/rules_proto/6.0.0/MODULE.bazel": "b531d7f09f58dce456cd61b4579ce8c86b38544da75184eadaf0a7cb7966453f",
+ "https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73",
+ "https://bcr.bazel.build/modules/rules_proto/7.0.2/MODULE.bazel": "bf81793bd6d2ad89a37a40693e56c61b0ee30f7a7fdbaf3eabbf5f39de47dea2",
+ "https://bcr.bazel.build/modules/rules_proto/7.0.2/source.json": "1e5e7260ae32ef4f2b52fd1d0de8d03b606a44c91b694d2f1afb1d3b28a48ce1",
+ "https://bcr.bazel.build/modules/rules_proto_grpc/5.0.0/MODULE.bazel": "aad0151be788911f9736f413c423342d781a9dc19f35d3373c8581c828a387f4",
+ "https://bcr.bazel.build/modules/rules_proto_grpc/5.0.0/source.json": "f35378dee74074450e6bb0755febb17879bddb705fe57270a213c8ee9c658a46",
"https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f",
"https://bcr.bazel.build/modules/rules_python/0.22.1/MODULE.bazel": "26114f0c0b5e93018c0c066d6673f1a2c3737c7e90af95eff30cfee38d0bbac7",
- "https://bcr.bazel.build/modules/rules_python/0.22.1/source.json": "57226905e783bae7c37c2dd662be078728e48fa28ee4324a7eabcafb5a43d014",
+ "https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300",
+ "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel": "72f1506841c920a1afec76975b35312410eea3aa7b63267436bfb1dd91d2d382",
+ "https://bcr.bazel.build/modules/rules_python/0.28.0/MODULE.bazel": "cba2573d870babc976664a912539b320cbaa7114cd3e8f053c720171cde331ed",
+ "https://bcr.bazel.build/modules/rules_python/0.29.0/MODULE.bazel": "2ac8cd70524b4b9ec49a0b8284c79e4cd86199296f82f6e0d5da3f783d660c82",
+ "https://bcr.bazel.build/modules/rules_python/0.31.0/MODULE.bazel": "93a43dc47ee570e6ec9f5779b2e64c1476a6ce921c48cc9a1678a91dd5f8fd58",
+ "https://bcr.bazel.build/modules/rules_python/0.33.2/MODULE.bazel": "3e036c4ad8d804a4dad897d333d8dce200d943df4827cb849840055be8d2e937",
+ "https://bcr.bazel.build/modules/rules_python/0.35.0/MODULE.bazel": "c3657951764cdcdb5a7370d5e885fad5e8c1583320aad18d46f9f110d2c22755",
+ "https://bcr.bazel.build/modules/rules_python/0.36.0/MODULE.bazel": "a4ce1ccea92b9106c7d16ab9ee51c6183107e78ba4a37aa65055227b80cd480c",
+ "https://bcr.bazel.build/modules/rules_python/0.38.0/MODULE.bazel": "ee75c9510a481eb92c7c04e432f84023065bbc8dcf6e49b7399e7c660624acdd",
"https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c",
+ "https://bcr.bazel.build/modules/rules_python/0.40.0/MODULE.bazel": "9d1a3cd88ed7d8e39583d9ffe56ae8a244f67783ae89b60caafc9f5cf318ada7",
+ "https://bcr.bazel.build/modules/rules_python/0.40.0/source.json": "939d4bd2e3110f27bfb360292986bb79fd8dcefb874358ccd6cdaa7bda029320",
+ "https://bcr.bazel.build/modules/rules_rust/0.45.1/MODULE.bazel": "a69d0db3a958fab2c6520961e1b2287afcc8b36690fd31bbc4f6f7391397150d",
+ "https://bcr.bazel.build/modules/rules_rust/0.56.0/MODULE.bazel": "3295b00757db397122092322fe1e920be7f5c9fbfb8619138977e820f2cbbbae",
+ "https://bcr.bazel.build/modules/rules_rust/0.56.0/source.json": "7dc294c3decd40af8f7b83897a5936e764d3ae8584b4056862978fb3870ab8d7",
+ "https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c",
+ "https://bcr.bazel.build/modules/rules_shell/0.3.0/MODULE.bazel": "de4402cd12f4cc8fda2354fce179fdb068c0b9ca1ec2d2b17b3e21b24c1a937b",
+ "https://bcr.bazel.build/modules/rules_shell/0.3.0/source.json": "c55ed591aa5009401ddf80ded9762ac32c358d2517ee7820be981e2de9756cf3",
+ "https://bcr.bazel.build/modules/stardoc/0.5.0/MODULE.bazel": "f9f1f46ba8d9c3362648eea571c6f9100680efc44913618811b58cc9c02cd678",
"https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8",
- "https://bcr.bazel.build/modules/stardoc/0.5.1/source.json": "a96f95e02123320aa015b956f29c00cb818fa891ef823d55148e1a362caacf29",
+ "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c",
+ "https://bcr.bazel.build/modules/stardoc/0.5.4/MODULE.bazel": "6569966df04610b8520957cb8e97cf2e9faac2c0309657c537ab51c16c18a2a4",
+ "https://bcr.bazel.build/modules/stardoc/0.5.6/MODULE.bazel": "c43dabc564990eeab55e25ed61c07a1aadafe9ece96a4efabb3f8bf9063b71ef",
+ "https://bcr.bazel.build/modules/stardoc/0.6.2/MODULE.bazel": "7060193196395f5dd668eda046ccbeacebfd98efc77fed418dbe2b82ffaa39fd",
+ "https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c",
+ "https://bcr.bazel.build/modules/stardoc/0.7.1/MODULE.bazel": "3548faea4ee5dda5580f9af150e79d0f6aea934fc60c1cc50f4efdd9420759e7",
+ "https://bcr.bazel.build/modules/stardoc/0.7.1/source.json": "b6500ffcd7b48cd72c29bb67bcac781e12701cc0d6d55d266a652583cfcdab01",
+ "https://bcr.bazel.build/modules/toolchains_protoc/0.3.1/MODULE.bazel": "b6574a2a314cbd40cafb5ed87b03d1996e015315f80a7e33116c8b2e209cb5cf",
+ "https://bcr.bazel.build/modules/toolchains_protoc/0.3.1/source.json": "b589ee1faec4c789c680afa9d500b5ccbea25422560b8b9dc4e0e6b26471f13b",
"https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43",
- "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/source.json": "f1ef7d3f9e0e26d4b23d1c39b5f5de71f584dd7d1b4ef83d9bbba6ec7a6a6459",
+ "https://bcr.bazel.build/modules/upb/0.0.0-20230516-61a97ef/MODULE.bazel": "c0df5e35ad55e264160417fd0875932ee3c9dda63d9fccace35ac62f45e1b6f9",
"https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0",
"https://bcr.bazel.build/modules/zlib/1.2.12/MODULE.bazel": "3b1a8834ada2a883674be8cbd36ede1b6ec481477ada359cd2d3ddc562340b27",
- "https://bcr.bazel.build/modules/zlib/1.3/MODULE.bazel": "6a9c02f19a24dcedb05572b2381446e27c272cd383aed11d41d99da9e3167a72",
- "https://bcr.bazel.build/modules/zlib/1.3/source.json": "b6b43d0737af846022636e6e255fd4a96fee0d34f08f3830e6e0bac51465c37c"
+ "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.3/MODULE.bazel": "af322bc08976524477c79d1e45e241b6efbeb918c497e8840b8ab116802dda79",
+ "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.3/source.json": "2be409ac3c7601245958cd4fcdff4288be79ed23bd690b4b951f500d54ee6e7d",
+ "https://bcr.bazel.build/modules/zlib/1.3.1/MODULE.bazel": "751c9940dcfe869f5f7274e1295422a34623555916eb98c174c1e945594bf198"
},
"selectedYankedVersions": {},
"moduleExtensions": {
- "@@apple_support~//crosstool:setup.bzl%apple_cc_configure_extension": {
+ "@@apple_support+//crosstool:setup.bzl%apple_cc_configure_extension": {
"general": {
- "bzlTransitiveDigest": "PjIds3feoYE8SGbbIq2SFTZy3zmxeO2tQevJZNDo7iY=",
- "usagesDigest": "aLmqbvowmHkkBPve05yyDNGN7oh7QE9kBADr3QIZTZs=",
+ "bzlTransitiveDigest": "Ync9nL0AbHC6ondeEY7fBjBjLxojTsiXcJh65ZDTRlA=",
+ "usagesDigest": "3L+PK6aRnliv0iIS8m3kdo+LjmvjJWoFCm3qZcPSg+8=",
"recordedFileInputs": {},
"recordedDirentsInputs": {},
"envVariables": {},
"generatedRepoSpecs": {
- "local_config_apple_cc": {
- "bzlFile": "@@apple_support~//crosstool:setup.bzl",
- "ruleClassName": "_apple_cc_autoconf",
+ "local_config_apple_cc_toolchains": {
+ "repoRuleId": "@@apple_support+//crosstool:setup.bzl%_apple_cc_autoconf_toolchains",
"attributes": {}
},
- "local_config_apple_cc_toolchains": {
- "bzlFile": "@@apple_support~//crosstool:setup.bzl",
- "ruleClassName": "_apple_cc_autoconf_toolchains",
+ "local_config_apple_cc": {
+ "repoRuleId": "@@apple_support+//crosstool:setup.bzl%_apple_cc_autoconf",
"attributes": {}
}
},
"recordedRepoMappingEntries": [
[
- "apple_support~",
+ "apple_support+",
+ "bazel_tools",
+ "bazel_tools"
+ ],
+ [
+ "bazel_tools",
+ "rules_cc",
+ "rules_cc+"
+ ]
+ ]
+ }
+ },
+ "@@aspect_bazel_lib+//lib:extensions.bzl%toolchains": {
+ "general": {
+ "bzlTransitiveDigest": "QYzNsxOEydJ+3EvC2QMD9H0UjNzWD4r3AZ3bgke1PYY=",
+ "usagesDigest": "OSDiT17Iojc2nI9CxYoJwyt0eQLLaRhbxOSwSp/RGCc=",
+ "recordedFileInputs": {},
+ "recordedDirentsInputs": {},
+ "envVariables": {},
+ "generatedRepoSpecs": {
+ "copy_directory_darwin_amd64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_directory_toolchain.bzl%copy_directory_platform_repo",
+ "attributes": {
+ "platform": "darwin_amd64"
+ }
+ },
+ "copy_directory_darwin_arm64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_directory_toolchain.bzl%copy_directory_platform_repo",
+ "attributes": {
+ "platform": "darwin_arm64"
+ }
+ },
+ "copy_directory_freebsd_amd64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_directory_toolchain.bzl%copy_directory_platform_repo",
+ "attributes": {
+ "platform": "freebsd_amd64"
+ }
+ },
+ "copy_directory_linux_amd64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_directory_toolchain.bzl%copy_directory_platform_repo",
+ "attributes": {
+ "platform": "linux_amd64"
+ }
+ },
+ "copy_directory_linux_arm64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_directory_toolchain.bzl%copy_directory_platform_repo",
+ "attributes": {
+ "platform": "linux_arm64"
+ }
+ },
+ "copy_directory_windows_amd64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_directory_toolchain.bzl%copy_directory_platform_repo",
+ "attributes": {
+ "platform": "windows_amd64"
+ }
+ },
+ "copy_directory_toolchains": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_directory_toolchain.bzl%copy_directory_toolchains_repo",
+ "attributes": {
+ "user_repository_name": "copy_directory"
+ }
+ },
+ "copy_to_directory_darwin_amd64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_to_directory_toolchain.bzl%copy_to_directory_platform_repo",
+ "attributes": {
+ "platform": "darwin_amd64"
+ }
+ },
+ "copy_to_directory_darwin_arm64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_to_directory_toolchain.bzl%copy_to_directory_platform_repo",
+ "attributes": {
+ "platform": "darwin_arm64"
+ }
+ },
+ "copy_to_directory_freebsd_amd64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_to_directory_toolchain.bzl%copy_to_directory_platform_repo",
+ "attributes": {
+ "platform": "freebsd_amd64"
+ }
+ },
+ "copy_to_directory_linux_amd64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_to_directory_toolchain.bzl%copy_to_directory_platform_repo",
+ "attributes": {
+ "platform": "linux_amd64"
+ }
+ },
+ "copy_to_directory_linux_arm64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_to_directory_toolchain.bzl%copy_to_directory_platform_repo",
+ "attributes": {
+ "platform": "linux_arm64"
+ }
+ },
+ "copy_to_directory_windows_amd64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_to_directory_toolchain.bzl%copy_to_directory_platform_repo",
+ "attributes": {
+ "platform": "windows_amd64"
+ }
+ },
+ "copy_to_directory_toolchains": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:copy_to_directory_toolchain.bzl%copy_to_directory_toolchains_repo",
+ "attributes": {
+ "user_repository_name": "copy_to_directory"
+ }
+ },
+ "jq_darwin_amd64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:jq_toolchain.bzl%jq_platform_repo",
+ "attributes": {
+ "platform": "darwin_amd64",
+ "version": "1.7"
+ }
+ },
+ "jq_darwin_arm64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:jq_toolchain.bzl%jq_platform_repo",
+ "attributes": {
+ "platform": "darwin_arm64",
+ "version": "1.7"
+ }
+ },
+ "jq_linux_amd64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:jq_toolchain.bzl%jq_platform_repo",
+ "attributes": {
+ "platform": "linux_amd64",
+ "version": "1.7"
+ }
+ },
+ "jq_linux_arm64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:jq_toolchain.bzl%jq_platform_repo",
+ "attributes": {
+ "platform": "linux_arm64",
+ "version": "1.7"
+ }
+ },
+ "jq_windows_amd64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:jq_toolchain.bzl%jq_platform_repo",
+ "attributes": {
+ "platform": "windows_amd64",
+ "version": "1.7"
+ }
+ },
+ "jq": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:jq_toolchain.bzl%jq_host_alias_repo",
+ "attributes": {}
+ },
+ "jq_toolchains": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:jq_toolchain.bzl%jq_toolchains_repo",
+ "attributes": {
+ "user_repository_name": "jq"
+ }
+ },
+ "yq_darwin_amd64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_platform_repo",
+ "attributes": {
+ "platform": "darwin_amd64",
+ "version": "4.25.2"
+ }
+ },
+ "yq_darwin_arm64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_platform_repo",
+ "attributes": {
+ "platform": "darwin_arm64",
+ "version": "4.25.2"
+ }
+ },
+ "yq_linux_amd64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_platform_repo",
+ "attributes": {
+ "platform": "linux_amd64",
+ "version": "4.25.2"
+ }
+ },
+ "yq_linux_arm64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_platform_repo",
+ "attributes": {
+ "platform": "linux_arm64",
+ "version": "4.25.2"
+ }
+ },
+ "yq_linux_s390x": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_platform_repo",
+ "attributes": {
+ "platform": "linux_s390x",
+ "version": "4.25.2"
+ }
+ },
+ "yq_linux_ppc64le": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_platform_repo",
+ "attributes": {
+ "platform": "linux_ppc64le",
+ "version": "4.25.2"
+ }
+ },
+ "yq_windows_amd64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_platform_repo",
+ "attributes": {
+ "platform": "windows_amd64",
+ "version": "4.25.2"
+ }
+ },
+ "yq": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_host_alias_repo",
+ "attributes": {}
+ },
+ "yq_toolchains": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:yq_toolchain.bzl%yq_toolchains_repo",
+ "attributes": {
+ "user_repository_name": "yq"
+ }
+ },
+ "coreutils_darwin_amd64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:coreutils_toolchain.bzl%coreutils_platform_repo",
+ "attributes": {
+ "platform": "darwin_amd64",
+ "version": "0.0.26"
+ }
+ },
+ "coreutils_darwin_arm64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:coreutils_toolchain.bzl%coreutils_platform_repo",
+ "attributes": {
+ "platform": "darwin_arm64",
+ "version": "0.0.26"
+ }
+ },
+ "coreutils_linux_amd64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:coreutils_toolchain.bzl%coreutils_platform_repo",
+ "attributes": {
+ "platform": "linux_amd64",
+ "version": "0.0.26"
+ }
+ },
+ "coreutils_linux_arm64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:coreutils_toolchain.bzl%coreutils_platform_repo",
+ "attributes": {
+ "platform": "linux_arm64",
+ "version": "0.0.26"
+ }
+ },
+ "coreutils_windows_amd64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:coreutils_toolchain.bzl%coreutils_platform_repo",
+ "attributes": {
+ "platform": "windows_amd64",
+ "version": "0.0.26"
+ }
+ },
+ "coreutils_toolchains": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:coreutils_toolchain.bzl%coreutils_toolchains_repo",
+ "attributes": {
+ "user_repository_name": "coreutils"
+ }
+ },
+ "bsd_tar_darwin_amd64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:tar_toolchain.bzl%bsdtar_binary_repo",
+ "attributes": {
+ "platform": "darwin_amd64"
+ }
+ },
+ "bsd_tar_darwin_arm64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:tar_toolchain.bzl%bsdtar_binary_repo",
+ "attributes": {
+ "platform": "darwin_arm64"
+ }
+ },
+ "bsd_tar_linux_amd64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:tar_toolchain.bzl%bsdtar_binary_repo",
+ "attributes": {
+ "platform": "linux_amd64"
+ }
+ },
+ "bsd_tar_linux_arm64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:tar_toolchain.bzl%bsdtar_binary_repo",
+ "attributes": {
+ "platform": "linux_arm64"
+ }
+ },
+ "bsd_tar_windows_amd64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:tar_toolchain.bzl%bsdtar_binary_repo",
+ "attributes": {
+ "platform": "windows_amd64"
+ }
+ },
+ "bsd_tar_toolchains": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:tar_toolchain.bzl%tar_toolchains_repo",
+ "attributes": {
+ "user_repository_name": "bsd_tar"
+ }
+ },
+ "zstd_darwin_amd64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:zstd_toolchain.bzl%zstd_binary_repo",
+ "attributes": {
+ "platform": "darwin_amd64"
+ }
+ },
+ "zstd_darwin_arm64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:zstd_toolchain.bzl%zstd_binary_repo",
+ "attributes": {
+ "platform": "darwin_arm64"
+ }
+ },
+ "zstd_linux_amd64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:zstd_toolchain.bzl%zstd_binary_repo",
+ "attributes": {
+ "platform": "linux_amd64"
+ }
+ },
+ "zstd_linux_arm64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:zstd_toolchain.bzl%zstd_binary_repo",
+ "attributes": {
+ "platform": "linux_arm64"
+ }
+ },
+ "zstd_toolchains": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:zstd_toolchain.bzl%zstd_toolchains_repo",
+ "attributes": {
+ "user_repository_name": "zstd"
+ }
+ },
+ "expand_template_darwin_amd64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:expand_template_toolchain.bzl%expand_template_platform_repo",
+ "attributes": {
+ "platform": "darwin_amd64"
+ }
+ },
+ "expand_template_darwin_arm64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:expand_template_toolchain.bzl%expand_template_platform_repo",
+ "attributes": {
+ "platform": "darwin_arm64"
+ }
+ },
+ "expand_template_freebsd_amd64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:expand_template_toolchain.bzl%expand_template_platform_repo",
+ "attributes": {
+ "platform": "freebsd_amd64"
+ }
+ },
+ "expand_template_linux_amd64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:expand_template_toolchain.bzl%expand_template_platform_repo",
+ "attributes": {
+ "platform": "linux_amd64"
+ }
+ },
+ "expand_template_linux_arm64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:expand_template_toolchain.bzl%expand_template_platform_repo",
+ "attributes": {
+ "platform": "linux_arm64"
+ }
+ },
+ "expand_template_windows_amd64": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:expand_template_toolchain.bzl%expand_template_platform_repo",
+ "attributes": {
+ "platform": "windows_amd64"
+ }
+ },
+ "expand_template_toolchains": {
+ "repoRuleId": "@@aspect_bazel_lib+//lib/private:expand_template_toolchain.bzl%expand_template_toolchains_repo",
+ "attributes": {
+ "user_repository_name": "expand_template"
+ }
+ },
+ "bats_support": {
+ "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+ "attributes": {
+ "sha256": "7815237aafeb42ddcc1b8c698fc5808026d33317d8701d5ec2396e9634e2918f",
+ "urls": [
+ "https://github.com/bats-core/bats-support/archive/v0.3.0.tar.gz"
+ ],
+ "strip_prefix": "bats-support-0.3.0",
+ "build_file_content": "load(\"@aspect_bazel_lib//lib:copy_to_directory.bzl\", \"copy_to_directory\")\n\ncopy_to_directory(\n name = \"support\",\n hardlink = \"on\",\n srcs = glob([\n \"src/**\",\n \"load.bash\",\n ]),\n out = \"bats-support\",\n visibility = [\"//visibility:public\"]\n)\n"
+ }
+ },
+ "bats_assert": {
+ "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+ "attributes": {
+ "sha256": "98ca3b685f8b8993e48ec057565e6e2abcc541034ed5b0e81f191505682037fd",
+ "urls": [
+ "https://github.com/bats-core/bats-assert/archive/v2.1.0.tar.gz"
+ ],
+ "strip_prefix": "bats-assert-2.1.0",
+ "build_file_content": "load(\"@aspect_bazel_lib//lib:copy_to_directory.bzl\", \"copy_to_directory\")\n\ncopy_to_directory(\n name = \"assert\",\n hardlink = \"on\",\n srcs = glob([\n \"src/**\",\n \"load.bash\",\n ]),\n out = \"bats-assert\",\n visibility = [\"//visibility:public\"]\n)\n"
+ }
+ },
+ "bats_file": {
+ "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+ "attributes": {
+ "sha256": "9b69043241f3af1c2d251f89b4fcafa5df3f05e97b89db18d7c9bdf5731bb27a",
+ "urls": [
+ "https://github.com/bats-core/bats-file/archive/v0.4.0.tar.gz"
+ ],
+ "strip_prefix": "bats-file-0.4.0",
+ "build_file_content": "load(\"@aspect_bazel_lib//lib:copy_to_directory.bzl\", \"copy_to_directory\")\n\ncopy_to_directory(\n name = \"file\",\n hardlink = \"on\",\n srcs = glob([\n \"src/**\",\n \"load.bash\",\n ]),\n out = \"bats-file\",\n visibility = [\"//visibility:public\"]\n)\n"
+ }
+ },
+ "bats_toolchains": {
+ "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+ "attributes": {
+ "sha256": "a1a9f7875aa4b6a9480ca384d5865f1ccf1b0b1faead6b47aa47d79709a5c5fd",
+ "urls": [
+ "https://github.com/bats-core/bats-core/archive/v1.10.0.tar.gz"
+ ],
+ "strip_prefix": "bats-core-1.10.0",
+ "build_file_content": "load(\"@local_config_platform//:constraints.bzl\", \"HOST_CONSTRAINTS\")\nload(\"@aspect_bazel_lib//lib/private:bats_toolchain.bzl\", \"bats_toolchain\")\nload(\"@aspect_bazel_lib//lib:copy_to_directory.bzl\", \"copy_to_directory\")\n\ncopy_to_directory(\n name = \"core\",\n hardlink = \"on\",\n srcs = glob([\n \"lib/**\",\n \"libexec/**\"\n ]) + [\"bin/bats\"],\n out = \"bats-core\",\n)\n\nbats_toolchain(\n name = \"toolchain\",\n core = \":core\",\n libraries = [\"@bats_support//:support\", \"@bats_assert//:assert\", \"@bats_file//:file\"]\n)\n\ntoolchain(\n name = \"bats_toolchain\",\n exec_compatible_with = HOST_CONSTRAINTS,\n toolchain = \":toolchain\",\n toolchain_type = \"@aspect_bazel_lib//lib:bats_toolchain_type\",\n)\n"
+ }
+ }
+ },
+ "recordedRepoMappingEntries": [
+ [
+ "aspect_bazel_lib+",
+ "aspect_bazel_lib",
+ "aspect_bazel_lib+"
+ ],
+ [
+ "aspect_bazel_lib+",
+ "bazel_skylib",
+ "bazel_skylib+"
+ ],
+ [
+ "aspect_bazel_lib+",
"bazel_tools",
"bazel_tools"
]
@@ -92,19 +678,308 @@
"@@platforms//host:extension.bzl%host_platform": {
"general": {
"bzlTransitiveDigest": "xelQcPZH8+tmuOHVjL9vDxMnnQNMlwj0SlvgoqBkm4U=",
- "usagesDigest": "meSzxn3DUCcYEhq4HQwExWkWtU4EjriRBQLsZN+Q0SU=",
+ "usagesDigest": "SeQiIN/f8/Qt9vYQk7qcXp4I4wJeEC0RnQDiaaJ4tb8=",
"recordedFileInputs": {},
"recordedDirentsInputs": {},
"envVariables": {},
"generatedRepoSpecs": {
"host_platform": {
- "bzlFile": "@@platforms//host:extension.bzl",
- "ruleClassName": "host_platform_repo",
+ "repoRuleId": "@@platforms//host:extension.bzl%host_platform_repo",
"attributes": {}
}
},
"recordedRepoMappingEntries": []
}
+ },
+ "@@rules_fuzzing+//fuzzing/private:extensions.bzl%non_module_dependencies": {
+ "general": {
+ "bzlTransitiveDigest": "mGiTB79hRNjmeDTQdzkpCHyzXhErMbufeAmySBt7s5s=",
+ "usagesDigest": "T13X7WXnVd863yIkg/0xDmftJ/CetmPbmrkGVQ99gkE=",
+ "recordedFileInputs": {},
+ "recordedDirentsInputs": {},
+ "envVariables": {},
+ "generatedRepoSpecs": {
+ "platforms": {
+ "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+ "attributes": {
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/platforms/releases/download/0.0.8/platforms-0.0.8.tar.gz",
+ "https://github.com/bazelbuild/platforms/releases/download/0.0.8/platforms-0.0.8.tar.gz"
+ ],
+ "sha256": "8150406605389ececb6da07cbcb509d5637a3ab9a24bc69b1101531367d89d74"
+ }
+ },
+ "rules_python": {
+ "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+ "attributes": {
+ "sha256": "d70cd72a7a4880f0000a6346253414825c19cdd40a28289bdf67b8e6480edff8",
+ "strip_prefix": "rules_python-0.28.0",
+ "url": "https://github.com/bazelbuild/rules_python/releases/download/0.28.0/rules_python-0.28.0.tar.gz"
+ }
+ },
+ "bazel_skylib": {
+ "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+ "attributes": {
+ "sha256": "cd55a062e763b9349921f0f5db8c3933288dc8ba4f76dd9416aac68acee3cb94",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-1.5.0.tar.gz",
+ "https://github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-1.5.0.tar.gz"
+ ]
+ }
+ },
+ "com_google_absl": {
+ "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+ "attributes": {
+ "urls": [
+ "https://github.com/abseil/abseil-cpp/archive/refs/tags/20240116.1.zip"
+ ],
+ "strip_prefix": "abseil-cpp-20240116.1",
+ "integrity": "sha256-7capMWOvWyoYbUaHF/b+I2U6XLMaHmky8KugWvfXYuk="
+ }
+ },
+ "rules_fuzzing_oss_fuzz": {
+ "repoRuleId": "@@rules_fuzzing+//fuzzing/private/oss_fuzz:repository.bzl%oss_fuzz_repository",
+ "attributes": {}
+ },
+ "honggfuzz": {
+ "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+ "attributes": {
+ "build_file": "@@rules_fuzzing+//:honggfuzz.BUILD",
+ "sha256": "6b18ba13bc1f36b7b950c72d80f19ea67fbadc0ac0bb297ec89ad91f2eaa423e",
+ "url": "https://github.com/google/honggfuzz/archive/2.5.zip",
+ "strip_prefix": "honggfuzz-2.5"
+ }
+ },
+ "rules_fuzzing_jazzer": {
+ "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_jar",
+ "attributes": {
+ "sha256": "ee6feb569d88962d59cb59e8a31eb9d007c82683f3ebc64955fd5b96f277eec2",
+ "url": "https://repo1.maven.org/maven2/com/code-intelligence/jazzer/0.20.1/jazzer-0.20.1.jar"
+ }
+ },
+ "rules_fuzzing_jazzer_api": {
+ "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_jar",
+ "attributes": {
+ "sha256": "f5a60242bc408f7fa20fccf10d6c5c5ea1fcb3c6f44642fec5af88373ae7aa1b",
+ "url": "https://repo1.maven.org/maven2/com/code-intelligence/jazzer-api/0.20.1/jazzer-api-0.20.1.jar"
+ }
+ }
+ },
+ "recordedRepoMappingEntries": [
+ [
+ "rules_fuzzing+",
+ "bazel_tools",
+ "bazel_tools"
+ ]
+ ]
+ }
+ },
+ "@@rules_java+//java:rules_java_deps.bzl%compatibility_proxy": {
+ "general": {
+ "bzlTransitiveDigest": "84xJEZ1jnXXwo8BXMprvBm++rRt4jsTu9liBxz0ivps=",
+ "usagesDigest": "jTQDdLDxsS43zuRmg1faAjIEPWdLAbDAowI1pInQSoo=",
+ "recordedFileInputs": {},
+ "recordedDirentsInputs": {},
+ "envVariables": {},
+ "generatedRepoSpecs": {
+ "compatibility_proxy": {
+ "repoRuleId": "@@rules_java+//java:rules_java_deps.bzl%_compatibility_proxy_repo_rule",
+ "attributes": {}
+ }
+ },
+ "recordedRepoMappingEntries": [
+ [
+ "rules_java+",
+ "bazel_tools",
+ "bazel_tools"
+ ]
+ ]
+ }
+ },
+ "@@rules_kotlin+//src/main/starlark/core/repositories:bzlmod_setup.bzl%rules_kotlin_extensions": {
+ "general": {
+ "bzlTransitiveDigest": "sFhcgPbDQehmbD1EOXzX4H1q/CD5df8zwG4kp4jbvr8=",
+ "usagesDigest": "QI2z8ZUR+mqtbwsf2fLqYdJAkPOHdOV+tF2yVAUgRzw=",
+ "recordedFileInputs": {},
+ "recordedDirentsInputs": {},
+ "envVariables": {},
+ "generatedRepoSpecs": {
+ "com_github_jetbrains_kotlin_git": {
+ "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_compiler_git_repository",
+ "attributes": {
+ "urls": [
+ "https://github.com/JetBrains/kotlin/releases/download/v1.9.23/kotlin-compiler-1.9.23.zip"
+ ],
+ "sha256": "93137d3aab9afa9b27cb06a824c2324195c6b6f6179d8a8653f440f5bd58be88"
+ }
+ },
+ "com_github_jetbrains_kotlin": {
+ "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_capabilities_repository",
+ "attributes": {
+ "git_repository_name": "com_github_jetbrains_kotlin_git",
+ "compiler_version": "1.9.23"
+ }
+ },
+ "com_github_google_ksp": {
+ "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:ksp.bzl%ksp_compiler_plugin_repository",
+ "attributes": {
+ "urls": [
+ "https://github.com/google/ksp/releases/download/1.9.23-1.0.20/artifacts.zip"
+ ],
+ "sha256": "ee0618755913ef7fd6511288a232e8fad24838b9af6ea73972a76e81053c8c2d",
+ "strip_version": "1.9.23-1.0.20"
+ }
+ },
+ "com_github_pinterest_ktlint": {
+ "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file",
+ "attributes": {
+ "sha256": "01b2e0ef893383a50dbeb13970fe7fa3be36ca3e83259e01649945b09d736985",
+ "urls": [
+ "https://github.com/pinterest/ktlint/releases/download/1.3.0/ktlint"
+ ],
+ "executable": true
+ }
+ },
+ "rules_android": {
+ "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
+ "attributes": {
+ "sha256": "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806",
+ "strip_prefix": "rules_android-0.1.1",
+ "urls": [
+ "https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip"
+ ]
+ }
+ }
+ },
+ "recordedRepoMappingEntries": [
+ [
+ "rules_kotlin+",
+ "bazel_tools",
+ "bazel_tools"
+ ]
+ ]
+ }
+ },
+ "@@rules_nodejs+//nodejs:extensions.bzl%node": {
+ "general": {
+ "bzlTransitiveDigest": "SqbzUarOVzAfK28Ca5+NIU3LUwnW/b3h0xXBUS97oyI=",
+ "usagesDigest": "34/6ou8eW2MB82HSiYBcfVzZkGk1rL1teO3wuFqFAe0=",
+ "recordedFileInputs": {},
+ "recordedDirentsInputs": {},
+ "envVariables": {},
+ "generatedRepoSpecs": {
+ "nodejs_linux_amd64": {
+ "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories",
+ "attributes": {
+ "node_download_auth": {},
+ "node_repositories": {},
+ "node_urls": [
+ "https://nodejs.org/dist/v{version}/{filename}"
+ ],
+ "node_version": "18.20.4",
+ "include_headers": false,
+ "platform": "linux_amd64"
+ }
+ },
+ "nodejs_linux_arm64": {
+ "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories",
+ "attributes": {
+ "node_download_auth": {},
+ "node_repositories": {},
+ "node_urls": [
+ "https://nodejs.org/dist/v{version}/{filename}"
+ ],
+ "node_version": "18.20.4",
+ "include_headers": false,
+ "platform": "linux_arm64"
+ }
+ },
+ "nodejs_linux_s390x": {
+ "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories",
+ "attributes": {
+ "node_download_auth": {},
+ "node_repositories": {},
+ "node_urls": [
+ "https://nodejs.org/dist/v{version}/{filename}"
+ ],
+ "node_version": "18.20.4",
+ "include_headers": false,
+ "platform": "linux_s390x"
+ }
+ },
+ "nodejs_linux_ppc64le": {
+ "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories",
+ "attributes": {
+ "node_download_auth": {},
+ "node_repositories": {},
+ "node_urls": [
+ "https://nodejs.org/dist/v{version}/{filename}"
+ ],
+ "node_version": "18.20.4",
+ "include_headers": false,
+ "platform": "linux_ppc64le"
+ }
+ },
+ "nodejs_darwin_amd64": {
+ "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories",
+ "attributes": {
+ "node_download_auth": {},
+ "node_repositories": {},
+ "node_urls": [
+ "https://nodejs.org/dist/v{version}/{filename}"
+ ],
+ "node_version": "18.20.4",
+ "include_headers": false,
+ "platform": "darwin_amd64"
+ }
+ },
+ "nodejs_darwin_arm64": {
+ "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories",
+ "attributes": {
+ "node_download_auth": {},
+ "node_repositories": {},
+ "node_urls": [
+ "https://nodejs.org/dist/v{version}/{filename}"
+ ],
+ "node_version": "18.20.4",
+ "include_headers": false,
+ "platform": "darwin_arm64"
+ }
+ },
+ "nodejs_windows_amd64": {
+ "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories",
+ "attributes": {
+ "node_download_auth": {},
+ "node_repositories": {},
+ "node_urls": [
+ "https://nodejs.org/dist/v{version}/{filename}"
+ ],
+ "node_version": "18.20.4",
+ "include_headers": false,
+ "platform": "windows_amd64"
+ }
+ },
+ "nodejs": {
+ "repoRuleId": "@@rules_nodejs+//nodejs/private:nodejs_repo_host_os_alias.bzl%nodejs_repo_host_os_alias",
+ "attributes": {
+ "user_node_repository_name": "nodejs"
+ }
+ },
+ "nodejs_host": {
+ "repoRuleId": "@@rules_nodejs+//nodejs/private:nodejs_repo_host_os_alias.bzl%nodejs_repo_host_os_alias",
+ "attributes": {
+ "user_node_repository_name": "nodejs"
+ }
+ },
+ "nodejs_toolchains": {
+ "repoRuleId": "@@rules_nodejs+//nodejs/private:nodejs_toolchains_repo.bzl%nodejs_toolchains_repo",
+ "attributes": {
+ "user_node_repository_name": "nodejs"
+ }
+ }
+ },
+ "recordedRepoMappingEntries": []
+ }
}
}
}
diff --git a/examples/hello_dts/README.md b/examples/hello_dts/README.md
new file mode 100644
index 0000000..020bdf4
--- /dev/null
+++ b/examples/hello_dts/README.md
@@ -0,0 +1,25 @@
+# Getting started
+
+## How to build?
+```bash
+examples/hello_dts $ bazelisk build :app --platforms=:robokit1
+```
+
+## How to regenerated files
+Some of the files under the `generated/` directory are currently not generated
+by Bazel. To generate them use the same SHA of Zephyr as the one in the
+MODULE.bazel and run `west build -p -b robokit1 samples/cpp/hello_world`. All
+the generated files will be under the `build/` directory. When you copy the
+`autoconf.h` file, you need to append the following line to that file:
+
+```c
+#define CONFIG_PIGWEED_SYS_IO_INIT_PRIORITY 1
+```
+
+# Comparing Zephyr builds
+
+Using a build log we can scan to see which files were generated using:
+
+```bash
+grep -oP '\-o [\w_\-+/\.]+\.o(bj)?' ${log_file} | sort -u
+```
\ No newline at end of file
diff --git a/examples/hello_dts/WORKSPACE b/examples/hello_dts/WORKSPACE
deleted file mode 100644
index 03644f6..0000000
--- a/examples/hello_dts/WORKSPACE
+++ /dev/null
@@ -1,176 +0,0 @@
-# Copyright 2024 The Pigweed Authors
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may not
-# use this file except in compliance with the License. You may obtain a copy of
-# the License at
-#
-# https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations under
-# the License.
-
-load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository")
-load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
-
-
-# Load Pigweed's own dependencies that we'll need.
-#
-# TODO: b/274148833 - Don't require users to spell these out.
-http_archive(
- name = "platforms",
- urls = [
- "https://mirror.bazel.build/github.com/bazelbuild/platforms/releases/download/0.0.10/platforms-0.0.10.tar.gz",
- "https://github.com/bazelbuild/platforms/releases/download/0.0.10/platforms-0.0.10.tar.gz",
- ],
- sha256 = "218efe8ee736d26a3572663b374a253c012b716d8af0c07e842e82f238a0a7ee",
-)
-
-http_archive(
- name = "bazel_skylib",
- sha256 = "bc283cdfcd526a52c3201279cda4bc298652efa898b10b4db0837dc51652756f",
- urls = [
- "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.7.1/bazel-skylib-1.7.1.tar.gz",
- "https://github.com/bazelbuild/bazel-skylib/releases/download/1.7.1/bazel-skylib-1.7.1.tar.gz",
- ],
-)
-
-load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace")
-
-bazel_skylib_workspace()
-
-http_archive(
- name = "rules_cc",
- sha256 = "d75a040c32954da0d308d3f2ea2ba735490f49b3a7aa3e4b40259ca4b814f825",
- # strip_prefix = "rules_cc-0.0.10-rc1",
- urls = [
- "https://github.com/bazelbuild/rules_cc/releases/download/0.0.10-rc1/rules_cc-0.0.10-rc1.tar.gz",
- ],
-)
-
-load("@rules_cc//cc:repositories.bzl", "rules_cc_dependencies", "rules_cc_toolchains")
-rules_cc_dependencies()
-rules_cc_toolchains()
-
-http_archive(
- name = "rules_proto",
- sha256 = "dc3fb206a2cb3441b485eb1e423165b231235a1ea9b031b4433cf7bc1fa460dd",
- strip_prefix = "rules_proto-5.3.0-21.7",
- urls = [
- "https://github.com/bazelbuild/rules_proto/archive/refs/tags/5.3.0-21.7.tar.gz",
- ],
-)
-
-http_archive(
- name = "rules_python",
- sha256 = "0a8003b044294d7840ac7d9d73eef05d6ceb682d7516781a4ec62eeb34702578",
- strip_prefix = "rules_python-0.24.0",
- url = "https://github.com/bazelbuild/rules_python/releases/download/0.24.0/rules_python-0.24.0.tar.gz",
-)
-
-load("@rules_python//python:repositories.bzl", "py_repositories")
-
-py_repositories()
-
-http_archive(
- name = "com_google_protobuf",
- sha256 = "c6003e1d2e7fefa78a3039f19f383b4f3a61e81be8c19356f85b6461998ad3db",
- strip_prefix = "protobuf-3.17.3",
- url = "https://github.com/protocolbuffers/protobuf/archive/v3.17.3.tar.gz",
-)
-
-load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps")
-
-protobuf_deps()
-
-git_repository(
- name = "pigweed",
- remote = "https://github.com/google/pigweed",
- branch = "main",
-)
-
-git_repository(
- name = "pw_toolchain",
- remote = "https://github.com/google/pigweed",
- branch = "main",
- strip_prefix = "pw_toolchain_bazel",
-)
-
-local_repository(
- name = "zephyr-bazel",
- path = "../..",
-)
-
-load("@zephyr-bazel//:setup.bzl", "create_zephyr_patch_file")
-
-create_zephyr_patch_file(
- name = "zephyr-patch",
- filename = "patch.diff",
- debug = True,
-)
-
-git_repository(
- name = "zephyr",
- remote = "https://github.com/zephyrproject-rtos/zephyr.git",
- branch = "main",
- patches = [
- "@zephyr-patch//:patch.diff",
- ],
-)
-
-# Get ready to grab CIPD dependencies. For this minimal example, the only
-# dependencies will be the toolchains and OpenOCD (used for flashing).
-load(
- "@pigweed//pw_env_setup/bazel/cipd_setup:cipd_rules.bzl",
- "cipd_client_repository",
- "cipd_repository",
-)
-
-cipd_client_repository()
-
-
-load("@pigweed//pw_toolchain:register_toolchains.bzl", "register_pigweed_cxx_toolchains")
-
-register_pigweed_cxx_toolchains()
-
-# Get the OpenOCD binary (we'll use it for flashing).
-cipd_repository(
- name = "openocd",
- path = "infra/3pp/tools/openocd/${os}-${arch}",
- tag = "version:2@0.11.0-3",
-)
-
-load("@rules_python//python:repositories.bzl", "python_register_toolchains")
-
-# Set up the Python interpreter and PyPI dependencies we'll need.
-python_register_toolchains(
- name = "python3",
- python_version = "3.11",
-)
-
-load("@python3//:defs.bzl", "interpreter")
-load("@rules_python//python:pip.bzl", "pip_parse")
-
-pip_parse(
- name = "pypi",
- python_interpreter_target = interpreter,
- requirements_lock = "//:requirements_lock.txt",
-)
-
-load("@pypi//:requirements.bzl", "install_deps")
-
-install_deps()
-
-# Load the Zephyr pip requirements
-pip_parse(
- name = "py_deps",
- python_interpreter_target = interpreter,
- requirements_lock = "@@zephyr//:scripts/requirements-base.txt",
-)
-
-load("@py_deps//:requirements.bzl", zephyr_install_deps = "install_deps")
-
-zephyr_install_deps()
-
diff --git a/examples/hello_dts/format_autoconf.awk b/examples/hello_dts/format_autoconf.awk
new file mode 100644
index 0000000..08bc973
--- /dev/null
+++ b/examples/hello_dts/format_autoconf.awk
@@ -0,0 +1,19 @@
+BEGIN {
+ print "cc_library("
+ print " name = \"autoconf\","
+ print " hdrs = ["
+ print " \"generated/autoconf.h\","
+ print " \"generated/zephyr/kobj-types-enum.h\","
+ print " ],"
+ print " includes = [\"generated\"],"
+ print " defines = ["
+}
+
+{
+ printf(" \"%s=%s\",\n", $2, $3);
+}
+
+END {
+ print " ],"
+ print ")"
+}
\ No newline at end of file
diff --git a/examples/hello_dts/generated/configs.c b/examples/hello_dts/generated/configs.c
new file mode 100644
index 0000000..8bec3dc
--- /dev/null
+++ b/examples/hello_dts/generated/configs.c
@@ -0,0 +1,368 @@
+/* file is auto-generated, do not modify ! */
+
+#include <zephyr/toolchain.h>
+
+GEN_ABS_SYM_BEGIN (_ConfigAbsSyms)
+
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_USART_SAM, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_SERIAL, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_NUM_IRQS, 74);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC, 300000000);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_FLASH_SIZE, 2048);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_FLASH_BASE_ADDRESS, 0x400000);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_MP_MAX_NUM_CPUS, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_SOC_RESET_HOOK, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_MAIN_STACK_SIZE, 1024);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_IDLE_STACK_SIZE, 320);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ISR_STACK_SIZE, 2048);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_CLOCK_CONTROL, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_SYS_CLOCK_TICKS_PER_SEC, 10000);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ROM_START_OFFSET, 0x0);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_KERNEL_ENTRY, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_BUILD_OUTPUT_BIN, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_PINCTRL, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_XIP, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_HAS_FLASH_LOAD_OFFSET, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_CPU_HAS_ARM_MPU, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_CPU_HAS_FPU_DOUBLE_PRECISION, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_TICKLESS_KERNEL, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE, 1024);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_CORTEX_M_SYSTICK, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_CLOCK_CONTROL_INIT_PRIORITY, 30);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_GEN_IRQ_VECTOR_TABLE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_GEN_ISR_TABLES, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_TIMESLICE_SIZE, 0);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_FLASH_LOAD_OFFSET, 0x0);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_HW_STACK_PROTECTION, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_GPIO, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_DCACHE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_DCACHE_LINE_SIZE, 32);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ARCH_SW_ISR_TABLE_ALIGN, 4);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_BUILD_OUTPUT_HEX, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_UART_USE_RUNTIME_CONFIGURE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_SERIAL_INIT_PRIORITY, 50);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_COMMON_LIBC_MALLOC_ARENA_SIZE, -1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_SOC_TOOLCHAIN_NAME, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_GEN_SW_ISR_TABLE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_GEN_IRQ_START_VECTOR, 0);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_SRAM_OFFSET, 0x0);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_CONSOLE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ARCH_IRQ_VECTOR_TABLE_ALIGN, 4);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_WATCHDOG, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ICACHE_LINE_SIZE, 32);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_PRIVILEGED_STACK_SIZE, 1024);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_DT_HAS_ARM_ARMV7M_MPU_ENABLED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_DT_HAS_ARM_ARMV7M_SYSTICK_ENABLED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_DT_HAS_ARM_CORTEX_M7_ENABLED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_DT_HAS_ARM_V7M_NVIC_ENABLED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_DT_HAS_ASAHI_KASEI_AKM09918C_ENABLED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_DT_HAS_ATMEL_SAM_AFEC_ENABLED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_DT_HAS_ATMEL_SAM_DAC_ENABLED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_DT_HAS_ATMEL_SAM_FLASH_ENABLED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_DT_HAS_ATMEL_SAM_FLASH_CONTROLLER_ENABLED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_DT_HAS_ATMEL_SAM_GPIO_ENABLED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_DT_HAS_ATMEL_SAM_I2C_TWIHS_ENABLED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_DT_HAS_ATMEL_SAM_MDIO_ENABLED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_DT_HAS_ATMEL_SAM_PINCTRL_ENABLED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_DT_HAS_ATMEL_SAM_PMC_ENABLED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_DT_HAS_ATMEL_SAM_PWM_ENABLED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_DT_HAS_ATMEL_SAM_RSTC_ENABLED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_DT_HAS_ATMEL_SAM_SPI_ENABLED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_DT_HAS_ATMEL_SAM_SUPC_ENABLED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_DT_HAS_ATMEL_SAM_TRNG_ENABLED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_DT_HAS_ATMEL_SAM_UART_ENABLED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_DT_HAS_ATMEL_SAM_USART_ENABLED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_DT_HAS_ATMEL_SAM_USBHS_ENABLED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_DT_HAS_ATMEL_SAM_WATCHDOG_ENABLED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_DT_HAS_ATMEL_SAM_XDMAC_ENABLED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_DT_HAS_EPCOS_B57861S0103A039_ENABLED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_DT_HAS_FIXED_PARTITIONS_ENABLED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_DT_HAS_GPIO_LEDS_ENABLED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_DT_HAS_INVENSENSE_ICM42688_ENABLED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_DT_HAS_MMIO_SRAM_ENABLED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_DT_HAS_SOC_NV_FLASH_ENABLED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_DT_HAS_TI_ADS7052_ENABLED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_CHRE_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_NANOPB_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_ACPICA_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_CMSIS_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_HAS_CMSIS_CORE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_HAS_CMSIS_CORE_M, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_CMSIS_DSP_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_CMSIS_NN_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_FATFS_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_ADI_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_ALTERA_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_HAL_AMBIQ_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_ATMEL_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_HAL_ESPRESSIF_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_HAL_ETHOS_U_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_HAL_GIGADEVICE_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_HAL_INFINEON_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_HAL_INTEL_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_MICROCHIP_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_HAL_NORDIC_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_NUVOTON_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_HAL_NXP_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_OPENISA_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_QUICKLOGIC_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_HAL_RENESAS_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_HAL_RPI_PICO_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_HAL_SILABS_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_HAL_ST_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_HAL_STM32_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_HAL_TELINK_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_TI_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_HAL_WURTHELEKTRONIK_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_XTENSA_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_HOSTAP_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_LIBLC3_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_LIBMETAL_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_LITTLEFS_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_LORAMAC_NODE_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_LVGL_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_MBEDTLS_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_MCUBOOT_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_MIPI_SYS_T_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_NRF_HW_MODELS_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_OPEN_AMP_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_OPENTHREAD_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_PERCEPIO_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_PICOLIBC_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_SEGGER_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_HAS_SEGGER_RTT, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_TINYCRYPT_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_TRUSTED_FIRMWARE_A_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_TRUSTED_FIRMWARE_M_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_UOSCORE_UEDHOC_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZEPHYR_ZCBOR_MODULE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ASF, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_BOARD, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_BOARD_REVISION, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_BOARD_TARGET, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_BOARD_ROBOKIT1, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_BOARD_ROBOKIT1_SAME70Q21B, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_BOARD_QUALIFIERS, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_SOC, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_SOC_SERIES, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_SOC_FAMILY, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_SOC_FAMILY_ATMEL_SAM, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_SOC_SERIES_SAME70, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_SOC_ATMEL_SAME70_REVB, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_SOC_SAME70Q21B, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_GPIO_INIT_PRIORITY, 40);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_SOC_ATMEL_SAM_EXT_MAINCK, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_SOC_ATMEL_SAM_PLLA_MULA, 24);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_SOC_ATMEL_SAM_PLLA_DIVA, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_SOC_ATMEL_SAM_MDIV, 2);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ARCH, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ARCH_HAS_SINGLE_THREAD_SUPPORT, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_CPU_CORTEX, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_KOBJECT_TEXT_AREA, 256);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ARM_MPU, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ARM_MPU_REGION_MIN_ALIGN_AND_SIZE, 32);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_CPU_CORTEX_M, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ISA_THUMB2, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ASSEMBLER_ISA_THUMB2, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_COMPILER_ISA_THUMB2, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_STACK_ALIGN_DOUBLE_WORD, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_FAULT_DUMP, 2);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ARM_STACK_PROTECTION, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_FP16, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_FP16_IEEE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_CPU_CORTEX_M7, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_CPU_CORTEX_M_HAS_SYSTICK, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_CPU_CORTEX_M_HAS_DWT, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_CPU_CORTEX_M_HAS_BASEPRI, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_CPU_CORTEX_M_HAS_VTOR, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_CPU_CORTEX_M_HAS_PROGRAMMABLE_FAULT_PRIOS, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ARMV7_M_ARMV8_M_MAINLINE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ARMV7_M_ARMV8_M_FP, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_NULL_POINTER_EXCEPTION_DETECTION_NONE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_MPU_STACK_GUARD, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_CUSTOM_SECTION_MIN_ALIGN_SIZE, 32);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_HAS_SWO, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ARM, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ARCH_IS_SET, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_LITTLE_ENDIAN, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_SRAM_SIZE, 384);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_SRAM_BASE_ADDRESS, 0x20400000);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_KOBJECT_DATA_AREA_RESERVE_EXTRA_PERCENT, 100);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_KOBJECT_RODATA_AREA_EXTRA_BYTES, 16);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_GEN_PRIV_STACKS, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ISR_TABLES_LOCAL_DECLARATION_SUPPORTED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_IRQ_VECTOR_TABLE_JUMP_BY_ADDRESS, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_EXCEPTION_DEBUG, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_INIT_ARCH_HW_AT_BOOT, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ARCH_HAS_TIMING_FUNCTIONS, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ARCH_HAS_STACK_PROTECTION, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ARCH_HAS_USERSPACE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ARCH_HAS_EXECUTABLE_PAGE_BIT, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ARCH_HAS_NOCACHE_MEMORY_SUPPORT, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ARCH_HAS_RAMFUNC_SUPPORT, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ARCH_HAS_NESTED_EXCEPTION_DETECTION, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ARCH_SUPPORTS_COREDUMP, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ARCH_SUPPORTS_COREDUMP_THREADS, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ARCH_SUPPORTS_ARCH_HW_INIT, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ARCH_SUPPORTS_ROM_START, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ARCH_HAS_EXTRA_EXCEPTION_INFO, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ARCH_HAS_THREAD_LOCAL_STORAGE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ARCH_HAS_SUSPEND_TO_RAM, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ARCH_HAS_THREAD_ABORT, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ARCH_HAS_CODE_DATA_RELOCATION, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_CPU_HAS_FPU, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_CPU_HAS_MPU, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_CPU_HAS_DCACHE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_CPU_HAS_ICACHE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_MPU, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_MPU_REQUIRES_POWER_OF_TWO_ALIGNMENT, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_SRAM_REGION_PERMISSIONS, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ICACHE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_TOOLCHAIN_HAS_BUILTIN_FFS, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ARCH_HAS_CUSTOM_SWAP_TO_MAIN, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_MULTITHREADING, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_NUM_COOP_PRIORITIES, 16);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_NUM_PREEMPT_PRIORITIES, 15);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_MAIN_THREAD_PRIORITY, 0);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_COOP_ENABLED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_PREEMPT_ENABLED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_PRIORITY_CEILING, -127);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_NUM_METAIRQ_PRIORITIES, 0);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_THREAD_STACK_INFO, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_SCHED_DUMB, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_WAITQ_DUMB, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_LIBC_ERRNO, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ERRNO, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_CURRENT_THREAD_USE_TLS, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_BOOT_BANNER, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_BOOT_BANNER_STRING, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_BOOT_DELAY, 0);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_SYSTEM_WORKQUEUE_PRIORITY, -1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_BARRIER_OPERATIONS_ARCH, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ATOMIC_OPERATIONS_BUILTIN, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_TIMESLICING, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_TIMESLICE_PRIORITY, 0);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_NUM_MBOX_ASYNC_MSGS, 10);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_KERNEL_MEM_POOL, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_HEAP_MEM_POOL_SIZE, 0);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_SWAP_NONATOMIC, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_SYS_CLOCK_EXISTS, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_TIMEOUT_64BIT, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_SYS_CLOCK_MAX_TIMEOUT_DAYS, 365);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ARCH_MEM_DOMAIN_SUPPORTS_ISOLATED_STACKS, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_MEM_DOMAIN_ISOLATED_STACKS, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_TOOLCHAIN_SUPPORTS_THREAD_LOCAL_STORAGE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_THREAD_LOCAL_STORAGE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_TOOLCHAIN_SUPPORTS_STATIC_INIT_GNU, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_STATIC_INIT_GNU, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_KERNEL_INIT_PRIORITY_OBJECTS, 30);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_KERNEL_INIT_PRIORITY_LIBC, 35);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_KERNEL_INIT_PRIORITY_DEFAULT, 40);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_KERNEL_INIT_PRIORITY_DEVICE, 50);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_APPLICATION_INIT_PRIORITY, 90);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_SOC_EARLY_INIT_HOOK, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_CLOCK_CONTROL_SAM, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_CONSOLE_INPUT_MAX_LINE_LEN, 128);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_CONSOLE_HAS_DRIVER, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_CONSOLE_INIT_PRIORITY, 60);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_UART_CONSOLE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_GPIO_SAM, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_INTC_INIT_PRIORITY, 40);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_PINCTRL_SAM, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_SERIAL_HAS_DRIVER, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_SERIAL_SUPPORT_INTERRUPT, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_UART_SAM, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_TIMER_HAS_64BIT_CYCLE_COUNTER, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_SYSTEM_CLOCK_INIT_PRIORITY, 0);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_TICKLESS_CAPABLE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_SYSTEM_TIMER_HAS_DISABLE_SUPPORT, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_CORTEX_M_SYSTICK_INSTALL_ISR, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_CORTEX_M_SYSTICK_64BIT_CYCLE_COUNTER, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_HAS_WDT_DISABLE_AT_BOOT, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_WDT_DISABLE_AT_BOOT, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_WDT_SAM, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_REQUIRES_FULL_LIBC, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_FULL_LIBC_SUPPORTED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_MINIMAL_LIBC_SUPPORTED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_NEWLIB_LIBC_SUPPORTED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_PICOLIBC_SUPPORTED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_PICOLIBC, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_HAS_NEWLIB_LIBC_NANO, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_COMMON_LIBC_ABORT, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_COMMON_LIBC_MALLOC, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_COMMON_LIBC_CALLOC, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_COMMON_LIBC_REALLOCARRAY, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_PICOLIBC_USE_TOOLCHAIN, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_PICOLIBC_IO_LONG_LONG, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_STDOUT_CONSOLE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_NEED_LIBC_MEM_PARTITION, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_CPP, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_STD_CPP20, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_REQUIRES_FULL_LIBCPP, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_FULL_LIBCPP_SUPPORTED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_GLIBCXX_LIBCPP, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_SYS_HEAP_ALLOC_LOOPS, 3);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_SYS_HEAP_AUTO, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ZVFS_OPEN_MAX, 4);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_HAS_POWEROFF, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_CBPRINTF_COMPLETE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_CBPRINTF_FULL_INTEGRAL, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_CBPRINTF_CONVERT_CHECK_PTR, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_POSIX_AEP_CHOICE_NONE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_POSIX_OPEN_MAX, 4);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_POSIX_PAGE_SIZE, 0x40);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_EVENTFD_MAX, 0);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_MAX_PTHREAD_COUNT, 0);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_MAX_PTHREAD_KEY_COUNT, 0);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_MAX_TIMER_COUNT, 0);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_MSG_COUNT_MAX, 0);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_POSIX_LIMITS_RTSIG_MAX, 0);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_POSIX_MAX_FDS, 4);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_POSIX_MAX_OPEN_FILES, 4);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_TIMER_DELAYTIMER_MAX, 0);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_SEM_NAMELEN_MAX, 0);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_SEM_VALUE_MAX, 0);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_TC_PROVIDES_POSIX_C_LANG_SUPPORT_R, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_LIBGCC_RTLIB, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_PRINTK, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_EARLY_CONSOLE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ASSERT_VERBOSE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_LLEXT_EDK_NAME, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_MEM_ATTR, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_TIMER_RANDOM_INITIAL_STATE, 123456789);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_TOOLCHAIN_ZEPHYR_0_17, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_TOOLCHAIN_ZEPHYR_SUPPORTS_THREAD_LOCAL_STORAGE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_TOOLCHAIN_ZEPHYR_SUPPORTS_GNU_EXTENSIONS, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_LINKER_ORPHAN_SECTION_WARN, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_FLASH_LOAD_SIZE, 0x0);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ROM_END_OFFSET, 0x0);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_LD_LINKER_SCRIPT_SUPPORTED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_LD_LINKER_TEMPLATE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_LINKER_SORT_BY_ALIGNMENT, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_LINKER_GENERIC_SECTIONS_PRESENT_AT_BOOT, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_LINKER_LAST_SECTION_ID, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_LINKER_LAST_SECTION_ID_PATTERN, 0xE015E015);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_LINKER_USE_RELAX, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_LINKER_ITERABLE_SUBALIGN, 4);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_LINKER_DEVNULL_SUPPORT, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_STD_C99, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_TOOLCHAIN_SUPPORTS_GNU_EXTENSIONS, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_SIZE_OPTIMIZATIONS, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_COMPILER_TRACK_MACRO_EXPANSION, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_COMPILER_COLOR_DIAGNOSTICS, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_FORTIFY_SOURCE_COMPILE_TIME, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_COMPILER_OPT, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_RUNTIME_ERROR_CHECKS, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_KERNEL_BIN_NAME, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_OUTPUT_STAT, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_OUTPUT_DISASSEMBLY, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_OUTPUT_DISASSEMBLY_WITH_SOURCE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_OUTPUT_PRINT_MEMORY_USAGE, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_BUILD_GAP_FILL_PATTERN, 0xFF);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_BUILD_OUTPUT_STRIP_PATHS, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_CHECK_INIT_PRIORITIES, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_WARN_DEPRECATED, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_ENFORCE_ZEPHYR_STDINT, 1);
+GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_LEGACY_GENERATED_INCLUDE_PATH, 1);
+
+GEN_ABS_SYM_END
diff --git a/examples/hello_dts/generated/zephyr/autoconf.h b/examples/hello_dts/generated/zephyr/autoconf.h
new file mode 100644
index 0000000..b38d455
--- /dev/null
+++ b/examples/hello_dts/generated/zephyr/autoconf.h
@@ -0,0 +1,361 @@
+#define CONFIG_USART_SAM 1
+#define CONFIG_NUM_IRQS 74
+#define CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC 300000000
+#define CONFIG_FLASH_SIZE 2048
+#define CONFIG_FLASH_BASE_ADDRESS 0x400000
+#define CONFIG_MP_MAX_NUM_CPUS 1
+#define CONFIG_SOC_RESET_HOOK 1
+#define CONFIG_MAIN_STACK_SIZE 1024
+#define CONFIG_IDLE_STACK_SIZE 320
+#define CONFIG_ISR_STACK_SIZE 2048
+#define CONFIG_CLOCK_CONTROL 1
+#define CONFIG_SYS_CLOCK_TICKS_PER_SEC 10000
+#define CONFIG_ROM_START_OFFSET 0x0
+#define CONFIG_KERNEL_ENTRY "__start"
+#define CONFIG_BUILD_OUTPUT_BIN 1
+#define CONFIG_XIP 1
+#define CONFIG_HAS_FLASH_LOAD_OFFSET 1
+#define CONFIG_CPU_HAS_ARM_MPU 1
+#define CONFIG_CPU_HAS_FPU_DOUBLE_PRECISION 1
+#define CONFIG_TICKLESS_KERNEL 1
+#define CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE 1024
+#define CONFIG_CORTEX_M_SYSTICK 1
+#define CONFIG_CLOCK_CONTROL_INIT_PRIORITY 30
+#define CONFIG_NUM_METAIRQ_PRIORITIES 0
+#define CONFIG_GEN_IRQ_VECTOR_TABLE 1
+#define CONFIG_GEN_ISR_TABLES 1
+#define CONFIG_TIMESLICE_SIZE 0
+#define CONFIG_FLASH_LOAD_OFFSET 0x0
+#define CONFIG_SYS_CLOCK_EXISTS 1
+#define CONFIG_INIT_ARCH_HW_AT_BOOT 1
+#define CONFIG_BUILD_OUTPUT_HEX 1
+#define CONFIG_HW_STACK_PROTECTION 1
+#define CONFIG_GPIO 1
+#define CONFIG_SERIAL 1
+#define CONFIG_DCACHE 1
+#define CONFIG_DCACHE_LINE_SIZE 32
+#define CONFIG_ARCH_SW_ISR_TABLE_ALIGN 4
+#define CONFIG_UART_USE_RUNTIME_CONFIGURE 1
+#define CONFIG_SERIAL_INIT_PRIORITY 50
+#define CONFIG_CPU_HAS_DCACHE 1
+#define CONFIG_CONSOLE 1
+#define CONFIG_COMMON_LIBC_MALLOC_ARENA_SIZE -1
+#define CONFIG_GEN_SW_ISR_TABLE 1
+#define CONFIG_GEN_IRQ_START_VECTOR 0
+#define CONFIG_SRAM_OFFSET 0x0
+#define CONFIG_ARCH_IRQ_VECTOR_TABLE_ALIGN 4
+#define CONFIG_WATCHDOG 1
+#define CONFIG_ICACHE_LINE_SIZE 32
+#define CONFIG_PRIVILEGED_STACK_SIZE 1024
+#define CONFIG_DT_HAS_ARM_ARMV7M_MPU_ENABLED 1
+#define CONFIG_DT_HAS_ARM_ARMV7M_SYSTICK_ENABLED 1
+#define CONFIG_DT_HAS_ARM_CORTEX_M7_ENABLED 1
+#define CONFIG_DT_HAS_ARM_V7M_NVIC_ENABLED 1
+#define CONFIG_DT_HAS_ASAHI_KASEI_AKM09918C_ENABLED 1
+#define CONFIG_DT_HAS_ATMEL_SAM_AFEC_ENABLED 1
+#define CONFIG_DT_HAS_ATMEL_SAM_DAC_ENABLED 1
+#define CONFIG_DT_HAS_ATMEL_SAM_FLASH_ENABLED 1
+#define CONFIG_DT_HAS_ATMEL_SAM_FLASH_CONTROLLER_ENABLED 1
+#define CONFIG_DT_HAS_ATMEL_SAM_GPIO_ENABLED 1
+#define CONFIG_DT_HAS_ATMEL_SAM_I2C_TWIHS_ENABLED 1
+#define CONFIG_DT_HAS_ATMEL_SAM_MDIO_ENABLED 1
+#define CONFIG_DT_HAS_ATMEL_SAM_PINCTRL_ENABLED 1
+#define CONFIG_DT_HAS_ATMEL_SAM_PMC_ENABLED 1
+#define CONFIG_DT_HAS_ATMEL_SAM_PWM_ENABLED 1
+#define CONFIG_DT_HAS_ATMEL_SAM_RSTC_ENABLED 1
+#define CONFIG_DT_HAS_ATMEL_SAM_SPI_ENABLED 1
+#define CONFIG_DT_HAS_ATMEL_SAM_SUPC_ENABLED 1
+#define CONFIG_DT_HAS_ATMEL_SAM_TRNG_ENABLED 1
+#define CONFIG_DT_HAS_ATMEL_SAM_UART_ENABLED 1
+#define CONFIG_DT_HAS_ATMEL_SAM_USART_ENABLED 1
+#define CONFIG_DT_HAS_ATMEL_SAM_USBHS_ENABLED 1
+#define CONFIG_DT_HAS_ATMEL_SAM_WATCHDOG_ENABLED 1
+#define CONFIG_DT_HAS_ATMEL_SAM_XDMAC_ENABLED 1
+#define CONFIG_DT_HAS_EPCOS_B57861S0103A039_ENABLED 1
+#define CONFIG_DT_HAS_FIXED_PARTITIONS_ENABLED 1
+#define CONFIG_DT_HAS_GPIO_LEDS_ENABLED 1
+#define CONFIG_DT_HAS_INVENSENSE_ICM42688_ENABLED 1
+#define CONFIG_DT_HAS_MMIO_SRAM_ENABLED 1
+#define CONFIG_DT_HAS_SOC_NV_FLASH_ENABLED 1
+#define CONFIG_DT_HAS_TI_ADS7052_ENABLED 1
+#define CONFIG_ZEPHYR_CHRE_MODULE 1
+#define CONFIG_ZEPHYR_NANOPB_MODULE 1
+#define CONFIG_ZEPHYR_ACPICA_MODULE 1
+#define CONFIG_ZEPHYR_CMSIS_MODULE 1
+#define CONFIG_HAS_CMSIS_CORE 1
+#define CONFIG_HAS_CMSIS_CORE_M 1
+#define CONFIG_ZEPHYR_CMSIS_DSP_MODULE 1
+#define CONFIG_ZEPHYR_CMSIS_NN_MODULE 1
+#define CONFIG_ZEPHYR_FATFS_MODULE 1
+#define CONFIG_ZEPHYR_ADI_MODULE 1
+#define CONFIG_ZEPHYR_ALTERA_MODULE 1
+#define CONFIG_ZEPHYR_HAL_AMBIQ_MODULE 1
+#define CONFIG_ZEPHYR_ATMEL_MODULE 1
+#define CONFIG_ZEPHYR_HAL_ESPRESSIF_MODULE 1
+#define CONFIG_ZEPHYR_HAL_ETHOS_U_MODULE 1
+#define CONFIG_ZEPHYR_HAL_GIGADEVICE_MODULE 1
+#define CONFIG_ZEPHYR_HAL_INFINEON_MODULE 1
+#define CONFIG_ZEPHYR_HAL_INTEL_MODULE 1
+#define CONFIG_ZEPHYR_MICROCHIP_MODULE 1
+#define CONFIG_ZEPHYR_HAL_NORDIC_MODULE 1
+#define CONFIG_ZEPHYR_NUVOTON_MODULE 1
+#define CONFIG_ZEPHYR_HAL_NXP_MODULE 1
+#define CONFIG_ZEPHYR_OPENISA_MODULE 1
+#define CONFIG_ZEPHYR_QUICKLOGIC_MODULE 1
+#define CONFIG_ZEPHYR_HAL_RENESAS_MODULE 1
+#define CONFIG_ZEPHYR_HAL_RPI_PICO_MODULE 1
+#define CONFIG_ZEPHYR_HAL_SILABS_MODULE 1
+#define CONFIG_ZEPHYR_HAL_ST_MODULE 1
+#define CONFIG_ZEPHYR_HAL_STM32_MODULE 1
+#define CONFIG_ZEPHYR_HAL_TDK_MODULE 1
+#define CONFIG_ZEPHYR_HAL_TELINK_MODULE 1
+#define CONFIG_ZEPHYR_TI_MODULE 1
+#define CONFIG_ZEPHYR_HAL_WCH_MODULE 1
+#define CONFIG_ZEPHYR_HAL_WURTHELEKTRONIK_MODULE 1
+#define CONFIG_ZEPHYR_XTENSA_MODULE 1
+#define CONFIG_ZEPHYR_HOSTAP_MODULE 1
+#define CONFIG_ZEPHYR_LIBLC3_MODULE 1
+#define CONFIG_ZEPHYR_LIBMCTP_MODULE 1
+#define CONFIG_ZEPHYR_LIBMETAL_MODULE 1
+#define CONFIG_ZEPHYR_LITTLEFS_MODULE 1
+#define CONFIG_ZEPHYR_LORAMAC_NODE_MODULE 1
+#define CONFIG_ZEPHYR_LVGL_MODULE 1
+#define CONFIG_ZEPHYR_MBEDTLS_MODULE 1
+#define CONFIG_ZEPHYR_MCUBOOT_MODULE 1
+#define CONFIG_ZEPHYR_MIPI_SYS_T_MODULE 1
+#define CONFIG_ZEPHYR_NRF_WIFI_MODULE 1
+#define CONFIG_ZEPHYR_OPEN_AMP_MODULE 1
+#define CONFIG_ZEPHYR_OPENTHREAD_MODULE 1
+#define CONFIG_ZEPHYR_PERCEPIO_MODULE 1
+#define CONFIG_ZEPHYR_PICOLIBC_MODULE 1
+#define CONFIG_ZEPHYR_SEGGER_MODULE 1
+#define CONFIG_HAS_SEGGER_RTT 1
+#define CONFIG_ZEPHYR_TINYCRYPT_MODULE 1
+#define CONFIG_ZEPHYR_TRUSTED_FIRMWARE_A_MODULE 1
+#define CONFIG_ZEPHYR_TRUSTED_FIRMWARE_M_MODULE 1
+#define CONFIG_ZEPHYR_UOSCORE_UEDHOC_MODULE 1
+#define CONFIG_ZEPHYR_ZCBOR_MODULE 1
+#define CONFIG_ZEPHYR_NRF_HW_MODELS_MODULE 1
+#define CONFIG_ASF 1
+#define CONFIG_BOARD "robokit1"
+#define CONFIG_BOARD_REVISION ""
+#define CONFIG_BOARD_TARGET "robokit1/same70q21b"
+#define CONFIG_BOARD_ROBOKIT1 1
+#define CONFIG_BOARD_ROBOKIT1_SAME70Q21B 1
+#define CONFIG_BOARD_QUALIFIERS "same70q21b"
+#define CONFIG_SOC "same70q21b"
+#define CONFIG_SOC_SERIES "samx7x"
+#define CONFIG_SOC_FAMILY "atmel_sam"
+#define CONFIG_SOC_FAMILY_ATMEL_SAM 1
+#define CONFIG_SOC_SERIES_SAMX7X 1
+#define CONFIG_SOC_ATMEL_SAME70_REVB 1
+#define CONFIG_SOC_SAME70Q21B 1
+#define CONFIG_GPIO_INIT_PRIORITY 40
+#define CONFIG_SOC_ATMEL_SAM_EXT_MAINCK 1
+#define CONFIG_SOC_ATMEL_SAM_PLLA_MULA 24
+#define CONFIG_SOC_ATMEL_SAM_PLLA_DIVA 1
+#define CONFIG_SOC_ATMEL_SAM_MDIV 2
+#define CONFIG_ARCH "arm"
+#define CONFIG_ARCH_HAS_SINGLE_THREAD_SUPPORT 1
+#define CONFIG_CPU_CORTEX 1
+#define CONFIG_KOBJECT_TEXT_AREA 256
+#define CONFIG_ARM_MPU_REGION_MIN_ALIGN_AND_SIZE 32
+#define CONFIG_CPU_CORTEX_M 1
+#define CONFIG_ISA_THUMB2 1
+#define CONFIG_ASSEMBLER_ISA_THUMB2 1
+#define CONFIG_COMPILER_ISA_THUMB2 1
+#define CONFIG_STACK_ALIGN_DOUBLE_WORD 1
+#define CONFIG_FAULT_DUMP 2
+#define CONFIG_ARM_STACK_PROTECTION 1
+#define CONFIG_FP16 1
+#define CONFIG_FP16_IEEE 1
+#define CONFIG_CPU_CORTEX_M7 1
+#define CONFIG_CPU_CORTEX_M_HAS_SYSTICK 1
+#define CONFIG_CPU_CORTEX_M_HAS_DWT 1
+#define CONFIG_CPU_CORTEX_M_HAS_BASEPRI 1
+#define CONFIG_CPU_CORTEX_M_HAS_VTOR 1
+#define CONFIG_CPU_CORTEX_M_HAS_PROGRAMMABLE_FAULT_PRIOS 1
+#define CONFIG_ARMV7_M_ARMV8_M_MAINLINE 1
+#define CONFIG_ARMV7_M_ARMV8_M_FP 1
+#define CONFIG_NULL_POINTER_EXCEPTION_DETECTION_NONE 1
+#define CONFIG_MPU_STACK_GUARD 1
+#define CONFIG_CUSTOM_SECTION_MIN_ALIGN_SIZE 32
+#define CONFIG_HAS_SWO 1
+#define CONFIG_ARM 1
+#define CONFIG_ARCH_IS_SET 1
+#define CONFIG_ARM_MPU 1
+#define CONFIG_LITTLE_ENDIAN 1
+#define CONFIG_SRAM_SIZE 384
+#define CONFIG_SRAM_BASE_ADDRESS 0x20400000
+#define CONFIG_KOBJECT_DATA_AREA_RESERVE_EXTRA_PERCENT 100
+#define CONFIG_KOBJECT_RODATA_AREA_EXTRA_BYTES 16
+#define CONFIG_GEN_PRIV_STACKS 1
+#define CONFIG_ISR_TABLES_LOCAL_DECLARATION_SUPPORTED 1
+#define CONFIG_IRQ_VECTOR_TABLE_JUMP_BY_ADDRESS 1
+#define CONFIG_EXCEPTION_DEBUG 1
+#define CONFIG_ARCH_HAS_TIMING_FUNCTIONS 1
+#define CONFIG_ARCH_HAS_STACK_PROTECTION 1
+#define CONFIG_ARCH_HAS_USERSPACE 1
+#define CONFIG_ARCH_HAS_EXECUTABLE_PAGE_BIT 1
+#define CONFIG_ARCH_HAS_NOCACHE_MEMORY_SUPPORT 1
+#define CONFIG_ARCH_HAS_RAMFUNC_SUPPORT 1
+#define CONFIG_ARCH_HAS_NESTED_EXCEPTION_DETECTION 1
+#define CONFIG_ARCH_SUPPORTS_COREDUMP 1
+#define CONFIG_ARCH_SUPPORTS_COREDUMP_THREADS 1
+#define CONFIG_ARCH_SUPPORTS_ARCH_HW_INIT 1
+#define CONFIG_ARCH_SUPPORTS_ROM_START 1
+#define CONFIG_ARCH_HAS_EXTRA_EXCEPTION_INFO 1
+#define CONFIG_ARCH_HAS_THREAD_LOCAL_STORAGE 1
+#define CONFIG_ARCH_HAS_SUSPEND_TO_RAM 1
+#define CONFIG_ARCH_HAS_THREAD_ABORT 1
+#define CONFIG_ARCH_HAS_CODE_DATA_RELOCATION 1
+#define CONFIG_CPU_HAS_FPU 1
+#define CONFIG_CPU_HAS_MPU 1
+#define CONFIG_CPU_HAS_ICACHE 1
+#define CONFIG_MPU 1
+#define CONFIG_MPU_REQUIRES_POWER_OF_TWO_ALIGNMENT 1
+#define CONFIG_SRAM_REGION_PERMISSIONS 1
+#define CONFIG_ICACHE 1
+#define CONFIG_TOOLCHAIN_HAS_BUILTIN_FFS 1
+#define CONFIG_ARCH_HAS_CUSTOM_SWAP_TO_MAIN 1
+#define CONFIG_MULTITHREADING 1
+#define CONFIG_NUM_COOP_PRIORITIES 16
+#define CONFIG_NUM_PREEMPT_PRIORITIES 15
+#define CONFIG_MAIN_THREAD_PRIORITY 0
+#define CONFIG_COOP_ENABLED 1
+#define CONFIG_PREEMPT_ENABLED 1
+#define CONFIG_PRIORITY_CEILING -127
+#define CONFIG_THREAD_STACK_INFO 1
+#define CONFIG_SCHED_DUMB 1
+#define CONFIG_WAITQ_DUMB 1
+#define CONFIG_LIBC_ERRNO 1
+#define CONFIG_ERRNO 1
+#define CONFIG_CURRENT_THREAD_USE_TLS 1
+#define CONFIG_BOOT_BANNER 1
+#define CONFIG_BOOT_BANNER_STRING "Booting Zephyr OS build"
+#define CONFIG_BOOT_DELAY 0
+#define CONFIG_SYSTEM_WORKQUEUE_PRIORITY -1
+#define CONFIG_BARRIER_OPERATIONS_ARCH 1
+#define CONFIG_ATOMIC_OPERATIONS_BUILTIN 1
+#define CONFIG_TIMESLICING 1
+#define CONFIG_TIMESLICE_PRIORITY 0
+#define CONFIG_NUM_MBOX_ASYNC_MSGS 10
+#define CONFIG_KERNEL_MEM_POOL 1
+#define CONFIG_HEAP_MEM_POOL_SIZE 0
+#define CONFIG_SWAP_NONATOMIC 1
+#define CONFIG_TIMEOUT_64BIT 1
+#define CONFIG_SYS_CLOCK_MAX_TIMEOUT_DAYS 365
+#define CONFIG_ARCH_MEM_DOMAIN_SUPPORTS_ISOLATED_STACKS 1
+#define CONFIG_MEM_DOMAIN_ISOLATED_STACKS 1
+#define CONFIG_TOOLCHAIN_SUPPORTS_THREAD_LOCAL_STORAGE 1
+#define CONFIG_THREAD_LOCAL_STORAGE 1
+#define CONFIG_TOOLCHAIN_SUPPORTS_STATIC_INIT_GNU 1
+#define CONFIG_KERNEL_INIT_PRIORITY_OBJECTS 30
+#define CONFIG_KERNEL_INIT_PRIORITY_LIBC 35
+#define CONFIG_KERNEL_INIT_PRIORITY_DEFAULT 40
+#define CONFIG_KERNEL_INIT_PRIORITY_DEVICE 50
+#define CONFIG_APPLICATION_INIT_PRIORITY 90
+#define CONFIG_SOC_EARLY_INIT_HOOK 1
+#define CONFIG_CLOCK_CONTROL_SAM 1
+#define CONFIG_CONSOLE_INPUT_MAX_LINE_LEN 128
+#define CONFIG_CONSOLE_HAS_DRIVER 1
+#define CONFIG_CONSOLE_INIT_PRIORITY 60
+#define CONFIG_UART_CONSOLE 1
+#define CONFIG_WINSTREAM_CONSOLE_STATIC 1
+#define CONFIG_WINSTREAM_CONSOLE_STATIC_SIZE 32768
+#define CONFIG_GPIO_SAM 1
+#define CONFIG_INTC_INIT_PRIORITY 40
+#define CONFIG_PINCTRL 1
+#define CONFIG_PINCTRL_SAM 1
+#define CONFIG_SERIAL_HAS_DRIVER 1
+#define CONFIG_SERIAL_SUPPORT_INTERRUPT 1
+#define CONFIG_UART_SAM 1
+#define CONFIG_TIMER_HAS_64BIT_CYCLE_COUNTER 1
+#define CONFIG_SYSTEM_CLOCK_INIT_PRIORITY 0
+#define CONFIG_TICKLESS_CAPABLE 1
+#define CONFIG_SYSTEM_TIMER_HAS_DISABLE_SUPPORT 1
+#define CONFIG_CORTEX_M_SYSTICK_INSTALL_ISR 1
+#define CONFIG_CORTEX_M_SYSTICK_64BIT_CYCLE_COUNTER 1
+#define CONFIG_HAS_WDT_DISABLE_AT_BOOT 1
+#define CONFIG_WDT_DISABLE_AT_BOOT 1
+#define CONFIG_WDT_SAM 1
+#define CONFIG_FULL_LIBC_SUPPORTED 1
+#define CONFIG_MINIMAL_LIBC_SUPPORTED 1
+#define CONFIG_NEWLIB_LIBC_SUPPORTED 1
+#define CONFIG_PICOLIBC_SUPPORTED 1
+#define CONFIG_PICOLIBC 1
+#define CONFIG_HAS_NEWLIB_LIBC_NANO 1
+#define CONFIG_COMMON_LIBC_ABORT 1
+#define CONFIG_COMMON_LIBC_MALLOC 1
+#define CONFIG_COMMON_LIBC_CALLOC 1
+#define CONFIG_COMMON_LIBC_REALLOCARRAY 1
+#define CONFIG_PICOLIBC_USE_TOOLCHAIN 1
+#define CONFIG_PICOLIBC_IO_LONG_LONG 1
+#define CONFIG_STDOUT_CONSOLE 1
+#define CONFIG_NEED_LIBC_MEM_PARTITION 1
+#define CONFIG_SYS_HEAP_ALLOC_LOOPS 3
+#define CONFIG_SYS_HEAP_ARRAY_SIZE 0
+#define CONFIG_SYS_HEAP_AUTO 1
+#define CONFIG_ZVFS_OPEN_MAX 4
+#define CONFIG_HAS_POWEROFF 1
+#define CONFIG_CBPRINTF_COMPLETE 1
+#define CONFIG_CBPRINTF_FULL_INTEGRAL 1
+#define CONFIG_CBPRINTF_CONVERT_CHECK_PTR 1
+#define CONFIG_POSIX_AEP_CHOICE_NONE 1
+#define CONFIG_POSIX_OPEN_MAX 4
+#define CONFIG_POSIX_PAGE_SIZE 0x40
+#define CONFIG_EVENTFD_MAX 0
+#define CONFIG_MAX_PTHREAD_COUNT 0
+#define CONFIG_MAX_PTHREAD_KEY_COUNT 0
+#define CONFIG_MAX_TIMER_COUNT 0
+#define CONFIG_MSG_COUNT_MAX 0
+#define CONFIG_POSIX_LIMITS_RTSIG_MAX 0
+#define CONFIG_POSIX_MAX_FDS 4
+#define CONFIG_POSIX_MAX_OPEN_FILES 4
+#define CONFIG_TIMER_DELAYTIMER_MAX 0
+#define CONFIG_SEM_NAMELEN_MAX 0
+#define CONFIG_SEM_VALUE_MAX 0
+#define CONFIG_TC_PROVIDES_POSIX_C_LANG_SUPPORT_R 1
+#define CONFIG_LIBGCC_RTLIB 1
+#define CONFIG_RING_BUFFER 1
+#define CONFIG_PRINTK 1
+#define CONFIG_EARLY_CONSOLE 1
+#define CONFIG_ASSERT_VERBOSE 1
+#define CONFIG_LLEXT_EDK_NAME "llext-edk"
+#define CONFIG_MEM_ATTR 1
+#define CONFIG_TIMER_RANDOM_INITIAL_STATE 123456789
+#define CONFIG_CSPRNG_AVAILABLE 1
+#define CONFIG_TOOLCHAIN_ZEPHYR_0_17 1
+#define CONFIG_TOOLCHAIN_ZEPHYR_SUPPORTS_THREAD_LOCAL_STORAGE 1
+#define CONFIG_TOOLCHAIN_ZEPHYR_SUPPORTS_GNU_EXTENSIONS 1
+#define CONFIG_LINKER_ORPHAN_SECTION_WARN 1
+#define CONFIG_FLASH_LOAD_SIZE 0x0
+#define CONFIG_ROM_END_OFFSET 0x0
+#define CONFIG_LD_LINKER_SCRIPT_SUPPORTED 1
+#define CONFIG_LD_LINKER_TEMPLATE 1
+#define CONFIG_LINKER_SORT_BY_ALIGNMENT 1
+#define CONFIG_LINKER_GENERIC_SECTIONS_PRESENT_AT_BOOT 1
+#define CONFIG_LINKER_LAST_SECTION_ID 1
+#define CONFIG_LINKER_LAST_SECTION_ID_PATTERN 0xE015E015
+#define CONFIG_LINKER_USE_RELAX 1
+#define CONFIG_LINKER_ITERABLE_SUBALIGN 4
+#define CONFIG_LINKER_DEVNULL_SUPPORT 1
+#define CONFIG_STD_C99 1
+#define CONFIG_TOOLCHAIN_SUPPORTS_GNU_EXTENSIONS 1
+#define CONFIG_SIZE_OPTIMIZATIONS 1
+#define CONFIG_COMPILER_TRACK_MACRO_EXPANSION 1
+#define CONFIG_COMPILER_COLOR_DIAGNOSTICS 1
+#define CONFIG_FORTIFY_SOURCE_COMPILE_TIME 1
+#define CONFIG_COMPILER_OPT ""
+#define CONFIG_RUNTIME_ERROR_CHECKS 1
+#define CONFIG_KERNEL_BIN_NAME "zephyr"
+#define CONFIG_OUTPUT_STAT 1
+#define CONFIG_OUTPUT_PRINT_MEMORY_USAGE 1
+#define CONFIG_BUILD_GAP_FILL_PATTERN 0xFF
+#define CONFIG_BUILD_OUTPUT_STRIP_PATHS 1
+#define CONFIG_CHECK_INIT_PRIORITIES 1
+#define CONFIG_WARN_DEPRECATED 1
+#define CONFIG_ENFORCE_ZEPHYR_STDINT 1
+#define CONFIG_LEGACY_GENERATED_INCLUDE_PATH 1
+
+#define CONFIG_PIGWEED_SYS_IO_INIT_PRIORITY 1
\ No newline at end of file
diff --git a/examples/hello_dts/generated/zephyr/kobj-types-enum.h b/examples/hello_dts/generated/zephyr/kobj-types-enum.h
new file mode 100644
index 0000000..00a9c9f
--- /dev/null
+++ b/examples/hello_dts/generated/zephyr/kobj-types-enum.h
@@ -0,0 +1,123 @@
+/* Core kernel objects */
+K_OBJ_MEM_SLAB,
+K_OBJ_MSGQ,
+K_OBJ_MUTEX,
+K_OBJ_PIPE,
+K_OBJ_QUEUE,
+K_OBJ_POLL_SIGNAL,
+K_OBJ_SEM,
+K_OBJ_STACK,
+K_OBJ_THREAD,
+K_OBJ_TIMER,
+K_OBJ_THREAD_STACK_ELEMENT,
+K_OBJ_NET_SOCKET,
+K_OBJ_NET_IF,
+K_OBJ_SYS_MUTEX,
+K_OBJ_FUTEX,
+K_OBJ_CONDVAR,
+#ifdef CONFIG_EVENTS
+K_OBJ_EVENT,
+#endif
+#ifdef CONFIG_ZTEST
+K_OBJ_ZTEST_SUITE_NODE,
+#endif
+#ifdef CONFIG_ZTEST
+K_OBJ_ZTEST_SUITE_STATS,
+#endif
+#ifdef CONFIG_ZTEST
+K_OBJ_ZTEST_UNIT_TEST,
+#endif
+#ifdef CONFIG_ZTEST
+K_OBJ_ZTEST_TEST_RULE,
+#endif
+#ifdef CONFIG_RTIO
+K_OBJ_RTIO,
+#endif
+#ifdef CONFIG_RTIO
+K_OBJ_RTIO_IODEV,
+#endif
+#ifdef CONFIG_SENSOR_ASYNC_API
+K_OBJ_SENSOR_DECODER_API,
+#endif
+/* Driver subsystems */
+K_OBJ_DRIVER_GPIO,
+K_OBJ_DRIVER_UART,
+K_OBJ_DRIVER_WDT,
+K_OBJ_DRIVER_SHARED_IRQ,
+K_OBJ_DRIVER_CRYPTO,
+K_OBJ_DRIVER_ADC,
+K_OBJ_DRIVER_AUXDISPLAY,
+K_OBJ_DRIVER_BBRAM,
+K_OBJ_DRIVER_BT_HCI,
+K_OBJ_DRIVER_CAN,
+K_OBJ_DRIVER_CELLULAR,
+K_OBJ_DRIVER_CHARGER,
+K_OBJ_DRIVER_CLOCK_CONTROL,
+K_OBJ_DRIVER_COREDUMP,
+K_OBJ_DRIVER_COUNTER,
+K_OBJ_DRIVER_DAC,
+K_OBJ_DRIVER_DAI,
+K_OBJ_DRIVER_DISPLAY,
+K_OBJ_DRIVER_DMA,
+K_OBJ_DRIVER_EDAC,
+K_OBJ_DRIVER_EEPROM,
+K_OBJ_DRIVER_EMUL_BBRAM,
+K_OBJ_DRIVER_FUEL_GAUGE_EMUL,
+K_OBJ_DRIVER_EMUL_SENSOR,
+K_OBJ_DRIVER_ENTROPY,
+K_OBJ_DRIVER_ESPI,
+K_OBJ_DRIVER_ESPI_SAF,
+K_OBJ_DRIVER_FLASH,
+K_OBJ_DRIVER_FPGA,
+K_OBJ_DRIVER_FUEL_GAUGE,
+K_OBJ_DRIVER_GNSS,
+K_OBJ_DRIVER_HAPTICS,
+K_OBJ_DRIVER_HWSPINLOCK,
+K_OBJ_DRIVER_I2C,
+K_OBJ_DRIVER_I2C_TARGET,
+K_OBJ_DRIVER_I2S,
+K_OBJ_DRIVER_I3C,
+K_OBJ_DRIVER_IPM,
+K_OBJ_DRIVER_KSCAN,
+K_OBJ_DRIVER_LED,
+K_OBJ_DRIVER_LED_STRIP,
+K_OBJ_DRIVER_LORA,
+K_OBJ_DRIVER_MBOX,
+K_OBJ_DRIVER_MDIO,
+K_OBJ_DRIVER_MIPI_DBI,
+K_OBJ_DRIVER_MIPI_DSI,
+K_OBJ_DRIVER_MSPI,
+K_OBJ_DRIVER_PECI,
+K_OBJ_DRIVER_PS2,
+K_OBJ_DRIVER_PTP_CLOCK,
+K_OBJ_DRIVER_PWM,
+K_OBJ_DRIVER_REGULATOR_PARENT,
+K_OBJ_DRIVER_REGULATOR,
+K_OBJ_DRIVER_RESET,
+K_OBJ_DRIVER_RETAINED_MEM,
+K_OBJ_DRIVER_RTC,
+K_OBJ_DRIVER_SDHC,
+K_OBJ_DRIVER_SENSOR,
+K_OBJ_DRIVER_SMBUS,
+K_OBJ_DRIVER_SPI,
+K_OBJ_DRIVER_STEPPER,
+K_OBJ_DRIVER_SYSCON,
+K_OBJ_DRIVER_TEE,
+K_OBJ_DRIVER_VIDEO,
+K_OBJ_DRIVER_W1,
+K_OBJ_DRIVER_CAN_TRANSCEIVER,
+K_OBJ_DRIVER_NRF_CLOCK_CONTROL,
+K_OBJ_DRIVER_I3C_TARGET,
+K_OBJ_DRIVER_ITS,
+K_OBJ_DRIVER_VTD,
+K_OBJ_DRIVER_TGPIO,
+K_OBJ_DRIVER_PCIE_CTRL,
+K_OBJ_DRIVER_PCIE_EP,
+K_OBJ_DRIVER_SVC,
+K_OBJ_DRIVER_BC12_EMUL,
+K_OBJ_DRIVER_BC12,
+K_OBJ_DRIVER_USBC_PPC,
+K_OBJ_DRIVER_TCPC,
+K_OBJ_DRIVER_USBC_VBUS,
+K_OBJ_DRIVER_IVSHMEM,
+K_OBJ_DRIVER_ETHPHY,
diff --git a/examples/hello_dts/hello_dts.cc b/examples/hello_dts/hello_dts.cc
index 0db48f5..f830d39 100644
--- a/examples/hello_dts/hello_dts.cc
+++ b/examples/hello_dts/hello_dts.cc
@@ -13,13 +13,18 @@
// the License.
#include "zephyr/devicetree.h"
-#include "pw_log/log.h"
+#include "zephyr/sys/printk.h"
+#include "zephyr/kernel.h"
+// #include "pw_log/log.h"
int main() {
- PW_LOG_INFO("Devicetree info:");
- const char * str = DT_PROP(DT_ROOT, compatible);
- PW_LOG_INFO(" compatible: %s", str);
- str = DT_PROP(DT_NODELABEL(cpu0), compatible);
- PW_LOG_INFO(" cpu0: %s", str);
+ // PW_LOG_INFO("Devicetree info:");
+ // const char * str = DT_PROP_BY_IDX(DT_ROOT, compatible, 0);
+ // PW_LOG_INFO(" compatible: %s", str);
+ // str = DT_PROP_BY_IDX(DT_NODELABEL(cpu0), compatible, 0);
+ // PW_LOG_INFO(" cpu0: %s", str);
+ while (true) {
+ printk("Hello %s! I'm a Bazel build\n", DT_PROP_BY_IDX(DT_ROOT, compatible, 0));
+ }
return 0;
}
diff --git a/examples/hello_dts/linkerscripts/linker.ld b/examples/hello_dts/linkerscripts/linker.ld
new file mode 100644
index 0000000..b79789f
--- /dev/null
+++ b/examples/hello_dts/linkerscripts/linker.ld
@@ -0,0 +1,435 @@
+ OUTPUT_FORMAT("elf32-littlearm")
+_region_min_align = 32;
+MEMORY
+ {
+ FLASH (rx) : ORIGIN = (0x400000 + 0x0), LENGTH = (2048 * 1024 - 0x0 - 0x0)
+ RAM (wx) : ORIGIN = 0x20400000, LENGTH = (384 * 1K)
+
+ IDT_LIST (wx) : ORIGIN = 0xFFFF7FFF, LENGTH = 32K
+ }
+ENTRY("__start")
+SECTIONS
+ {
+ .rel.plt :
+ {
+ *(.rel.plt)
+ PROVIDE_HIDDEN (__rel_iplt_start = .);
+ *(.rel.iplt)
+ PROVIDE_HIDDEN (__rel_iplt_end = .);
+ }
+ .rela.plt :
+ {
+ *(.rela.plt)
+ PROVIDE_HIDDEN (__rela_iplt_start = .);
+ *(.rela.iplt)
+ PROVIDE_HIDDEN (__rela_iplt_end = .);
+ }
+ .rel.dyn :
+ {
+ *(.rel.*)
+ }
+ .rela.dyn :
+ {
+ *(.rela.*)
+ }
+ /DISCARD/ :
+ {
+ *(.plt)
+ }
+ /DISCARD/ :
+ {
+ *(.iplt)
+ }
+
+ __rom_region_start = (0x400000 + 0x0);
+ rom_start :
+ {
+HIDDEN(__rom_start_address = .);
+FILL(0x00);
+. += 0x0 - (. - __rom_start_address);
+. = ALIGN(4);
+. = ALIGN( 1 << LOG2CEIL(4 * 32) );
+. = ALIGN( 1 << LOG2CEIL(4 * (16 + 74)) );
+_vector_start = .;
+KEEP(*(.exc_vector_table))
+KEEP(*(".exc_vector_table.*"))
+KEEP(*(.vectors))
+_vector_end = .;
+. = ALIGN(4);
+KEEP(*(.gnu.linkonce.irq_vector_table*))
+ _vector_end = .;
+ } > FLASH
+ text :
+ {
+ __text_region_start = .;
+ *(.text)
+ *(".text.*")
+ *(".TEXT.*")
+ *(.gnu.linkonce.t.*)
+ *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx)
+ . = ALIGN(4);
+ } > FLASH
+ __text_region_end = .;
+ .ARM.extab :
+ {
+ *(.ARM.extab* .gnu.linkonce.armextab.*)
+ } > FLASH
+ .ARM.exidx :
+ {
+ __exidx_start = .;
+ *(.ARM.exidx* gnu.linkonce.armexidx.*)
+ __exidx_end = .;
+ } > FLASH
+ __rodata_region_start = .;
+ initlevel :
+ {
+ __init_start = .;
+ __init_EARLY_start = .; KEEP(*(SORT(.z_init_EARLY?_*))); KEEP(*(SORT(.z_init_EARLY??_*)));
+ __init_PRE_KERNEL_1_start = .; KEEP(*(SORT(.z_init_PRE_KERNEL_1?_*))); KEEP(*(SORT(.z_init_PRE_KERNEL_1??_*)));
+ __init_PRE_KERNEL_2_start = .; KEEP(*(SORT(.z_init_PRE_KERNEL_2?_*))); KEEP(*(SORT(.z_init_PRE_KERNEL_2??_*)));
+ __init_POST_KERNEL_start = .; KEEP(*(SORT(.z_init_POST_KERNEL?_*))); KEEP(*(SORT(.z_init_POST_KERNEL??_*)));
+ __init_APPLICATION_start = .; KEEP(*(SORT(.z_init_APPLICATION?_*))); KEEP(*(SORT(.z_init_APPLICATION??_*)));
+ __init_SMP_start = .; KEEP(*(SORT(.z_init_SMP?_*))); KEEP(*(SORT(.z_init_SMP??_*)));
+ __init_end = .;
+ __deferred_init_list_start = .;
+ KEEP(*(.z_deferred_init*))
+ __deferred_init_list_end = .;
+ } > FLASH
+ device_area : SUBALIGN(4) { _device_list_start = .; KEEP(*(SORT(._device.static.*_?_*))); KEEP(*(SORT(._device.static.*_??_*))); _device_list_end = .; } > FLASH
+ sw_isr_table :
+ {
+ . = ALIGN(4);
+ *(.gnu.linkonce.sw_isr_table*)
+ } > FLASH
+ initlevel_error :
+ {
+ KEEP(*(SORT(.z_init_[_A-Z0-9]*)))
+ }
+ ASSERT(SIZEOF(initlevel_error) == 0, "Undefined initialization levels used.")
+ app_shmem_regions : ALIGN_WITH_INPUT
+ {
+ __app_shmem_regions_start = .;
+ KEEP(*(SORT(.app_regions.*)));
+ __app_shmem_regions_end = .;
+ } > FLASH
+ k_p4wq_initparam_area : SUBALIGN(4) { _k_p4wq_initparam_list_start = .; KEEP(*(SORT_BY_NAME(._k_p4wq_initparam.static.*))); _k_p4wq_initparam_list_end = .; } > FLASH
+ _static_thread_data_area : SUBALIGN(4) { __static_thread_data_list_start = .; KEEP(*(SORT_BY_NAME(.__static_thread_data.static.*))); __static_thread_data_list_end = .; } > FLASH
+ device_deps : ALIGN_WITH_INPUT
+ {
+__device_deps_start = .;
+KEEP(*(SORT(.__device_deps_pass2*)));
+__device_deps_end = .;
+ } > FLASH
+gpio_driver_api_area : SUBALIGN(4) { _gpio_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._gpio_driver_api.static.*))); _gpio_driver_api_list_end = .; } > FLASH
+wdt_driver_api_area : SUBALIGN(4) { _wdt_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._wdt_driver_api.static.*))); _wdt_driver_api_list_end = .; } > FLASH
+shared_irq_driver_api_area : SUBALIGN(4) { _shared_irq_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._shared_irq_driver_api.static.*))); _shared_irq_driver_api_list_end = .; } > FLASH
+crypto_driver_api_area : SUBALIGN(4) { _crypto_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._crypto_driver_api.static.*))); _crypto_driver_api_list_end = .; } > FLASH
+adc_driver_api_area : SUBALIGN(4) { _adc_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._adc_driver_api.static.*))); _adc_driver_api_list_end = .; } > FLASH
+auxdisplay_driver_api_area : SUBALIGN(4) { _auxdisplay_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._auxdisplay_driver_api.static.*))); _auxdisplay_driver_api_list_end = .; } > FLASH
+bbram_driver_api_area : SUBALIGN(4) { _bbram_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._bbram_driver_api.static.*))); _bbram_driver_api_list_end = .; } > FLASH
+bt_hci_driver_api_area : SUBALIGN(4) { _bt_hci_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._bt_hci_driver_api.static.*))); _bt_hci_driver_api_list_end = .; } > FLASH
+can_driver_api_area : SUBALIGN(4) { _can_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._can_driver_api.static.*))); _can_driver_api_list_end = .; } > FLASH
+cellular_driver_api_area : SUBALIGN(4) { _cellular_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._cellular_driver_api.static.*))); _cellular_driver_api_list_end = .; } > FLASH
+charger_driver_api_area : SUBALIGN(4) { _charger_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._charger_driver_api.static.*))); _charger_driver_api_list_end = .; } > FLASH
+clock_control_driver_api_area : SUBALIGN(4) { _clock_control_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._clock_control_driver_api.static.*))); _clock_control_driver_api_list_end = .; } > FLASH
+comparator_driver_api_area : SUBALIGN(4) { _comparator_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._comparator_driver_api.static.*))); _comparator_driver_api_list_end = .; } > FLASH
+coredump_driver_api_area : SUBALIGN(4) { _coredump_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._coredump_driver_api.static.*))); _coredump_driver_api_list_end = .; } > FLASH
+counter_driver_api_area : SUBALIGN(4) { _counter_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._counter_driver_api.static.*))); _counter_driver_api_list_end = .; } > FLASH
+dac_driver_api_area : SUBALIGN(4) { _dac_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._dac_driver_api.static.*))); _dac_driver_api_list_end = .; } > FLASH
+dai_driver_api_area : SUBALIGN(4) { _dai_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._dai_driver_api.static.*))); _dai_driver_api_list_end = .; } > FLASH
+display_driver_api_area : SUBALIGN(4) { _display_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._display_driver_api.static.*))); _display_driver_api_list_end = .; } > FLASH
+dma_driver_api_area : SUBALIGN(4) { _dma_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._dma_driver_api.static.*))); _dma_driver_api_list_end = .; } > FLASH
+edac_driver_api_area : SUBALIGN(4) { _edac_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._edac_driver_api.static.*))); _edac_driver_api_list_end = .; } > FLASH
+eeprom_driver_api_area : SUBALIGN(4) { _eeprom_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._eeprom_driver_api.static.*))); _eeprom_driver_api_list_end = .; } > FLASH
+emul_bbram_driver_api_area : SUBALIGN(4) { _emul_bbram_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._emul_bbram_driver_api.static.*))); _emul_bbram_driver_api_list_end = .; } > FLASH
+fuel_gauge_emul_driver_api_area : SUBALIGN(4) { _fuel_gauge_emul_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._fuel_gauge_emul_driver_api.static.*))); _fuel_gauge_emul_driver_api_list_end = .; } > FLASH
+emul_sensor_driver_api_area : SUBALIGN(4) { _emul_sensor_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._emul_sensor_driver_api.static.*))); _emul_sensor_driver_api_list_end = .; } > FLASH
+entropy_driver_api_area : SUBALIGN(4) { _entropy_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._entropy_driver_api.static.*))); _entropy_driver_api_list_end = .; } > FLASH
+espi_driver_api_area : SUBALIGN(4) { _espi_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._espi_driver_api.static.*))); _espi_driver_api_list_end = .; } > FLASH
+espi_saf_driver_api_area : SUBALIGN(4) { _espi_saf_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._espi_saf_driver_api.static.*))); _espi_saf_driver_api_list_end = .; } > FLASH
+flash_driver_api_area : SUBALIGN(4) { _flash_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._flash_driver_api.static.*))); _flash_driver_api_list_end = .; } > FLASH
+fpga_driver_api_area : SUBALIGN(4) { _fpga_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._fpga_driver_api.static.*))); _fpga_driver_api_list_end = .; } > FLASH
+fuel_gauge_driver_api_area : SUBALIGN(4) { _fuel_gauge_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._fuel_gauge_driver_api.static.*))); _fuel_gauge_driver_api_list_end = .; } > FLASH
+gnss_driver_api_area : SUBALIGN(4) { _gnss_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._gnss_driver_api.static.*))); _gnss_driver_api_list_end = .; } > FLASH
+haptics_driver_api_area : SUBALIGN(4) { _haptics_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._haptics_driver_api.static.*))); _haptics_driver_api_list_end = .; } > FLASH
+hwspinlock_driver_api_area : SUBALIGN(4) { _hwspinlock_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._hwspinlock_driver_api.static.*))); _hwspinlock_driver_api_list_end = .; } > FLASH
+i2c_driver_api_area : SUBALIGN(4) { _i2c_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._i2c_driver_api.static.*))); _i2c_driver_api_list_end = .; } > FLASH
+i2c_target_driver_api_area : SUBALIGN(4) { _i2c_target_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._i2c_target_driver_api.static.*))); _i2c_target_driver_api_list_end = .; } > FLASH
+i2s_driver_api_area : SUBALIGN(4) { _i2s_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._i2s_driver_api.static.*))); _i2s_driver_api_list_end = .; } > FLASH
+i3c_driver_api_area : SUBALIGN(4) { _i3c_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._i3c_driver_api.static.*))); _i3c_driver_api_list_end = .; } > FLASH
+ipm_driver_api_area : SUBALIGN(4) { _ipm_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._ipm_driver_api.static.*))); _ipm_driver_api_list_end = .; } > FLASH
+kscan_driver_api_area : SUBALIGN(4) { _kscan_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._kscan_driver_api.static.*))); _kscan_driver_api_list_end = .; } > FLASH
+led_driver_api_area : SUBALIGN(4) { _led_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._led_driver_api.static.*))); _led_driver_api_list_end = .; } > FLASH
+led_strip_driver_api_area : SUBALIGN(4) { _led_strip_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._led_strip_driver_api.static.*))); _led_strip_driver_api_list_end = .; } > FLASH
+lora_driver_api_area : SUBALIGN(4) { _lora_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._lora_driver_api.static.*))); _lora_driver_api_list_end = .; } > FLASH
+mbox_driver_api_area : SUBALIGN(4) { _mbox_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._mbox_driver_api.static.*))); _mbox_driver_api_list_end = .; } > FLASH
+mdio_driver_api_area : SUBALIGN(4) { _mdio_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._mdio_driver_api.static.*))); _mdio_driver_api_list_end = .; } > FLASH
+mipi_dbi_driver_api_area : SUBALIGN(4) { _mipi_dbi_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._mipi_dbi_driver_api.static.*))); _mipi_dbi_driver_api_list_end = .; } > FLASH
+mipi_dsi_driver_api_area : SUBALIGN(4) { _mipi_dsi_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._mipi_dsi_driver_api.static.*))); _mipi_dsi_driver_api_list_end = .; } > FLASH
+mspi_driver_api_area : SUBALIGN(4) { _mspi_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._mspi_driver_api.static.*))); _mspi_driver_api_list_end = .; } > FLASH
+peci_driver_api_area : SUBALIGN(4) { _peci_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._peci_driver_api.static.*))); _peci_driver_api_list_end = .; } > FLASH
+ps2_driver_api_area : SUBALIGN(4) { _ps2_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._ps2_driver_api.static.*))); _ps2_driver_api_list_end = .; } > FLASH
+ptp_clock_driver_api_area : SUBALIGN(4) { _ptp_clock_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._ptp_clock_driver_api.static.*))); _ptp_clock_driver_api_list_end = .; } > FLASH
+pwm_driver_api_area : SUBALIGN(4) { _pwm_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._pwm_driver_api.static.*))); _pwm_driver_api_list_end = .; } > FLASH
+regulator_parent_driver_api_area : SUBALIGN(4) { _regulator_parent_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._regulator_parent_driver_api.static.*))); _regulator_parent_driver_api_list_end = .; } > FLASH
+regulator_driver_api_area : SUBALIGN(4) { _regulator_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._regulator_driver_api.static.*))); _regulator_driver_api_list_end = .; } > FLASH
+reset_driver_api_area : SUBALIGN(4) { _reset_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._reset_driver_api.static.*))); _reset_driver_api_list_end = .; } > FLASH
+retained_mem_driver_api_area : SUBALIGN(4) { _retained_mem_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._retained_mem_driver_api.static.*))); _retained_mem_driver_api_list_end = .; } > FLASH
+rtc_driver_api_area : SUBALIGN(4) { _rtc_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._rtc_driver_api.static.*))); _rtc_driver_api_list_end = .; } > FLASH
+sdhc_driver_api_area : SUBALIGN(4) { _sdhc_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._sdhc_driver_api.static.*))); _sdhc_driver_api_list_end = .; } > FLASH
+sensor_driver_api_area : SUBALIGN(4) { _sensor_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._sensor_driver_api.static.*))); _sensor_driver_api_list_end = .; } > FLASH
+smbus_driver_api_area : SUBALIGN(4) { _smbus_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._smbus_driver_api.static.*))); _smbus_driver_api_list_end = .; } > FLASH
+spi_driver_api_area : SUBALIGN(4) { _spi_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._spi_driver_api.static.*))); _spi_driver_api_list_end = .; } > FLASH
+stepper_driver_api_area : SUBALIGN(4) { _stepper_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._stepper_driver_api.static.*))); _stepper_driver_api_list_end = .; } > FLASH
+syscon_driver_api_area : SUBALIGN(4) { _syscon_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._syscon_driver_api.static.*))); _syscon_driver_api_list_end = .; } > FLASH
+tee_driver_api_area : SUBALIGN(4) { _tee_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._tee_driver_api.static.*))); _tee_driver_api_list_end = .; } > FLASH
+video_driver_api_area : SUBALIGN(4) { _video_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._video_driver_api.static.*))); _video_driver_api_list_end = .; } > FLASH
+w1_driver_api_area : SUBALIGN(4) { _w1_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._w1_driver_api.static.*))); _w1_driver_api_list_end = .; } > FLASH
+can_transceiver_driver_api_area : SUBALIGN(4) { _can_transceiver_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._can_transceiver_driver_api.static.*))); _can_transceiver_driver_api_list_end = .; } > FLASH
+nrf_clock_control_driver_api_area : SUBALIGN(4) { _nrf_clock_control_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._nrf_clock_control_driver_api.static.*))); _nrf_clock_control_driver_api_list_end = .; } > FLASH
+i3c_target_driver_api_area : SUBALIGN(4) { _i3c_target_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._i3c_target_driver_api.static.*))); _i3c_target_driver_api_list_end = .; } > FLASH
+its_driver_api_area : SUBALIGN(4) { _its_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._its_driver_api.static.*))); _its_driver_api_list_end = .; } > FLASH
+vtd_driver_api_area : SUBALIGN(4) { _vtd_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._vtd_driver_api.static.*))); _vtd_driver_api_list_end = .; } > FLASH
+tgpio_driver_api_area : SUBALIGN(4) { _tgpio_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._tgpio_driver_api.static.*))); _tgpio_driver_api_list_end = .; } > FLASH
+pcie_ctrl_driver_api_area : SUBALIGN(4) { _pcie_ctrl_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._pcie_ctrl_driver_api.static.*))); _pcie_ctrl_driver_api_list_end = .; } > FLASH
+pcie_ep_driver_api_area : SUBALIGN(4) { _pcie_ep_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._pcie_ep_driver_api.static.*))); _pcie_ep_driver_api_list_end = .; } > FLASH
+svc_driver_api_area : SUBALIGN(4) { _svc_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._svc_driver_api.static.*))); _svc_driver_api_list_end = .; } > FLASH
+uart_driver_api_area : SUBALIGN(4) { _uart_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._uart_driver_api.static.*))); _uart_driver_api_list_end = .; } > FLASH
+bc12_emul_driver_api_area : SUBALIGN(4) { _bc12_emul_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._bc12_emul_driver_api.static.*))); _bc12_emul_driver_api_list_end = .; } > FLASH
+bc12_driver_api_area : SUBALIGN(4) { _bc12_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._bc12_driver_api.static.*))); _bc12_driver_api_list_end = .; } > FLASH
+usbc_ppc_driver_api_area : SUBALIGN(4) { _usbc_ppc_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._usbc_ppc_driver_api.static.*))); _usbc_ppc_driver_api_list_end = .; } > FLASH
+tcpc_driver_api_area : SUBALIGN(4) { _tcpc_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._tcpc_driver_api.static.*))); _tcpc_driver_api_list_end = .; } > FLASH
+usbc_vbus_driver_api_area : SUBALIGN(4) { _usbc_vbus_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._usbc_vbus_driver_api.static.*))); _usbc_vbus_driver_api_list_end = .; } > FLASH
+ivshmem_driver_api_area : SUBALIGN(4) { _ivshmem_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._ivshmem_driver_api.static.*))); _ivshmem_driver_api_list_end = .; } > FLASH
+ethphy_driver_api_area : SUBALIGN(4) { _ethphy_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._ethphy_driver_api.static.*))); _ethphy_driver_api_list_end = .; } > FLASH
+ztest :
+{
+ _ztest_expected_result_entry_list_start = .; KEEP(*(SORT_BY_NAME(._ztest_expected_result_entry.static.*))); _ztest_expected_result_entry_list_end = .;
+ _ztest_suite_node_list_start = .; KEEP(*(SORT_BY_NAME(._ztest_suite_node.static.*))); _ztest_suite_node_list_end = .;
+ _ztest_unit_test_list_start = .; KEEP(*(SORT_BY_NAME(._ztest_unit_test.static.*))); _ztest_unit_test_list_end = .;
+ _ztest_test_rule_list_start = .; KEEP(*(SORT_BY_NAME(._ztest_test_rule.static.*))); _ztest_test_rule_list_end = .;
+} > FLASH
+ ctors :
+ {
+ . = ALIGN(4);
+ __ZEPHYR_CTOR_LIST__ = .;
+ LONG((__ZEPHYR_CTOR_END__ - __ZEPHYR_CTOR_LIST__) / 4 - 2)
+ KEEP(*(SORT_BY_NAME(".ctors*")))
+ __CTOR_LIST__ = .;
+ LONG(0)
+ __ZEPHYR_CTOR_END__ = .;
+ LONG(0)
+ __CTOR_END__ = .;
+ } > FLASH
+ init_array :
+ {
+ . = ALIGN(4);
+ __init_array_start = .;
+ __init_array_end = .;
+ __zephyr_init_array_start = .;
+ KEEP(*(SORT_BY_NAME(".init_array*")))
+ __zephyr_init_array_end = .;
+ } > FLASH
+ bt_l2cap_fixed_chan_area : SUBALIGN(4) { _bt_l2cap_fixed_chan_list_start = .; KEEP(*(SORT_BY_NAME(._bt_l2cap_fixed_chan.static.*))); _bt_l2cap_fixed_chan_list_end = .; } > FLASH
+ bt_gatt_service_static_area : SUBALIGN(4) { _bt_gatt_service_static_list_start = .; KEEP(*(SORT_BY_NAME(._bt_gatt_service_static.static.*))); _bt_gatt_service_static_list_end = .; } > FLASH
+ log_strings_area : SUBALIGN(4) { _log_strings_list_start = .; KEEP(*(SORT_BY_NAME(._log_strings.static.*))); _log_strings_list_end = .; } > FLASH
+ log_const_area : SUBALIGN(4) { _log_const_list_start = .; KEEP(*(SORT_BY_NAME(._log_const.static.*))); _log_const_list_end = .; } > FLASH
+ log_backend_area : SUBALIGN(4) { _log_backend_list_start = .; KEEP(*(SORT_BY_NAME(._log_backend.static.*))); _log_backend_list_end = .; } > FLASH
+ log_link_area : SUBALIGN(4) { _log_link_list_start = .; KEEP(*(SORT_BY_NAME(._log_link.static.*))); _log_link_list_end = .; } > FLASH
+ tracing_backend_area : SUBALIGN(4) { _tracing_backend_list_start = .; KEEP(*(SORT_BY_NAME(._tracing_backend.static.*))); _tracing_backend_list_end = .; } > FLASH
+ zephyr_dbg_info : ALIGN_WITH_INPUT
+ {
+ KEEP(*(".dbg_thread_info"));
+ } > FLASH
+ intc_table_area : SUBALIGN(4) { _intc_table_list_start = .; KEEP(*(SORT_BY_NAME(._intc_table.static.*))); _intc_table_list_end = .; } > FLASH
+ symbol_to_keep : ALIGN_WITH_INPUT
+ {
+ __symbol_to_keep_start = .;
+ KEEP(*(SORT(.symbol_to_keep*)));
+ __symbol_to_keep_end = .;
+ } > FLASH
+ shell_area : SUBALIGN(4) { _shell_list_start = .; KEEP(*(SORT_BY_NAME(._shell.static.*))); _shell_list_end = .; } > FLASH
+ shell_root_cmds_area : SUBALIGN(4) { _shell_root_cmds_list_start = .; KEEP(*(SORT_BY_NAME(._shell_root_cmds.static.*))); _shell_root_cmds_list_end = .; } > FLASH
+ shell_subcmds_area : SUBALIGN(4) { _shell_subcmds_list_start = .; KEEP(*(SORT_BY_NAME(._shell_subcmds.static.*))); _shell_subcmds_list_end = .; } > FLASH
+ shell_dynamic_subcmds_area : SUBALIGN(4) { _shell_dynamic_subcmds_list_start = .; KEEP(*(SORT_BY_NAME(._shell_dynamic_subcmds.static.*))); _shell_dynamic_subcmds_list_end = .; } > FLASH
+ cfb_font_area : SUBALIGN(4) { _cfb_font_list_start = .; KEEP(*(SORT_BY_NAME(._cfb_font.static.*))); _cfb_font_list_end = .; } > FLASH
+ tdata : ALIGN_WITH_INPUT
+ {
+ *(.tdata .tdata.* .gnu.linkonce.td.*);
+ } > FLASH
+ tbss : ALIGN_WITH_INPUT
+ {
+ *(.tbss .tbss.* .gnu.linkonce.tb.* .tcommon);
+ } > FLASH
+ PROVIDE(__tdata_start = LOADADDR(tdata));
+ PROVIDE(__tdata_align = ALIGNOF(tdata));
+ PROVIDE(__tdata_size = (SIZEOF(tdata) + __tdata_align - 1) & ~(__tdata_align - 1));
+ PROVIDE(__tdata_end = __tdata_start + __tdata_size);
+ PROVIDE(__tbss_align = ALIGNOF(tbss));
+ PROVIDE(__tbss_start = ADDR(tbss));
+ PROVIDE(__tbss_size = (SIZEOF(tbss) + __tbss_align - 1) & ~(__tbss_align - 1));
+ PROVIDE(__tbss_end = __tbss_start + __tbss_size);
+ PROVIDE(__tls_start = __tdata_start);
+ PROVIDE(__tls_end = __tbss_end);
+ PROVIDE(__tls_size = __tbss_end - __tdata_start);
+ rodata :
+ {
+ *(.rodata)
+ *(".rodata.*")
+ *(.gnu.linkonce.r.*)
+ . = ALIGN(4);
+ } > FLASH
+ .gcc_except_table : ONLY_IF_RO
+ {
+ *(.gcc_except_table .gcc_except_table.*)
+ } > FLASH
+ __rodata_region_end = .;
+ . = ALIGN(_region_min_align); . = ALIGN( 1 << LOG2CEIL(__rodata_region_end - ADDR(rom_start)));
+ __rom_region_end = __rom_region_start + . - ADDR(rom_start);
+
+ /DISCARD/ : {
+ *(.got.plt)
+ *(.igot.plt)
+ *(.got)
+ *(.igot)
+ }
+
+ . = 0x20400000;
+ . = ALIGN(_region_min_align);
+ _image_ram_start = .;
+.ramfunc : ALIGN_WITH_INPUT
+{
+ __ramfunc_region_start = .;
+ . = ALIGN(_region_min_align); . = ALIGN( 1 << LOG2CEIL(__ramfunc_size));
+ __ramfunc_start = .;
+ *(.ramfunc)
+ *(".ramfunc.*")
+ . = ALIGN(_region_min_align); . = ALIGN( 1 << LOG2CEIL(__ramfunc_size));
+ __ramfunc_end = .;
+} > RAM AT > FLASH
+__ramfunc_size = __ramfunc_end - __ramfunc_start;
+__ramfunc_load_start = LOADADDR(.ramfunc);
+
+ datas : ALIGN_WITH_INPUT
+ {
+ __data_region_start = .;
+ __data_start = .;
+ *(.data)
+ *(".data.*")
+ *(".kernel.*")
+ __data_end = .;
+ } > RAM AT > FLASH
+ __data_size = __data_end - __data_start;
+ __data_load_start = LOADADDR(datas);
+ __data_region_load_start = LOADADDR(datas);
+ device_states : ALIGN_WITH_INPUT
+ {
+ __device_states_start = .;
+ KEEP(*(".z_devstate"));
+ KEEP(*(".z_devstate.*"));
+ __device_states_end = .;
+ } > RAM AT > FLASH
+ log_mpsc_pbuf_area : ALIGN_WITH_INPUT { _log_mpsc_pbuf_list_start = .; *(SORT_BY_NAME(._log_mpsc_pbuf.static.*)); _log_mpsc_pbuf_list_end = .; } > RAM AT > FLASH
+ log_msg_ptr_area : ALIGN_WITH_INPUT { _log_msg_ptr_list_start = .; KEEP(*(SORT_BY_NAME(._log_msg_ptr.static.*))); _log_msg_ptr_list_end = .; } > RAM AT > FLASH
+ log_dynamic_area : ALIGN_WITH_INPUT { _log_dynamic_list_start = .; KEEP(*(SORT_BY_NAME(._log_dynamic.static.*))); _log_dynamic_list_end = .; } > RAM AT > FLASH
+ k_timer_area : ALIGN_WITH_INPUT { _k_timer_list_start = .; *(SORT_BY_NAME(._k_timer.static.*)); _k_timer_list_end = .; } > RAM AT > FLASH
+ k_mem_slab_area : ALIGN_WITH_INPUT { _k_mem_slab_list_start = .; *(SORT_BY_NAME(._k_mem_slab.static.*)); _k_mem_slab_list_end = .; } > RAM AT > FLASH
+ k_heap_area : ALIGN_WITH_INPUT { _k_heap_list_start = .; *(SORT_BY_NAME(._k_heap.static.*)); _k_heap_list_end = .; } > RAM AT > FLASH
+ k_mutex_area : ALIGN_WITH_INPUT { _k_mutex_list_start = .; *(SORT_BY_NAME(._k_mutex.static.*)); _k_mutex_list_end = .; } > RAM AT > FLASH
+ k_stack_area : ALIGN_WITH_INPUT { _k_stack_list_start = .; *(SORT_BY_NAME(._k_stack.static.*)); _k_stack_list_end = .; } > RAM AT > FLASH
+ k_msgq_area : ALIGN_WITH_INPUT { _k_msgq_list_start = .; *(SORT_BY_NAME(._k_msgq.static.*)); _k_msgq_list_end = .; } > RAM AT > FLASH
+ k_mbox_area : ALIGN_WITH_INPUT { _k_mbox_list_start = .; *(SORT_BY_NAME(._k_mbox.static.*)); _k_mbox_list_end = .; } > RAM AT > FLASH
+ k_pipe_area : ALIGN_WITH_INPUT { _k_pipe_list_start = .; *(SORT_BY_NAME(._k_pipe.static.*)); _k_pipe_list_end = .; } > RAM AT > FLASH
+ k_sem_area : ALIGN_WITH_INPUT { _k_sem_list_start = .; *(SORT_BY_NAME(._k_sem.static.*)); _k_sem_list_end = .; } > RAM AT > FLASH
+ k_event_area : ALIGN_WITH_INPUT { _k_event_list_start = .; *(SORT_BY_NAME(._k_event.static.*)); _k_event_list_end = .; } > RAM AT > FLASH
+ k_queue_area : ALIGN_WITH_INPUT { _k_queue_list_start = .; *(SORT_BY_NAME(._k_queue.static.*)); _k_queue_list_end = .; } > RAM AT > FLASH
+ k_fifo_area : ALIGN_WITH_INPUT { _k_fifo_list_start = .; *(SORT_BY_NAME(._k_fifo.static.*)); _k_fifo_list_end = .; } > RAM AT > FLASH
+ k_lifo_area : ALIGN_WITH_INPUT { _k_lifo_list_start = .; *(SORT_BY_NAME(._k_lifo.static.*)); _k_lifo_list_end = .; } > RAM AT > FLASH
+ k_condvar_area : ALIGN_WITH_INPUT { _k_condvar_list_start = .; *(SORT_BY_NAME(._k_condvar.static.*)); _k_condvar_list_end = .; } > RAM AT > FLASH
+ sys_mem_blocks_ptr_area : ALIGN_WITH_INPUT { _sys_mem_blocks_ptr_list_start = .; *(SORT_BY_NAME(._sys_mem_blocks_ptr.static.*)); _sys_mem_blocks_ptr_list_end = .; } > RAM AT > FLASH
+ net_buf_pool_area : ALIGN_WITH_INPUT { _net_buf_pool_list_start = .; KEEP(*(SORT_BY_NAME(._net_buf_pool.static.*))); _net_buf_pool_list_end = .; } > RAM AT > FLASH
+ .gcc_except_table : ALIGN_WITH_INPUT
+ {
+ *(.gcc_except_table .gcc_except_table.*)
+ } > RAM AT > FLASH
+ __data_region_end = .;
+ bss (NOLOAD) : ALIGN_WITH_INPUT
+ {
+ . = ALIGN(4);
+ __bss_start = .;
+ __kernel_ram_start = .;
+ *(.bss)
+ *(".bss.*")
+ *(COMMON)
+ *(".kernel_bss.*")
+ __bss_end = ALIGN(4);
+ } > RAM AT > RAM
+ noinit (NOLOAD) :
+ {
+ *(.noinit)
+ *(".noinit.*")
+ *(".kernel_noinit.*")
+ } > RAM AT > RAM
+ __kernel_ram_end = 0x20400000 + (384 * 1K);
+ __kernel_ram_size = __kernel_ram_end - __kernel_ram_start;
+/DISCARD/ :
+{
+ KEEP(*(.irq_info*))
+ KEEP(*(.intList*))
+}
+ .last_ram_section (NOLOAD) :
+ {
+ _image_ram_end = .;
+ _image_ram_size = _image_ram_end - _image_ram_start;
+ _end = .;
+ z_mapped_end = .;
+ } > RAM AT > RAM
+
+ .stab 0 : { *(.stab) }
+ .stabstr 0 : { *(.stabstr) }
+ .stab.excl 0 : { *(.stab.excl) }
+ .stab.exclstr 0 : { *(.stab.exclstr) }
+ .stab.index 0 : { *(.stab.index) }
+ .stab.indexstr 0 : { *(.stab.indexstr) }
+ .gnu.build.attributes 0 : { *(.gnu.build.attributes .gnu.build.attributes.*) }
+ .comment 0 : { *(.comment) }
+ .debug 0 : { *(.debug) }
+ .line 0 : { *(.line) }
+ .debug_srcinfo 0 : { *(.debug_srcinfo) }
+ .debug_sfnames 0 : { *(.debug_sfnames) }
+ .debug_aranges 0 : { *(.debug_aranges) }
+ .debug_pubnames 0 : { *(.debug_pubnames) }
+ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
+ .debug_abbrev 0 : { *(.debug_abbrev) }
+ .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end ) }
+ .debug_frame 0 : { *(.debug_frame) }
+ .debug_str 0 : { *(.debug_str) }
+ .debug_loc 0 : { *(.debug_loc) }
+ .debug_macinfo 0 : { *(.debug_macinfo) }
+ .debug_weaknames 0 : { *(.debug_weaknames) }
+ .debug_funcnames 0 : { *(.debug_funcnames) }
+ .debug_typenames 0 : { *(.debug_typenames) }
+ .debug_varnames 0 : { *(.debug_varnames) }
+ .debug_pubtypes 0 : { *(.debug_pubtypes) }
+ .debug_ranges 0 : { *(.debug_ranges) }
+ .debug_addr 0 : { *(.debug_addr) }
+ .debug_line_str 0 : { *(.debug_line_str) }
+ .debug_loclists 0 : { *(.debug_loclists) }
+ .debug_macro 0 : { *(.debug_macro) }
+ .debug_names 0 : { *(.debug_names) }
+ .debug_rnglists 0 : { *(.debug_rnglists) }
+ .debug_str_offsets 0 : { *(.debug_str_offsets) }
+ .debug_sup 0 : { *(.debug_sup) }
+ /DISCARD/ : { *(.note.GNU-stack) }
+ .ARM.attributes 0 :
+ {
+ KEEP(*(.ARM.attributes))
+ KEEP(*(.gnu.attributes))
+ }
+
+.last_section :
+{
+ LONG(0xE015E015)
+} > FLASH
+_flash_used = LOADADDR(.last_section) + SIZEOF(.last_section) - __rom_region_start;
+ }
diff --git a/examples/hello_dts/linkerscripts/linker_zephyr_pre0.ld b/examples/hello_dts/linkerscripts/linker_zephyr_pre0.ld
new file mode 100644
index 0000000..4c639a9
--- /dev/null
+++ b/examples/hello_dts/linkerscripts/linker_zephyr_pre0.ld
@@ -0,0 +1,435 @@
+ OUTPUT_FORMAT("elf32-littlearm")
+_region_min_align = 32;
+MEMORY
+ {
+ FLASH (rx) : ORIGIN = (0x400000 + 0x0), LENGTH = (2048 * 1024 - 0x0 - 0x0)
+ RAM (wx) : ORIGIN = 0x20400000, LENGTH = (384 * 1K)
+
+ IDT_LIST (wx) : ORIGIN = 0xFFFF7FFF, LENGTH = 32K
+ }
+ENTRY("__start")
+SECTIONS
+ {
+ .rel.plt :
+ {
+ *(.rel.plt)
+ PROVIDE_HIDDEN (__rel_iplt_start = .);
+ *(.rel.iplt)
+ PROVIDE_HIDDEN (__rel_iplt_end = .);
+ }
+ .rela.plt :
+ {
+ *(.rela.plt)
+ PROVIDE_HIDDEN (__rela_iplt_start = .);
+ *(.rela.iplt)
+ PROVIDE_HIDDEN (__rela_iplt_end = .);
+ }
+ .rel.dyn :
+ {
+ *(.rel.*)
+ }
+ .rela.dyn :
+ {
+ *(.rela.*)
+ }
+ /DISCARD/ :
+ {
+ *(.plt)
+ }
+ /DISCARD/ :
+ {
+ *(.iplt)
+ }
+
+ __rom_region_start = (0x400000 + 0x0);
+ rom_start :
+ {
+HIDDEN(__rom_start_address = .);
+FILL(0x00);
+. += 0x0 - (. - __rom_start_address);
+. = ALIGN(4);
+. = ALIGN( 1 << LOG2CEIL(4 * 32) );
+. = ALIGN( 1 << LOG2CEIL(4 * (16 + 74)) );
+_vector_start = .;
+KEEP(*(.exc_vector_table))
+KEEP(*(".exc_vector_table.*"))
+KEEP(*(.vectors))
+_vector_end = .;
+. = ALIGN(4);
+KEEP(*(.gnu.linkonce.irq_vector_table*))
+ _vector_end = .;
+ } > FLASH
+ text :
+ {
+ __text_region_start = .;
+ *(.text)
+ *(".text.*")
+ *(".TEXT.*")
+ *(.gnu.linkonce.t.*)
+ *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx)
+ . = ALIGN(4);
+ } > FLASH
+ __text_region_end = .;
+ .ARM.extab :
+ {
+ *(.ARM.extab* .gnu.linkonce.armextab.*)
+ } > FLASH
+ .ARM.exidx :
+ {
+ __exidx_start = .;
+ *(.ARM.exidx* gnu.linkonce.armexidx.*)
+ __exidx_end = .;
+ } > FLASH
+ __rodata_region_start = .;
+ initlevel :
+ {
+ __init_start = .;
+ __init_EARLY_start = .; KEEP(*(SORT(.z_init_EARLY?_*))); KEEP(*(SORT(.z_init_EARLY??_*)));
+ __init_PRE_KERNEL_1_start = .; KEEP(*(SORT(.z_init_PRE_KERNEL_1?_*))); KEEP(*(SORT(.z_init_PRE_KERNEL_1??_*)));
+ __init_PRE_KERNEL_2_start = .; KEEP(*(SORT(.z_init_PRE_KERNEL_2?_*))); KEEP(*(SORT(.z_init_PRE_KERNEL_2??_*)));
+ __init_POST_KERNEL_start = .; KEEP(*(SORT(.z_init_POST_KERNEL?_*))); KEEP(*(SORT(.z_init_POST_KERNEL??_*)));
+ __init_APPLICATION_start = .; KEEP(*(SORT(.z_init_APPLICATION?_*))); KEEP(*(SORT(.z_init_APPLICATION??_*)));
+ __init_SMP_start = .; KEEP(*(SORT(.z_init_SMP?_*))); KEEP(*(SORT(.z_init_SMP??_*)));
+ __init_end = .;
+ __deferred_init_list_start = .;
+ KEEP(*(.z_deferred_init*))
+ __deferred_init_list_end = .;
+ } > FLASH
+ device_area : SUBALIGN(4) { _device_list_start = .; KEEP(*(SORT(._device.static.*_?_*))); KEEP(*(SORT(._device.static.*_??_*))); _device_list_end = .; } > FLASH
+ sw_isr_table :
+ {
+ . = ALIGN(4);
+ *(.gnu.linkonce.sw_isr_table*)
+ } > FLASH
+ initlevel_error :
+ {
+ KEEP(*(SORT(.z_init_[_A-Z0-9]*)))
+ }
+ ASSERT(SIZEOF(initlevel_error) == 0, "Undefined initialization levels used.")
+ app_shmem_regions : ALIGN_WITH_INPUT
+ {
+ __app_shmem_regions_start = .;
+ KEEP(*(SORT(.app_regions.*)));
+ __app_shmem_regions_end = .;
+ } > FLASH
+ k_p4wq_initparam_area : SUBALIGN(4) { _k_p4wq_initparam_list_start = .; KEEP(*(SORT_BY_NAME(._k_p4wq_initparam.static.*))); _k_p4wq_initparam_list_end = .; } > FLASH
+ _static_thread_data_area : SUBALIGN(4) { __static_thread_data_list_start = .; KEEP(*(SORT_BY_NAME(.__static_thread_data.static.*))); __static_thread_data_list_end = .; } > FLASH
+ device_deps : ALIGN_WITH_INPUT
+ {
+__device_deps_start = .;
+KEEP(*(SORT(.__device_deps_pass2*)));
+__device_deps_end = .;
+ } > FLASH
+gpio_driver_api_area : SUBALIGN(4) { _gpio_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._gpio_driver_api.static.*))); _gpio_driver_api_list_end = .; } > FLASH
+wdt_driver_api_area : SUBALIGN(4) { _wdt_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._wdt_driver_api.static.*))); _wdt_driver_api_list_end = .; } > FLASH
+shared_irq_driver_api_area : SUBALIGN(4) { _shared_irq_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._shared_irq_driver_api.static.*))); _shared_irq_driver_api_list_end = .; } > FLASH
+crypto_driver_api_area : SUBALIGN(4) { _crypto_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._crypto_driver_api.static.*))); _crypto_driver_api_list_end = .; } > FLASH
+adc_driver_api_area : SUBALIGN(4) { _adc_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._adc_driver_api.static.*))); _adc_driver_api_list_end = .; } > FLASH
+auxdisplay_driver_api_area : SUBALIGN(4) { _auxdisplay_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._auxdisplay_driver_api.static.*))); _auxdisplay_driver_api_list_end = .; } > FLASH
+bbram_driver_api_area : SUBALIGN(4) { _bbram_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._bbram_driver_api.static.*))); _bbram_driver_api_list_end = .; } > FLASH
+bt_hci_driver_api_area : SUBALIGN(4) { _bt_hci_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._bt_hci_driver_api.static.*))); _bt_hci_driver_api_list_end = .; } > FLASH
+can_driver_api_area : SUBALIGN(4) { _can_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._can_driver_api.static.*))); _can_driver_api_list_end = .; } > FLASH
+cellular_driver_api_area : SUBALIGN(4) { _cellular_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._cellular_driver_api.static.*))); _cellular_driver_api_list_end = .; } > FLASH
+charger_driver_api_area : SUBALIGN(4) { _charger_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._charger_driver_api.static.*))); _charger_driver_api_list_end = .; } > FLASH
+clock_control_driver_api_area : SUBALIGN(4) { _clock_control_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._clock_control_driver_api.static.*))); _clock_control_driver_api_list_end = .; } > FLASH
+comparator_driver_api_area : SUBALIGN(4) { _comparator_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._comparator_driver_api.static.*))); _comparator_driver_api_list_end = .; } > FLASH
+coredump_driver_api_area : SUBALIGN(4) { _coredump_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._coredump_driver_api.static.*))); _coredump_driver_api_list_end = .; } > FLASH
+counter_driver_api_area : SUBALIGN(4) { _counter_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._counter_driver_api.static.*))); _counter_driver_api_list_end = .; } > FLASH
+dac_driver_api_area : SUBALIGN(4) { _dac_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._dac_driver_api.static.*))); _dac_driver_api_list_end = .; } > FLASH
+dai_driver_api_area : SUBALIGN(4) { _dai_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._dai_driver_api.static.*))); _dai_driver_api_list_end = .; } > FLASH
+display_driver_api_area : SUBALIGN(4) { _display_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._display_driver_api.static.*))); _display_driver_api_list_end = .; } > FLASH
+dma_driver_api_area : SUBALIGN(4) { _dma_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._dma_driver_api.static.*))); _dma_driver_api_list_end = .; } > FLASH
+edac_driver_api_area : SUBALIGN(4) { _edac_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._edac_driver_api.static.*))); _edac_driver_api_list_end = .; } > FLASH
+eeprom_driver_api_area : SUBALIGN(4) { _eeprom_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._eeprom_driver_api.static.*))); _eeprom_driver_api_list_end = .; } > FLASH
+emul_bbram_driver_api_area : SUBALIGN(4) { _emul_bbram_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._emul_bbram_driver_api.static.*))); _emul_bbram_driver_api_list_end = .; } > FLASH
+fuel_gauge_emul_driver_api_area : SUBALIGN(4) { _fuel_gauge_emul_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._fuel_gauge_emul_driver_api.static.*))); _fuel_gauge_emul_driver_api_list_end = .; } > FLASH
+emul_sensor_driver_api_area : SUBALIGN(4) { _emul_sensor_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._emul_sensor_driver_api.static.*))); _emul_sensor_driver_api_list_end = .; } > FLASH
+entropy_driver_api_area : SUBALIGN(4) { _entropy_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._entropy_driver_api.static.*))); _entropy_driver_api_list_end = .; } > FLASH
+espi_driver_api_area : SUBALIGN(4) { _espi_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._espi_driver_api.static.*))); _espi_driver_api_list_end = .; } > FLASH
+espi_saf_driver_api_area : SUBALIGN(4) { _espi_saf_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._espi_saf_driver_api.static.*))); _espi_saf_driver_api_list_end = .; } > FLASH
+flash_driver_api_area : SUBALIGN(4) { _flash_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._flash_driver_api.static.*))); _flash_driver_api_list_end = .; } > FLASH
+fpga_driver_api_area : SUBALIGN(4) { _fpga_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._fpga_driver_api.static.*))); _fpga_driver_api_list_end = .; } > FLASH
+fuel_gauge_driver_api_area : SUBALIGN(4) { _fuel_gauge_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._fuel_gauge_driver_api.static.*))); _fuel_gauge_driver_api_list_end = .; } > FLASH
+gnss_driver_api_area : SUBALIGN(4) { _gnss_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._gnss_driver_api.static.*))); _gnss_driver_api_list_end = .; } > FLASH
+haptics_driver_api_area : SUBALIGN(4) { _haptics_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._haptics_driver_api.static.*))); _haptics_driver_api_list_end = .; } > FLASH
+hwspinlock_driver_api_area : SUBALIGN(4) { _hwspinlock_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._hwspinlock_driver_api.static.*))); _hwspinlock_driver_api_list_end = .; } > FLASH
+i2c_driver_api_area : SUBALIGN(4) { _i2c_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._i2c_driver_api.static.*))); _i2c_driver_api_list_end = .; } > FLASH
+i2c_target_driver_api_area : SUBALIGN(4) { _i2c_target_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._i2c_target_driver_api.static.*))); _i2c_target_driver_api_list_end = .; } > FLASH
+i2s_driver_api_area : SUBALIGN(4) { _i2s_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._i2s_driver_api.static.*))); _i2s_driver_api_list_end = .; } > FLASH
+i3c_driver_api_area : SUBALIGN(4) { _i3c_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._i3c_driver_api.static.*))); _i3c_driver_api_list_end = .; } > FLASH
+ipm_driver_api_area : SUBALIGN(4) { _ipm_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._ipm_driver_api.static.*))); _ipm_driver_api_list_end = .; } > FLASH
+kscan_driver_api_area : SUBALIGN(4) { _kscan_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._kscan_driver_api.static.*))); _kscan_driver_api_list_end = .; } > FLASH
+led_driver_api_area : SUBALIGN(4) { _led_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._led_driver_api.static.*))); _led_driver_api_list_end = .; } > FLASH
+led_strip_driver_api_area : SUBALIGN(4) { _led_strip_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._led_strip_driver_api.static.*))); _led_strip_driver_api_list_end = .; } > FLASH
+lora_driver_api_area : SUBALIGN(4) { _lora_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._lora_driver_api.static.*))); _lora_driver_api_list_end = .; } > FLASH
+mbox_driver_api_area : SUBALIGN(4) { _mbox_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._mbox_driver_api.static.*))); _mbox_driver_api_list_end = .; } > FLASH
+mdio_driver_api_area : SUBALIGN(4) { _mdio_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._mdio_driver_api.static.*))); _mdio_driver_api_list_end = .; } > FLASH
+mipi_dbi_driver_api_area : SUBALIGN(4) { _mipi_dbi_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._mipi_dbi_driver_api.static.*))); _mipi_dbi_driver_api_list_end = .; } > FLASH
+mipi_dsi_driver_api_area : SUBALIGN(4) { _mipi_dsi_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._mipi_dsi_driver_api.static.*))); _mipi_dsi_driver_api_list_end = .; } > FLASH
+mspi_driver_api_area : SUBALIGN(4) { _mspi_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._mspi_driver_api.static.*))); _mspi_driver_api_list_end = .; } > FLASH
+peci_driver_api_area : SUBALIGN(4) { _peci_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._peci_driver_api.static.*))); _peci_driver_api_list_end = .; } > FLASH
+ps2_driver_api_area : SUBALIGN(4) { _ps2_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._ps2_driver_api.static.*))); _ps2_driver_api_list_end = .; } > FLASH
+ptp_clock_driver_api_area : SUBALIGN(4) { _ptp_clock_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._ptp_clock_driver_api.static.*))); _ptp_clock_driver_api_list_end = .; } > FLASH
+pwm_driver_api_area : SUBALIGN(4) { _pwm_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._pwm_driver_api.static.*))); _pwm_driver_api_list_end = .; } > FLASH
+regulator_parent_driver_api_area : SUBALIGN(4) { _regulator_parent_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._regulator_parent_driver_api.static.*))); _regulator_parent_driver_api_list_end = .; } > FLASH
+regulator_driver_api_area : SUBALIGN(4) { _regulator_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._regulator_driver_api.static.*))); _regulator_driver_api_list_end = .; } > FLASH
+reset_driver_api_area : SUBALIGN(4) { _reset_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._reset_driver_api.static.*))); _reset_driver_api_list_end = .; } > FLASH
+retained_mem_driver_api_area : SUBALIGN(4) { _retained_mem_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._retained_mem_driver_api.static.*))); _retained_mem_driver_api_list_end = .; } > FLASH
+rtc_driver_api_area : SUBALIGN(4) { _rtc_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._rtc_driver_api.static.*))); _rtc_driver_api_list_end = .; } > FLASH
+sdhc_driver_api_area : SUBALIGN(4) { _sdhc_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._sdhc_driver_api.static.*))); _sdhc_driver_api_list_end = .; } > FLASH
+sensor_driver_api_area : SUBALIGN(4) { _sensor_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._sensor_driver_api.static.*))); _sensor_driver_api_list_end = .; } > FLASH
+smbus_driver_api_area : SUBALIGN(4) { _smbus_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._smbus_driver_api.static.*))); _smbus_driver_api_list_end = .; } > FLASH
+spi_driver_api_area : SUBALIGN(4) { _spi_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._spi_driver_api.static.*))); _spi_driver_api_list_end = .; } > FLASH
+stepper_driver_api_area : SUBALIGN(4) { _stepper_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._stepper_driver_api.static.*))); _stepper_driver_api_list_end = .; } > FLASH
+syscon_driver_api_area : SUBALIGN(4) { _syscon_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._syscon_driver_api.static.*))); _syscon_driver_api_list_end = .; } > FLASH
+tee_driver_api_area : SUBALIGN(4) { _tee_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._tee_driver_api.static.*))); _tee_driver_api_list_end = .; } > FLASH
+video_driver_api_area : SUBALIGN(4) { _video_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._video_driver_api.static.*))); _video_driver_api_list_end = .; } > FLASH
+w1_driver_api_area : SUBALIGN(4) { _w1_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._w1_driver_api.static.*))); _w1_driver_api_list_end = .; } > FLASH
+can_transceiver_driver_api_area : SUBALIGN(4) { _can_transceiver_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._can_transceiver_driver_api.static.*))); _can_transceiver_driver_api_list_end = .; } > FLASH
+nrf_clock_control_driver_api_area : SUBALIGN(4) { _nrf_clock_control_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._nrf_clock_control_driver_api.static.*))); _nrf_clock_control_driver_api_list_end = .; } > FLASH
+i3c_target_driver_api_area : SUBALIGN(4) { _i3c_target_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._i3c_target_driver_api.static.*))); _i3c_target_driver_api_list_end = .; } > FLASH
+its_driver_api_area : SUBALIGN(4) { _its_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._its_driver_api.static.*))); _its_driver_api_list_end = .; } > FLASH
+vtd_driver_api_area : SUBALIGN(4) { _vtd_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._vtd_driver_api.static.*))); _vtd_driver_api_list_end = .; } > FLASH
+tgpio_driver_api_area : SUBALIGN(4) { _tgpio_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._tgpio_driver_api.static.*))); _tgpio_driver_api_list_end = .; } > FLASH
+pcie_ctrl_driver_api_area : SUBALIGN(4) { _pcie_ctrl_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._pcie_ctrl_driver_api.static.*))); _pcie_ctrl_driver_api_list_end = .; } > FLASH
+pcie_ep_driver_api_area : SUBALIGN(4) { _pcie_ep_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._pcie_ep_driver_api.static.*))); _pcie_ep_driver_api_list_end = .; } > FLASH
+svc_driver_api_area : SUBALIGN(4) { _svc_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._svc_driver_api.static.*))); _svc_driver_api_list_end = .; } > FLASH
+uart_driver_api_area : SUBALIGN(4) { _uart_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._uart_driver_api.static.*))); _uart_driver_api_list_end = .; } > FLASH
+bc12_emul_driver_api_area : SUBALIGN(4) { _bc12_emul_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._bc12_emul_driver_api.static.*))); _bc12_emul_driver_api_list_end = .; } > FLASH
+bc12_driver_api_area : SUBALIGN(4) { _bc12_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._bc12_driver_api.static.*))); _bc12_driver_api_list_end = .; } > FLASH
+usbc_ppc_driver_api_area : SUBALIGN(4) { _usbc_ppc_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._usbc_ppc_driver_api.static.*))); _usbc_ppc_driver_api_list_end = .; } > FLASH
+tcpc_driver_api_area : SUBALIGN(4) { _tcpc_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._tcpc_driver_api.static.*))); _tcpc_driver_api_list_end = .; } > FLASH
+usbc_vbus_driver_api_area : SUBALIGN(4) { _usbc_vbus_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._usbc_vbus_driver_api.static.*))); _usbc_vbus_driver_api_list_end = .; } > FLASH
+ivshmem_driver_api_area : SUBALIGN(4) { _ivshmem_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._ivshmem_driver_api.static.*))); _ivshmem_driver_api_list_end = .; } > FLASH
+ethphy_driver_api_area : SUBALIGN(4) { _ethphy_driver_api_list_start = .; KEEP(*(SORT_BY_NAME(._ethphy_driver_api.static.*))); _ethphy_driver_api_list_end = .; } > FLASH
+ztest :
+{
+ _ztest_expected_result_entry_list_start = .; KEEP(*(SORT_BY_NAME(._ztest_expected_result_entry.static.*))); _ztest_expected_result_entry_list_end = .;
+ _ztest_suite_node_list_start = .; KEEP(*(SORT_BY_NAME(._ztest_suite_node.static.*))); _ztest_suite_node_list_end = .;
+ _ztest_unit_test_list_start = .; KEEP(*(SORT_BY_NAME(._ztest_unit_test.static.*))); _ztest_unit_test_list_end = .;
+ _ztest_test_rule_list_start = .; KEEP(*(SORT_BY_NAME(._ztest_test_rule.static.*))); _ztest_test_rule_list_end = .;
+} > FLASH
+ ctors :
+ {
+ . = ALIGN(4);
+ __ZEPHYR_CTOR_LIST__ = .;
+ LONG((__ZEPHYR_CTOR_END__ - __ZEPHYR_CTOR_LIST__) / 4 - 2)
+ KEEP(*(SORT_BY_NAME(".ctors*")))
+ __CTOR_LIST__ = .;
+ LONG(0)
+ __ZEPHYR_CTOR_END__ = .;
+ LONG(0)
+ __CTOR_END__ = .;
+ } > FLASH
+ init_array :
+ {
+ . = ALIGN(4);
+ __init_array_start = .;
+ __init_array_end = .;
+ __zephyr_init_array_start = .;
+ KEEP(*(SORT_BY_NAME(".init_array*")))
+ __zephyr_init_array_end = .;
+ } > FLASH
+ bt_l2cap_fixed_chan_area : SUBALIGN(4) { _bt_l2cap_fixed_chan_list_start = .; KEEP(*(SORT_BY_NAME(._bt_l2cap_fixed_chan.static.*))); _bt_l2cap_fixed_chan_list_end = .; } > FLASH
+ bt_gatt_service_static_area : SUBALIGN(4) { _bt_gatt_service_static_list_start = .; KEEP(*(SORT_BY_NAME(._bt_gatt_service_static.static.*))); _bt_gatt_service_static_list_end = .; } > FLASH
+ log_strings_area : SUBALIGN(4) { _log_strings_list_start = .; KEEP(*(SORT_BY_NAME(._log_strings.static.*))); _log_strings_list_end = .; } > FLASH
+ log_const_area : SUBALIGN(4) { _log_const_list_start = .; KEEP(*(SORT_BY_NAME(._log_const.static.*))); _log_const_list_end = .; } > FLASH
+ log_backend_area : SUBALIGN(4) { _log_backend_list_start = .; KEEP(*(SORT_BY_NAME(._log_backend.static.*))); _log_backend_list_end = .; } > FLASH
+ log_link_area : SUBALIGN(4) { _log_link_list_start = .; KEEP(*(SORT_BY_NAME(._log_link.static.*))); _log_link_list_end = .; } > FLASH
+ tracing_backend_area : SUBALIGN(4) { _tracing_backend_list_start = .; KEEP(*(SORT_BY_NAME(._tracing_backend.static.*))); _tracing_backend_list_end = .; } > FLASH
+ zephyr_dbg_info : ALIGN_WITH_INPUT
+ {
+ KEEP(*(".dbg_thread_info"));
+ } > FLASH
+ intc_table_area : SUBALIGN(4) { _intc_table_list_start = .; KEEP(*(SORT_BY_NAME(._intc_table.static.*))); _intc_table_list_end = .; } > FLASH
+ symbol_to_keep : ALIGN_WITH_INPUT
+ {
+ __symbol_to_keep_start = .;
+ KEEP(*(SORT(.symbol_to_keep*)));
+ __symbol_to_keep_end = .;
+ } > FLASH
+ shell_area : SUBALIGN(4) { _shell_list_start = .; KEEP(*(SORT_BY_NAME(._shell.static.*))); _shell_list_end = .; } > FLASH
+ shell_root_cmds_area : SUBALIGN(4) { _shell_root_cmds_list_start = .; KEEP(*(SORT_BY_NAME(._shell_root_cmds.static.*))); _shell_root_cmds_list_end = .; } > FLASH
+ shell_subcmds_area : SUBALIGN(4) { _shell_subcmds_list_start = .; KEEP(*(SORT_BY_NAME(._shell_subcmds.static.*))); _shell_subcmds_list_end = .; } > FLASH
+ shell_dynamic_subcmds_area : SUBALIGN(4) { _shell_dynamic_subcmds_list_start = .; KEEP(*(SORT_BY_NAME(._shell_dynamic_subcmds.static.*))); _shell_dynamic_subcmds_list_end = .; } > FLASH
+ cfb_font_area : SUBALIGN(4) { _cfb_font_list_start = .; KEEP(*(SORT_BY_NAME(._cfb_font.static.*))); _cfb_font_list_end = .; } > FLASH
+ tdata : ALIGN_WITH_INPUT
+ {
+ *(.tdata .tdata.* .gnu.linkonce.td.*);
+ } > FLASH
+ tbss : ALIGN_WITH_INPUT
+ {
+ *(.tbss .tbss.* .gnu.linkonce.tb.* .tcommon);
+ } > FLASH
+ PROVIDE(__tdata_start = LOADADDR(tdata));
+ PROVIDE(__tdata_align = ALIGNOF(tdata));
+ PROVIDE(__tdata_size = (SIZEOF(tdata) + __tdata_align - 1) & ~(__tdata_align - 1));
+ PROVIDE(__tdata_end = __tdata_start + __tdata_size);
+ PROVIDE(__tbss_align = ALIGNOF(tbss));
+ PROVIDE(__tbss_start = ADDR(tbss));
+ PROVIDE(__tbss_size = (SIZEOF(tbss) + __tbss_align - 1) & ~(__tbss_align - 1));
+ PROVIDE(__tbss_end = __tbss_start + __tbss_size);
+ PROVIDE(__tls_start = __tdata_start);
+ PROVIDE(__tls_end = __tbss_end);
+ PROVIDE(__tls_size = __tbss_end - __tdata_start);
+ rodata :
+ {
+ *(.rodata)
+ *(".rodata.*")
+ *(.gnu.linkonce.r.*)
+ . = ALIGN(4);
+ } > FLASH
+ .gcc_except_table : ONLY_IF_RO
+ {
+ *(.gcc_except_table .gcc_except_table.*)
+ } > FLASH
+ __rodata_region_end = .;
+ . = ALIGN(_region_min_align); . = ALIGN( 1 << LOG2CEIL(__rodata_region_end - ADDR(rom_start)));
+ __rom_region_end = __rom_region_start + . - ADDR(rom_start);
+
+ /DISCARD/ : {
+ *(.got.plt)
+ *(.igot.plt)
+ *(.got)
+ *(.igot)
+ }
+
+ . = 0x20400000;
+ . = ALIGN(_region_min_align);
+ _image_ram_start = .;
+.ramfunc : ALIGN_WITH_INPUT
+{
+ __ramfunc_region_start = .;
+ . = ALIGN(_region_min_align); . = ALIGN( 1 << LOG2CEIL(__ramfunc_size));
+ __ramfunc_start = .;
+ *(.ramfunc)
+ *(".ramfunc.*")
+ . = ALIGN(_region_min_align); . = ALIGN( 1 << LOG2CEIL(__ramfunc_size));
+ __ramfunc_end = .;
+} > RAM AT > FLASH
+__ramfunc_size = __ramfunc_end - __ramfunc_start;
+__ramfunc_load_start = LOADADDR(.ramfunc);
+
+ datas : ALIGN_WITH_INPUT
+ {
+ __data_region_start = .;
+ __data_start = .;
+ *(.data)
+ *(".data.*")
+ *(".kernel.*")
+ __data_end = .;
+ } > RAM AT > FLASH
+ __data_size = __data_end - __data_start;
+ __data_load_start = LOADADDR(datas);
+ __data_region_load_start = LOADADDR(datas);
+ device_states : ALIGN_WITH_INPUT
+ {
+ __device_states_start = .;
+ KEEP(*(".z_devstate"));
+ KEEP(*(".z_devstate.*"));
+ __device_states_end = .;
+ } > RAM AT > FLASH
+ log_mpsc_pbuf_area : ALIGN_WITH_INPUT { _log_mpsc_pbuf_list_start = .; *(SORT_BY_NAME(._log_mpsc_pbuf.static.*)); _log_mpsc_pbuf_list_end = .; } > RAM AT > FLASH
+ log_msg_ptr_area : ALIGN_WITH_INPUT { _log_msg_ptr_list_start = .; KEEP(*(SORT_BY_NAME(._log_msg_ptr.static.*))); _log_msg_ptr_list_end = .; } > RAM AT > FLASH
+ log_dynamic_area : ALIGN_WITH_INPUT { _log_dynamic_list_start = .; KEEP(*(SORT_BY_NAME(._log_dynamic.static.*))); _log_dynamic_list_end = .; } > RAM AT > FLASH
+ k_timer_area : ALIGN_WITH_INPUT { _k_timer_list_start = .; *(SORT_BY_NAME(._k_timer.static.*)); _k_timer_list_end = .; } > RAM AT > FLASH
+ k_mem_slab_area : ALIGN_WITH_INPUT { _k_mem_slab_list_start = .; *(SORT_BY_NAME(._k_mem_slab.static.*)); _k_mem_slab_list_end = .; } > RAM AT > FLASH
+ k_heap_area : ALIGN_WITH_INPUT { _k_heap_list_start = .; *(SORT_BY_NAME(._k_heap.static.*)); _k_heap_list_end = .; } > RAM AT > FLASH
+ k_mutex_area : ALIGN_WITH_INPUT { _k_mutex_list_start = .; *(SORT_BY_NAME(._k_mutex.static.*)); _k_mutex_list_end = .; } > RAM AT > FLASH
+ k_stack_area : ALIGN_WITH_INPUT { _k_stack_list_start = .; *(SORT_BY_NAME(._k_stack.static.*)); _k_stack_list_end = .; } > RAM AT > FLASH
+ k_msgq_area : ALIGN_WITH_INPUT { _k_msgq_list_start = .; *(SORT_BY_NAME(._k_msgq.static.*)); _k_msgq_list_end = .; } > RAM AT > FLASH
+ k_mbox_area : ALIGN_WITH_INPUT { _k_mbox_list_start = .; *(SORT_BY_NAME(._k_mbox.static.*)); _k_mbox_list_end = .; } > RAM AT > FLASH
+ k_pipe_area : ALIGN_WITH_INPUT { _k_pipe_list_start = .; *(SORT_BY_NAME(._k_pipe.static.*)); _k_pipe_list_end = .; } > RAM AT > FLASH
+ k_sem_area : ALIGN_WITH_INPUT { _k_sem_list_start = .; *(SORT_BY_NAME(._k_sem.static.*)); _k_sem_list_end = .; } > RAM AT > FLASH
+ k_event_area : ALIGN_WITH_INPUT { _k_event_list_start = .; *(SORT_BY_NAME(._k_event.static.*)); _k_event_list_end = .; } > RAM AT > FLASH
+ k_queue_area : ALIGN_WITH_INPUT { _k_queue_list_start = .; *(SORT_BY_NAME(._k_queue.static.*)); _k_queue_list_end = .; } > RAM AT > FLASH
+ k_fifo_area : ALIGN_WITH_INPUT { _k_fifo_list_start = .; *(SORT_BY_NAME(._k_fifo.static.*)); _k_fifo_list_end = .; } > RAM AT > FLASH
+ k_lifo_area : ALIGN_WITH_INPUT { _k_lifo_list_start = .; *(SORT_BY_NAME(._k_lifo.static.*)); _k_lifo_list_end = .; } > RAM AT > FLASH
+ k_condvar_area : ALIGN_WITH_INPUT { _k_condvar_list_start = .; *(SORT_BY_NAME(._k_condvar.static.*)); _k_condvar_list_end = .; } > RAM AT > FLASH
+ sys_mem_blocks_ptr_area : ALIGN_WITH_INPUT { _sys_mem_blocks_ptr_list_start = .; *(SORT_BY_NAME(._sys_mem_blocks_ptr.static.*)); _sys_mem_blocks_ptr_list_end = .; } > RAM AT > FLASH
+ net_buf_pool_area : ALIGN_WITH_INPUT { _net_buf_pool_list_start = .; KEEP(*(SORT_BY_NAME(._net_buf_pool.static.*))); _net_buf_pool_list_end = .; } > RAM AT > FLASH
+ .gcc_except_table : ALIGN_WITH_INPUT
+ {
+ *(.gcc_except_table .gcc_except_table.*)
+ } > RAM AT > FLASH
+ __data_region_end = .;
+ bss (NOLOAD) : ALIGN_WITH_INPUT
+ {
+ . = ALIGN(4);
+ __bss_start = .;
+ __kernel_ram_start = .;
+ *(.bss)
+ *(".bss.*")
+ *(COMMON)
+ *(".kernel_bss.*")
+ __bss_end = ALIGN(4);
+ } > RAM AT > RAM
+ noinit (NOLOAD) :
+ {
+ *(.noinit)
+ *(".noinit.*")
+ *(".kernel_noinit.*")
+ } > RAM AT > RAM
+ __kernel_ram_end = 0x20400000 + (384 * 1K);
+ __kernel_ram_size = __kernel_ram_end - __kernel_ram_start;
+.intList :
+{
+ KEEP(*(.irq_info*))
+ KEEP(*(.intList*))
+} > IDT_LIST
+ .last_ram_section (NOLOAD) :
+ {
+ _image_ram_end = .;
+ _image_ram_size = _image_ram_end - _image_ram_start;
+ _end = .;
+ z_mapped_end = .;
+ } > RAM AT > RAM
+
+ .stab 0 : { *(.stab) }
+ .stabstr 0 : { *(.stabstr) }
+ .stab.excl 0 : { *(.stab.excl) }
+ .stab.exclstr 0 : { *(.stab.exclstr) }
+ .stab.index 0 : { *(.stab.index) }
+ .stab.indexstr 0 : { *(.stab.indexstr) }
+ .gnu.build.attributes 0 : { *(.gnu.build.attributes .gnu.build.attributes.*) }
+ .comment 0 : { *(.comment) }
+ .debug 0 : { *(.debug) }
+ .line 0 : { *(.line) }
+ .debug_srcinfo 0 : { *(.debug_srcinfo) }
+ .debug_sfnames 0 : { *(.debug_sfnames) }
+ .debug_aranges 0 : { *(.debug_aranges) }
+ .debug_pubnames 0 : { *(.debug_pubnames) }
+ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
+ .debug_abbrev 0 : { *(.debug_abbrev) }
+ .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end ) }
+ .debug_frame 0 : { *(.debug_frame) }
+ .debug_str 0 : { *(.debug_str) }
+ .debug_loc 0 : { *(.debug_loc) }
+ .debug_macinfo 0 : { *(.debug_macinfo) }
+ .debug_weaknames 0 : { *(.debug_weaknames) }
+ .debug_funcnames 0 : { *(.debug_funcnames) }
+ .debug_typenames 0 : { *(.debug_typenames) }
+ .debug_varnames 0 : { *(.debug_varnames) }
+ .debug_pubtypes 0 : { *(.debug_pubtypes) }
+ .debug_ranges 0 : { *(.debug_ranges) }
+ .debug_addr 0 : { *(.debug_addr) }
+ .debug_line_str 0 : { *(.debug_line_str) }
+ .debug_loclists 0 : { *(.debug_loclists) }
+ .debug_macro 0 : { *(.debug_macro) }
+ .debug_names 0 : { *(.debug_names) }
+ .debug_rnglists 0 : { *(.debug_rnglists) }
+ .debug_str_offsets 0 : { *(.debug_str_offsets) }
+ .debug_sup 0 : { *(.debug_sup) }
+ /DISCARD/ : { *(.note.GNU-stack) }
+ .ARM.attributes 0 :
+ {
+ KEEP(*(.ARM.attributes))
+ KEEP(*(.gnu.attributes))
+ }
+
+.last_section :
+{
+ LONG(0xE015E015)
+} > FLASH
+_flash_used = LOADADDR(.last_section) + SIZEOF(.last_section) - __rom_region_start;
+ }
diff --git a/examples/hello_dts/pigweed.json b/examples/hello_dts/pigweed.json
index c9b850b..0b65cfa 100644
--- a/examples/hello_dts/pigweed.json
+++ b/examples/hello_dts/pigweed.json
@@ -7,11 +7,9 @@
"default": [
[
"build",
- ":app"
- ],
- [
- "test",
- ":all"
+ ":app",
+ "--platforms=:robokit1",
+ "--sandbox_debug"
]
]
}
diff --git a/examples/hello_dts/public/pw_sys_io_baremetal_robokit1/init.h b/examples/hello_dts/public/pw_sys_io_baremetal_robokit1/init.h
new file mode 100644
index 0000000..aad2102
--- /dev/null
+++ b/examples/hello_dts/public/pw_sys_io_baremetal_robokit1/init.h
@@ -0,0 +1,23 @@
+// Copyright 2024 The Pigweed Authors
+//
+// Licensed under the Apache License, Version 2.0 (the "License"); you may not
+// use this file except in compliance with the License. You may obtain a copy of
+// the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+// License for the specific language governing permissions and limitations under
+// the License.
+#pragma once
+
+#include "pw_preprocessor/util.h"
+
+PW_EXTERN_C_START
+
+// The actual implementation of PreMainInit() in sys_io_BACKEND.
+void pw_sys_io_robokit1_Init();
+
+PW_EXTERN_C_END
\ No newline at end of file
diff --git a/generate_diff.py b/generate_diff.py
index 288f920..d0278b7 100644
--- a/generate_diff.py
+++ b/generate_diff.py
@@ -1,3 +1,17 @@
+# Copyright 2025 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
import argparse
import pathlib
import io
diff --git a/include/BUILD.bazel b/include/BUILD.bazel
index 294fcbc..c662f87 100644
--- a/include/BUILD.bazel
+++ b/include/BUILD.bazel
@@ -31,124 +31,27 @@
)
filegroup(
+ name = "all",
+ srcs = glob(["**/*.h"]),
+)
+
+filegroup(
name = "core",
- srcs = [
- "zephyr/device.h",
- "zephyr/devicetree.h",
- "zephyr/fatal.h",
- "zephyr/fatal_types.h",
- "zephyr/init.h",
- "zephyr/irq.h",
- "zephyr/irq_multilevel.h",
- "zephyr/irq_offload.h",
- "zephyr/kernel.h",
- "zephyr/kernel_includes.h",
- "zephyr/kernel_structs.h",
- "zephyr/kernel_version.h",
- "zephyr/spinlock.h",
- "zephyr/syscall.h",
- "zephyr/sys_clock.h",
- "zephyr/sw_isr_table.h",
- "zephyr/toolchain.h",
- "zephyr/types.h",
- "zephyr/app_memory/mem_domain.h",
- "zephyr/arch/arch_inlines.h",
- "zephyr/arch/cpu.h",
- "zephyr/arch/structs.h",
- "zephyr/arch/syscall.h",
- "zephyr/arch/arch_interface.h",
- "zephyr/arch/arm/arch.h",
- "zephyr/arch/arm/arch_inlines.h",
- "zephyr/arch/arm/asm_inline.h",
- "zephyr/arch/arm/asm_inline_gcc.h",
- "zephyr/arch/arm/error.h",
- "zephyr/arch/arm/exception.h",
- "zephyr/arch/arm/gdbstub.h",
- "zephyr/arch/arm/irq.h",
- "zephyr/arch/arm/misc.h",
- "zephyr/arch/arm/nmi.h",
- "zephyr/arch/arm/structs.h",
- "zephyr/arch/arm/syscall.h",
- "zephyr/arch/arm/thread.h",
- "zephyr/arch/common/addr_types.h",
- "zephyr/arch/common/ffs.h",
- "zephyr/arch/common/sys_bitops.h",
- "zephyr/arch/x86/arch.h",
- "zephyr/arch/x86/arch_inlines.h",
- "zephyr/arch/x86/mmustructs.h",
- "zephyr/arch/x86/msr.h",
- "zephyr/arch/x86/thread_stack.h",
- "zephyr/arch/x86/x86_acpi.h",
- "zephyr/arch/x86/ia32/arch.h",
- "zephyr/arch/x86/ia32/gdbstub.h",
- "zephyr/arch/x86/ia32/segmentation.h",
- "zephyr/arch/x86/ia32/syscall.h",
- "zephyr/arch/x86/ia32/sys_io.h",
- "zephyr/arch/x86/ia32/thread.h",
- "zephyr/devicetree/io-channels.h",
- "zephyr/devicetree/clocks.h",
- "zephyr/devicetree/gpio.h",
- "zephyr/devicetree/spi.h",
- "zephyr/devicetree/dma.h",
- "zephyr/devicetree/pwms.h",
- "zephyr/devicetree/fixed-partitions.h",
- "zephyr/devicetree/ordinals.h",
- "zephyr/devicetree/pinctrl.h",
- "zephyr/devicetree/can.h",
- "zephyr/devicetree/reset.h",
- "zephyr/devicetree/mbox.h",
- "zephyr/drivers/watchdog.h",
- "zephyr/drivers/gpio.h",
- "zephyr/drivers/mbox.h",
- "zephyr/drivers/interrupt_controller/sysapic.h",
- "zephyr/drivers/interrupt_controller/loapic.h",
- "zephyr/dt-bindings/gpio/gpio.h",
- "zephyr/kernel/mm.h",
- "zephyr/kernel/obj_core.h",
- "zephyr/kernel/stats.h",
- "zephyr/kernel/thread.h",
- "zephyr/kernel/thread_stack.h",
- "zephyr/kernel/internal/mm.h",
- # "zephyr/kernel/internal/sched_priq.h",
- "zephyr/kernel/internal/smp.h",
- "zephyr/linker/sections.h",
- "zephyr/linker/section_tags.h",
- "zephyr/pm/pm.h",
- "zephyr/pm/state.h",
- "zephyr/sys/__assert.h",
- "zephyr/sys/atomic.h",
- "zephyr/sys/atomic_builtin.h",
- "zephyr/sys/atomic_types.h",
- "zephyr/sys/device_mmio.h",
- "zephyr/sys/dlist.h",
- "zephyr/sys/iterable_sections.h",
- "zephyr/sys/kobject.h",
- "zephyr/sys/list_gen.h",
- "zephyr/sys/mem_manage.h",
- "zephyr/sys/mem_stats.h",
- "zephyr/sys/printk.h",
- "zephyr/sys/rb.h",
- "zephyr/sys/slist.h",
- "zephyr/sys/sflist.h",
- "zephyr/sys/sys_heap.h",
- "zephyr/sys/sys_io.h",
- "zephyr/sys/time_units.h",
- "zephyr/sys/util.h",
- "zephyr/sys/util_internal.h",
- "zephyr/sys/util_listify.h",
- "zephyr/sys/util_loops.h",
- "zephyr/sys/util_macro.h",
- "zephyr/sys/util_internal_is_eq.h",
- "zephyr/sys/util_internal_util_inc.h",
- "zephyr/sys/util_internal_util_dec.h",
- "zephyr/sys/util_internal_util_x2.h",
- "zephyr/sys/internal/kobject_internal.h",
- "zephyr/toolchain/common.h",
- "zephyr/toolchain/gcc.h",
- "zephyr/toolchain/llvm.h",
- "zephyr/tracing/tracing_macros.h",
- "zephyr/tracing/tracing.h",
- "zephyr/tracing/tracking.h",
+ srcs = glob(["zephyr/**/*.h"]),
+)
+
+cc_library(
+ name = "zephyr",
+ hdrs = glob(["zephyr/**/*.h"]),
+ copts = ["-include generated/zephyr/autoconf.h"],
+ deps = select({
+ "@platforms//cpu:armv7e-m": [
+ "//modules/cmsis",
+ "@cmsis//:core",
+ ],
+ }) + [
+ "//:autoconf_library",
+ "//:soc",
],
)
diff --git a/include/zephyr/arch/arm/cortex_m/scripts/BUILD.bazel b/include/zephyr/arch/arm/cortex_m/scripts/BUILD.bazel
new file mode 100644
index 0000000..fa2314e
--- /dev/null
+++ b/include/zephyr/arch/arm/cortex_m/scripts/BUILD.bazel
@@ -0,0 +1,26 @@
+# Copyright 2024 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+load("@pigweed//pw_build:pw_linker_script.bzl", "pw_linker_script")
+
+package(default_visibility = ["//visibility:public"])
+
+pw_linker_script(
+ name = "linker",
+ deps = [
+ "//:zephyr",
+ "//:autoconf_library",
+ ],
+ linker_script = "linker.ld",
+)
\ No newline at end of file
diff --git a/kernel/BUILD.bazel b/kernel/BUILD.bazel
new file mode 100644
index 0000000..ca48435
--- /dev/null
+++ b/kernel/BUILD.bazel
@@ -0,0 +1,99 @@
+# Copyright 2024 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+package(default_visibility = ["//visibility:public"])
+
+cc_library(
+ name = "offset",
+ hdrs = [
+ "include/gen_offset.h",
+ "include/kernel_arch_interface.h",
+ "include/kernel_internal.h",
+ "include/kernel_offsets.h",
+ ],
+ copts = ["-include generated/zephyr/autoconf.h"],
+ includes = ["include"],
+ deps = [
+ "//:autoconf_library",
+ "//include:zephyr",
+ ],
+)
+
+cc_library(
+ name = "kernel",
+ srcs = [
+ "banner.c",
+ "busy_wait.c",
+ "device.c",
+ "errno.c",
+ "fatal.c",
+ "float.c",
+ "init.c",
+ "init_static.c",
+ "kheap.c",
+ "main_weak.c",
+ "mem_slab.c",
+ "version.c",
+ ] + [
+ # Depends on CONFIG_MULTITHREADING
+ "idle.c",
+ "mailbox.c",
+ "msg_q.c",
+ "mutex.c",
+ "queue.c",
+ "sem.c",
+ "stack.c",
+ "system_work_q.c",
+ "work.c",
+ "condvar.c",
+ "priority_queues.c",
+ "thread.c",
+ "sched.c",
+ ] + [
+ # Depends on CONFIG_TIMESLICING
+ "timeslicing.c",
+ ] + [
+ # Depends on CONFIG_XIP
+ "xip.c",
+ ] + [
+ # Depends on CONFIG_SYS_CLOCK_EXISTS
+ "timeout.c",
+ "timer.c",
+ ] + [
+ # Depends on !CONFIG_DYNAMIC_THREAD
+ "dynamic_disabled.c",
+ ] + [
+ # Depends on CONFIG_KERNEL_MEM_POOL
+ "mempool.c",
+ ],
+ hdrs = glob(["include/*.h"]),
+ copts = [
+ "-include generated/zephyr/autoconf.h",
+ "-include $(location //:autoconf_file)",
+ ],
+ includes = ["include"],
+ deps = [
+ "//:autoconf_library",
+ "//:dts_cc_library",
+ "//:offsets_header_lib",
+ "//:syscall_list",
+ "//:zephyr",
+ "//include:zephyr",
+ "//lib/heap",
+ "//lib/os",
+ "@zephyr_version//:version",
+ ],
+ additional_compiler_inputs = ["//:autoconf_file"],
+ alwayslink = True,
+)
diff --git a/lib/cpp/abi/BUILD.bazel b/lib/cpp/abi/BUILD.bazel
new file mode 100644
index 0000000..8603810
--- /dev/null
+++ b/lib/cpp/abi/BUILD.bazel
@@ -0,0 +1,17 @@
+# Copyright 2025 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+package(default_visibility = ["//visibility:public"])
+
+exports_files(["cpp_dtors.c"])
diff --git a/lib/heap/BUILD.bazel b/lib/heap/BUILD.bazel
new file mode 100644
index 0000000..c8b16b1
--- /dev/null
+++ b/lib/heap/BUILD.bazel
@@ -0,0 +1,31 @@
+# Copyright 2025 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+load("//:cc.bzl", "zephyr_cc_library")
+
+package(default_visibility = ["//visibility:public"])
+
+zephyr_cc_library(
+ name = "heap",
+ srcs = [
+ "heap.c",
+ ],
+ hdrs = [
+ "heap.h",
+ ],
+ includes = ["."],
+ deps = [
+ "//modules/cmsis",
+ ],
+)
diff --git a/lib/libc/BUILD.bazel b/lib/libc/BUILD.bazel
new file mode 100644
index 0000000..7ae7a8a
--- /dev/null
+++ b/lib/libc/BUILD.bazel
@@ -0,0 +1,32 @@
+# Copyright 2025 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+load("//:cc.bzl", "zephyr_cc_library")
+
+package(default_visibility = ["//visibility:public"])
+
+zephyr_cc_library(
+ name = "common",
+ srcs = [
+ "common/source/stdlib/abort.c", #CONFIG_COMMON_LIBC_ABORT
+ "common/source/stdlib/malloc.c", #CONFIG_COMMON_LIBC_MALLOC
+ ],
+ hdrs = glob(["common/include/**/*.h"]),
+ includes = ["common/include"],
+ deps = [
+ "//lib/libc/minimal:stdbool",
+ "//modules/cmsis",
+ "//:offsets_header_lib",
+ ],
+)
diff --git a/lib/libc/minimal/BUILD.bazel b/lib/libc/minimal/BUILD.bazel
new file mode 100644
index 0000000..557a61a
--- /dev/null
+++ b/lib/libc/minimal/BUILD.bazel
@@ -0,0 +1,67 @@
+# Copyright 2025 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+load("//:cc.bzl", "zephyr_cc_library")
+
+package(default_visibility = ["//visibility:public"])
+
+cc_library(
+ name = "stdbool",
+ hdrs = ["include/stdbool.h"],
+ includes = ["include"],
+)
+
+genrule(
+ name = "strerror_table_h",
+ srcs = [":include/errno.h"],
+ outs = ["libc/minimal/strerror_table.h"],
+ cmd = "$(location //scripts/build:gen_strerror_table) -i $(location :include/errno.h) -o $@",
+ tools = ["//scripts/build:gen_strerror_table"],
+)
+
+zephyr_cc_library(
+ name = "minimal",
+ srcs = [
+ "source/math/sqrt.c",
+ "source/math/sqrtf.c",
+ "source/stdlib/atoi.c",
+ "source/stdlib/bsearch.c",
+ "source/stdlib/exit.c",
+ "source/stdlib/qsort.c",
+ "source/stdlib/strtol.c",
+ "source/stdlib/strtoll.c",
+ "source/stdlib/strtoul.c",
+ "source/stdlib/strtoull.c",
+ "source/stdout/fprintf.c",
+ "source/stdout/sprintf.c",
+ "source/stdout/stdout_console.c",
+ "source/string/strerror.c",
+ "source/string/string.c",
+ "source/string/strncasecmp.c",
+ "source/string/strspn.c",
+ "source/string/strstr.c",
+ ],
+ hdrs = glob(["include/**/*.h"]) + [
+ ":strerror_table_h",
+ ],
+ includes = [
+ ".",
+ "include",
+ ],
+ deps = [
+ "//:offsets_header_lib",
+ "//modules/cmsis",
+ "//soc/atmel/sam:samx7x",
+ ],
+)
diff --git a/lib/libc/picolibc/BUILD.bazel b/lib/libc/picolibc/BUILD.bazel
new file mode 100644
index 0000000..d4a181e
--- /dev/null
+++ b/lib/libc/picolibc/BUILD.bazel
@@ -0,0 +1,37 @@
+# Copyright 2025 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+load("//:cc.bzl", "zephyr_cc_library")
+
+package(default_visibility = ["//visibility:public"])
+
+zephyr_cc_library(
+ name = "picolibc",
+ srcs = [
+ "assert.c",
+ "cbprintf.c",
+ "chk_fail.c",
+ "errno_wrap.c",
+ "exit.c",
+ "locks.c",
+ "stdio.c",
+ ] + [
+ # !CONFIG_PICOLIBC_USE_MODULE
+ ],
+ hdrs = ["picolibc-hooks.h"],
+ includes = ["."],
+ deps = [
+ "//:offsets_header_lib",
+ ],
+)
diff --git a/lib/os/BUILD.bazel b/lib/os/BUILD.bazel
new file mode 100644
index 0000000..9b2e4ba
--- /dev/null
+++ b/lib/os/BUILD.bazel
@@ -0,0 +1,31 @@
+# Copyright 2025 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+load("//:cc.bzl", "zephyr_cc_library")
+
+package(default_visibility = ["//visibility:public"])
+
+zephyr_cc_library(
+ name = "os",
+ srcs = [
+ "assert.c", # CONFIG_ASSERT_VERBOSE
+ "cbprintf_complete.c", # CONFIG_CBPRINTF_COMPLETE
+ "cbprintf_packaged.c",
+ "printk.c",
+ "sem.c",
+ "thread_entry.c",
+ ],
+ deps = [
+ ],
+)
diff --git a/lib/utils/BUILD.bazel b/lib/utils/BUILD.bazel
new file mode 100644
index 0000000..9bd239b
--- /dev/null
+++ b/lib/utils/BUILD.bazel
@@ -0,0 +1,16 @@
+# Copyright 2025 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+package(default_visibility = ["//visibility:public"])
+
diff --git a/modules/BUILD.bazel b/modules/BUILD.bazel
new file mode 100644
index 0000000..a0421dd
--- /dev/null
+++ b/modules/BUILD.bazel
@@ -0,0 +1,17 @@
+# Copyright 2024 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+package(default_visibility = ["//visibility:public"])
+
+exports_files(glob(["*.BUILD"]))
diff --git a/modules/cmsis.BUILD b/modules/cmsis.BUILD
new file mode 100644
index 0000000..9a0180a
--- /dev/null
+++ b/modules/cmsis.BUILD
@@ -0,0 +1,36 @@
+# Copyright 2024 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+package(default_visibility = ["//visibility:public"])
+
+cc_library(
+ name = "core",
+ hdrs = glob(["CMSIS/Core/Include/*.h"]),
+ includes = ["CMSIS/Core/Include"],
+ defines = ["__PROGRAM_START"],
+)
+
+cc_library(
+ name = "core_a",
+ hdrs = glob(["CMSIS/Core_A/Include/*.h"]),
+ includes = ["CMSIS/Core_A/Include"],
+ defines = ["__PROGRAM_START"],
+)
+
+cc_library(
+ name = "core_r",
+ hdrs = glob(["CMSIS/Core_R/Include/*.h"]),
+ includes = ["CMSIS/Core_R/Include"],
+ defines = ["__PROGRAM_START"],
+)
diff --git a/modules/cmsis/BUILD.bazel b/modules/cmsis/BUILD.bazel
new file mode 100644
index 0000000..1d3da84
--- /dev/null
+++ b/modules/cmsis/BUILD.bazel
@@ -0,0 +1,24 @@
+# Copyright 2024 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+package(default_visibility = ["//visibility:public"])
+
+cc_library(
+ name = "cmsis",
+ hdrs = glob(["*.h"]),
+ includes = ["."],
+ deps = [
+ "@cmsis//:core",
+ ],
+)
diff --git a/modules/hal_atmel.BUILD b/modules/hal_atmel.BUILD
new file mode 100644
index 0000000..0710dec
--- /dev/null
+++ b/modules/hal_atmel.BUILD
@@ -0,0 +1,32 @@
+# Copyright 2024 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+package(default_visibility = ["//visibility:public"])
+
+filegroup(
+ name = "dt_bindings",
+ srcs = glob(["include/**/*"]),
+)
+
+cc_library(
+ name = "dt_interface",
+ hdrs = [":dt_bindings"],
+ includes = ["include"],
+)
+
+cc_library(
+ name = "same70b",
+ hdrs = glob(["asf/sam/include/same70b/**/*.h"]),
+ includes = ["asf/sam/include/same70b"],
+)
diff --git a/scripts/build/BUILD.bazel b/scripts/build/BUILD.bazel
new file mode 100644
index 0000000..66876f3
--- /dev/null
+++ b/scripts/build/BUILD.bazel
@@ -0,0 +1,54 @@
+# Copyright 2024 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+load("@pip//:requirements.bzl", "requirement")
+load("@rules_python//python:defs.bzl", "py_binary", "py_library")
+
+package(default_visibility = ["//visibility:public"])
+
+py_binary(
+ name = "parse_syscalls",
+ srcs = ["parse_syscalls.py"],
+)
+
+py_binary(
+ name = "gen_syscalls",
+ srcs = ["gen_syscalls.py"],
+)
+
+py_library(
+ name = "gen_isr_tables_parser_carrays",
+ srcs = ["gen_isr_tables_parser_carrays.py"]
+)
+
+py_binary(
+ name = "gen_isr_tables",
+ srcs = ["gen_isr_tables.py"],
+ imports = ["."],
+ deps = [
+ requirement("pyelftools"),
+ ":gen_isr_tables_parser_carrays",
+ ],
+)
+
+py_binary(
+ name = "gen_offset_header",
+ srcs = ["gen_offset_header.py"],
+ deps = [requirement("pyelftools")],
+)
+
+py_binary(
+ name = "gen_strerror_table",
+ srcs = ["gen_strerror_table.py"],
+)
diff --git a/scripts/dts/BUILD.bazel b/scripts/dts/BUILD.bazel
index d509be9..7e9d615 100644
--- a/scripts/dts/BUILD.bazel
+++ b/scripts/dts/BUILD.bazel
@@ -16,10 +16,27 @@
package(default_visibility = ["//visibility:public"])
+py_library(
+ name = "edtlib_logger",
+ srcs = ["edtlib_logger.py"],
+)
+
py_binary(
- name = "gen_defines",
- srcs = ["gen_defines.py"],
+ name = "gen_edt",
+ srcs = ["gen_edt.py"],
+ imports = ["."],
deps = [
+ ":edtlib_logger",
"//scripts/dts/python-devicetree:devicetree",
],
)
+
+py_binary(
+ name = "gen_defines",
+ srcs = ["gen_defines.py"],
+ imports = ["."],
+ deps = [
+ ":edtlib_logger",
+ "//scripts/dts/python-devicetree:devicetree",
+ ],
+)
\ No newline at end of file
diff --git a/scripts/dts/python-devicetree/BUILD.bazel b/scripts/dts/python-devicetree/BUILD.bazel
index 2bcaa3b..622a065 100644
--- a/scripts/dts/python-devicetree/BUILD.bazel
+++ b/scripts/dts/python-devicetree/BUILD.bazel
@@ -12,7 +12,7 @@
# License for the specific language governing permissions and limitations under
# the License.
-load("@py_deps//:requirements.bzl", "requirement")
+load("@pip//:requirements.bzl", "requirement")
load("@rules_python//python:defs.bzl", "py_library")
package(default_visibility = ["//visibility:public"])
diff --git a/setup.bzl b/setup.bzl
index 2ec3cb3..cbd4ef7 100644
--- a/setup.bzl
+++ b/setup.bzl
@@ -1,3 +1,17 @@
+# Copyright 2025 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
def _local_patched_repository_impl(rctx):
path = rctx.attr.path
@@ -106,3 +120,96 @@
"file": attr.label(allow_single_file = True, mandatory = True),
},
)
+
+###############################################################################
+
+def _version_header_impl(ctx):
+ version_file = ctx.attr.version_file
+ version_template = ctx.attr.version_template
+
+ version_content = ctx.read(version_file)
+ template_content = ctx.read(version_template)
+
+ # Extract version components using string manipulation
+ version_major = 0
+ version_minor = 0
+ patchlevel = 0
+ version_tweak = 0
+ for line in version_content.splitlines():
+ if line.startswith("VERSION_MAJOR"):
+ version_major = int(line.split("=")[1].strip())
+ elif line.startswith("VERSION_MINOR"):
+ version_minor = int(line.split("=")[1].strip())
+ elif line.startswith("PATCHLEVEL"):
+ patchlevel = int(line.split("=")[1].strip())
+ elif line.startswith("VERSION_TWEAK"):
+ version_tweak = int(line.split("=")[1].strip())
+
+ version_type = ctx.attr.VERSION_TYPE
+ zephyr_version_code = (version_major << 16) | (version_minor << 8) | patchlevel
+ kernelversion = (zephyr_version_code << 8) | version_tweak
+ kernelversion_hex = "0x%x" % kernelversion
+ kernel_version_number_hex = "0x%x" % zephyr_version_code
+ kernel_version_major = version_major
+ kernel_version_minor = version_minor
+ kernel_patchlevel = patchlevel
+ kernel_version_tweak = version_tweak
+ kernel_version_string = "{}.{}.{}-{}".format(version_major, version_minor, patchlevel, version_tweak)
+ kernel_version_extended_string = kernel_version_string + "+0"
+ kernel_version_tweak_string = "{}.{}.{}-0".format(version_major, version_minor, patchlevel)
+ build_version_name = "BUILD_VERSION"
+
+ template_dict = {
+ "VERSION_TYPE": version_type,
+ "ZEPHYR_VERSION_CODE": str(zephyr_version_code),
+ "KERNELVERSION": kernelversion_hex,
+ "KERNEL_VERSION_NUMBER": kernel_version_number_hex,
+ "KERNEL_VERSION_MAJOR": str(kernel_version_major),
+ "KERNEL_VERSION_MINOR": str(kernel_version_minor),
+ "KERNEL_PATCHLEVEL": str(kernel_patchlevel),
+ "KERNEL_VERSION_TWEAK": str(kernel_version_tweak),
+ "KERNEL_VERSION_STRING": kernel_version_string,
+ "KERNEL_VERSION_EXTENDED_STRING": kernel_version_extended_string,
+ "KERNEL_VERSION_TWEAK_STRING": kernel_version_tweak_string,
+ "KERNEL_VERSION_CUSTOMIZATION": "",
+ "BUILD_VERSION_NAME": build_version_name,
+ "BUILD_VERSION": "v" + kernel_version_string,
+ }
+
+ template_content = template_content.replace("#cmakedefine", "#define")
+
+ for variable, value in template_dict.items():
+ template_content = template_content.replace("@" + variable + "@", value)
+
+ for variable, value in template_dict.items():
+ template_content = template_content.replace("@" + variable + "@", value)
+
+
+ ctx.file("zephyr/version.h", content = template_content, executable = False)
+ ctx.file(
+ "BUILD.bazel",
+ content = """
+cc_library(
+ name = "version",
+ hdrs = ["zephyr/version.h"],
+ includes = ["."],
+ visibility = ["//visibility:public"],
+)
+""",
+ executable = False,
+ )
+
+version_header = repository_rule(
+ implementation = _version_header_impl,
+ attrs = {
+ "version_file": attr.label(
+ mandatory = True,
+ allow_single_file = True,
+ ),
+ "version_template": attr.label(
+ mandatory = True,
+ allow_single_file = True,
+ ),
+ "VERSION_TYPE": attr.string(default = "KERNEL"),
+ },
+)
diff --git a/soc/atmel/sam/BUILD.bazel b/soc/atmel/sam/BUILD.bazel
new file mode 100644
index 0000000..305117e
--- /dev/null
+++ b/soc/atmel/sam/BUILD.bazel
@@ -0,0 +1,57 @@
+# Copyright 2024 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+load("//:cc.bzl", "zephyr_cc_library")
+
+package(default_visibility = ["//visibility:public"])
+
+filegroup(
+ name = "not_sam4l",
+ srcs = [
+ "common/soc_pmc.c",
+ "common/soc_gpio.c",
+ "common/soc_supc.c",
+ "common/soc_power.c",
+ "common/soc_poweroff.c",
+ ],
+)
+
+filegroup(
+ name = "sam4l",
+ srcs = [
+ "common/soc_sam4l_pm.c",
+ "common/soc_sam4l_gpio.c",
+ "common/soc_sam4l_poweroff.c",
+ ],
+)
+
+zephyr_cc_library(
+ name = "samx7x",
+ srcs = [
+ "samx7x/soc.c",
+ "samx7x/soc_config.c",
+ ":not_sam4l", # !CONFIG_SOC_SERIES_SAM4L
+ ],
+ hdrs = ["samx7x/soc.h"] + glob(["common/*.h"]),
+ includes = [
+ "common",
+ "generated",
+ "samx7x",
+ ],
+ deps = [
+ "//:cortex_m",
+ "@hal_atmel//:same70b",
+ ],
+ skip_deps = ["//:soc"],
+)
diff --git a/soc/nuvoton/npcx/BUILD.bazel b/soc/nuvoton/npcx/BUILD.bazel
new file mode 100644
index 0000000..e1a7744
--- /dev/null
+++ b/soc/nuvoton/npcx/BUILD.bazel
@@ -0,0 +1,30 @@
+# Copyright 2025 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+load("//:cc.bzl", "zephyr_cc_library")
+
+package(default_visibility = ["//visibility:public"])
+
+zephyr_cc_library(
+ name = "common",
+ srcs = [
+ "common/registers.c",
+ "common/scfg.c",
+ ],
+ hdrs = glob(["common/*.h"]),
+ includes = ["common"],
+ deps = [
+ "//:soc",
+ ],
+)
diff --git a/subsys/mem_mgmt/BUILD.bazel b/subsys/mem_mgmt/BUILD.bazel
new file mode 100644
index 0000000..dc20b14
--- /dev/null
+++ b/subsys/mem_mgmt/BUILD.bazel
@@ -0,0 +1,28 @@
+# Copyright 2025 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+load("//:cc.bzl", "zephyr_cc_library")
+
+package(default_visibility = ["//visibility:public"])
+
+zephyr_cc_library(
+ name = "mem_mgmt",
+ srcs = [
+ "mem_attr.c", # CONFIG_MEM_ATTR
+ # "mem_attr_heap.c", # CONFIG_MEM_ATTR_HEAP
+ ],
+ deps = [
+ "//kernel",
+ ],
+)
\ No newline at end of file
diff --git a/subsys/tracing/BUILD.bazel b/subsys/tracing/BUILD.bazel
new file mode 100644
index 0000000..7797658
--- /dev/null
+++ b/subsys/tracing/BUILD.bazel
@@ -0,0 +1,17 @@
+# Copyright 2025 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+package(default_visibility = ["//visibility:public"])
+
+exports_files(["tracing_none.c"])