blob: deee857901f70b705b84549b6a3f1b0983a665d1 [file] [log] [blame]
# Copyright 2023 Google LLC.
# Copyright lowRISC contributors.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
load(
"//rules:matcha.bzl",
"NEXUS_CORE_TARGETS",
"VERILATOR_CORE_TARGETS",
"smc_flash_binary",
)
load("//rules:matcha_test.bzl", "matcha_verilator_test")
package(default_visibility = ["//visibility:public"])
smc_flash_binary(
name = "smc_tlul_mailbox_test",
srcs = [
"smc_tlul_mailbox_test.c",
],
copts = [
"-nostdlib",
"-ffreestanding",
],
deps = [
"//sw/device/lib/dif:smc_ctrl",
"//sw/device/lib/dif:tlul_mailbox",
"//sw/device/tests:test_lib_smc",
"@lowrisc_opentitan//sw/device/silicon_creator/lib:manifest_def",
],
)
smc_flash_binary(
name = "smc_cam_irq_test",
srcs = [
"smc_cam_irq_test.c",
],
copts = [
"-nostdlib",
"-ffreestanding",
],
deps = [
"//sw/device/lib/dif:cam_ctrl",
"//sw/device/tests:test_lib_smc",
"@lowrisc_opentitan//sw/device/silicon_creator/lib:manifest_def",
],
)
smc_flash_binary(
name = "smc_cam_i2c_test",
srcs = [
"smc_cam_i2c_test.c",
],
copts = [
"-nostdlib",
"-ffreestanding",
],
per_device_deps = {
"fpga_nexus": [NEXUS_CORE_TARGETS.get("smc")],
},
deps = [
"//sw/device/lib:camera_hm01b0",
"//sw/device/lib/dif:cam_ctrl",
"//sw/device/lib/dif:isp_wrapper",
"//sw/device/lib/dif:rv_plic_smc",
"//sw/device/tests:test_lib_smc",
],
)
smc_flash_binary(
name = "smc_ml_top_irq_test",
srcs = [
"smc_ml_top_irq_test.c",
],
copts = [
"-nostdlib",
"-ffreestanding",
],
deps = [
"//sw/device/lib/dif:ml_top",
"//sw/device/tests:test_lib_smc",
"@lowrisc_opentitan//sw/device/silicon_creator/lib:manifest_def",
],
)
smc_flash_binary(
name = "simple_smc",
srcs = [
"simple_smc.c",
],
copts = [
"-nostdlib",
"-ffreestanding",
],
deps = [
"//sw/device/tests:test_lib_smc",
],
)
smc_flash_binary(
name = "smc_supervisor_mode_test",
srcs = [
"smc_supervisor_mode_test.c",
],
copts = [
"-nostdlib",
"-ffreestanding",
],
deps = [
"//sw/device/tests:test_lib_smc",
],
)
smc_flash_binary(
name = "smc_virtual_memory_test",
srcs = [
"smc_virtual_memory_test.c",
],
copts = [
"-nostdlib",
"-ffreestanding",
],
deps = [
"//sw/device/lib:virtual_memory",
"//sw/device/tests:test_lib_smc",
],
)
smc_flash_binary(
name = "smc_interrupt_boundary_test",
srcs = [
"smc_interrupt_boundary_test.c",
],
copts = [
"-nostdlib",
"-ffreestanding",
],
deps = [
"//sw/device/lib:virtual_memory",
"//sw/device/tests:test_lib_smc",
"@lowrisc_opentitan//sw/device/lib/dif:rv_timer",
],
)
smc_flash_binary(
name = "smc_lsu_interrupt_boundary_test",
srcs = [
"smc_lsu_interrupt_boundary_test.c",
],
copts = [
"-nostdlib",
"-ffreestanding",
],
deps = [
"//sw/device/lib:virtual_memory",
"//sw/device/tests:test_lib_smc",
"@lowrisc_opentitan//sw/device/lib/dif:rv_timer",
],
)
smc_flash_binary(
name = "smc_page_boundary_test",
srcs = [
"smc_page_boundary_test.c",
],
copts = [
"-nostdlib",
"-ffreestanding",
],
deps = [
"//sw/device/lib:virtual_memory",
"//sw/device/tests:test_lib_smc",
],
)
smc_flash_binary(
name = "smc_lsu_page_boundary_test",
srcs = [
"smc_lsu_page_boundary_test.c",
],
copts = [
"-nostdlib",
"-ffreestanding",
],
deps = [
"//sw/device/lib:virtual_memory",
"//sw/device/tests:test_lib_smc",
],
)
smc_flash_binary(
name = "smc_atomics_test",
srcs = [
"smc_atomics_test.c",
],
copts = [
"-nostdlib",
"-ffreestanding",
"-march=rv32imac",
],
deps = [
"//sw/device/lib:virtual_memory",
"//sw/device/tests:test_lib_smc",
],
)
smc_flash_binary(
name = "smc_rv_timer_test",
srcs = [
"smc_rv_timer_test.c",
],
copts = [
"-nostdlib",
"-ffreestanding",
],
deps = [
"//sw/device/tests:test_lib_smc",
"@lowrisc_opentitan//sw/device/lib/dif:rv_timer",
],
)
smc_flash_binary(
name = "smc_env_test",
srcs = [
"smc_env_test.c",
],
copts = [
"-nostdlib",
"-ffreestanding",
],
deps = [
"//sw/device/tests:test_lib_smc",
],
)
smc_flash_binary(
name = "smc_isp_wrapper_test",
srcs = [
"smc_isp_wrapper_test.c",
],
copts = [
"-nostdlib",
"-ffreestanding",
],
deps = [
"//sw/device/lib/dif:isp_wrapper",
"//sw/device/tests:test_lib_smc",
],
)
smc_flash_binary(
name = "smc_isp_wrapper_tpg_128_64_test",
srcs = [
"smc_isp_wrapper_tpg_128_64_test.c",
],
copts = [
"-nostdlib",
"-ffreestanding",
],
deps = [
"//sw/device/lib/dif:isp_wrapper",
"//sw/device/tests:test_lib_smc",
],
)
smc_flash_binary(
name = "smc_kelvin_hello_test",
srcs = [
"smc_kelvin_hello_test.c",
],
copts = [
"-nostdlib",
"-ffreestanding",
],
per_device_deps = {
"sim_verilator": [VERILATOR_CORE_TARGETS.get("smc")],
"sim_dv": ["//sw/device/lib/arch:smc_sim_dv"],
},
deps = [
"//hw/top_matcha/ip/ml_top/data:ml_top_regs",
"//sw/device/tests:test_lib_smc",
],
)
smc_flash_binary(
name = "smc_kelvin_checksum_test",
srcs = [
"smc_kelvin_checksum_test.c",
"//sw/device/tests/testdata:test_image.h",
],
copts = [
"-nostdlib",
"-ffreestanding",
],
per_device_deps = {
"sim_verilator": [VERILATOR_CORE_TARGETS.get("smc")],
"sim_dv": ["//sw/device/lib/arch:smc_sim_dv"],
},
deps = [
"//hw/top_matcha/ip/ml_top/data:ml_top_regs",
"//sw/device/tests:test_lib_smc",
],
)
smc_flash_binary(
name = "smc_isp_wrapper_irq_test",
srcs = [
"smc_isp_wrapper_irq_test.c",
],
copts = [
"-nostdlib",
"-ffreestanding",
],
deps = [
"//sw/device/lib/dif:isp_wrapper",
"//sw/device/tests:test_lib_smc",
"@lowrisc_opentitan//sw/device/silicon_creator/lib:manifest_def",
],
)
smc_flash_binary(
name = "smc_ml_dmem_test",
srcs = [
"smc_ml_dmem_test.c",
],
copts = [
"-nostdlib",
"-ffreestanding",
],
deps = [
"//hw/top_matcha/sw/autogen:top_matcha",
"//sw/device/tests:test_lib_smc",
"@lowrisc_opentitan//sw/device/silicon_creator/lib:manifest_def",
],
)
smc_flash_binary(
name = "smc_i2s_rx_test",
srcs = [
"smc_i2s_rx_test.c",
],
copts = [
"-nostdlib",
"-ffreestanding",
],
deps = [
"//sw/device/lib/dif:i2s",
"//sw/device/lib/dif:rv_plic_smc",
"//sw/device/tests:test_lib_smc",
"@lowrisc_opentitan//sw/device/lib/runtime:irq",
],
)
smc_flash_binary(
name = "smc_i2s_tx_test",
srcs = [
"smc_i2s_tx_test.c",
"//sw/device/tests/testdata:i2s_440hz_audio_tx.h",
],
copts = [
"-nostdlib",
"-ffreestanding",
],
deps = [
"//sw/device/lib/dif:i2s",
"//sw/device/lib/dif:rv_plic_smc",
"//sw/device/tests:test_lib_smc",
"@lowrisc_opentitan//sw/device/lib/runtime:irq",
],
)
matcha_verilator_test(
name = "verilator_kelvin_hello_test",
ml_flash_binary = "//sw/device/tests/kelvin:kelvin_hello_world.elf",
sec_flash_binary = "//sw/device/tests:simple_sec",
smc_flash_binary = ":smc_kelvin_hello_test",
)
matcha_verilator_test(
name = "verilator_ml_top_irq_test",
sec_flash_binary = "//sw/device/tests:simple_sec",
smc_flash_binary = ":smc_ml_top_irq_test",
)
matcha_verilator_test(
name = "verilator_smc_isp_wrapper_test",
timeout = "long",
sec_flash_binary = "//sw/device/tests:simple_sec",
smc_flash_binary = ":smc_isp_wrapper_test",
)
matcha_verilator_test(
name = "verilator_smc_isp_wrapper_irq_test",
timeout = "long",
sec_flash_binary = "//sw/device/tests:simple_sec",
smc_flash_binary = ":smc_isp_wrapper_irq_test",
)
matcha_verilator_test(
name = "verilator_smc_isp_wrapper_tpg_128_64_test",
timeout = "long",
sec_flash_binary = "//sw/device/tests:simple_sec",
smc_flash_binary = ":smc_isp_wrapper_tpg_128_64_test",
)
matcha_verilator_test(
name = "verilator_kelvin_checksum_test",
timeout = "long",
ml_flash_binary = "//sw/device/tests/kelvin:kelvin_checksum.elf",
sec_flash_binary = "//sw/device/tests:simple_sec",
smc_flash_binary = ":smc_kelvin_checksum_test",
)