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

# Board configuration file: the Earl Grey chip in a Verilator simulation

source [find interface/sim-jtagdpi.cfg]
source [find target/lowrisc-earlgrey.cfg]

# Increase timeouts in simulation
riscv set_command_timeout_sec 120
