blob: 8e09d5670bb6438e154b6d3e30aa313f58d80f80 [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_test.bzl", "cw310_params", "opentitan_functest", "verilator_params")
load("//rules:cross_platform.bzl", "dual_cc_device_library_of", "dual_cc_library", "dual_inputs")
package(default_visibility = ["//visibility:public"])
filegroup(
name = "english_breakfast_test_rom_driver_srcs",
srcs = [
"flash_ctrl.c",
"flash_ctrl.h",
"lifecycle.h",
"otp.h",
"rstmgr.h",
"spi_device.c",
"spi_device.h",
],
)
dual_cc_library(
name = "alert",
srcs = dual_inputs(
device = ["alert.c"],
host = ["mock_alert.cc"],
),
hdrs = dual_inputs(
host = ["mock_alert.h"],
shared = ["alert.h"],
),
deps = dual_inputs(
device = [
"//hw/ip/otp_ctrl/data:otp_ctrl_regs",
"//hw/top_earlgrey:alert_handler_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
],
host = [
"//sw/device/lib/base:global_mock",
"//sw/device/silicon_creator/testing:rom_test",
"@googletest//:gtest",
],
shared = [
":lifecycle",
":otp",
"//sw/device/lib/base:abs_mmio",
"//sw/device/lib/base:macros",
"//sw/device/lib/base:memory",
"//sw/device/silicon_creator/lib:crc32",
"//sw/device/silicon_creator/lib:error",
],
),
)
cc_test(
name = "alert_unittest",
srcs = ["alert_unittest.cc"],
deps = [
dual_cc_device_library_of(":alert"),
"//hw/top_earlgrey:alert_handler_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"@googletest//:gtest_main",
],
)
opentitan_functest(
name = "alert_functest",
srcs = ["alert_functest.c"],
verilator = verilator_params(
timeout = "long",
),
deps = [
":alert",
":rstmgr",
"//hw/ip/otp_ctrl/data:otp_ctrl_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/base:abs_mmio",
"//sw/device/lib/testing:rstmgr_testutils",
"//sw/device/lib/testing/test_framework:ottf_main",
"//sw/device/silicon_creator/lib:test_main",
],
)
cc_library(
name = "ast",
srcs = ["ast.c"],
hdrs = ["ast.h"],
deps = [
":lifecycle",
":otp",
"//hw/ip/otp_ctrl/data:otp_ctrl_regs",
"//hw/top_earlgrey/ip/sensor_ctrl/data:sensor_ctrl_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:hardened",
"//sw/device/lib/base:memory",
"//sw/device/lib/base:multibits",
"//sw/device/silicon_creator/lib:error",
],
)
cc_test(
name = "ast_unittest",
srcs = ["ast_unittest.cc"],
deps = [
":ast",
"//sw/device/silicon_creator/testing:rom_test",
"@googletest//:gtest_main",
],
)
dual_cc_library(
name = "flash_ctrl",
srcs = dual_inputs(
device = ["flash_ctrl.c"],
host = ["mock_flash_ctrl.cc"],
),
hdrs = dual_inputs(
host = ["mock_flash_ctrl.h"],
shared = ["flash_ctrl.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",
],
host = [
"//sw/device/lib/base:global_mock",
"//sw/device/silicon_creator/testing:rom_test",
"@googletest//:gtest",
],
shared = [
"//sw/device/lib/base:abs_mmio",
"//sw/device/lib/base:bitfield",
"//sw/device/lib/base:hardened",
"//sw/device/lib/base:memory",
"//sw/device/lib/base:multibits",
"//sw/device/silicon_creator/lib:error",
"//sw/device/silicon_creator/lib/base:sec_mmio",
"//sw/device/silicon_creator/lib/drivers:otp",
],
),
)
cc_test(
name = "flash_ctrl_unittest",
srcs = ["flash_ctrl_unittest.cc"],
deps = [
dual_cc_device_library_of(":flash_ctrl"),
"@googletest//:gtest_main",
],
)
dual_cc_library(
name = "hmac",
srcs = dual_inputs(
device = ["hmac.c"],
host = ["mock_hmac.cc"],
),
hdrs = dual_inputs(
host = ["mock_hmac.h"],
shared = ["hmac.h"],
),
deps = dual_inputs(
device = [
"//hw/ip/hmac/data:hmac_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
],
host = [
"//sw/device/lib/base:global_mock",
"//sw/device/silicon_creator/testing:rom_test",
"@googletest//:gtest",
],
shared = [
"//sw/device/lib/base:abs_mmio",
"//sw/device/lib/base:bitfield",
"//sw/device/lib/base:hardened",
"//sw/device/lib/base:memory",
"//sw/device/silicon_creator/lib:error",
],
),
)
cc_test(
name = "hmac_unittest",
srcs = ["hmac_unittest.cc"],
deps = [
dual_cc_device_library_of(":hmac"),
"//hw/ip/hmac/data:hmac_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base:abs_mmio",
"//sw/device/silicon_creator/lib:error",
"//sw/device/silicon_creator/testing:rom_test",
"@googletest//:gtest_main",
],
)
opentitan_functest(
name = "hmac_functest",
srcs = ["hmac_functest.c"],
deps = [
":hmac",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/testing/test_framework:ottf_main",
"//sw/device/silicon_creator/lib:error",
"//sw/device/silicon_creator/lib:test_main",
],
)
cc_library(
name = "ibex",
srcs = ["ibex.c"],
hdrs = ["ibex.h"],
deps = [
"//hw/ip/rv_core_ibex/data:rv_core_ibex_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base:abs_mmio",
"//sw/device/lib/runtime:hart",
"//sw/device/silicon_creator/lib/base:sec_mmio",
],
)
cc_test(
name = "ibex_unittest",
srcs = ["ibex_unittest.cc"],
deps = [
":ibex",
"//sw/device/silicon_creator/testing:rom_test",
"@googletest//:gtest_main",
],
)
cc_library(
name = "keymgr",
srcs = ["keymgr.c"],
hdrs = ["keymgr.h"],
deps = [
"//hw/ip/keymgr/data:keymgr_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base:abs_mmio",
"//sw/device/lib/base:macros",
"//sw/device/silicon_creator/lib:error",
"//sw/device/silicon_creator/lib:keymgr_binding",
"//sw/device/silicon_creator/lib/base:sec_mmio",
],
)
cc_test(
name = "keymgr_unittest",
srcs = ["keymgr_unittest.cc"],
deps = [
":keymgr",
"//sw/device/silicon_creator/testing:rom_test",
"@googletest//:gtest_main",
],
)
opentitan_functest(
name = "keymgr_functest",
srcs = ["keymgr_functest.c"],
verilator = verilator_params(
timeout = "long",
),
deps = [
":keymgr",
":lifecycle",
":retention_sram",
"//hw/ip/kmac/data:kmac_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/dif:flash_ctrl",
"//sw/device/lib/dif:kmac",
"//sw/device/lib/dif:otp_ctrl",
"//sw/device/lib/dif:rstmgr",
"//sw/device/lib/testing:flash_ctrl_testutils",
"//sw/device/lib/testing:keymgr_testutils",
"//sw/device/lib/testing:otp_ctrl_testutils",
"//sw/device/lib/testing:pwrmgr_testutils",
"//sw/device/lib/testing:rstmgr_testutils",
"//sw/device/lib/testing/test_framework:ottf_main",
"//sw/device/silicon_creator/lib:error",
"//sw/device/silicon_creator/lib:keymgr_binding",
"//sw/device/silicon_creator/lib:test_main",
"//sw/device/silicon_creator/lib/base:chip",
"//sw/device/silicon_creator/lib/base:sec_mmio",
],
)
cc_library(
name = "kmac",
srcs = ["kmac.c"],
hdrs = ["kmac.h"],
deps = [
"//hw/ip/kmac/data:kmac_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base:abs_mmio",
"//sw/device/lib/base:macros",
"//sw/device/silicon_creator/lib:error",
],
)
cc_test(
name = "kmac_unittest",
srcs = ["kmac_unittest.cc"],
deps = [
":kmac",
"//sw/device/silicon_creator/testing:rom_test",
"@googletest//:gtest_main",
],
)
opentitan_functest(
name = "kmac_functest",
srcs = ["kmac_functest.c"],
verilator = verilator_params(
timeout = "long",
),
deps = [
":kmac",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/testing:entropy_testutils",
"//sw/device/lib/testing/test_framework:ottf_main",
"//sw/device/silicon_creator/lib:error",
"//sw/device/silicon_creator/lib:test_main",
],
)
dual_cc_library(
name = "lifecycle",
srcs = dual_inputs(
device = ["lifecycle.c"],
host = ["mock_lifecycle.cc"],
),
hdrs = dual_inputs(
host = ["mock_lifecycle.h"],
shared = ["lifecycle.h"],
),
deps = dual_inputs(
device = [
"//hw/ip/lc_ctrl/data:lc_ctrl_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
],
host = [
"//sw/device/lib/base:global_mock",
"//sw/device/silicon_creator/testing:rom_test",
"@googletest//:gtest",
],
shared = [
"//sw/device/lib/base:bitfield",
"//sw/device/lib/base:hardened",
"//sw/device/lib/base:macros",
"//sw/device/silicon_creator/lib/base:sec_mmio",
],
),
)
cc_test(
name = "lifecycle_unittest",
srcs = ["lifecycle_unittest.cc"],
deps = [
dual_cc_device_library_of(":lifecycle"),
"//hw/ip/lc_ctrl/data:lc_ctrl_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/silicon_creator/testing:rom_test",
"@googletest//:gtest_main",
],
)
cc_library(
name = "otbn",
srcs = ["otbn.c"],
hdrs = ["otbn.h"],
deps = [
"//hw/ip/otbn/data:otbn_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base:abs_mmio",
"//sw/device/lib/base:bitfield",
"//sw/device/silicon_creator/lib:error",
"//sw/device/silicon_creator/lib/base:sec_mmio",
"//sw/device/silicon_creator/lib/drivers:rnd",
],
)
cc_test(
name = "otbn_unittest",
srcs = ["otbn_unittest.cc"],
deps = [
":otbn",
"//sw/device/silicon_creator/testing:rom_test",
"@googletest//:gtest_main",
],
)
dual_cc_library(
name = "otp",
srcs = dual_inputs(
device = ["otp.c"],
host = ["mock_otp.cc"],
),
hdrs = dual_inputs(
host = ["mock_otp.h"],
shared = ["otp.h"],
),
deps = dual_inputs(
device = [
"//hw/ip/otp_ctrl/data:otp_ctrl_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
],
host = [
"//sw/device/lib/base:global_mock",
"//sw/device/silicon_creator/testing:rom_test",
"@googletest//:gtest",
],
shared = [
"//sw/device/lib/base:hardened",
"//sw/device/lib/base:macros",
"//sw/device/silicon_creator/lib/base:sec_mmio",
],
),
)
cc_test(
name = "otp_unittest",
srcs = ["otp_unittest.cc"],
deps = [
dual_cc_device_library_of(":otp"),
"//sw/device/silicon_creator/testing:rom_test",
"@googletest//:gtest_main",
],
)
cc_library(
name = "pinmux",
srcs = ["pinmux.c"],
hdrs = ["pinmux.h"],
deps = [
"//hw/ip/otp_ctrl/data:otp_ctrl_regs",
"//hw/top_earlgrey/ip/pinmux/data/autogen:pinmux_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base:abs_mmio",
"//sw/device/lib/base:hardened",
"//sw/device/lib/base:macros",
"//sw/device/silicon_creator/lib/base:chip",
"//sw/device/silicon_creator/lib/drivers:otp",
],
)
cc_test(
name = "pinmux_unittest",
srcs = ["pinmux_unittest.cc"],
deps = [
":pinmux",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base:abs_mmio",
"//sw/device/lib/base:macros",
"//sw/device/silicon_creator/testing:rom_test",
"@googletest//:gtest_main",
],
)
cc_library(
name = "retention_sram",
srcs = ["retention_sram.c"],
hdrs = ["retention_sram.h"],
deps = [
"//hw/ip/sram_ctrl/data:sram_ctrl_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base:abs_mmio",
"//sw/device/lib/base:macros",
"//sw/device/lib/base:memory",
"//sw/device/silicon_creator/lib:error",
],
)
cc_test(
name = "retention_sram_unittest",
srcs = ["retention_sram_unittest.cc"],
deps = [
":retention_sram",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base:abs_mmio",
"//sw/device/silicon_creator/testing:rom_test",
"@googletest//:gtest_main",
],
)
opentitan_functest(
name = "retention_sram_functest",
srcs = ["retention_sram_functest.c"],
verilator = verilator_params(
timeout = "long",
),
deps = [
":retention_sram",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base:macros",
"//sw/device/lib/base:memory",
"//sw/device/lib/testing/test_framework:ottf_main",
"//sw/device/silicon_creator/lib:error",
"//sw/device/silicon_creator/lib:test_main",
],
)
dual_cc_library(
name = "rnd",
srcs = dual_inputs(
device = ["rnd.c"],
host = ["mock_rnd.cc"],
),
hdrs = dual_inputs(
host = ["mock_rnd.h"],
shared = ["rnd.h"],
),
deps = dual_inputs(
device = [
":otp",
"//sw/device/lib/base:csr",
"//sw/device/lib/base:abs_mmio",
"//sw/device/lib/base:hardened",
"//hw/ip/entropy_src/data:entropy_src_regs",
"//hw/ip/otp_ctrl/data:otp_ctrl_regs",
"//hw/ip/rv_core_ibex/data:rv_core_ibex_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/silicon_creator/lib:crc32",
],
host = [
"//sw/device/lib/base:global_mock",
"//sw/device/silicon_creator/testing:rom_test",
"@googletest//:gtest",
],
shared = [
":lifecycle",
"//sw/device/lib/base:macros",
"//sw/device/silicon_creator/lib:error",
],
),
)
cc_test(
name = "rnd_unittest",
srcs = ["rnd_unittest.cc"],
deps = [
dual_cc_device_library_of(":rnd"),
":otp",
"//hw/ip/otp_ctrl/data:otp_ctrl_regs",
"//hw/ip/rv_core_ibex/data:rv_core_ibex_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base:abs_mmio",
"//sw/device/lib/base:csr",
"//sw/device/silicon_creator/lib/base:sec_mmio",
"//sw/device/silicon_creator/testing:rom_test",
"@googletest//:gtest_main",
],
)
opentitan_functest(
name = "rnd_functest",
srcs = ["rnd_functest.c"],
deps = [
":otp",
":rnd",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/dif:entropy_src",
"//sw/device/lib/testing:entropy_testutils",
"//sw/device/lib/testing:rand_testutils",
"//sw/device/lib/testing/test_framework:ottf_main",
"//sw/device/silicon_creator/lib:crc32",
"//sw/device/silicon_creator/lib:error",
"//sw/device/silicon_creator/lib:test_main",
],
)
dual_cc_library(
name = "rstmgr",
srcs = dual_inputs(
device = ["rstmgr.c"],
host = ["mock_rstmgr.cc"],
),
hdrs = dual_inputs(
host = ["mock_rstmgr.h"],
shared = ["rstmgr.h"],
),
deps = dual_inputs(
device = [
"//hw/top_earlgrey/ip/rstmgr/data/autogen:rstmgr_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
],
host = [
"//sw/device/lib/base:global_mock",
"//sw/device/silicon_creator/testing:rom_test",
"@googletest//:gtest",
],
shared = [
"//sw/device/lib/base:bitfield",
"//sw/device/lib/base:macros",
"//sw/device/lib/base:multibits",
"//sw/device/lib/runtime:hart",
"//sw/device/silicon_creator/lib:error",
"//sw/device/silicon_creator/lib/base:sec_mmio",
],
),
)
cc_test(
name = "rstmgr_unittest",
srcs = ["rstmgr_unittest.cc"],
deps = [
dual_cc_device_library_of(":rstmgr"),
"//sw/device/silicon_creator/testing:rom_test",
"@googletest//:gtest_main",
],
)
opentitan_functest(
name = "rstmgr_functest",
srcs = ["rstmgr_functest.c"],
verilator = verilator_params(
timeout = "long",
),
deps = [
":rstmgr",
"//sw/device/lib/testing:rstmgr_testutils",
"//sw/device/silicon_creator/lib:test_main",
],
)
cc_library(
name = "uart",
srcs = ["uart.c"],
hdrs = ["uart.h"],
deps = [
"//hw/ip/uart/data:uart_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/silicon_creator/lib:error",
],
)
cc_test(
name = "uart_unittest",
srcs = ["uart_unittest.cc"],
deps = [
":uart",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base:abs_mmio",
"//sw/device/silicon_creator/testing:rom_test",
"@googletest//:gtest_main",
],
)
opentitan_functest(
name = "uart_functest",
srcs = ["uart_functest.c"],
deps = [
":uart",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/testing/test_framework:ottf_main",
"//sw/device/silicon_creator/lib:error",
"//sw/device/silicon_creator/lib:test_main",
],
)
cc_library(
name = "watchdog",
srcs = ["watchdog.c"],
hdrs = ["watchdog.h"],
deps = [
"//hw/ip/aon_timer/data:aon_timer_regs",
"//hw/ip/otp_ctrl/data:otp_ctrl_regs",
"//hw/top_earlgrey/ip/pwrmgr/data/autogen:pwrmgr_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base:abs_mmio",
"//sw/device/silicon_creator/lib/base:sec_mmio",
"//sw/device/silicon_creator/lib/drivers:lifecycle",
"//sw/device/silicon_creator/lib/drivers:otp",
],
)
cc_test(
name = "watchdog_unittest",
srcs = ["watchdog_unittest.cc"],
deps = [
":watchdog",
"//hw/ip/aon_timer/data:aon_timer_regs",
"//hw/ip/otp_ctrl/data:otp_ctrl_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base:abs_mmio",
"//sw/device/silicon_creator/lib/base:sec_mmio",
"//sw/device/silicon_creator/lib/drivers:otp",
"//sw/device/silicon_creator/testing:rom_test",
"@googletest//:gtest_main",
],
)
opentitan_functest(
name = "watchdog_functest",
srcs = ["watchdog_functest.c"],
verilator = verilator_params(
timeout = "long",
),
deps = [
":retention_sram",
":rstmgr",
":watchdog",
"//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:error",
"//sw/device/silicon_creator/lib:test_main",
"//sw/device/silicon_creator/lib/base:sec_mmio",
],
)
dual_cc_library(
name = "spi_device",
srcs = dual_inputs(
device = ["spi_device.c"],
host = ["mock_spi_device.cc"],
),
hdrs = dual_inputs(
host = ["mock_spi_device.h"],
shared = ["spi_device.h"],
),
deps = dual_inputs(
device = [
"//hw/top_earlgrey/ip/flash_ctrl/data/autogen:flash_ctrl_regs",
"//hw/ip/spi_device/data:spi_device_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
],
host = [
"//sw/device/lib/base:global_mock",
"//sw/device/silicon_creator/testing:rom_test",
"@googletest//:gtest",
],
shared = [
":lifecycle",
"//sw/device/lib/base:abs_mmio",
"//sw/device/lib/base:memory",
"//sw/device/silicon_creator/lib:error",
],
),
)
cc_test(
name = "spi_device_unittest",
srcs = [
"spi_device_unittest.cc",
],
deps = [
dual_cc_device_library_of(":spi_device"),
"//hw/ip/spi_device/data:spi_device_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base:abs_mmio",
"//sw/device/silicon_creator/lib:error",
"//sw/device/silicon_creator/testing:rom_test",
"@googletest//:gtest_main",
],
)