blob: 4016ec9a4576d52460ba814744a62967cac6256e [file] [log] [blame]
# 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",
],
)