blob: 14111bffc2d10125e2413ef4e18f7948980be279 [file] [log] [blame]
# Copyright lowRISC contributors.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
package(default_visibility = ["//visibility:public"])
load("//rules:opentitan.bzl", "OPENTITAN_CPU", "opentitan_binary", "opentitan_functest", "verilator_params")
cc_library(
name = "alert",
srcs = ["alert.c"],
hdrs = ["alert.h"],
target_compatible_with = [OPENTITAN_CPU],
deps = [
"//hw/top_earlgrey:alert_handler_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base",
"//sw/device/silicon_creator/lib:error",
"//sw/device/silicon_creator/lib/base:sec_mmio",
],
)
cc_library(
name = "mock_alert",
testonly = True,
hdrs = ["mock_alert.h"],
deps = [
":alert",
"//sw/device/silicon_creator/testing:mask_rom_test",
"@googletest//:gtest",
],
)
cc_test(
name = "alert_unittest",
srcs = [
"alert.h",
"alert.c",
"alert_unittest.cc",
],
deps = [
"//hw/top_earlgrey:alert_handler_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base",
"//sw/device/silicon_creator/lib:error",
"//sw/device/silicon_creator/lib/base:mock_sec_mmio",
"@googletest//:gtest_main",
],
)
opentitan_functest(
name = "alert_functest",
srcs = ["alert_functest.c"],
deps = [
":alert",
":rstmgr",
"//hw/ip/flash_ctrl/data:flash_ctrl_regs",
"//hw/ip/otp_ctrl/data:otp_ctrl_regs",
"//hw/top_earlgrey:alert_handler_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/silicon_creator/lib:test_main",
"//sw/device/silicon_creator/lib/base:sec_mmio",
],
)
cc_library(
name = "flash_ctrl",
srcs = ["flash_ctrl.c"],
hdrs = ["flash_ctrl.h"],
target_compatible_with = [OPENTITAN_CPU],
deps = [
"//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/lib/base:abs_mmio",
"//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.c",
"flash_ctrl.h",
"flash_ctrl_unittest.cc",
],
defines = [
"OT_OFF_TARGET_TEST",
],
deps = [
"//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/lib/base/testing",
"//sw/device/silicon_creator/lib:error",
"//sw/device/silicon_creator/lib/base:mock_abs_mmio",
"//sw/device/silicon_creator/lib/base:mock_sec_mmio",
"//sw/device/silicon_creator/lib/drivers:mock_otp",
"@googletest//:gtest_main",
],
)
cc_library(
name = "hmac",
srcs = ["hmac.c"],
hdrs = ["hmac.h"],
deps = [
"//hw/ip/hmac/data:hmac_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base",
"//sw/device/lib/base:abs_mmio",
"//sw/device/silicon_creator/lib:error",
],
)
cc_library(
name = "mock_hmac",
testonly = True,
hdrs = ["mock_hmac.h"],
deps = [
":hmac",
"//sw/device/silicon_creator/testing:mask_rom_test",
"@googletest//:gtest",
],
)
cc_test(
name = "hmac_unittest",
srcs = ["hmac_unittest.cc"],
deps = [
":hmac",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base",
"//sw/device/silicon_creator/lib:error",
"//sw/device/silicon_creator/lib/base:mock_abs_mmio",
"@googletest//:gtest_main",
],
)
opentitan_functest(
name = "hmac_functest",
srcs = ["hmac_functest.c"],
deps = [
":hmac",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/silicon_creator/lib:error",
"//sw/device/silicon_creator/lib:test_main",
],
)
cc_library(
name = "keymgr",
srcs = ["keymgr.c"],
hdrs = ["keymgr.h"],
target_compatible_with = [OPENTITAN_CPU],
deps = [
"//hw/ip/keymgr/data:keymgr_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base",
"//sw/device/lib/base:abs_mmio",
"//sw/device/lib/base/freestanding",
"//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.h",
"keymgr.c",
"keymgr_unittest.cc"
],
deps = [
"//hw/ip/keymgr/data:keymgr_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base/freestanding",
"//sw/device/silicon_creator/lib:error",
"//sw/device/silicon_creator/lib:keymgr_binding",
"//sw/device/silicon_creator/lib/base:mock_abs_mmio",
"//sw/device/silicon_creator/lib/base:mock_sec_mmio",
"@googletest//:gtest_main",
],
)
opentitan_functest(
name = "keymgr_functest",
srcs = ["keymgr_functest.c"],
# FIXME: currently, the FPGA doesn't wake up from low-power mode.
# For now, run the test only in verilator.
targets = ["verilator"],
deps = [
":keymgr",
":lifecycle",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib:flash_ctrl",
"//sw/device/lib/dif:aon_timer",
"//sw/device/lib/dif:kmac",
"//sw/device/lib/dif:otp_ctrl",
"//sw/device/lib/dif:pwrmgr",
"//sw/device/lib/testing:pwrmgr_testutils",
"//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:sec_mmio",
],
)
cc_library(
name = "lifecycle",
srcs = ["lifecycle.c"],
hdrs = ["lifecycle.h"],
deps = [
"//hw/ip/lc_ctrl/data:lc_ctrl_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base",
"//sw/device/silicon_creator/lib/base:sec_mmio",
],
)
cc_library(
name = "mock_lifecycle",
testonly = True,
hdrs = ["mock_lifecycle.h"],
deps = [
":lifecycle",
"//sw/device/silicon_creator/testing:mask_rom_test",
"@googletest//:gtest",
],
)
cc_test(
name = "lifecycle_unittest",
srcs = [
"lifecycle.c",
"lifecycle.h",
"lifecycle_unittest.cc",
],
defines = [
"OT_OFF_TARGET_TEST",
],
deps = [
"//hw/ip/lc_ctrl/data:lc_ctrl_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base",
"//sw/device/silicon_creator/lib:error",
"//sw/device/silicon_creator/lib/base:mock_sec_mmio",
"//sw/device/silicon_creator/testing:mask_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",
"//sw/device/lib/base:abs_mmio",
"//sw/device/silicon_creator/lib:error",
],
)
cc_test(
name = "otbn_unittest",
srcs = ["otbn_unittest.cc"],
deps = [
":otbn",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/silicon_creator/lib/base:mock_abs_mmio",
"//sw/device/silicon_creator/testing:mask_rom_test",
"@googletest//:gtest_main",
],
)
cc_library(
name = "otp",
srcs = ["otp.c"],
hdrs = ["otp.h"],
target_compatible_with = [OPENTITAN_CPU],
deps = [
"//hw/ip/otp_ctrl/data:otp_ctrl_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base",
"//sw/device/silicon_creator/lib:error",
"//sw/device/silicon_creator/lib/base:sec_mmio",
],
)
cc_library(
name = "mock_otp",
testonly = True,
hdrs = [
"mock_otp.h",
"otp.h",
],
deps = [
"//sw/device/silicon_creator/testing:mask_rom_test",
"@googletest//:gtest",
],
)
cc_test(
name = "otp_unittest",
srcs = [
"otp.h",
"otp.c",
"otp_unittest.cc",
],
deps = [
"//hw/ip/otp_ctrl/data:otp_ctrl_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base",
"//sw/device/silicon_creator/lib:error",
"//sw/device/silicon_creator/lib/base:mock_sec_mmio",
"//sw/device/silicon_creator/testing:mask_rom_test",
"@googletest//:gtest_main",
],
)
cc_library(
name = "pinmux",
srcs = ["pinmux.c"],
hdrs = ["pinmux.h"],
deps = [
"//hw/top_earlgrey/ip/pinmux/data/autogen:pinmux_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base",
"//sw/device/lib/base:abs_mmio",
],
)
cc_test(
name = "pinmux_unittest",
srcs = ["pinmux_unittest.cc"],
deps = [
":pinmux",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base",
"//sw/device/silicon_creator/lib/base:mock_abs_mmio",
"@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",
"//sw/device/lib/base:abs_mmio",
"//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",
"//sw/device/silicon_creator/lib/base:mock_abs_mmio",
"@googletest//:gtest_main",
],
)
opentitan_functest(
name = "retention_sram_functest",
srcs = ["retention_sram_functest.c"],
deps = [
":retention_sram",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/silicon_creator/lib:error",
"//sw/device/silicon_creator/lib:test_main",
],
)
cc_library(
name = "rnd",
srcs = ["rnd.c"],
hdrs = ["rnd.h"],
target_compatible_with = [OPENTITAN_CPU],
deps = [
":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",
"//sw/device/lib/base:abs_mmio",
],
)
opentitan_functest(
name = "rnd_functest",
srcs = ["rnd_functest.c"],
deps = [
":rnd",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/silicon_creator/lib:error",
"//sw/device/silicon_creator/lib:test_main",
],
)
cc_library(
name = "rstmgr",
srcs = ["rstmgr.c"],
hdrs = ["rstmgr.h"],
deps = [
"//hw/top_earlgrey/ip/rstmgr/data/autogen:rstmgr_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base",
"//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.c",
"rstmgr.h",
"rstmgr_unittest.cc",
],
defines = [
"OT_OFF_TARGET_TEST",
],
deps = [
"//hw/top_earlgrey/ip/rstmgr/data/autogen:rstmgr_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base",
"//sw/device/silicon_creator/lib:error",
"//sw/device/silicon_creator/lib/base:mock_abs_mmio",
"@googletest//:gtest_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",
"//sw/device/lib/base:abs_mmio",
"//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",
"//sw/device/silicon_creator/lib/base:mock_abs_mmio",
"@googletest//:gtest_main",
],
)
opentitan_functest(
name = "uart_functest",
srcs = ["uart_functest.c"],
deps = [
":uart",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//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/top_earlgrey/ip/pwrmgr/data/autogen:pwrmgr_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base:abs_mmio",
],
)
cc_test(
name = "watchdog_unittest",
srcs = ["watchdog_unittest.cc"],
deps = [
":watchdog",
"//hw/ip/aon_timer/data:aon_timer_regs",
"//hw/top_earlgrey/sw/autogen:top_earlgrey",
"//sw/device/lib/base",
"//sw/device/silicon_creator/lib/base:mock_abs_mmio",
"@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/silicon_creator/lib:error",
"//sw/device/silicon_creator/lib:test_main",
],
)