|  | # 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", | 
|  | "ROM_BOOT_FAILURE_MSG", | 
|  | "cw310_params", | 
|  | "dv_params", | 
|  | "opentitan_functest", | 
|  | "verilator_params", | 
|  | ) | 
|  | load("//rules:splice.bzl", "bitstream_splice") | 
|  | load("//rules:otp.bzl", "STD_OTP_OVERLAYS", "otp_image", "otp_json", "otp_partition") | 
|  |  | 
|  | package(default_visibility = ["//visibility:public"]) | 
|  |  | 
|  | # TODO(lowRISC:opentitan#13180): this is a temporary solution to enable writing | 
|  | # manufacturer specific tests in the `manufacturer_test_hooks` repository that | 
|  | # use open source test code. Specifically, this enables defining an | 
|  | # `opentitan_functest` in the `manufacturer_test_hooks` repository without the | 
|  | # need to specify the corresponding test hooks that should be used with the test | 
|  | # on the command line. | 
|  | exports_files(glob([ | 
|  | "*.c", | 
|  | "*.h", | 
|  | ])) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "aes_masking_off_test", | 
|  | srcs = ["aes_masking_off_test.c"], | 
|  | verilator = verilator_params( | 
|  | timeout = "long", | 
|  | ), | 
|  | deps = [ | 
|  | "//hw/ip/aes:model", | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:memory", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:aes", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:aes_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "aes_entropy_test", | 
|  | srcs = ["aes_entropy_test.c"], | 
|  | deps = [ | 
|  | "//hw/ip/aes:model", | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:memory", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:aes", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:aes_testutils", | 
|  | "//sw/device/lib/testing:entropy_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "aes_idle_test", | 
|  | srcs = ["aes_idle_test.c"], | 
|  | targets = [ | 
|  | "dv", | 
|  | "verilator", | 
|  | "cw310_test_rom", | 
|  | ], | 
|  | deps = [ | 
|  | "//hw/ip/aes:model", | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:memory", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:aes", | 
|  | "//sw/device/lib/dif:clkmgr", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:aes_testutils", | 
|  | "//sw/device/lib/testing:clkmgr_testutils", | 
|  | "//sw/device/lib/testing:entropy_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | alias( | 
|  | name = "aes_smoketest_entropy_testutils", | 
|  | actual = select({ | 
|  | "//sw/device:is_english_breakfast": "//sw/device:nothing", | 
|  | "//conditions:default": "//sw/device/lib/testing:entropy_testutils", | 
|  | }), | 
|  | visibility = ["//visibility:private"], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "aes_smoketest", | 
|  | srcs = ["aes_smoketest.c"], | 
|  | deps = [ | 
|  | "//hw/ip/aes:model", | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:memory", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:aes", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:aes_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "alert_handler_ping_timeout_test", | 
|  | srcs = ["alert_handler_ping_timeout_test.c"], | 
|  | cw310 = cw310_params( | 
|  | timeout = "moderate", | 
|  | ), | 
|  | verilator = verilator_params( | 
|  | timeout = "long", | 
|  | ), | 
|  | deps = [ | 
|  | "//hw/top_earlgrey:alert_handler_regs", | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:math", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:alert_handler", | 
|  | "//sw/device/lib/dif:rv_core_ibex", | 
|  | "//sw/device/lib/dif:rv_plic", | 
|  | "//sw/device/lib/runtime:ibex", | 
|  | "//sw/device/lib/runtime:irq", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:alert_handler_testutils", | 
|  | "//sw/device/lib/testing:isr_testutils", | 
|  | "//sw/device/lib/testing:rv_plic_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "alert_handler_lpg_clkoff_test", | 
|  | srcs = ["alert_handler_lpg_clkoff_test.c"], | 
|  | cw310 = cw310_params(timeout = "moderate"), | 
|  | targets = [ | 
|  | # The test requires the Ibex core to wait long enough | 
|  | # before checking for the ping_timeout error. | 
|  | # The wait-time for the Verilator would be around | 
|  | # 32M*8us = 256s (kClockFreqPeripheralHz = 125K). | 
|  | # Thus it is not not recommended to run this test on | 
|  | # Verilator as this wait-time looks impractical. It should still | 
|  | # be run as part of the DV nightly regression. | 
|  | "cw310_test_rom", | 
|  | "dv", | 
|  | ], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey:alert_handler_regs", | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:math", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:aes", | 
|  | "//sw/device/lib/dif:alert_handler", | 
|  | "//sw/device/lib/dif:clkmgr", | 
|  | "//sw/device/lib/dif:flash_ctrl", | 
|  | "//sw/device/lib/dif:hmac", | 
|  | "//sw/device/lib/dif:kmac", | 
|  | "//sw/device/lib/dif:otbn", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//sw/device/lib/dif:rv_plic", | 
|  | "//sw/device/lib/dif:spi_host", | 
|  | "//sw/device/lib/dif:usbdev", | 
|  | "//sw/device/lib/runtime:ibex", | 
|  | "//sw/device/lib/runtime:irq", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:alert_handler_testutils", | 
|  | "//sw/device/lib/testing:flash_ctrl_testutils", | 
|  | "//sw/device/lib/testing:isr_testutils", | 
|  | "//sw/device/lib/testing:rand_testutils", | 
|  | "//sw/device/lib/testing:rv_plic_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "alert_handler_reverse_ping_in_deep_sleep_test", | 
|  | srcs = ["alert_handler_reverse_ping_in_deep_sleep_test.c"], | 
|  | cw310 = cw310_params( | 
|  | timeout = "moderate", | 
|  | tags = ["broken"],  # FIXME #16822 Test hangs on isolated runs | 
|  | ), | 
|  | targets = [ | 
|  | # The test requires to run for > 0.2s, thus not recommended for | 
|  | # Verilator as this will slow down CI too much. It should still | 
|  | # be run as part of the DV nightly regression. | 
|  | "verilator", | 
|  | "cw310_test_rom", | 
|  | "dv", | 
|  | ], | 
|  | verilator = verilator_params( | 
|  | timeout = "eternal", | 
|  | tags = ["broken"],  # FIXME #16822 Test hangs on isolated runs | 
|  | ), | 
|  | deps = [ | 
|  | "//hw/top_earlgrey:alert_handler_regs", | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:math", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:alert_handler", | 
|  | "//sw/device/lib/dif:aon_timer", | 
|  | "//sw/device/lib/dif:pwrmgr", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//sw/device/lib/dif:rv_plic", | 
|  | "//sw/device/lib/runtime:ibex", | 
|  | "//sw/device/lib/runtime:irq", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:alert_handler_testutils", | 
|  | "//sw/device/lib/testing:aon_timer_testutils", | 
|  | "//sw/device/lib/testing:isr_testutils", | 
|  | "//sw/device/lib/testing:pwrmgr_testutils", | 
|  | "//sw/device/lib/testing:rstmgr_testutils", | 
|  | "//sw/device/lib/testing:rv_plic_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "alert_handler_lpg_reset_toggle_test", | 
|  | srcs = ["alert_handler_lpg_reset_toggle.c"], | 
|  | cw310 = cw310_params( | 
|  | timeout = "moderate", | 
|  | ), | 
|  | targets = [ | 
|  | # The test requires the Ibex core to wait long enough | 
|  | # before checking for the ping_timeout error. | 
|  | # The wait-time for the Verilator would be around | 
|  | # 32M*8us = 256s (kClockFreqPeripheralHz = 125K). | 
|  | # Thus it is not not recommended to run this test on | 
|  | # Verilator as this wait-time looks impractical. It should still | 
|  | # be run as part of the DV nightly regression. | 
|  | "cw310_test_rom", | 
|  | "dv", | 
|  | ], | 
|  | deps = [ | 
|  | "//hw/ip/i2c/data:i2c_regs", | 
|  | "//hw/ip/spi_device/data:spi_device_regs", | 
|  | "//hw/ip/spi_host/data:spi_host_regs", | 
|  | "//hw/ip/usbdev/data:usbdev_regs", | 
|  | "//hw/top_earlgrey:alert_handler_regs", | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:math", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:alert_handler", | 
|  | "//sw/device/lib/dif:flash_ctrl", | 
|  | "//sw/device/lib/dif:i2c", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//sw/device/lib/dif:rv_plic", | 
|  | "//sw/device/lib/dif:spi_device", | 
|  | "//sw/device/lib/dif:spi_host", | 
|  | "//sw/device/lib/dif:usbdev", | 
|  | "//sw/device/lib/runtime:ibex", | 
|  | "//sw/device/lib/runtime:irq", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:alert_handler_testutils", | 
|  | "//sw/device/lib/testing:flash_ctrl_testutils", | 
|  | "//sw/device/lib/testing:isr_testutils", | 
|  | "//sw/device/lib/testing:rv_plic_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "alert_handler_lpg_sleep_mode_pings_test", | 
|  | srcs = ["alert_handler_lpg_sleep_mode_pings.c"], | 
|  | cw310 = cw310_params( | 
|  | timeout = "moderate", | 
|  | ), | 
|  | targets = [ | 
|  | # The test requires the Ibex core to wait long enough | 
|  | # before checking for the ping_timeout error. | 
|  | # The wait-time for the Verilator would be around | 
|  | # 4s (kClockFreqPeripheralHz = 125K). | 
|  | # Thus it is not not recommended to run this test on | 
|  | # Verilator as this wait-time looks impractical. It should still | 
|  | # be run as part of the DV nightly regression. | 
|  | "cw310_test_rom", | 
|  | "dv", | 
|  | ], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey:alert_handler_regs", | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:math", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:alert_handler", | 
|  | "//sw/device/lib/dif:flash_ctrl", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//sw/device/lib/dif:rv_plic", | 
|  | "//sw/device/lib/runtime:ibex", | 
|  | "//sw/device/lib/runtime:irq", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:alert_handler_testutils", | 
|  | "//sw/device/lib/testing:aon_timer_testutils", | 
|  | "//sw/device/lib/testing:flash_ctrl_testutils", | 
|  | "//sw/device/lib/testing:isr_testutils", | 
|  | "//sw/device/lib/testing:pwrmgr_testutils", | 
|  | "//sw/device/lib/testing:rand_testutils", | 
|  | "//sw/device/lib/testing:rstmgr_testutils", | 
|  | "//sw/device/lib/testing:rv_plic_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "alert_handler_lpg_sleep_mode_alerts_test", | 
|  | srcs = ["alert_handler_lpg_sleep_mode_alerts.c"], | 
|  | targets = [ | 
|  | # The test requires to drive fatal alerts | 
|  | # which is possible only in DV sim. | 
|  | "dv", | 
|  | ], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey:alert_handler_regs", | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:math", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:alert_handler", | 
|  | "//sw/device/lib/dif:flash_ctrl", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//sw/device/lib/dif:rv_plic", | 
|  | "//sw/device/lib/runtime:ibex", | 
|  | "//sw/device/lib/runtime:irq", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:alert_handler_testutils", | 
|  | "//sw/device/lib/testing:aon_timer_testutils", | 
|  | "//sw/device/lib/testing:flash_ctrl_testutils", | 
|  | "//sw/device/lib/testing:isr_testutils", | 
|  | "//sw/device/lib/testing:pwrmgr_testutils", | 
|  | "//sw/device/lib/testing:rand_testutils", | 
|  | "//sw/device/lib/testing:rstmgr_testutils", | 
|  | "//sw/device/lib/testing:rv_plic_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "aon_timer_irq_test", | 
|  | srcs = ["aon_timer_irq_test.c"], | 
|  | targets = [ | 
|  | "dv", | 
|  | "verilator", | 
|  | "cw310_test_rom", | 
|  | ], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:math", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:aon_timer", | 
|  | "//sw/device/lib/dif:rv_plic", | 
|  | "//sw/device/lib/dif:rv_timer", | 
|  | "//sw/device/lib/runtime:irq", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:aon_timer_testutils", | 
|  | "//sw/device/lib/testing:rand_testutils", | 
|  | "//sw/device/lib/testing:rv_plic_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "aon_timer_smoketest", | 
|  | srcs = ["aon_timer_smoketest.c"], | 
|  | targets = [ | 
|  | "dv", | 
|  | "verilator", | 
|  | "cw310_test_rom", | 
|  | ], | 
|  | deps = [ | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:aon_timer", | 
|  | "//sw/device/lib/runtime:hart", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:aon_timer_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "aon_timer_wdog_bite_reset_test", | 
|  | srcs = ["aon_timer_wdog_bite_reset_test.c"], | 
|  | verilator = verilator_params( | 
|  | tags = [ | 
|  | "broken", | 
|  | ], | 
|  | ), | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:math", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:aon_timer", | 
|  | "//sw/device/lib/dif:pwrmgr", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:aon_timer_testutils", | 
|  | "//sw/device/lib/testing:pwrmgr_testutils", | 
|  | "//sw/device/lib/testing:rstmgr_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "pwrmgr_wdog_reset_reqs_test", | 
|  | srcs = ["pwrmgr_wdog_reset_reqs_test.c"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:math", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:aon_timer", | 
|  | "//sw/device/lib/dif:pwrmgr", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:aon_timer_testutils", | 
|  | "//sw/device/lib/testing:pwrmgr_testutils", | 
|  | "//sw/device/lib/testing:rstmgr_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "aon_timer_wdog_lc_escalate_test", | 
|  | srcs = ["aon_timer_wdog_lc_escalate_test.c"], | 
|  | verilator = verilator_params( | 
|  | timeout = "long", | 
|  | ), | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:math", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:alert_handler", | 
|  | "//sw/device/lib/dif:aon_timer", | 
|  | "//sw/device/lib/dif:pwrmgr", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//sw/device/lib/dif:rv_plic", | 
|  | "//sw/device/lib/dif:rv_timer", | 
|  | "//sw/device/lib/runtime:irq", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:alert_handler_testutils", | 
|  | "//sw/device/lib/testing:aon_timer_testutils", | 
|  | "//sw/device/lib/testing:rstmgr_testutils", | 
|  | "//sw/device/lib/testing:rv_plic_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "aon_timer_sleep_wdog_sleep_pause_test", | 
|  | srcs = ["aon_timer_sleep_wdog_sleep_pause_test.c"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:aon_timer", | 
|  | "//sw/device/lib/dif:pwrmgr", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//sw/device/lib/runtime:irq", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:aon_timer_testutils", | 
|  | "//sw/device/lib/testing:pwrmgr_testutils", | 
|  | "//sw/device/lib/testing:rstmgr_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "chip_power_idle_load", | 
|  | srcs = ["chip_power_idle_load.c"], | 
|  | verilator = verilator_params( | 
|  | tags = ["broken"],  # FIXME #16374 test doesn't make progress after enabling PWM | 
|  | ), | 
|  | deps = [ | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:alert_handler", | 
|  | "//sw/device/lib/dif:aon_timer", | 
|  | "//sw/device/lib/dif:gpio", | 
|  | "//sw/device/lib/dif:otp_ctrl", | 
|  | "//sw/device/lib/dif:pinmux", | 
|  | "//sw/device/lib/dif:pwm", | 
|  | "//sw/device/lib/runtime:hart", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:alert_handler_testutils", | 
|  | "//sw/device/lib/testing:aon_timer_testutils", | 
|  | "//sw/device/lib/testing:pwrmgr_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "chip_power_sleep_load", | 
|  | srcs = ["chip_power_sleep_load.c"], | 
|  | verilator = verilator_params( | 
|  | tags = ["broken"],  # FIXME #16374 test doesn't make progress after enabling PWM | 
|  | ), | 
|  | deps = [ | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:adc_ctrl", | 
|  | "//sw/device/lib/dif:alert_handler", | 
|  | "//sw/device/lib/dif:aon_timer", | 
|  | "//sw/device/lib/dif:gpio", | 
|  | "//sw/device/lib/dif:otp_ctrl", | 
|  | "//sw/device/lib/dif:pinmux", | 
|  | "//sw/device/lib/dif:pwm", | 
|  | "//sw/device/lib/dif:rv_plic", | 
|  | "//sw/device/lib/runtime:hart", | 
|  | "//sw/device/lib/runtime:irq", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:alert_handler_testutils", | 
|  | "//sw/device/lib/testing:aon_timer_testutils", | 
|  | "//sw/device/lib/testing:pwrmgr_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | cc_library( | 
|  | name = "clkmgr_external_clk_src_for_sw_impl", | 
|  | srcs = ["clkmgr_external_clk_src_for_sw_impl.c"], | 
|  | hdrs = ["clkmgr_external_clk_src_for_sw_impl.h"], | 
|  | target_compatible_with = [OPENTITAN_CPU], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:memory", | 
|  | "//sw/device/lib/dif:base", | 
|  | "//sw/device/lib/dif:clkmgr", | 
|  | "//sw/device/lib/runtime:hart", | 
|  | "//sw/device/lib/runtime:ibex", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:aon_timer_testutils", | 
|  | "//sw/device/lib/testing:clkmgr_testutils", | 
|  | "//sw/device/lib/testing/test_framework:check", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "clkmgr_external_clk_src_for_sw_fast_test", | 
|  | srcs = ["clkmgr_external_clk_src_for_sw_fast_test.c"], | 
|  | cw310 = cw310_params( | 
|  | # FIXME #12486 [bazel] targets in sw/device/tests failing on cw310 and verilator when built by bazel | 
|  | tags = ["broken"], | 
|  | ), | 
|  | verilator = verilator_params( | 
|  | tags = [ | 
|  | "broken", | 
|  | ], | 
|  | ), | 
|  | deps = [ | 
|  | ":clkmgr_external_clk_src_for_sw_impl", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "clkmgr_external_clk_src_for_sw_slow_test", | 
|  | srcs = ["clkmgr_external_clk_src_for_sw_slow_test.c"], | 
|  | cw310 = cw310_params( | 
|  | # FIXME #12486 [bazel] targets in sw/device/tests failing on cw310 and verilator when built by bazel | 
|  | tags = ["broken"], | 
|  | ), | 
|  | verilator = verilator_params( | 
|  | tags = [ | 
|  | "broken", | 
|  | ], | 
|  | ), | 
|  | deps = [ | 
|  | ":clkmgr_external_clk_src_for_sw_impl", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "clkmgr_jitter_test", | 
|  | srcs = ["clkmgr_jitter_test.c"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:memory", | 
|  | "//sw/device/lib/dif:base", | 
|  | "//sw/device/lib/dif:clkmgr", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "clkmgr_off_peri_test", | 
|  | srcs = ["clkmgr_off_peri_test.c"], | 
|  | verilator = verilator_params( | 
|  | timeout = "eternal", | 
|  | ), | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:abs_mmio", | 
|  | "//sw/device/lib/base:memory", | 
|  | "//sw/device/lib/dif:aon_timer", | 
|  | "//sw/device/lib/dif:base", | 
|  | "//sw/device/lib/dif:clkmgr", | 
|  | "//sw/device/lib/dif:flash_ctrl", | 
|  | "//sw/device/lib/dif:pwrmgr", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//sw/device/lib/dif:spi_host", | 
|  | "//sw/device/lib/dif:uart", | 
|  | "//sw/device/lib/dif:usbdev", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:aon_timer_testutils", | 
|  | "//sw/device/lib/testing:flash_ctrl_testutils", | 
|  | "//sw/device/lib/testing:rstmgr_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | cc_library( | 
|  | name = "clkmgr_off_trans_impl", | 
|  | srcs = ["clkmgr_off_trans_impl.c"], | 
|  | hdrs = ["clkmgr_off_trans_impl.h"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:memory", | 
|  | "//sw/device/lib/dif:aes", | 
|  | "//sw/device/lib/dif:aon_timer", | 
|  | "//sw/device/lib/dif:base", | 
|  | "//sw/device/lib/dif:clkmgr", | 
|  | "//sw/device/lib/dif:hmac", | 
|  | "//sw/device/lib/dif:kmac", | 
|  | "//sw/device/lib/dif:otbn", | 
|  | "//sw/device/lib/dif:pwrmgr", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:aon_timer_testutils", | 
|  | "//sw/device/lib/testing:rstmgr_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "clkmgr_off_aes_trans_test", | 
|  | srcs = ["clkmgr_off_aes_trans_test.c"], | 
|  | deps = ["clkmgr_off_trans_impl"], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "clkmgr_off_hmac_trans_test", | 
|  | srcs = ["clkmgr_off_hmac_trans_test.c"], | 
|  | deps = ["clkmgr_off_trans_impl"], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "clkmgr_off_kmac_trans_test", | 
|  | srcs = ["clkmgr_off_kmac_trans_test.c"], | 
|  | deps = ["clkmgr_off_trans_impl"], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "clkmgr_off_otbn_trans_test", | 
|  | srcs = ["clkmgr_off_otbn_trans_test.c"], | 
|  | deps = ["clkmgr_off_trans_impl"], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "clkmgr_reset_frequency_test", | 
|  | srcs = ["clkmgr_reset_frequency_test.c"], | 
|  | verilator = verilator_params( | 
|  | timeout = "long", | 
|  | ), | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/arch:device", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:sensor_ctrl", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:aon_timer_testutils", | 
|  | "//sw/device/lib/testing:clkmgr_testutils", | 
|  | "//sw/device/lib/testing:rstmgr_testutils", | 
|  | "//sw/device/lib/testing:sensor_ctrl_testutils", | 
|  | "//sw/device/lib/testing/test_framework:check", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "clkmgr_sleep_frequency_test", | 
|  | srcs = ["clkmgr_sleep_frequency_test.c"], | 
|  | verilator = verilator_params( | 
|  | # FIXME #13611 | 
|  | tags = ["broken"], | 
|  | ), | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/arch:device", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:rv_plic", | 
|  | "//sw/device/lib/dif:sensor_ctrl", | 
|  | "//sw/device/lib/runtime:irq", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:aon_timer_testutils", | 
|  | "//sw/device/lib/testing:clkmgr_testutils", | 
|  | "//sw/device/lib/testing:isr_testutils", | 
|  | "//sw/device/lib/testing:pwrmgr_testutils", | 
|  | "//sw/device/lib/testing:rv_plic_testutils", | 
|  | "//sw/device/lib/testing:sensor_ctrl_testutils", | 
|  | "//sw/device/lib/testing/test_framework:check", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "clkmgr_smoketest", | 
|  | srcs = ["clkmgr_smoketest.c"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:memory", | 
|  | "//sw/device/lib/dif:base", | 
|  | "//sw/device/lib/dif:clkmgr", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "coverage_test", | 
|  | srcs = ["coverage_test.c"], | 
|  | verilator = verilator_params( | 
|  | timeout = "long", | 
|  | ), | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/arch:device", | 
|  | "//sw/device/lib/runtime:hart", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/runtime:print", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "crt_test", | 
|  | srcs = ["crt_test.c"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/arch:device", | 
|  | "//sw/device/lib/base:macros", | 
|  | "//sw/device/lib/base:stdasm", | 
|  | "//sw/device/lib/dif:uart", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/runtime:print", | 
|  | "//sw/device/lib/testing/test_framework:check", | 
|  | "//sw/device/lib/testing/test_framework:ottf_start", | 
|  | "//sw/device/lib/testing/test_framework:ottf_test_config", | 
|  | "//sw/device/lib/testing/test_framework:status", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "csrng_edn_concurrency_test", | 
|  | srcs = ["csrng_edn_concurrency_test.c"], | 
|  | verilator = verilator_params( | 
|  | timeout = "eternal", | 
|  | ), | 
|  | deps = [ | 
|  | ":otbn_randomness_impl", | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:memory", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:base", | 
|  | "//sw/device/lib/dif:csrng", | 
|  | "//sw/device/lib/dif:csrng_shared", | 
|  | "//sw/device/lib/dif:edn", | 
|  | "//sw/device/lib/dif:entropy_src", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:csrng_testutils", | 
|  | "//sw/device/lib/testing:entropy_testutils", | 
|  | "//sw/device/lib/testing:isr_testutils", | 
|  | "//sw/device/lib/testing:otbn_testutils", | 
|  | "//sw/device/lib/testing:rand_testutils", | 
|  | "//sw/device/lib/testing:rv_plic_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "csrng_kat_test", | 
|  | srcs = ["csrng_kat_test.c"], | 
|  | deps = [ | 
|  | "//sw/device/lib/base:macros", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:csrng", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:csrng_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "csrng_smoketest", | 
|  | srcs = ["csrng_smoketest.c"], | 
|  | deps = [ | 
|  | "//sw/device/lib/base:macros", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:csrng", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:csrng_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "entropy_src_fw_ovr_test", | 
|  | srcs = ["entropy_src_fw_ovr_test.c"], | 
|  | cw310 = cw310_params( | 
|  | # FIXME #12486 [bazel] targets in sw/device/tests failing on cw310 and verilator when built by bazel | 
|  | tags = ["broken"], | 
|  | ), | 
|  | verilator = verilator_params( | 
|  | tags = [ | 
|  | "broken", | 
|  | ], | 
|  | ), | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:memory", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:base", | 
|  | "//sw/device/lib/dif:entropy_src", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:entropy_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | cc_library( | 
|  | name = "entropy_src_kat_impl", | 
|  | srcs = ["entropy_src_kat_impl.c"], | 
|  | hdrs = ["entropy_src_kat_impl.h"], | 
|  | target_compatible_with = [OPENTITAN_CPU], | 
|  | deps = [ | 
|  | "//sw/device/lib/base:memory", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:base", | 
|  | "//sw/device/lib/dif:entropy_src", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:entropy_testutils", | 
|  | "//sw/device/lib/testing/test_framework:check", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "entropy_src_kat_test", | 
|  | srcs = ["entropy_src_kat_test.c"], | 
|  | deps = [ | 
|  | ":entropy_src_kat_impl", | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/dif:entropy_src", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing/test_framework:check", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "entropy_src_smoketest", | 
|  | srcs = ["entropy_src_smoketest.c"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:memory", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:base", | 
|  | "//sw/device/lib/dif:entropy_src", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:entropy_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "entropy_src_ast_rng_req_test", | 
|  | srcs = ["entropy_src_ast_rng_req_test.c"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:memory", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:entropy_src", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "entropy_src_csrng_test", | 
|  | srcs = ["entropy_src_csrng_test.c"], | 
|  | verilator = verilator_params( | 
|  | timeout = "long", | 
|  | ), | 
|  | deps = [ | 
|  | ":otbn_randomness_impl", | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:memory", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:base", | 
|  | "//sw/device/lib/dif:csrng", | 
|  | "//sw/device/lib/dif:edn", | 
|  | "//sw/device/lib/dif:entropy_src", | 
|  | "//sw/device/lib/dif:otbn", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:csrng_testutils", | 
|  | "//sw/device/lib/testing:entropy_testutils", | 
|  | "//sw/device/lib/testing:isr_testutils", | 
|  | "//sw/device/lib/testing:otbn_testutils", | 
|  | "//sw/device/lib/testing:rand_testutils", | 
|  | "//sw/device/lib/testing:rv_plic_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "entropy_src_edn_reqs_test", | 
|  | srcs = ["entropy_src_edn_reqs_test.c"], | 
|  | verilator = verilator_params( | 
|  | timeout = "long", | 
|  | ), | 
|  | deps = [ | 
|  | ":otbn_randomness_impl", | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:memory", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:aes", | 
|  | "//sw/device/lib/dif:alert_handler", | 
|  | "//sw/device/lib/dif:entropy_src", | 
|  | "//sw/device/lib/dif:keymgr", | 
|  | "//sw/device/lib/dif:kmac", | 
|  | "//sw/device/lib/dif:otbn", | 
|  | "//sw/device/lib/dif:otp_ctrl", | 
|  | "//sw/device/lib/dif:pwrmgr", | 
|  | "//sw/device/lib/dif:rv_core_ibex", | 
|  | "//sw/device/lib/runtime:hart", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:aes_testutils", | 
|  | "//sw/device/lib/testing:alert_handler_testutils", | 
|  | "//sw/device/lib/testing:entropy_testutils", | 
|  | "//sw/device/lib/testing:keymgr_testutils", | 
|  | "//sw/device/lib/testing:otp_ctrl_testutils", | 
|  | "//sw/device/lib/testing:pwrmgr_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "example_concurrency_test", | 
|  | srcs = ["example_concurrency_test.c"], | 
|  | deps = [ | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing/test_framework:check", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "example_test_from_flash", | 
|  | srcs = ["example_test_from_flash.c"], | 
|  | deps = [ | 
|  | "//sw/device/lib/testing:rand_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "example_test_from_rom", | 
|  | srcs = ["example_test_from_rom.c"], | 
|  | targets = [ | 
|  | "dv", | 
|  | "verilator", | 
|  | ], | 
|  | # This test is designed to run and complete entirely in the ROM boot stage. | 
|  | # Setting the `test_in_rom` flag makes the `opentitan_functest` rule aware | 
|  | # of this, and instructs it to load the test image into ROM (rather than | 
|  | # loading the default test ROM, or any other ROM that may be specified via | 
|  | # DV or Verilator params). | 
|  | test_in_rom = True, | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/arch:device", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:uart", | 
|  | "//sw/device/lib/runtime:hart", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/runtime:print", | 
|  | "//sw/device/lib/testing:pinmux_testutils", | 
|  | "//sw/device/lib/testing/test_framework:check", | 
|  | "//sw/device/lib/testing/test_framework:status", | 
|  | "//sw/device/lib/testing/test_rom:linker_script", | 
|  | "//sw/device/lib/testing/test_rom:test_rom_lib", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "flash_ctrl_idle_low_power_test", | 
|  | srcs = ["flash_ctrl_idle_low_power_test.c"], | 
|  | targets = [ | 
|  | "dv", | 
|  | "verilator", | 
|  | "cw310_test_rom", | 
|  | ], | 
|  | verilator = verilator_params( | 
|  | tags = [ | 
|  | "broken", | 
|  | ], | 
|  | ), | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:aon_timer", | 
|  | "//sw/device/lib/dif:flash_ctrl", | 
|  | "//sw/device/lib/dif:pwrmgr", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//sw/device/lib/dif:rv_plic", | 
|  | "//sw/device/lib/runtime:ibex", | 
|  | "//sw/device/lib/runtime:irq", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:flash_ctrl_testutils", | 
|  | "//sw/device/lib/testing:isr_testutils", | 
|  | "//sw/device/lib/testing:pwrmgr_testutils", | 
|  | "//sw/device/lib/testing:rand_testutils", | 
|  | "//sw/device/lib/testing:rstmgr_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "flash_ctrl_ops_test", | 
|  | srcs = ["flash_ctrl_ops_test.c"], | 
|  | cw310 = cw310_params( | 
|  | # FIXME #12486 [bazel] targets in sw/device/tests failing on cw310 and verilator when built by bazel | 
|  | tags = ["broken"], | 
|  | ), | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:flash_ctrl", | 
|  | "//sw/device/lib/dif:rv_plic", | 
|  | "//sw/device/lib/runtime:irq", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:flash_ctrl_testutils", | 
|  | "//sw/device/lib/testing:isr_testutils", | 
|  | "//sw/device/lib/testing:rv_plic_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "flash_ctrl_clock_freqs_test", | 
|  | srcs = ["flash_ctrl_clock_freqs_test.c"], | 
|  | cw310 = cw310_params( | 
|  | # FIXME #12486 [bazel] targets in sw/device/tests failing on cw310 and verilator when built by bazel | 
|  | tags = ["broken"], | 
|  | ), | 
|  | verilator = verilator_params( | 
|  | timeout = "long", | 
|  | ), | 
|  | deps = [ | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:clkmgr", | 
|  | "//sw/device/lib/dif:flash_ctrl", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:flash_ctrl_testutils", | 
|  | "//sw/device/lib/testing:rand_testutils", | 
|  | "//sw/device/lib/testing/test_framework:check", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "flash_ctrl_test", | 
|  | srcs = ["flash_ctrl_test.c"], | 
|  | verilator = verilator_params( | 
|  | timeout = "long", | 
|  | ), | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:macros", | 
|  | "//sw/device/lib/base:memory", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:flash_ctrl", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:flash_ctrl_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "gpio_smoketest", | 
|  | srcs = ["gpio_smoketest.c"], | 
|  | targets = [ | 
|  | #not compatible with the verilated top level | 
|  | "cw310_test_rom", | 
|  | "dv", | 
|  | ], | 
|  | deps = [ | 
|  | "//sw/device/lib/dif:gpio", | 
|  | "//sw/device/lib/dif:pinmux", | 
|  | "//sw/device/lib/testing:pinmux_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "gpio_pinmux_test", | 
|  | srcs = ["gpio_pinmux_test.c"], | 
|  | targets = [ | 
|  | "verilator", | 
|  | ], | 
|  | test_harness = "//sw/host/tests/chip/gpio", | 
|  | verilator = verilator_params( | 
|  | timeout = "eternal", | 
|  | test_cmds = [], | 
|  | ), | 
|  | deps = [ | 
|  | "//sw/device/lib/dif:gpio", | 
|  | "//sw/device/lib/dif:pinmux", | 
|  | "//sw/device/lib/testing/json:command", | 
|  | "//sw/device/lib/testing/json:gpio", | 
|  | "//sw/device/lib/testing/json:pinmux_config", | 
|  | "//sw/device/lib/testing/test_framework:ottf_flow_control", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "hmac_enc_test", | 
|  | srcs = ["hmac_enc_test.c"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:hmac", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:hmac_testutils", | 
|  | "//sw/device/lib/testing:isr_testutils", | 
|  | "//sw/device/lib/testing:rv_plic_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "hmac_enc_idle_test", | 
|  | srcs = ["hmac_enc_idle_test.c"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:clkmgr", | 
|  | "//sw/device/lib/dif:hmac", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:clkmgr_testutils", | 
|  | "//sw/device/lib/testing:hmac_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "hmac_smoketest", | 
|  | srcs = ["hmac_smoketest.c"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/arch:device", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:hmac", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:hmac_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "keymgr_key_derivation_test", | 
|  | srcs = ["keymgr_key_derivation_test.c"], | 
|  | verilator = verilator_params( | 
|  | timeout = "long", | 
|  | ), | 
|  | deps = [ | 
|  | "//hw/ip/keymgr/data:keymgr_regs", | 
|  | "//hw/ip/kmac/data:kmac_regs", | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/arch:device", | 
|  | "//sw/device/lib/base:macros", | 
|  | "//sw/device/lib/dif:keymgr", | 
|  | "//sw/device/lib/dif:kmac", | 
|  | "//sw/device/lib/runtime:hart", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/runtime:print", | 
|  | "//sw/device/lib/testing:keymgr_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "keymgr_sideload_aes_test", | 
|  | srcs = ["keymgr_sideload_aes_test.c"], | 
|  | verilator = verilator_params( | 
|  | timeout = "long", | 
|  | ), | 
|  | deps = [ | 
|  | "//hw/ip/aes/data:aes_regs", | 
|  | "//hw/ip/keymgr/data:keymgr_regs", | 
|  | "//hw/ip/kmac/data:kmac_regs", | 
|  | "//sw/device/lib/arch:device", | 
|  | "//sw/device/lib/base:macros", | 
|  | "//sw/device/lib/dif:aes", | 
|  | "//sw/device/lib/dif:keymgr", | 
|  | "//sw/device/lib/dif:kmac", | 
|  | "//sw/device/lib/runtime:hart", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/runtime:print", | 
|  | "//sw/device/lib/testing:aes_testutils", | 
|  | "//sw/device/lib/testing:entropy_testutils", | 
|  | "//sw/device/lib/testing:keymgr_testutils", | 
|  | "//sw/device/lib/testing:kmac_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "keymgr_sideload_kmac_test", | 
|  | srcs = ["keymgr_sideload_kmac_test.c"], | 
|  | verilator = verilator_params( | 
|  | timeout = "long", | 
|  | ), | 
|  | deps = [ | 
|  | "//hw/ip/keymgr/data:keymgr_regs", | 
|  | "//hw/ip/kmac/data:kmac_regs", | 
|  | "//sw/device/lib/arch:device", | 
|  | "//sw/device/lib/base:macros", | 
|  | "//sw/device/lib/dif:keymgr", | 
|  | "//sw/device/lib/dif:kmac", | 
|  | "//sw/device/lib/runtime:hart", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/runtime:print", | 
|  | "//sw/device/lib/testing:keymgr_testutils", | 
|  | "//sw/device/lib/testing:kmac_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "keymgr_sideload_otbn_test", | 
|  | srcs = ["keymgr_sideload_otbn_test.c"], | 
|  | verilator = verilator_params( | 
|  | timeout = "eternal", | 
|  | ), | 
|  | deps = [ | 
|  | "//hw/ip/otbn/data:otbn_regs", | 
|  | "//sw/device/lib/arch:device", | 
|  | "//sw/device/lib/base:macros", | 
|  | "//sw/device/lib/dif:keymgr", | 
|  | "//sw/device/lib/dif:otbn", | 
|  | "//sw/device/lib/runtime:hart", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/runtime:print", | 
|  | "//sw/device/lib/testing:keymgr_testutils", | 
|  | "//sw/device/lib/testing:otbn_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | "//sw/otbn/crypto:x25519_sideload", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "kmac_app_rom_test", | 
|  | srcs = ["kmac_app_rom_test.c"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:rom_ctrl", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "kmac_entropy_test", | 
|  | srcs = ["kmac_entropy_test.c"], | 
|  | cw310 = cw310_params( | 
|  | # FIXME #15530: EDN doesn't timeout on FPGA | 
|  | tags = ["broken"], | 
|  | ), | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:kmac", | 
|  | "//sw/device/lib/runtime:irq", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "kmac_idle_test", | 
|  | srcs = ["kmac_idle_test.c"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:clkmgr", | 
|  | "//sw/device/lib/dif:kmac", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "kmac_mode_cshake_test", | 
|  | srcs = ["kmac_mode_cshake_test.c"], | 
|  | verilator = verilator_params( | 
|  | timeout = "long", | 
|  | ), | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/arch:device", | 
|  | "//sw/device/lib/base:macros", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:kmac", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "kmac_mode_kmac_test", | 
|  | srcs = ["kmac_mode_kmac_test.c"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/arch:device", | 
|  | "//sw/device/lib/base:macros", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:kmac", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "kmac_smoketest", | 
|  | srcs = ["kmac_smoketest.c"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/arch:device", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:kmac", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "lc_ctrl_otp_hw_cfg_test", | 
|  | srcs = ["lc_ctrl_otp_hw_cfg_test.c"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:bitfield", | 
|  | "//sw/device/lib/base:memory", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:lc_ctrl", | 
|  | "//sw/device/lib/dif:otp_ctrl", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:otp_ctrl_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "otbn_ecdsa_op_irq_test", | 
|  | srcs = ["otbn_ecdsa_op_irq_test.c"], | 
|  | verilator = verilator_params( | 
|  | timeout = "long", | 
|  | ), | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/dif:otbn", | 
|  | "//sw/device/lib/runtime:ibex", | 
|  | "//sw/device/lib/runtime:irq", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:entropy_testutils", | 
|  | "//sw/device/lib/testing:otbn_testutils", | 
|  | "//sw/device/lib/testing:rv_plic_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | "//sw/otbn/crypto:p256_ecdsa", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "otbn_irq_test", | 
|  | srcs = ["otbn_irq_test.c"], | 
|  | verilator = verilator_params( | 
|  | timeout = "long", | 
|  | ), | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/dif:otbn", | 
|  | "//sw/device/lib/dif:rv_plic", | 
|  | "//sw/device/lib/runtime:ibex", | 
|  | "//sw/device/lib/runtime:irq", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:entropy_testutils", | 
|  | "//sw/device/lib/testing:otbn_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | "//sw/otbn/code-snippets:err_test", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "otbn_mem_scramble_test", | 
|  | srcs = ["otbn_mem_scramble_test.c"], | 
|  | cw310 = cw310_params( | 
|  | # FIXME #12486 [bazel] targets in sw/device/tests failing on cw310 and verilator when built by bazel | 
|  | tags = ["broken"], | 
|  | ), | 
|  | verilator = verilator_params( | 
|  | timeout = "long", | 
|  | ), | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/dif:base", | 
|  | "//sw/device/lib/dif:otbn", | 
|  | "//sw/device/lib/dif:rv_core_ibex", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:otbn_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | cc_library( | 
|  | name = "otbn_randomness_impl", | 
|  | srcs = ["otbn_randomness_impl.c"], | 
|  | hdrs = ["otbn_randomness_impl.h"], | 
|  | target_compatible_with = [OPENTITAN_CPU], | 
|  | deps = [ | 
|  | "//sw/device/lib/dif:base", | 
|  | "//sw/device/lib/dif:otbn", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:otbn_testutils", | 
|  | "//sw/device/lib/testing/test_framework:check", | 
|  | "//sw/otbn/code-snippets:randomness", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "otbn_randomness_test", | 
|  | srcs = ["otbn_randomness_test.c"], | 
|  | verilator = verilator_params( | 
|  | timeout = "long", | 
|  | ), | 
|  | deps = [ | 
|  | ":otbn_randomness_impl", | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/dif:base", | 
|  | "//sw/device/lib/dif:clkmgr", | 
|  | "//sw/device/lib/dif:otbn", | 
|  | "//sw/device/lib/runtime:ibex", | 
|  | "//sw/device/lib/runtime:irq", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:clkmgr_testutils", | 
|  | "//sw/device/lib/testing:entropy_testutils", | 
|  | "//sw/device/lib/testing:otbn_testutils", | 
|  | "//sw/device/lib/testing:rv_plic_testutils", | 
|  | "//sw/device/lib/testing/test_framework:check", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "otbn_rsa_test", | 
|  | srcs = ["otbn_rsa_test.c"], | 
|  | verilator = verilator_params( | 
|  | timeout = "eternal", | 
|  | ), | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/dif:otbn", | 
|  | "//sw/device/lib/runtime:ibex", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:entropy_testutils", | 
|  | "//sw/device/lib/testing:otbn_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | "//sw/otbn/crypto:rsa", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "otbn_smoketest", | 
|  | srcs = ["otbn_smoketest.c"], | 
|  | verilator = verilator_params( | 
|  | timeout = "long", | 
|  | ), | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/dif:otbn", | 
|  | "//sw/device/lib/runtime:ibex", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:entropy_testutils", | 
|  | "//sw/device/lib/testing:otbn_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | "//sw/otbn/code-snippets:barrett384", | 
|  | "//sw/otbn/code-snippets:err_test", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "otp_ctrl_smoketest", | 
|  | srcs = ["otp_ctrl_smoketest.c"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:bitfield", | 
|  | "//sw/device/lib/base:macros", | 
|  | "//sw/device/lib/base:memory", | 
|  | "//sw/device/lib/dif:otp_ctrl", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:otp_ctrl_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "plic_sw_irq_test", | 
|  | srcs = ["plic_sw_irq_test.c"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:abs_mmio", | 
|  | "//sw/device/lib/base:math", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:rv_plic", | 
|  | "//sw/device/lib/runtime:irq", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:rv_plic_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "pmp_smoketest_napot", | 
|  | srcs = ["pmp_smoketest_napot.c"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:csr", | 
|  | "//sw/device/lib/runtime:hart", | 
|  | "//sw/device/lib/runtime:irq", | 
|  | "//sw/device/lib/runtime:pmp", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "pmp_smoketest_tor", | 
|  | srcs = ["pmp_smoketest_tor.c"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:csr", | 
|  | "//sw/device/lib/runtime:hart", | 
|  | "//sw/device/lib/runtime:irq", | 
|  | "//sw/device/lib/runtime:pmp", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "pwrmgr_smoketest", | 
|  | srcs = ["pwrmgr_smoketest.c"], | 
|  | verilator = verilator_params( | 
|  | timeout = "long", | 
|  | ), | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:aon_timer", | 
|  | "//sw/device/lib/dif:pwrmgr", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:aon_timer_testutils", | 
|  | "//sw/device/lib/testing:pwrmgr_testutils", | 
|  | "//sw/device/lib/testing:rstmgr_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "pwrmgr_sleep_disabled_test", | 
|  | srcs = ["pwrmgr_sleep_disabled_test.c"], | 
|  | cw310 = cw310_params( | 
|  | # FIXME #12486 [bazel] targets in sw/device/tests failing on cw310 and verilator when built by bazel | 
|  | tags = ["broken"], | 
|  | ), | 
|  | verilator = verilator_params( | 
|  | tags = ["broken"], | 
|  | ), | 
|  | deps = [ | 
|  | "//sw/device/lib/dif:aon_timer", | 
|  | "//sw/device/lib/dif:pwrmgr", | 
|  | "//sw/device/lib/dif:rv_plic", | 
|  | "//sw/device/lib/runtime:irq", | 
|  | "//sw/device/lib/testing:aon_timer_testutils", | 
|  | "//sw/device/lib/testing:pwrmgr_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "rstmgr_smoketest", | 
|  | srcs = ["rstmgr_smoketest.c"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//sw/device/lib/testing:rstmgr_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "rstmgr_cpu_info_test", | 
|  | srcs = ["rstmgr_cpu_info_test.c"], | 
|  | targets = [ | 
|  | "cw310_test_rom", | 
|  | "dv", | 
|  | "verilator", | 
|  | ], | 
|  | verilator = verilator_params( | 
|  | timeout = "long", | 
|  | tags = ["broken"], | 
|  | ), | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:abs_mmio", | 
|  | "//sw/device/lib/base:macros", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:pwrmgr", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//sw/device/lib/dif:rv_core_ibex", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:aon_timer_testutils", | 
|  | "//sw/device/lib/testing:rstmgr_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "rstmgr_sw_req_test", | 
|  | srcs = ["rstmgr_sw_req_test.c"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:rstmgr_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "rstmgr_sw_rst_ctrl_test", | 
|  | srcs = ["rstmgr_sw_rst_ctrl_test.c"], | 
|  | verilator = verilator_params( | 
|  | timeout = "long", | 
|  | ), | 
|  | deps = [ | 
|  | "//hw/ip/i2c/data:i2c_regs", | 
|  | "//hw/ip/spi_device/data:spi_device_regs", | 
|  | "//hw/ip/spi_host/data:spi_host_regs", | 
|  | "//hw/ip/usbdev/data:usbdev_regs", | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/arch:device", | 
|  | "//sw/device/lib/base:memory", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:i2c", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//sw/device/lib/dif:spi_device", | 
|  | "//sw/device/lib/dif:spi_host", | 
|  | "//sw/device/lib/dif:usbdev", | 
|  | "//sw/device/lib/runtime:hart", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "rv_plic_smoketest", | 
|  | srcs = ["rv_plic_smoketest.c"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:rv_plic", | 
|  | "//sw/device/lib/dif:uart", | 
|  | "//sw/device/lib/runtime:hart", | 
|  | "//sw/device/lib/runtime:irq", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | "//sw/device/lib/testing/test_framework:status", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "rv_timer_smoketest", | 
|  | srcs = ["rv_timer_smoketest.c"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/dif:rv_timer", | 
|  | "//sw/device/lib/runtime:hart", | 
|  | "//sw/device/lib/runtime:ibex", | 
|  | "//sw/device/lib/runtime:irq", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "spi_host_smoketest", | 
|  | srcs = ["spi_host_smoketest.c"], | 
|  | targets = ["cw310_test_rom"],  # Can only run on CW310 board right now. | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/arch:device", | 
|  | "//sw/device/lib/base:memory", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:spi_host", | 
|  | "//sw/device/lib/runtime:hart", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/runtime:print", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "sensor_ctrl_alert_test", | 
|  | srcs = ["sensor_ctrl_alerts.c"], | 
|  | verilator = verilator_params( | 
|  | timeout = "eternal", | 
|  | ), | 
|  | deps = [ | 
|  | "//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:memory", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:alert_handler", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//sw/device/lib/dif:rv_plic", | 
|  | "//sw/device/lib/dif:sensor_ctrl", | 
|  | "//sw/device/lib/runtime:hart", | 
|  | "//sw/device/lib/runtime:ibex", | 
|  | "//sw/device/lib/runtime:irq", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/runtime:print", | 
|  | "//sw/device/lib/testing:flash_ctrl_testutils", | 
|  | "//sw/device/lib/testing:pwrmgr_testutils", | 
|  | "//sw/device/lib/testing:rand_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "sensor_ctrl_wakeup_test", | 
|  | srcs = ["sensor_ctrl_wakeup.c"], | 
|  | verilator = verilator_params( | 
|  | timeout = "long", | 
|  | ), | 
|  | deps = [ | 
|  | "//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:memory", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:pwrmgr", | 
|  | "//sw/device/lib/dif:rv_plic", | 
|  | "//sw/device/lib/dif:sensor_ctrl", | 
|  | "//sw/device/lib/runtime:hart", | 
|  | "//sw/device/lib/runtime:irq", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/runtime:print", | 
|  | "//sw/device/lib/testing:isr_testutils", | 
|  | "//sw/device/lib/testing:pwrmgr_testutils", | 
|  | "//sw/device/lib/testing:rv_plic_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "sleep_pwm_pulses_test", | 
|  | srcs = ["sleep_pwm_pulses_test.c"], | 
|  | verilator = verilator_params( | 
|  | timeout = "eternal", | 
|  | tags = ["broken"], | 
|  | ), | 
|  | deps = [ | 
|  | "//hw/ip/pwm/data:pwm_regs", | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:aon_timer", | 
|  | "//sw/device/lib/dif:pinmux", | 
|  | "//sw/device/lib/dif:pwm", | 
|  | "//sw/device/lib/dif:pwrmgr", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:aon_timer_testutils", | 
|  | "//sw/device/lib/testing:pwrmgr_testutils", | 
|  | "//sw/device/lib/testing:rstmgr_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "sram_ctrl_execution_test", | 
|  | srcs = ["sram_ctrl_execution_test.c"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/examples/sram_program", | 
|  | "//sw/device/lib/base:csr", | 
|  | "//sw/device/lib/base:macros", | 
|  | "//sw/device/lib/dif:sram_ctrl", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | "//sw/device/silicon_creator/lib:epmp_state", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "sram_ctrl_sleep_sram_ret_contents_test", | 
|  | srcs = ["sram_ctrl_sleep_sram_ret_contents_test.c"], | 
|  | verilator = verilator_params( | 
|  | timeout = "long", | 
|  | ), | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:aon_timer", | 
|  | "//sw/device/lib/dif:flash_ctrl", | 
|  | "//sw/device/lib/dif:pwrmgr", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:aon_timer_testutils", | 
|  | "//sw/device/lib/testing:flash_ctrl_testutils", | 
|  | "//sw/device/lib/testing:isr_testutils", | 
|  | "//sw/device/lib/testing:pwrmgr_testutils", | 
|  | "//sw/device/lib/testing:rstmgr_testutils", | 
|  | "//sw/device/lib/testing:rv_plic_testutils", | 
|  | "//sw/device/lib/testing:sram_ctrl_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | "//sw/device/silicon_creator/lib/drivers:retention_sram", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "sram_ctrl_smoketest", | 
|  | srcs = ["sram_ctrl_smoketest.c"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/arch:device", | 
|  | "//sw/device/lib/base:macros", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:sram_ctrl", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "uart_smoketest_signed", | 
|  | srcs = ["uart_smoketest.c"], | 
|  | cw310 = cw310_params( | 
|  | exit_failure = ROM_BOOT_FAILURE_MSG, | 
|  | ), | 
|  | dv = dv_params( | 
|  | rom = "//sw/device/silicon_creator/rom:rom_with_fake_keys", | 
|  | ), | 
|  | manifest = "//sw/device/silicon_creator/rom_ext:manifest_standard", | 
|  | signed = True, | 
|  | targets = [ | 
|  | "cw310_rom", | 
|  | "verilator", | 
|  | "dv", | 
|  | ], | 
|  | verilator = verilator_params( | 
|  | timeout = "eternal", | 
|  | exit_failure = ROM_BOOT_FAILURE_MSG, | 
|  | rom = "//sw/device/silicon_creator/rom:rom_with_fake_keys", | 
|  | ), | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/arch:device", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:uart", | 
|  | "//sw/device/lib/runtime:hart", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "uart_smoketest", | 
|  | srcs = ["uart_smoketest.c"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/arch:device", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:uart", | 
|  | "//sw/device/lib/runtime:hart", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "usbdev_test", | 
|  | srcs = ["usbdev_test.c"], | 
|  | cw310 = cw310_params( | 
|  | tags = ["skip_in_ci"],  # Requires DPI model | 
|  | ), | 
|  | targets = [ | 
|  | "verilator", | 
|  | "cw310_test_rom", | 
|  | ], | 
|  | verilator = verilator_params( | 
|  | timeout = "long", | 
|  | ), | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/dif:pinmux", | 
|  | "//sw/device/lib/dif:usbdev", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/runtime:print", | 
|  | "//sw/device/lib/testing:pinmux_testutils", | 
|  | "//sw/device/lib/testing:usb_testutils", | 
|  | "//sw/device/lib/testing:usb_testutils_simpleserial", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "rstmgr_alert_info_test", | 
|  | srcs = ["rstmgr_alert_info_test.c"], | 
|  | cw310 = cw310_params( | 
|  | tags = ["broken"],  # FIXME #16576 fails in non-CI environments | 
|  | ), | 
|  | targets = [ | 
|  | "cw310_test_rom", | 
|  | "verilator", | 
|  | "dv", | 
|  | ], | 
|  | verilator = verilator_params( | 
|  | timeout = "long", | 
|  | tags = ["broken"], | 
|  | ), | 
|  | deps = [ | 
|  | "//hw/top_earlgrey:alert_handler_regs", | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/arch:device", | 
|  | "//sw/device/lib/base:memory", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:alert_handler", | 
|  | "//sw/device/lib/dif:aon_timer", | 
|  | "//sw/device/lib/dif:i2c", | 
|  | "//sw/device/lib/dif:otp_ctrl", | 
|  | "//sw/device/lib/dif:pwrmgr", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//sw/device/lib/dif:rv_core_ibex", | 
|  | "//sw/device/lib/dif:rv_plic", | 
|  | "//sw/device/lib/dif:rv_timer", | 
|  | "//sw/device/lib/dif:spi_host", | 
|  | "//sw/device/lib/dif:uart", | 
|  | "//sw/device/lib/runtime:hart", | 
|  | "//sw/device/lib/runtime:ibex", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:alert_handler_testutils", | 
|  | "//sw/device/lib/testing:aon_timer_testutils", | 
|  | "//sw/device/lib/testing:flash_ctrl_testutils", | 
|  | "//sw/device/lib/testing:rstmgr_testutils", | 
|  | "//sw/device/lib/testing:rv_plic_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "rv_core_ibex_rnd_test", | 
|  | srcs = [ | 
|  | "rv_core_ibex_rnd_test.S", | 
|  | "rv_core_ibex_rnd_test.c", | 
|  | ], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:memory", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:edn", | 
|  | "//sw/device/lib/dif:rv_core_ibex", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:entropy_testutils", | 
|  | "//sw/device/lib/testing:rv_core_ibex_testutils", | 
|  | "//sw/device/lib/testing/test_framework:check", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "rv_core_ibex_address_translation_test", | 
|  | srcs = [ | 
|  | "rv_core_ibex_address_translation_test.S", | 
|  | "rv_core_ibex_address_translation_test.c", | 
|  | ], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:csr", | 
|  | "//sw/device/lib/base:memory", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:rv_core_ibex", | 
|  | "//sw/device/lib/runtime:ibex", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | "//sw/device/silicon_creator/lib:epmp_state", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "rv_core_ibex_nmi_irq_test", | 
|  | srcs = ["rv_core_ibex_nmi_irq_test.c"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/dif:alert_handler", | 
|  | "//sw/device/lib/dif:aon_timer", | 
|  | "//sw/device/lib/dif:rv_core_ibex", | 
|  | "//sw/device/lib/runtime:irq", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:alert_handler_testutils", | 
|  | "//sw/device/lib/testing:aon_timer_testutils", | 
|  | "//sw/device/lib/testing:isr_testutils", | 
|  | "//sw/device/lib/testing:pwrmgr_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "rv_core_ibex_icache_invalidate_test", | 
|  | srcs = ["rv_core_ibex_icache_invalidate_test.c"], | 
|  | deps = [ | 
|  | "//sw/device/lib/runtime:hart", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "ast_clk_outs_test", | 
|  | srcs = ["ast_clk_outs_test.c"], | 
|  | cw310 = cw310_params( | 
|  | # FIXME #13611 | 
|  | tags = ["broken"], | 
|  | ), | 
|  | verilator = verilator_params( | 
|  | # FIXME #13611 | 
|  | timeout = "eternal", | 
|  | tags = ["broken"], | 
|  | ), | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/arch:device", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:sensor_ctrl", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:aon_timer_testutils", | 
|  | "//sw/device/lib/testing:clkmgr_testutils", | 
|  | "//sw/device/lib/testing:pwrmgr_testutils", | 
|  | "//sw/device/lib/testing:sensor_ctrl_testutils", | 
|  | "//sw/device/lib/testing/test_framework:check", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | otp_json( | 
|  | name = "power_virus_systemtest_otp_overlay", | 
|  | partitions = [ | 
|  | otp_partition( | 
|  | name = "CREATOR_SW_CFG", | 
|  | items = { | 
|  | "CREATOR_SW_CFG_FLASH_DATA_DEFAULT_CFG": "0000090909", | 
|  | # TODO(#14814): enable flash scrambling / ECC by replacing above | 
|  | # with below. | 
|  | #"CREATOR_SW_CFG_FLASH_DATA_DEFAULT_CFG": "0000090606", | 
|  | }, | 
|  | ), | 
|  | ], | 
|  | ) | 
|  |  | 
|  | otp_image( | 
|  | name = "power_virus_systemtest_otp_img_rma", | 
|  | src = "//hw/ip/otp_ctrl/data:otp_json_rma", | 
|  | overlays = STD_OTP_OVERLAYS + [":power_virus_systemtest_otp_overlay"], | 
|  | visibility = ["//visibility:private"], | 
|  | ) | 
|  |  | 
|  | bitstream_splice( | 
|  | name = "power_virus_systemtest_bitstream", | 
|  | src = "//hw/bitstream:test_rom", | 
|  | data = ":power_virus_systemtest_otp_img_rma", | 
|  | meminfo = "//hw/bitstream:otp_mmi", | 
|  | tags = ["vivado"], | 
|  | update_usr_access = True, | 
|  | visibility = ["//visibility:private"], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "power_virus_systemtest", | 
|  | srcs = ["power_virus_systemtest.c"], | 
|  | cw310 = cw310_params( | 
|  | bitstream = ":power_virus_systemtest_bitstream", | 
|  | tags = ["vivado"], | 
|  | test_cmds = [ | 
|  | "--rom-kind={rom_kind}", | 
|  | "--bitstream=\"$(location {bitstream})\"", | 
|  | "--bootstrap=\"$(location {flash})\"", | 
|  | ], | 
|  | ), | 
|  | targets = [ | 
|  | # TODO(#14814): add more targets | 
|  | "cw310_test_rom", | 
|  | "dv", | 
|  | ], | 
|  | test_harness = "//sw/host/tests/chip/power_virus", | 
|  | deps = [ | 
|  | "//hw/ip/adc_ctrl/data:adc_ctrl_regs", | 
|  | "//hw/ip/aes:model", | 
|  | "//hw/ip/aes/data:aes_regs", | 
|  | "//hw/ip/entropy_src/data:entropy_src_regs", | 
|  | "//hw/ip/hmac/data:hmac_regs", | 
|  | "//hw/ip/i2c/data:i2c_regs", | 
|  | "//hw/ip/kmac/data:kmac_regs", | 
|  | "//hw/ip/pattgen/data:pattgen_regs", | 
|  | "//hw/ip/pwm/data:pwm_regs", | 
|  | "//hw/ip/spi_host/data:spi_host_regs", | 
|  | "//hw/ip/uart/data:uart_regs", | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:math", | 
|  | "//sw/device/lib/base:multibits", | 
|  | "//sw/device/lib/crypto/drivers:otbn", | 
|  | "//sw/device/lib/crypto/impl/rsa_3072:rsa_3072_verify", | 
|  | "//sw/device/lib/dif:adc_ctrl", | 
|  | "//sw/device/lib/dif:aes", | 
|  | "//sw/device/lib/dif:csrng", | 
|  | "//sw/device/lib/dif:csrng_shared", | 
|  | "//sw/device/lib/dif:edn", | 
|  | "//sw/device/lib/dif:entropy_src", | 
|  | "//sw/device/lib/dif:flash_ctrl", | 
|  | "//sw/device/lib/dif:gpio", | 
|  | "//sw/device/lib/dif:hmac", | 
|  | "//sw/device/lib/dif:i2c", | 
|  | "//sw/device/lib/dif:kmac", | 
|  | "//sw/device/lib/dif:pattgen", | 
|  | "//sw/device/lib/dif:pinmux", | 
|  | "//sw/device/lib/dif:pwm", | 
|  | "//sw/device/lib/dif:rv_plic", | 
|  | "//sw/device/lib/dif:spi_device", | 
|  | "//sw/device/lib/dif:spi_host", | 
|  | "//sw/device/lib/dif:uart", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:aes_testutils", | 
|  | "//sw/device/lib/testing:entropy_testutils", | 
|  | "//sw/device/lib/testing:hmac_testutils", | 
|  | "//sw/device/lib/testing:i2c_testutils", | 
|  | "//sw/device/lib/testing:pinmux_testutils", | 
|  | "//sw/device/lib/testing:spi_device_testutils", | 
|  | "//sw/device/lib/testing/test_framework:check", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | "//sw/device/tests/crypto:rsa_3072_verify_testvectors_hardcoded_header", | 
|  | ], | 
|  | ) |