| # Copyright 2023 Google Inc. All Rights Reserved. | |
| # Licensed under the Apache License, Version 2.0, see LICENSE for details. | |
| # SPDX-License-Identifier: Apache-2.0 | |
| workspace(name = "matcha") | |
| local_repository( | |
| name = "lowrisc_opentitan", | |
| path = "../opentitan-upstream", | |
| ) | |
| new_local_repository( | |
| name = "isp_yocto", | |
| build_file = "third_party/vendor/BUILD", | |
| path = "../../hw/ip/isp/ispyocto", | |
| ) | |
| new_local_repository( | |
| name = "axi2sramcrs", | |
| build_file = "third_party/vendor/BUILD", | |
| path = "../../hw/ip/isp/axi2sramcrs", | |
| ) | |
| local_repository( | |
| name = "kelvin_hw", | |
| path = "../kelvin", | |
| ) | |
| new_local_repository( | |
| name = "kelvin-gcc", | |
| build_file = "third_party/kelvin-gcc/BUILD", | |
| path = "../../cache/toolchain_kelvin", | |
| ) | |
| new_local_repository( | |
| name = "kelvin-binary", | |
| build_file = "third_party/kelvin-binary/BUILD", | |
| path = "../../out/kelvin/sw/bazel_out", | |
| ) | |
| new_local_repository( | |
| name = "cheriot-llvm", | |
| build_file = "third_party/cheriot-llvm/BUILD", | |
| path = "../../cache/cheriot-tools", | |
| ) | |
| # Used by airgapped environment | |
| new_local_repository( | |
| name = "kelvin_core", | |
| build_file_content = """ | |
| exports_files(glob(["**"])) | |
| filegroup( | |
| name = "all_files", | |
| srcs = glob(["*.*"]), | |
| visibility = ["//visibility:public"], | |
| ) | |
| """, | |
| path = "../../out/kelvin/hw/kelvin_core", | |
| ) | |
| # Used by airgapped environment | |
| new_local_repository( | |
| name = "fastvdma_core", | |
| build_file_content = """ | |
| exports_files(glob(["**"])) | |
| filegroup( | |
| name = "all_files", | |
| srcs = glob(["*.*"]), | |
| visibility = ["//visibility:public"], | |
| ) | |
| """, | |
| path = "../../out/matcha/hw/fastvdma_core", | |
| ) | |
| # CRT is the Compiler Repository Toolkit. It contains the configuration for | |
| # the windows compiler. | |
| load("@lowrisc_opentitan//third_party/crt:repos.bzl", "crt_repos") | |
| crt_repos() | |
| load("@crt//:repos.bzl", "crt_repos") | |
| crt_repos() | |
| load("@crt//:deps.bzl", "crt_deps") | |
| crt_deps() | |
| load("@crt//config:registration.bzl", "crt_register_toolchains") | |
| crt_register_toolchains(riscv32 = True) | |
| load("//platforms:registration.bzl", "kelvin_register_toolchain") | |
| kelvin_register_toolchain() | |
| load("//platforms:registration.bzl", "cheriot_register_toolchain") | |
| cheriot_register_toolchain() | |
| # Tools for release automation | |
| load("@lowrisc_opentitan//third_party/github:repos.bzl", "github_tools_repos") | |
| github_tools_repos() | |
| # Python Toolchain + PIP Dependencies | |
| load("@lowrisc_opentitan//third_party/python:repos.bzl", "python_repos") | |
| python_repos() | |
| load("@lowrisc_opentitan//third_party/python:deps.bzl", "python_deps") | |
| python_deps() | |
| load("@lowrisc_opentitan//third_party/python:pip.bzl", "pip_deps") | |
| pip_deps() | |
| # Google/Bazel dependencies. This needs to be after Python initialization | |
| # so that our preferred python configuration takes precedence. | |
| load("@lowrisc_opentitan//third_party/google:repos.bzl", "google_repos") | |
| google_repos() | |
| load("@lowrisc_opentitan//third_party/google:deps.bzl", "google_deps") | |
| google_deps() | |
| # Rust Toolchain + crates.io Dependencies | |
| load("@lowrisc_opentitan//third_party/rust:repos.bzl", "rust_repos") | |
| rust_repos() | |
| load("@lowrisc_opentitan//third_party/rust:deps.bzl", "rust_deps") | |
| rust_deps() | |
| load("@rules_rust//crate_universe:repositories.bzl", "crate_universe_dependencies") | |
| crate_universe_dependencies(bootstrap = True) | |
| load("@lowrisc_opentitan//third_party/rust/crates:crates.bzl", "crate_repositories") | |
| crate_repositories() | |
| # The nonhermetic_repo imports environment variables needed to run vivado. | |
| load("@lowrisc_opentitan//rules:nonhermetic.bzl", "nonhermetic_repo") | |
| nonhermetic_repo(name = "nonhermetic") | |
| # FreeRTOS; used by the OTTF | |
| load("@lowrisc_opentitan//third_party/freertos:repos.bzl", "freertos_repos") | |
| freertos_repos() | |
| # Binary firmware image for HyperDebug | |
| load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_file") | |
| http_file( | |
| name = "hyperdebug_firmware", | |
| urls = ["https://github.com/lowRISC/hyperdebug-firmware/releases/download/20240621_01/hyperdebug-firmware.tar.gz"], | |
| sha256 = "649a8cd6d183bc3fb286ea5895c752cfec3aa29b9990f44bb9e7621c0414c7de", | |
| ) | |
| # kelvin verilog dependencies | |
| load("@kelvin_hw//rules:repos.bzl", "kelvin_repos") | |
| kelvin_repos() | |
| # Scala setup | |
| load("@io_bazel_rules_scala//:scala_config.bzl", "scala_config") | |
| scala_config(scala_version = "2.13.11") | |
| load("@io_bazel_rules_scala//scala:scala.bzl", "rules_scala_setup", "rules_scala_toolchain_deps_repositories") | |
| rules_scala_setup() | |
| rules_scala_toolchain_deps_repositories(fetch_sources = True) | |
| load("@io_bazel_rules_scala//scala:toolchains.bzl", "scala_register_toolchains") | |
| scala_register_toolchains() | |
| load("@rules_proto//proto:repositories.bzl", "rules_proto_dependencies", "rules_proto_toolchains") | |
| rules_proto_dependencies() | |
| rules_proto_toolchains() | |
| load("@kelvin_hw//rules:deps.bzl", "kelvin_deps") | |
| kelvin_deps() |