blob: 1b12794d3f889974558e28206341ca32a81b998e [file] [log] [blame]
# Copyright lowRISC contributors.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
load("//rules:opentitan.bzl", "OPENTITAN_CPU", "opentitan_binary", "opentitan_functest", "verilator_params")
package(default_visibility = ["//visibility:public"])
cc_library(
name = "boot_data_intf",
hdrs = ["boot_data.h"],
deps = [
":error",
"//sw/device/lib/base",
"//sw/device/silicon_creator/lib/drivers:hmac",
"//sw/device/silicon_creator/lib/drivers:lifecycle",
],
)
cc_library(
name = "boot_data",
srcs = ["boot_data.c"],
deps = [
":boot_data_intf",
":error",
"//hw/ip/flash_ctrl/data:flash_ctrl_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base",
"//sw/device/silicon_creator/lib/drivers:flash_ctrl",
"//sw/device/silicon_creator/lib/drivers:hmac",
],
)
cc_library(
name = "mock_boot_data",
testonly = True,
hdrs = ["mock_boot_data.h"],
deps = [
":boot_data_intf",
"//sw/device/silicon_creator/testing:mask_rom_test",
"@googletest//:gtest",
],
)
opentitan_functest(
name = "boot_data_functest",
srcs = ["boot_data_functest.c"],
verilator = verilator_params(
timeout = "long",
),
deps = [
":boot_data",
":test_main",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/silicon_creator/lib/drivers:flash_ctrl",
],
)
cc_library(
name = "epmp_intf",
hdrs = [
"epmp.h",
"epmp_defs.h",
],
deps = [
":error",
],
)
cc_library(
name = "epmp",
srcs = ["epmp.c"],
target_compatible_with = [OPENTITAN_CPU],
deps = [
":epmp_intf",
":error",
"//sw/device/lib/base",
],
)
cc_test(
name = "epmp_unittest",
srcs = [
"epmp_unittest.cc",
# sources included here because we need MOCK_CSR.
"epmp.c",
"epmp.h",
],
deps = [
":epmp_intf",
":error",
"//sw/device/lib/base",
"//sw/device/silicon_creator/lib/base:mock_csr",
"//sw/device/silicon_creator/testing:mask_rom_test",
"@googletest//:gtest_main",
],
)
cc_library(
name = "epmp_test_unlock",
srcs = ["epmp_test_unlock.c"],
hdrs = ["epmp_test_unlock.h"],
target_compatible_with = [OPENTITAN_CPU],
deps = [
":epmp_intf",
"//sw/device/lib/arch:device",
"//sw/device/lib/base",
],
)
cc_library(
name = "error",
srcs = ["absl_status.h"],
hdrs = ["error.h"],
deps = [
"//sw/device/lib/base",
],
)
cc_test(
name = "error_unittest",
srcs = ["error_unittest.cc"],
deps = [
":error",
"//sw/device/lib/base",
"@googletest//:gtest_main",
],
)
cc_library(
name = "irq_asm",
srcs = ["irq_asm.S"],
target_compatible_with = [OPENTITAN_CPU],
deps = [
"//hw/ip/aon_timer/data:aon_timer_regs",
"//hw/ip/flash_ctrl/data:flash_ctrl_regs",
"//hw/top_earlgrey/ip/pwrmgr/data/autogen:pwrmgr_regs",
"//hw/top_earlgrey/ip/rstmgr/data/autogen:rstmgr_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base",
],
)
opentitan_functest(
name = "irq_asm_functest",
srcs = ["irq_asm_functest.c"],
deps = [
":error",
":irq_asm",
":test_main",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/silicon_creator/lib/base:abs_mmio",
"//sw/device/silicon_creator/lib/drivers:retention_sram",
"//sw/device/silicon_creator/lib/drivers:rstmgr",
"//sw/device/silicon_creator/lib/drivers:watchdog",
],
)
cc_library(
name = "keymgr_binding",
hdrs = ["keymgr_binding_value.h"],
)
cc_library(
name = "log",
srcs = ["log.c"],
hdrs = ["log.h"],
deps = [
":error",
"//sw/device/silicon_creator/lib/drivers:uart",
],
)
cc_test(
name = "log_unittest",
srcs = ["log_unittest.cc"],
deps = [
":error",
":log",
"//sw/device/silicon_creator/lib/drivers:uart",
"//sw/device/silicon_creator/testing:mask_rom_test",
"@googletest//:gtest_main",
],
)
cc_library(
name = "manifest_intf",
hdrs = [
"manifest.h",
"manifest_size.h",
],
deps = [
":epmp_intf",
":error",
":keymgr_binding",
":sigverify_internal",
"//sw/device/lib/base",
"//sw/device/silicon_creator/lib/drivers:lifecycle",
],
)
cc_library(
name = "manifest",
srcs = ["manifest.c"],
deps = [
":manifest_intf",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
],
)
cc_library(
name = "mock_manifest",
testonly = True,
hdrs = ["mock_manifest.h"],
deps = [
":manifest_intf",
"//sw/device/silicon_creator/testing:mask_rom_test",
"@googletest//:gtest",
],
)
cc_test(
name = "manifest_unittest",
srcs = [
"manifest_unittest.cc",
],
defines = ["MOCK_CSR"],
deps = [
":epmp_intf",
":error",
":keymgr_binding",
":manifest_intf",
":sigverify_internal",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base",
"//sw/device/silicon_creator/lib/base:mock_csr",
"//sw/device/silicon_creator/lib/drivers:lifecycle",
"//sw/device/silicon_creator/testing:mask_rom_test",
"@googletest//:gtest_main",
],
)
cc_library(
name = "otbn_util",
srcs = ["otbn_util.c"],
hdrs = ["otbn_util.h"],
deps = [
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base",
"//sw/device/silicon_creator/lib/base:abs_mmio",
"//sw/device/silicon_creator/lib/drivers:otbn",
],
)
cc_library(
name = "shutdown_intf",
hdrs = ["shutdown.h"],
deps = [
":error",
"//sw/device/lib/base",
"//sw/device/silicon_creator/lib/drivers:lifecycle",
],
)
cc_library(
name = "mock_shutdown",
testonly = True,
hdrs = ["mock_shutdown.h"],
deps = [
":shutdown_intf",
"//sw/device/silicon_creator/testing:mask_rom_test",
"@googletest//:gtest",
],
)
cc_library(
name = "shutdown",
srcs = ["shutdown.c"],
deps = [
":shutdown_intf",
":error",
":log",
"//hw/ip/keymgr/data:keymgr_regs",
"//hw/ip/lc_ctrl/data:lc_ctrl_regs",
"//hw/ip/otp_ctrl/data:otp_ctrl_regs",
"//hw/ip/rv_core_ibex/data:rv_core_ibex_regs",
"//hw/ip/sram_ctrl/data:sram_ctrl_regs",
"//hw/top_earlgrey/ip/flash_ctrl/data/autogen:flash_ctrl_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base",
"//sw/device/silicon_creator/lib/base:abs_mmio",
"//sw/device/silicon_creator/lib/drivers:alert",
"//sw/device/silicon_creator/lib/drivers:lifecycle",
"//sw/device/silicon_creator/lib/drivers:otp",
],
)
cc_test(
name = "shutdown_unittest",
srcs = [
"shutdown.c",
"shutdown_unittest.cc",
],
defines = [
"OT_OFF_TARGET_TEST",
],
deps = [
":shutdown_intf",
":error",
":log",
"//hw/ip/keymgr/data:keymgr_regs",
"//hw/ip/lc_ctrl/data:lc_ctrl_regs",
"//hw/ip/otp_ctrl/data:otp_ctrl_regs",
"//hw/ip/rv_core_ibex/data:rv_core_ibex_regs",
"//hw/ip/sram_ctrl/data:sram_ctrl_regs",
"//hw/top_earlgrey:alert_handler_regs",
"//hw/top_earlgrey/ip/flash_ctrl/data/autogen:flash_ctrl_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base",
"//sw/device/silicon_creator/lib/base:mock_abs_mmio",
"//sw/device/silicon_creator/lib/drivers:lifecycle",
"//sw/device/silicon_creator/lib/drivers:mock_alert",
"//sw/device/silicon_creator/lib/drivers:mock_otp",
"//sw/device/silicon_creator/testing:mask_rom_test",
"@googletest//:gtest_main",
],
)
cc_library(
name = "sigverify_internal",
hdrs = [
"sigverify_mod_exp.h",
"sigverify_rsa_key.h",
],
deps = [
":error",
],
)
cc_library(
name = "sigverify_intf",
hdrs = ["sigverify.h"],
deps = [
":error",
":manifest_intf",
":sigverify_internal",
"//sw/device/silicon_creator/lib/drivers:hmac",
"//sw/device/silicon_creator/lib/drivers:lifecycle",
],
)
cc_library(
name = "sigverify",
srcs = ["sigverify.c"],
deps = [
":sigverify_internal",
":sigverify_intf",
"//hw/ip/otp_ctrl/data:otp_ctrl_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base",
"//sw/device/silicon_creator/lib/drivers:otp",
],
)
filegroup(
name = "sigverify_src_for_keys_unittest",
srcs = ["sigverify.c"],
)
cc_test(
name = "sigverify_unittest",
srcs = [
"sigverify.c",
"sigverify_unittest.cc",
],
defines = [
"OT_OFF_TARGET_TEST",
],
deps = [
":mock_sigverify",
":sigverify_intf",
"//hw/ip/flash_ctrl/data:flash_ctrl_regs",
"//hw/ip/otp_ctrl/data:otp_ctrl_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base",
"//sw/device/silicon_creator/lib/drivers:mock_lifecycle",
"//sw/device/silicon_creator/lib/drivers:mock_otp",
"//sw/device/silicon_creator/testing:mask_rom_test",
"@googletest//:gtest_main",
],
)
opentitan_functest(
name = "sigverify_functest",
srcs = ["sigverify_functest.c"],
verilator = verilator_params(
timeout = "long",
tags = [
"manual",
"verilator",
],
),
deps = [
":sigverify",
":sigverify_intf",
":sigverify_mod_exp_ibex",
":sigverify_mod_exp_otbn",
":test_main",
"//sw/device/silicon_creator/lib/base:sec_mmio",
],
)
opentitan_functest(
name = "sigverify_dynamic_functest",
srcs = ["sigverify_dynamic_functest.c"],
verilator = verilator_params(
timeout = "long",
tags = [
"manual",
"verilator",
],
),
deps = [
":sigverify",
":sigverify_testvectors",
":test_main",
"//sw/device/silicon_creator/lib/base:sec_mmio",
],
)
cc_library(
name = "sigverify_mod_exp_ibex",
srcs = ["sigverify_mod_exp_ibex.c"],
deps = [
":sigverify_internal",
"//sw/device/lib/base",
],
)
cc_library(
name = "sigverify_mod_exp_otbn",
srcs = ["sigverify_mod_exp_otbn.c"],
deps = [
":error",
":otbn_util",
":sigverify_internal",
"//sw/device/silicon_creator/lib/drivers:otbn",
"//sw/otbn/crypto:run_rsa_verify_3072_rr_modexp",
],
)
cc_library(
name = "sigverify_testvectors",
hdrs = [
"sigverify_tests/sigverify_testvectors.h",
],
deps = [
],
)
opentitan_functest(
name = "sigverify_mod_exp_ibex_functest",
srcs = ["sigverify_mod_exp_ibex_functest.c"],
verilator = verilator_params(
timeout = "long",
tags = [
"manual",
"verilator",
],
),
deps = [
":sigverify_mod_exp_ibex",
":sigverify_testvectors",
":test_main",
"//sw/device/silicon_creator/lib/base:sec_mmio",
],
)
opentitan_functest(
name = "sigverify_mod_exp_otbn_functest",
srcs = ["sigverify_mod_exp_otbn_functest.c"],
verilator = verilator_params(
timeout = "long",
tags = [
"manual",
"verilator",
],
),
deps = [
":sigverify_mod_exp_otbn",
":sigverify_testvectors",
":test_main",
"//sw/device/silicon_creator/lib/base:sec_mmio",
],
)
cc_library(
name = "mock_sigverify",
testonly = True,
hdrs = [
"mock_sigverify_mod_exp_ibex.h",
"mock_sigverify_mod_exp_otbn.h",
],
deps = [
":sigverify_internal",
"//sw/device/silicon_creator/testing:mask_rom_test",
"@googletest//:gtest",
],
)
cc_test(
name = "sigverify_mod_exp_ibex_unittest",
srcs = ["sigverify_mod_exp_ibex_unittest.cc"],
deps = [
":sigverify_internal",
":sigverify_intf",
":sigverify_mod_exp_ibex",
"@googletest//:gtest_main",
],
)
cc_library(
name = "test_main",
hdrs = ["test_main.h"],
deps = [
":error",
"//sw/device/lib/runtime:log",
"//sw/device/lib/testing/test_framework:ottf",
],
)