|  | # Copyright lowRISC contributors. | 
|  | # Licensed under the Apache License, Version 2.0, see LICENSE for details. | 
|  | # SPDX-License-Identifier: Apache-2.0 | 
|  |  | 
|  | load("//rules:opentitan.bzl", "OPENTITAN_CPU") | 
|  | load("//rules:opentitan_test.bzl", "opentitan_functest") | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "uart_tx_rx_test", | 
|  | srcs = ["uart_tx_rx_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/ip/lc_ctrl/data:lc_ctrl_regs", | 
|  | "//hw/top_earlgrey/ip/clkmgr/data/autogen:clkmgr_regs", | 
|  | "//hw/top_earlgrey/ip/pinmux/data/autogen:pinmux_regs", | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:clkmgr", | 
|  | "//sw/device/lib/dif:lc_ctrl", | 
|  | "//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:clkmgr_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "i2c_host_tx_rx_test", | 
|  | srcs = ["i2c_host_tx_rx_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/ip/lc_ctrl/data:lc_ctrl_regs", | 
|  | "//hw/top_earlgrey/ip/clkmgr/data/autogen:clkmgr_regs", | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:i2c", | 
|  | "//sw/device/lib/dif:pinmux", | 
|  | "//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:i2c_testutils", | 
|  | "//sw/device/lib/testing:isr_testutils", | 
|  | "//sw/device/lib/testing:rand_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "i2c_device_tx_rx_test", | 
|  | srcs = ["i2c_device_tx_rx_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/ip/lc_ctrl/data:lc_ctrl_regs", | 
|  | "//hw/top_earlgrey/ip/clkmgr/data/autogen:clkmgr_regs", | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:i2c", | 
|  | "//sw/device/lib/dif:pinmux", | 
|  | "//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:i2c_testutils", | 
|  | "//sw/device/lib/testing:isr_testutils", | 
|  | "//sw/device/lib/testing:rand_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "flash_ctrl_lc_rw_en_test", | 
|  | srcs = ["flash_ctrl_lc_rw_en_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:macros", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:flash_ctrl", | 
|  | "//sw/device/lib/dif:keymgr", | 
|  | "//sw/device/lib/dif:kmac", | 
|  | "//sw/device/lib/dif:lc_ctrl", | 
|  | "//sw/device/lib/dif:otp_ctrl", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:flash_ctrl_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "flash_rma_unlocked_test", | 
|  | srcs = ["flash_rma_unlocked_test.c"], | 
|  | # This test doesn't use the OTTF. | 
|  | targets = ["dv"], | 
|  | # 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. | 
|  | 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:flash_ctrl", | 
|  | "//sw/device/lib/dif:lc_ctrl", | 
|  | "//sw/device/lib/dif:otp_ctrl", | 
|  | "//sw/device/lib/dif:uart", | 
|  | "//sw/device/lib/runtime:hart", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/runtime:print", | 
|  | "//sw/device/lib/testing:flash_ctrl_testutils", | 
|  | "//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_init_test", | 
|  | srcs = ["flash_init_test.c"], | 
|  | # This test doesn't use the OTTF. | 
|  | targets = ["dv"], | 
|  | # 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). | 
|  | 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:flash_ctrl", | 
|  | "//sw/device/lib/dif:uart", | 
|  | "//sw/device/lib/runtime:hart", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/runtime:print", | 
|  | "//sw/device/lib/testing:flash_ctrl_testutils", | 
|  | "//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 = "gpio_test", | 
|  | srcs = ["gpio_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/arch:device", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:gpio", | 
|  | "//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:pinmux_testutils", | 
|  | "//sw/device/lib/testing:rv_plic_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "sysrst_ctrl_inputs_test", | 
|  | srcs = ["sysrst_ctrl_inputs_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:pinmux", | 
|  | "//sw/device/lib/dif:sysrst_ctrl", | 
|  | "//sw/device/lib/runtime:ibex", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "sysrst_ctrl_in_irq_test", | 
|  | srcs = ["sysrst_ctrl_in_irq_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:pinmux", | 
|  | "//sw/device/lib/dif:sysrst_ctrl", | 
|  | "//sw/device/lib/runtime:ibex", | 
|  | "//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 = "sysrst_ctrl_ulp_z3_wakeup_test", | 
|  | srcs = ["sysrst_ctrl_ulp_z3_wakeup_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:pinmux", | 
|  | "//sw/device/lib/dif:pwrmgr", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//sw/device/lib/dif:sysrst_ctrl", | 
|  | "//sw/device/lib/runtime:ibex", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:flash_ctrl_testutils", | 
|  | "//sw/device/lib/testing:pwrmgr_testutils", | 
|  | "//sw/device/lib/testing:rstmgr_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "sysrst_ctrl_reset_test", | 
|  | srcs = ["sysrst_ctrl_reset_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:pinmux", | 
|  | "//sw/device/lib/dif:pwrmgr", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//sw/device/lib/dif:sysrst_ctrl", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:pwrmgr_testutils", | 
|  | "//sw/device/lib/testing:rstmgr_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "sysrst_ctrl_outputs_test", | 
|  | srcs = ["sysrst_ctrl_outputs_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:pinmux", | 
|  | "//sw/device/lib/dif:sysrst_ctrl", | 
|  | "//sw/device/lib/runtime:ibex", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:flash_ctrl_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "sysrst_ctrl_ec_rst_l_test", | 
|  | srcs = ["sysrst_ctrl_ec_rst_l_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:pinmux", | 
|  | "//sw/device/lib/dif:pwrmgr", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//sw/device/lib/dif:sysrst_ctrl", | 
|  | "//sw/device/lib/runtime:ibex", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:flash_ctrl_testutils", | 
|  | "//sw/device/lib/testing:rstmgr_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "lc_ctrl_scrap_test", | 
|  | srcs = ["lc_ctrl_scrap_test.c"], | 
|  | targets = ["dv"], | 
|  | 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/runtime:log", | 
|  | "//sw/device/lib/testing:lc_ctrl_testutils", | 
|  | "//sw/device/lib/testing/test_framework:check", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "otp_ctrl_vendor_test_csr_access_test", | 
|  | srcs = ["otp_ctrl_vendor_test_csr_access_test.c"], | 
|  | targets = ["dv"], | 
|  | 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/test_framework:check", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | cc_library( | 
|  | name = "lc_ctrl_transition_impl", | 
|  | srcs = ["lc_ctrl_transition_impl.c"], | 
|  | hdrs = ["lc_ctrl_transition_impl.h"], | 
|  | target_compatible_with = [OPENTITAN_CPU], | 
|  | 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/runtime:log", | 
|  | "//sw/device/lib/testing:lc_ctrl_testutils", | 
|  | "//sw/device/lib/testing/test_framework:check", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "lc_ctrl_transition_test", | 
|  | srcs = ["lc_ctrl_transition_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | ":lc_ctrl_transition_impl", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "lc_walkthrough_test", | 
|  | srcs = ["lc_walkthrough_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//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/dif:rstmgr", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:lc_ctrl_testutils", | 
|  | "//sw/device/lib/testing:otp_ctrl_testutils", | 
|  | "//sw/device/lib/testing/test_framework:check", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | "//sw/device/lib/testing/test_framework:ottf_test_config", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "lc_walkthrough_testunlocks_test", | 
|  | srcs = ["lc_walkthrough_testunlocks_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//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/dif:rstmgr", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:lc_ctrl_testutils", | 
|  | "//sw/device/lib/testing:otp_ctrl_testutils", | 
|  | "//sw/device/lib/testing/test_framework:check", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "all_escalation_resets_test", | 
|  | srcs = ["all_escalation_resets_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:abs_mmio", | 
|  | "//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:aon_timer", | 
|  | "//sw/device/lib/dif:clkmgr", | 
|  | "//sw/device/lib/dif:flash_ctrl", | 
|  | "//sw/device/lib/dif:kmac", | 
|  | "//sw/device/lib/dif:lc_ctrl", | 
|  | "//sw/device/lib/dif:otp_ctrl", | 
|  | "//sw/device/lib/dif:pwrmgr", | 
|  | "//sw/device/lib/dif:rom_ctrl", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//sw/device/lib/dif:rv_core_ibex", | 
|  | "//sw/device/lib/dif:rv_plic", | 
|  | "//sw/device/lib/dif:sram_ctrl", | 
|  | "//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:rstmgr_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 = "data_integrity_escalation_reset_test", | 
|  | srcs = ["data_integrity_escalation_reset_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/dif:alert_handler", | 
|  | "//sw/device/lib/dif:aon_timer", | 
|  | "//sw/device/lib/dif:flash_ctrl", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//sw/device/lib/dif:rv_core_ibex", | 
|  | "//sw/device/lib/dif:rv_plic", | 
|  | "//sw/device/lib/dif:sram_ctrl", | 
|  | "//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:check", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "clkmgr_external_clk_src_for_lc_test", | 
|  | srcs = ["clkmgr_external_clk_src_for_lc_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | ":lc_ctrl_transition_impl", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "pwrmgr_main_power_glitch_test", | 
|  | srcs = ["pwrmgr_main_power_glitch_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//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 = "pwrmgr_sleep_power_glitch_test", | 
|  | srcs = ["pwrmgr_sleep_power_glitch_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:pwrmgr", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:pwrmgr_testutils", | 
|  | "//sw/device/lib/testing:rstmgr_testutils", | 
|  | "//sw/device/lib/testing/test_framework:check", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "pwrmgr_deep_sleep_power_glitch_test", | 
|  | srcs = ["pwrmgr_deep_sleep_power_glitch_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:pwrmgr", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:pwrmgr_testutils", | 
|  | "//sw/device/lib/testing:rstmgr_testutils", | 
|  | "//sw/device/lib/testing/test_framework:check", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "pwrmgr_sysrst_ctrl_test", | 
|  | srcs = ["pwrmgr_sysrst_ctrl_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:abs_mmio", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:aon_timer", | 
|  | "//sw/device/lib/dif:flash_ctrl", | 
|  | "//sw/device/lib/dif:pinmux", | 
|  | "//sw/device/lib/dif:pwrmgr", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//sw/device/lib/dif:sysrst_ctrl", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:aon_timer_testutils", | 
|  | "//sw/device/lib/testing:flash_ctrl_testutils", | 
|  | "//sw/device/lib/testing:pinmux_testutils", | 
|  | "//sw/device/lib/testing:pwrmgr_testutils", | 
|  | "//sw/device/lib/testing:rstmgr_testutils", | 
|  | "//sw/device/lib/testing/test_framework:check", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "pwrmgr_random_sleep_all_reset_reqs_test", | 
|  | srcs = ["pwrmgr_random_sleep_all_reset_reqs_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:abs_mmio", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:alert_handler", | 
|  | "//sw/device/lib/dif:aon_timer", | 
|  | "//sw/device/lib/dif:flash_ctrl", | 
|  | "//sw/device/lib/dif:pinmux", | 
|  | "//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/dif:sysrst_ctrl", | 
|  | "//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:pinmux_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:check", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "pwrmgr_deep_sleep_all_reset_reqs_test", | 
|  | srcs = ["pwrmgr_deep_sleep_all_reset_reqs_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:abs_mmio", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:alert_handler", | 
|  | "//sw/device/lib/dif:aon_timer", | 
|  | "//sw/device/lib/dif:flash_ctrl", | 
|  | "//sw/device/lib/dif:pinmux", | 
|  | "//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/dif:sysrst_ctrl", | 
|  | "//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:pinmux_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:check", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "pwrmgr_normal_sleep_all_reset_reqs_test", | 
|  | srcs = ["pwrmgr_normal_sleep_all_reset_reqs_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:abs_mmio", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:alert_handler", | 
|  | "//sw/device/lib/dif:aon_timer", | 
|  | "//sw/device/lib/dif:flash_ctrl", | 
|  | "//sw/device/lib/dif:pinmux", | 
|  | "//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/dif:sysrst_ctrl", | 
|  | "//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:pinmux_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:check", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "pwrmgr_random_sleep_power_glitch_reset_test", | 
|  | srcs = ["pwrmgr_random_sleep_power_glitch_reset_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:abs_mmio", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:alert_handler", | 
|  | "//sw/device/lib/dif:aon_timer", | 
|  | "//sw/device/lib/dif:flash_ctrl", | 
|  | "//sw/device/lib/dif:pinmux", | 
|  | "//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/dif:sysrst_ctrl", | 
|  | "//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:pinmux_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:check", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "pwrmgr_usbdev_smoketest", | 
|  | srcs = ["pwrmgr_usbdev_smoketest.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:pwrmgr", | 
|  | "//sw/device/lib/dif:usbdev", | 
|  | "//sw/device/lib/runtime:hart", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:pwrmgr_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "rv_dm_access_after_wakeup", | 
|  | srcs = ["rv_dm_access_after_wakeup.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:abs_mmio", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:alert_handler", | 
|  | "//sw/device/lib/dif:aon_timer", | 
|  | "//sw/device/lib/dif:flash_ctrl", | 
|  | "//sw/device/lib/dif:pinmux", | 
|  | "//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/dif:sysrst_ctrl", | 
|  | "//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:pinmux_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:check", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "rom_ctrl_integrity_check_test", | 
|  | srcs = ["rom_ctrl_integrity_check_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/arch:device", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:lc_ctrl", | 
|  | "//sw/device/lib/dif:rom_ctrl", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | "//sw/device/lib/testing/test_framework:status", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "sleep_pin_mio_dio_val_test", | 
|  | srcs = ["sleep_pin_mio_dio_val_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:pinmux", | 
|  | "//sw/device/lib/dif:pwrmgr", | 
|  | "//sw/device/lib/dif:rv_plic", | 
|  | "//sw/device/lib/runtime:irq", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:isr_testutils", | 
|  | "//sw/device/lib/testing:pwrmgr_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 = "sleep_pin_wake_test", | 
|  | srcs = ["sleep_pin_wake_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:pinmux", | 
|  | "//sw/device/lib/dif:pwrmgr", | 
|  | "//sw/device/lib/dif:rv_plic", | 
|  | "//sw/device/lib/runtime:irq", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:isr_testutils", | 
|  | "//sw/device/lib/testing:pwrmgr_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 = "sleep_pin_retention_test", | 
|  | srcs = ["sleep_pin_retention_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:gpio", | 
|  | "//sw/device/lib/dif:pinmux", | 
|  | "//sw/device/lib/dif:pwrmgr", | 
|  | "//sw/device/lib/dif:rv_plic", | 
|  | "//sw/device/lib/runtime:irq", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:isr_testutils", | 
|  | "//sw/device/lib/testing:pwrmgr_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 = "spi_tx_rx_test", | 
|  | srcs = ["spi_tx_rx_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/arch:device", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:base", | 
|  | "//sw/device/lib/dif:rv_plic", | 
|  | "//sw/device/lib/dif:spi_device", | 
|  | "//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 = "spi_device_tpm_tx_rx_test", | 
|  | srcs = ["spi_device_tpm_tx_rx_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/arch:device", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:pinmux", | 
|  | "//sw/device/lib/dif:rv_plic", | 
|  | "//sw/device/lib/dif:spi_device", | 
|  | "//sw/device/lib/runtime:hart", | 
|  | "//sw/device/lib/runtime:irq", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:isr_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | "//sw/device/lib/testing/test_framework:status", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "spi_host_tx_rx_test", | 
|  | srcs = ["spi_host_tx_rx_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:pinmux", | 
|  | "//sw/device/lib/dif:spi_host", | 
|  | "//sw/device/lib/runtime:hart", | 
|  | "//sw/device/lib/runtime:irq", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:pinmux_testutils", | 
|  | "//sw/device/lib/testing:rand_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "spi_passthrough_test", | 
|  | srcs = ["spi_passthrough_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/arch:device", | 
|  | "//sw/device/lib/base:bitfield", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:pinmux", | 
|  | "//sw/device/lib/dif:rv_plic", | 
|  | "//sw/device/lib/dif:spi_device", | 
|  | "//sw/device/lib/dif:spi_host", | 
|  | "//sw/device/lib/runtime:hart", | 
|  | "//sw/device/lib/runtime:irq", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:pinmux_testutils", | 
|  | "//sw/device/lib/testing:spi_device_testutils", | 
|  | "//sw/device/lib/testing:spi_flash_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "rv_dm_ndm_reset_req", | 
|  | srcs = ["rv_dm_ndm_reset_req.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/ip/adc_ctrl/data:adc_ctrl_regs", | 
|  | "//hw/ip/keymgr/data:keymgr_regs", | 
|  | "//hw/ip/otp_ctrl/data:otp_ctrl_regs", | 
|  | "//hw/ip/sysrst_ctrl/data:sysrst_ctrl_regs", | 
|  | "//hw/top_earlgrey/ip/flash_ctrl/data/autogen:flash_ctrl_regs", | 
|  | "//hw/top_earlgrey/ip/pinmux/data/autogen:pinmux_regs", | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:adc_ctrl", | 
|  | "//sw/device/lib/dif:flash_ctrl", | 
|  | "//sw/device/lib/dif:keymgr", | 
|  | "//sw/device/lib/dif:otp_ctrl", | 
|  | "//sw/device/lib/dif:pinmux", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//sw/device/lib/dif:sysrst_ctrl", | 
|  | "//sw/device/lib/runtime:hart", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:rstmgr_testutils", | 
|  | "//sw/device/lib/testing/test_framework:check", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "rv_dm_ndm_reset_req_when_cpu_halted", | 
|  | srcs = ["rv_dm_ndm_reset_req_when_cpu_halted.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//sw/device/lib/runtime:hart", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:rstmgr_testutils", | 
|  | "//sw/device/lib/testing/test_framework:check", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "sram_ctrl_execution_main_test", | 
|  | srcs = ["sram_ctrl_execution_main_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/ip/otp_ctrl/data:otp_ctrl_regs", | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:bitfield", | 
|  | "//sw/device/lib/base:macros", | 
|  | "//sw/device/lib/base:multibits", | 
|  | "//sw/device/lib/dif:sram_ctrl", | 
|  | "//sw/device/lib/runtime:ibex", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:lc_ctrl_testutils", | 
|  | "//sw/device/lib/testing:otp_ctrl_testutils", | 
|  | "//sw/device/lib/testing:sram_ctrl_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | "//sw/device/lib/testing/test_framework:status", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "sram_ctrl_scrambled_access_test", | 
|  | srcs = ["sram_ctrl_scrambled_access_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/ip/sram_ctrl/data:sram_ctrl_regs", | 
|  | "//hw/top_earlgrey/ip/rstmgr/data/autogen:rstmgr_regs", | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:macros", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/base:multibits", | 
|  | "//sw/device/lib/base:stdasm", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:rstmgr_testutils", | 
|  | "//sw/device/lib/testing:sram_ctrl_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | cc_library( | 
|  | name = "pwrmgr_sleep_all_wake_ups_impl", | 
|  | srcs = ["pwrmgr_sleep_all_wake_ups_impl.c"], | 
|  | hdrs = ["pwrmgr_sleep_all_wake_ups_impl.h"], | 
|  | target_compatible_with = [OPENTITAN_CPU], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/ip/pwrmgr/data/autogen:pwrmgr_regs", | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:adc_ctrl", | 
|  | "//sw/device/lib/dif:pinmux", | 
|  | "//sw/device/lib/dif:pwrmgr", | 
|  | "//sw/device/lib/dif:rv_plic", | 
|  | "//sw/device/lib/dif:sensor_ctrl", | 
|  | "//sw/device/lib/dif:usbdev", | 
|  | "//sw/device/lib/runtime:ibex", | 
|  | "//sw/device/lib/runtime:irq", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:aon_timer_testutils", | 
|  | "//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 = "pwrmgr_normal_sleep_all_wake_ups", | 
|  | srcs = ["pwrmgr_normal_sleep_all_wake_ups.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/ip/pwrmgr/data/autogen:pwrmgr_regs", | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/dif:pwrmgr", | 
|  | "//sw/device/lib/dif:rv_plic", | 
|  | "//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:rv_plic_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | "//sw/device/tests/sim_dv:pwrmgr_sleep_all_wake_ups_impl", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "pwrmgr_deep_sleep_all_wake_ups", | 
|  | srcs = ["pwrmgr_deep_sleep_all_wake_ups.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/ip/pwrmgr/data/autogen:pwrmgr_regs", | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/dif:pwrmgr", | 
|  | "//sw/device/lib/dif:rv_plic", | 
|  | "//sw/device/lib/runtime:irq", | 
|  | "//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:rv_plic_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | "//sw/device/tests/sim_dv:pwrmgr_sleep_all_wake_ups_impl", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "pwrmgr_random_sleep_all_wake_ups", | 
|  | srcs = ["pwrmgr_random_sleep_all_wake_ups.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/ip/pwrmgr/data/autogen:pwrmgr_regs", | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/dif:pwrmgr", | 
|  | "//sw/device/lib/dif:rv_plic", | 
|  | "//sw/device/lib/runtime:irq", | 
|  | "//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:rv_plic_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | "//sw/device/tests/sim_dv:pwrmgr_sleep_all_wake_ups_impl", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "adc_ctrl_sleep_debug_cable_wakeup_test", | 
|  | srcs = ["adc_ctrl_sleep_debug_cable_wakeup_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:adc_ctrl", | 
|  | "//sw/device/lib/dif:pwrmgr", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//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:isr_testutils", | 
|  | "//sw/device/lib/testing:pwrmgr_testutils", | 
|  | "//sw/device/lib/testing:rstmgr_testutils", | 
|  | "//sw/device/lib/testing/test_framework:check", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "pwrmgr_b2b_sleep_reset_test", | 
|  | srcs = ["pwrmgr_b2b_sleep_reset_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/ip/aon_timer/data:aon_timer_regs", | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:abs_mmio", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:flash_ctrl", | 
|  | "//sw/device/lib/dif:pinmux", | 
|  | "//sw/device/lib/dif:pwrmgr", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//sw/device/lib/dif:sysrst_ctrl", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:aon_timer_testutils", | 
|  | "//sw/device/lib/testing:flash_ctrl_testutils", | 
|  | "//sw/device/lib/testing:pwrmgr_testutils", | 
|  | "//sw/device/lib/testing:rstmgr_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "sensor_ctrl_status_test", | 
|  | srcs = ["sensor_ctrl_status.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/ip/sensor_ctrl/data:sensor_ctrl_regs", | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:abs_mmio", | 
|  | "//sw/device/lib/base:memory", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//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:isr_testutils", | 
|  | "//sw/device/lib/testing:rv_plic_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "alert_handler_escalation_test", | 
|  | srcs = ["alert_handler_escalation.c"], | 
|  | targets = ["dv"], | 
|  | 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:clkmgr", | 
|  | "//sw/device/lib/dif:keymgr", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//sw/device/lib/dif:rv_core_ibex", | 
|  | "//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:keymgr_testutils", | 
|  | "//sw/device/lib/testing:rstmgr_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "alert_handler_entropy_test", | 
|  | srcs = ["alert_handler_entropy_test.c"], | 
|  | targets = ["dv"], | 
|  | 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/runtime:irq", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:alert_handler_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "lc_ctrl_program_error", | 
|  | srcs = ["lc_ctrl_program_error.c"], | 
|  | targets = ["dv"], | 
|  | 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:alert_handler", | 
|  | "//sw/device/lib/dif:lc_ctrl", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//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:lc_ctrl_testutils", | 
|  | "//sw/device/lib/testing:rstmgr_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "entropy_src_fuse_en_fw_read_test", | 
|  | srcs = ["entropy_src_fuse_en_fw_read_test.c"], | 
|  | targets = ["dv"], | 
|  | 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/dif:rstmgr", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:otp_ctrl_testutils", | 
|  | "//sw/device/lib/testing:rstmgr_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "ast_usb_clk_calib", | 
|  | srcs = ["ast_usb_clk_calib.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/ip/ast/data:ast_regs", | 
|  | "//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:clkmgr", | 
|  | "//sw/device/lib/dif:pinmux", | 
|  | "//sw/device/lib/dif:usbdev", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:clkmgr_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "csrng_fuse_en_sw_app_read", | 
|  | srcs = ["csrng_fuse_en_sw_app_read.c"], | 
|  | targets = ["dv"], | 
|  | 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:csrng", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:csrng_testutils", | 
|  | "//sw/device/lib/testing:otp_ctrl_testutils", | 
|  | "//sw/device/lib/testing:rstmgr_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "csrng_lc_hw_debug_en_test", | 
|  | srcs = ["csrng_lc_hw_debug_en_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//sw/device/lib/base:macros", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:csrng", | 
|  | "//sw/device/lib/dif:entropy_src", | 
|  | "//sw/device/lib/dif:flash_ctrl", | 
|  | "//sw/device/lib/dif:kmac", | 
|  | "//sw/device/lib/dif:lc_ctrl", | 
|  | "//sw/device/lib/dif:otp_ctrl", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:csrng_testutils", | 
|  | "//sw/device/lib/testing:entropy_testutils", | 
|  | "//sw/device/lib/testing:flash_ctrl_testutils", | 
|  | "//sw/device/lib/testing:otp_ctrl_testutils", | 
|  | "//sw/device/lib/testing:rand_testutils", | 
|  | "//sw/device/lib/testing:rstmgr_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "inject_scramble_seed", | 
|  | srcs = ["inject_scramble_seed.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/ip/otp_ctrl/data:otp_ctrl_regs", | 
|  | "//hw/top_earlgrey/ip/flash_ctrl/data/autogen:flash_ctrl_regs", | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:abs_mmio", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:flash_ctrl", | 
|  | "//sw/device/lib/dif:otp_ctrl", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//sw/device/lib/runtime:hart", | 
|  | "//sw/device/lib/runtime:irq", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:flash_ctrl_testutils", | 
|  | "//sw/device/lib/testing:otp_ctrl_testutils", | 
|  | "//sw/device/lib/testing:rand_testutils", | 
|  | "//sw/device/lib/testing:rstmgr_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "exit_test_unlocked_bootstrap", | 
|  | srcs = ["exit_test_unlocked_bootstrap.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/ip/otp_ctrl/data:otp_ctrl_regs", | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:abs_mmio", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:lc_ctrl", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "pattgen_ios_test", | 
|  | srcs = ["pattgen_ios_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:memory", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:pattgen", | 
|  | "//sw/device/lib/dif:pinmux", | 
|  | "//sw/device/lib/runtime:hart", | 
|  | "//sw/device/lib/runtime:irq", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//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 = "otp_ctrl_lc_signals_test", | 
|  | srcs = ["otp_ctrl_lc_signals_test.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//sw/device/lib/base:memory", | 
|  | "//sw/device/lib/base:mmio", | 
|  | "//sw/device/lib/dif:flash_ctrl", | 
|  | "//sw/device/lib/dif:keymgr", | 
|  | "//sw/device/lib/dif:kmac", | 
|  | "//sw/device/lib/dif:lc_ctrl", | 
|  | "//sw/device/lib/dif:otp_ctrl", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//sw/device/lib/runtime:log", | 
|  | "//sw/device/lib/testing:keymgr_testutils", | 
|  | "//sw/device/lib/testing:kmac_testutils", | 
|  | "//sw/device/lib/testing:lc_ctrl_testutils", | 
|  | "//sw/device/lib/testing:otp_ctrl_testutils", | 
|  | "//sw/device/lib/testing:rstmgr_testutils", | 
|  | "//sw/device/lib/testing/test_framework:check", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | "//sw/device/lib/testing/test_framework:ottf_test_config", | 
|  | "//sw/device/silicon_creator/lib/base:chip", | 
|  | "//sw/device/silicon_creator/lib/drivers:retention_sram", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | opentitan_functest( | 
|  | name = "ast_clk_rst_inputs", | 
|  | srcs = ["ast_clk_rst_inputs.c"], | 
|  | targets = ["dv"], | 
|  | deps = [ | 
|  | "//hw/top_earlgrey/ip/sensor_ctrl/data:sensor_ctrl_regs", | 
|  | "//hw/top_earlgrey/sw/autogen:top_earlgrey", | 
|  | "//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:clkmgr", | 
|  | "//sw/device/lib/dif:entropy_src", | 
|  | "//sw/device/lib/dif:pwrmgr", | 
|  | "//sw/device/lib/dif:rstmgr", | 
|  | "//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:alert_handler_testutils", | 
|  | "//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:rstmgr_testutils", | 
|  | "//sw/device/lib/testing:rv_plic_testutils", | 
|  | "//sw/device/lib/testing/test_framework:ottf_main", | 
|  | ], | 
|  | ) |