| # Copyright Google LLC, 2022 |
| # Licensed under the Apache License, Version 2.0, see LICENSE for details. |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| load("@rules_python//python:defs.bzl", "py_binary") |
| load("@ot_python_deps//:requirements.bzl", "requirement") |
| |
| package(default_visibility = ["//visibility:public"]) |
| |
| exports_files(glob(["**"])) |
| |
| genrule( |
| name = "matcha_version_file", |
| outs = ["matcha_version.txt"], |
| cmd = """awk '/MATCHA_BUILD_GIT_VERSION/ { print $$2 }' bazel-out/volatile-status.txt > $@""", |
| stamp = 1, # this provides volatile-status.txt |
| ) |
| |
| # To execute this binary: |
| # bazel run //util:topgen_matcha -- -t <top hjson> [-r] -o <output dir> [other flags] |
| py_binary( |
| name = "topgen_matcha", |
| srcs = [ |
| "topgen_matcha.py", |
| "topgen_utils/toputils.py", |
| ], |
| # This target assumes all the top_matcha hjson files are already up-to-date. |
| # The goal is to generate the rtl, dv, reg files. |
| data = [ |
| ":topgen_tpl_files", |
| "//hw/top_matcha/ip:all_hjson_files", |
| "@lowrisc_opentitan//hw/ip:all_files", |
| "@lowrisc_opentitan//util:BUILD", |
| ], |
| env = {"OPENTITAN_TOP": "$(location @lowrisc_opentitan//util:BUILD)/../.."}, |
| imports = ["../external/lowrisc_opentitan/util/"], |
| deps = [ |
| "@lowrisc_opentitan//util/design/mubi:prim_mubi", |
| "@lowrisc_opentitan//util/ipgen", |
| "@lowrisc_opentitan//util/reggen:gen_cheader", |
| "@lowrisc_opentitan//util/reggen:gen_rtl", |
| "@lowrisc_opentitan//util/reggen:gen_sec_cm_testplan", |
| "@lowrisc_opentitan//util/tlgen", |
| "@lowrisc_opentitan//util/topgen", |
| "@lowrisc_opentitan//util/topgen:c_test", |
| "@lowrisc_opentitan//util/topgen:gen_dv", |
| ], |
| ) |
| |
| py_binary( |
| name = "image_to_c", |
| srcs = [ |
| "image_to_c.py", |
| ], |
| data = [ |
| "//sw/device/examples/testdata/hps_images:image_files", |
| ], |
| deps = [ |
| requirement("Pillow"), |
| ], |
| ) |
| |
| py_binary( |
| name = "run_live_cam", |
| srcs = [ |
| "run_live_cam.py", |
| ], |
| args = [ |
| "--opentitantool_bin=$(location @lowrisc_opentitan//sw/host/opentitantool)", |
| "--opentitantool_conf=$(location @lowrisc_opentitan//sw/host/opentitanlib:src/app/config/nexus.json)", |
| ], |
| data = [ |
| "@lowrisc_opentitan//sw/host/opentitanlib:src/app/config/nexus.json", |
| "@lowrisc_opentitan//sw/host/opentitantool", |
| ], |
| deps = [ |
| requirement("Pillow"), |
| requirement("pyserial"), |
| ], |
| ) |
| |
| py_binary( |
| name = "gen_vmem_256", |
| srcs = [ |
| "gen_vmem_256.py", |
| ], |
| ) |
| |
| filegroup( |
| name = "topgen_tpl_files", |
| srcs = glob(["topgen/**/*.tpl"]) + [ |
| "@lowrisc_opentitan//util/reggen:tpl_files", |
| "@lowrisc_opentitan//util/tlgen:tpl_files", |
| "@lowrisc_opentitan//util/topgen:tpl_files", |
| ], |
| ) |