blob: ab5bb115e4a419cb67708e52e08a682c09153036 [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")
load("//rules:opentitan_test.bzl", "opentitan_functest", "verilator_params")
load("//rules:cross_platform.bzl", "dual_cc_device_library_of", "dual_cc_library", "dual_inputs")
package(default_visibility = ["//visibility:public"])
dual_cc_library(
name = "boot_data",
srcs = dual_inputs(
device = ["boot_data.c"],
host = ["mock_boot_data.cc"],
),
hdrs = dual_inputs(
host = ["mock_boot_data.h"],
shared = ["boot_data.h"],
),
deps = dual_inputs(
device = [
"//hw/top_earlgrey/ip/flash_ctrl/data/autogen:flash_ctrl_regs",
"//hw/ip/otp_ctrl/data:otp_ctrl_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base:hardened",
"//sw/device/lib/base:memory",
],
host = [
"//sw/device/lib/base:global_mock",
"//sw/device/silicon_creator/testing:rom_test",
"@googletest//:gtest",
],
shared = [
":error",
"//sw/device/lib/base:macros",
"//sw/device/silicon_creator/lib/drivers:flash_ctrl",
"//sw/device/silicon_creator/lib/drivers:hmac",
"//sw/device/silicon_creator/lib/drivers:lifecycle",
"//sw/device/silicon_creator/lib/drivers:otp",
],
),
)
cc_test(
name = "boot_data_unittest",
srcs = ["boot_data_unittest.cc"],
deps = [
dual_cc_device_library_of(":boot_data"),
"@googletest//:gtest_main",
],
)
opentitan_functest(
name = "boot_data_functest",
srcs = ["boot_data_functest.c"],
verilator = verilator_params(
timeout = "eternal",
tags = ["flaky"],
# test sometimes times out when run in batches in 3600s
),
deps = [
":boot_data",
":test_main",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/testing/test_framework:ottf_main",
"//sw/device/silicon_creator/lib/drivers:flash_ctrl",
],
)
cc_library(
name = "cfi",
hdrs = [
"cfi.h",
],
deps = [
"//sw/device/lib/base:hardened",
],
)
cc_library(
name = "epmp_defs",
hdrs = [
"epmp_defs.h",
],
)
cc_library(
name = "epmp_state",
srcs = ["epmp_state.c"],
hdrs = [
"epmp_state.h",
],
deps = [
":epmp_defs",
":error",
"//sw/device/lib/base:csr",
"//sw/device/lib/base:hardened",
],
)
cc_test(
name = "epmp_unittest",
srcs = ["epmp_unittest.cc"],
deps = [
":epmp_state",
"//sw/device/silicon_creator/testing: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_state",
"//sw/device/lib/arch:device",
"//sw/device/lib/base:csr",
],
)
cc_library(
name = "error",
hdrs = ["error.h"],
deps = [
"//sw/device/lib/base:bitfield",
"//sw/device/lib/base:hardened",
"//sw/device/lib/base/internal:status",
],
)
cc_test(
name = "error_unittest",
srcs = ["error_unittest.cc"],
deps = [
":error",
"@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/top_earlgrey/ip/flash_ctrl/data/autogen: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:multibits",
],
)
opentitan_functest(
name = "irq_asm_functest",
srcs = ["irq_asm_functest.c"],
verilator = verilator_params(
timeout = "long",
),
deps = [
":error",
":irq_asm",
":test_main",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base:abs_mmio",
"//sw/device/lib/testing:rstmgr_testutils",
"//sw/device/lib/testing/test_framework:ottf_main",
"//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 = "rom_print",
srcs = ["rom_print.c"],
hdrs = ["rom_print.h"],
deps = [
":error",
"//sw/device/silicon_creator/lib/drivers:uart",
],
)
cc_test(
name = "rom_print_unittest",
srcs = ["rom_print_unittest.cc"],
deps = [
":error",
":rom_print",
"//sw/device/silicon_creator/lib/drivers:uart",
"@googletest//:gtest_main",
],
)
dual_cc_library(
name = "manifest",
srcs = dual_inputs(
device = ["manifest.c"],
host = ["mock_manifest.cc"],
),
hdrs = dual_inputs(
host = ["mock_manifest.h"],
shared = ["manifest.h"],
),
deps = dual_inputs(
device = [
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
],
host = [
"//sw/device/lib/base:global_mock",
"//sw/device/silicon_creator/testing:rom_test",
"@googletest//:gtest",
],
shared = [
":epmp_state",
":error",
":keymgr_binding",
"//sw/device/lib/base:macros",
"//sw/device/silicon_creator/lib/drivers:lifecycle",
"//sw/device/silicon_creator/lib/sigverify:rsa_key",
"//sw/device/silicon_creator/lib/base:chip",
],
),
)
dual_cc_library(
name = "manifest_def",
srcs = dual_inputs(device = ["manifest_def.c"]),
hdrs = ["manifest_def.h"],
target_compatible_with = dual_inputs(device = [OPENTITAN_CPU]),
deps = [
":manifest",
"//sw/device/lib/base:macros",
],
# The manifest section should be populated anytime this is added as a
# dependency, even if the manifest is not referenced by software.
alwayslink = True,
)
filegroup(
name = "english_breakfast_test_framework_manifest_def_srcs",
srcs = [
"manifest_def.c",
"manifest_def.h",
],
)
cc_test(
name = "manifest_unittest",
srcs = ["manifest_unittest.cc"],
local_defines = ["MANIFEST_UNIT_TEST_"],
deps = [
dual_cc_device_library_of(":manifest"),
"//sw/device/lib/base:csr",
"//sw/device/silicon_creator/testing:rom_test",
"@googletest//:gtest_main",
],
)
filegroup(
name = "english_breakfast_test_rom_manifest_srcs",
srcs = [
"manifest.c",
"manifest.h",
],
)
dual_cc_library(
name = "shutdown",
srcs = dual_inputs(
device = ["shutdown.c"],
host = ["mock_shutdown.cc"],
),
hdrs = dual_inputs(
host = ["mock_shutdown.h"],
shared = ["shutdown.h"],
),
deps = dual_inputs(
host = [
"//sw/device/lib/base:global_mock",
"//sw/device/silicon_creator/testing:rom_test",
"@googletest//:gtest",
],
shared = [
":error",
":epmp_defs",
"//sw/device/lib/base:hardened",
"//sw/device/lib/base:macros",
"//sw/device/silicon_creator/lib/drivers:lifecycle",
"//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/ip/uart/data:uart_regs",
"//hw/top_earlgrey:alert_handler_regs",
"//hw/top_earlgrey/ip/flash_ctrl/data/autogen:flash_ctrl_regs",
"//hw/top_earlgrey/ip/rstmgr/data/autogen:rstmgr_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/arch:device",
"//sw/device/lib/base:abs_mmio",
"//sw/device/lib/base:bitfield",
"//sw/device/lib/base:csr",
"//sw/device/lib/base:memory",
"//sw/device/lib/base:multibits",
"//sw/device/lib/base:stdasm",
"//sw/device/silicon_creator/lib/drivers:alert",
"//sw/device/silicon_creator/lib/drivers:otp",
],
),
)
cc_test(
name = "shutdown_unittest",
srcs = ["shutdown_unittest.cc"],
deps = [
dual_cc_device_library_of(":shutdown"),
"//sw/device/silicon_creator/testing:rom_test",
"@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_main",
],
)
dual_cc_library(
name = "crc32",
srcs = dual_inputs(
device = ["crc32.c"],
host = ["mock_crc32.cc"],
),
hdrs = dual_inputs(
host = ["mock_crc32.h"],
shared = ["crc32.h"],
),
deps = dual_inputs(
host = [
"//sw/device/lib/base:global_mock",
"//sw/device/silicon_creator/testing:rom_test",
"@googletest//:gtest",
],
shared = [
"//sw/device/lib/base:memory",
],
),
)
cc_test(
name = "crc32_unittest",
srcs = ["crc32_unittest.cc"],
deps = [
dual_cc_device_library_of(":crc32"),
"//sw/device/silicon_creator/testing:rom_test",
"@googletest//:gtest_main",
],
)