# Copyright lowRISC contributors.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0

package(default_visibility = ["//visibility:public"])

filegroup(
    name = "config",
    srcs = [
        "chip_mask_rom_tests.hjson",
        "chip_sim_cfg.hjson",
        "chip_smoketests.hjson",
    ],
)
