Update bazel airgap prep script with removed chisel dependency Chisel does not work well with airgapped environment. Update the airgap prep script to apply a patch to remove the chisel dependency Change-Id: Iac9ca654c2f6901e7ed013991d22ffa1b62725d8
diff --git a/util/bazel_airgapped.patch b/util/bazel_airgapped.patch new file mode 100644 index 0000000..98cb12a --- /dev/null +++ b/util/bazel_airgapped.patch
@@ -0,0 +1,155 @@ +diff --git a/BUILD.bazel b/BUILD.bazel +index b131709..b297981 100644 +--- a/BUILD.bazel ++++ b/BUILD.bazel +@@ -17,14 +17,7 @@ filegroup( + "//hw:check_tool_requirements.core", + "@axi2sramcrs//:BUILD", + "@isp_yocto//:BUILD", +- ] + select({ +- "//rules:airgapped_env": [ +- "@fastvdma_core//:fastvdma.core", +- "@kelvin_core//:kelvin.core", +- ], +- "//conditions:default": [ +- "//hw/top_matcha/ip/dma/chisel:fastvdma.core", +- "@kelvin_hw//hdl/chisel:kelvin.core", +- ], +- }), ++ "@fastvdma_core//:fastvdma.core", ++ "@kelvin_core//:kelvin.core", ++ ], + ) +diff --git a/hw/BUILD b/hw/BUILD +index ec4c0d3..56ce85c 100644 +--- a/hw/BUILD ++++ b/hw/BUILD +@@ -83,14 +83,7 @@ filegroup( + srcs = glob(["**"]) + [ + "//hw/top_matcha:all_files", + "@lowrisc_opentitan//hw/dv:all_files", +- ] + select({ +- "//rules:airgapped_env": [ +- "@fastvdma_core//:all_files", +- "@kelvin_core//:all_files", +- ], +- "//conditions:default": [ +- "//hw/top_matcha/ip/dma/chisel:fastvdma_core", +- "@kelvin_hw//hdl/chisel:kelvin_core", +- ], +- }), ++ "@fastvdma_core//:all_files", ++ "@kelvin_core//:all_files", ++ ], + ) +diff --git a/hw/top_matcha/ip/dma/chisel/BUILD b/hw/top_matcha/ip/dma/chisel/BUILD +deleted file mode 100644 +index 2a102ea..0000000 +--- a/hw/top_matcha/ip/dma/chisel/BUILD ++++ /dev/null +@@ -1,45 +0,0 @@ +-# Copyright 2023 Google LLC +-# +-# 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 +-# +-# http://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. +- +-genrule( +- name = "fastvdma_verilog", +- srcs = [ +- "//hw/top_matcha/ip/dma/chisel/src:DMATop.sv" +- ], +- outs = [ +- "fastvdma.sv", +- ], +- +- cmd = """ +- cat $(location //hw/top_matcha/ip/dma/chisel/src:DMATop.sv) >> $(location fastvdma.sv) +- """, +- visibility = ["//visibility:public"], +-) +- +-# Generate fastvdma.core from this template so it can sit at the same GenDir as +-# the RTL file. +-genrule( +- name = "fastvdma_core", +- srcs = [ +- "fastvdma.core.in", +- "fastvdma_verilog", +- ], +- outs = [ +- "fastvdma.core", +- ], +- cmd = """ +- cp -f $(location fastvdma.core.in) $(location fastvdma.core) +- """, +- visibility = ["//visibility:public"], +-) +diff --git a/hw/top_matcha/ip/dma/chisel/src/BUILD b/hw/top_matcha/ip/dma/chisel/src/BUILD +deleted file mode 100644 +index 745cb3f..0000000 +--- a/hw/top_matcha/ip/dma/chisel/src/BUILD ++++ /dev/null +@@ -1,54 +0,0 @@ +-# Copyright 2024 Google LLC +-# +-# 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 +-# +-# http://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("@kelvin_hw//rules:chisel.bzl", "chisel_cc_library", "chisel_library") +- +-package(default_visibility = ["//visibility:public"]) +- +-chisel_library( +- name = "fastvdma_tlul", +- srcs = [ +- "DMAConfig.scala", +- "DMATop.scala", +- "bus/TLUL.scala", +- "csr/CSR.scala", +- "csr/CSRBusBundle.scala", +- "csr/CSRRegBundle.scala", +- "csr/ClearCSR.scala", +- "csr/SetCSR.scala", +- "csr/SimpleCSR.scala", +- "csr/StatusCSR.scala", +- "frontend/BusBase.scala", +- "frontend/TLULCSR.scala", +- "frontend/TLULReader.scala", +- "frontend/TLULWriter.scala", +- "worker/AddressGenerator.scala", +- "worker/AddressGeneratorCtlBundle.scala", +- "worker/InterruptBundle.scala", +- "worker/InterruptController.scala", +- "worker/SyncBundle.scala", +- "worker/TransferSplitter.scala", +- "worker/WorkerCSRWrapper.scala", +- "worker/XferDescBundle.scala", +- ], +- deps = [ +- ], +-) +- +-chisel_cc_library( +- name = "fastvdma_cc_library", +- chisel_lib = ":fastvdma_tlul", +- emit_class = "DMAController.EmitDMA", +- module_name = "DMATop", +-)
diff --git a/util/prep-bazel-airgapped-build.sh b/util/prep-bazel-airgapped-build.sh index 75a470f..905771e 100755 --- a/util/prep-bazel-airgapped-build.sh +++ b/util/prep-bazel-airgapped-build.sh
@@ -46,7 +46,7 @@ : "${BAZEL_VERSION:=$(cat ${REPO_TOP}/.bazelversion)}" -: "${BAZEL_AIRGAPPED_DIR:=bazel-airgapped_ot9d059106}" +: "${BAZEL_AIRGAPPED_DIR:=bazel-airgapped-ot9d059106}" : "${BAZEL_DISTDIR:=bazel-distdir}" : "${BAZEL_CACHEDIR:=bazel-cache}" : "${BAZEL_PYTHON_WHEEL_REPO:=ot_python_wheels}" @@ -96,6 +96,11 @@ done shift $((OPTIND - 1)) +if [[ -z ${ROOTDIR} ]]; then + echo "source build/setup.sh first" + exit 1 +fi + # We do not accept additional arguments. if [[ "$#" -gt 0 ]]; then echo "Unexpected arguments:" "$@" >&2 @@ -155,7 +160,7 @@ ../bazel build @additional_distfiles//:archives.tar tar xvf bazel-bin/external/additional_distfiles/archives.tar \ -C "../${BAZEL_DISTDIR}" \ - --strip-components=3 + --strip-components=2 cd .. rm -rf bazel-repo echo "Done." @@ -170,6 +175,18 @@ echo "Preparing bazel offline cachedir ..." cd ${REPO_TOP} mkdir -p ${BAZEL_AIRGAPPED_DIR}/${BAZEL_CACHEDIR} + + # Prepare airgap offline built cores + if [[ ! -f "${ROOTDIR}/out/matcha/hw/fastvdma_core/fastvdma.core" ]]; then + mkdir -p ${ROOTDIR}/out/matcha/hw/fastvdma_core + touch ${ROOTDIR}/out/matcha/hw/fastvdma_core/fastvdma.core + fi + if [[ ! -f "${ROOTDIR}/out/kelvin/hw/kelvin_core/kelvin.core" ]]; then + mkdir -p ${ROOTDIR}/out/kelvin/hw/kelvin_core + touch ${ROOTDIR}/out/kelvin/hw/kelvin_core/kelvin.core + fi + # Patch airgap build environment + git apply util/bazel_airgapped.patch # Make bazel forget everything it knows, then download everything. ${BAZEL_AIRGAPPED_DIR}/bazel clean --expunge # Only pick up the packages required by matcha @@ -186,10 +203,13 @@ @remotejdk11_linux//... \ @rules_foreign_cc//toolchains/... \ @rust_analyzer_1.67.0_tools//... \ - @rust_linux_x86_64__x86_64-unknown-linux-gnu__nightly_tools//... + @rust_linux_x86_64__x86_64-unknown-linux-gnu__nightly_tools//... \ + @org_chipsalliance_chisel_plugin//... \ + @kelvin_hw//lib:chisel_lib cp -R $(${BAZEL_AIRGAPPED_DIR}/bazel info output_base)/external/${BAZEL_PYTHON_WHEEL_REPO} \ ${BAZEL_AIRGAPPED_DIR}/ echo "Done." + git reset --hard fi ################################################################################