blob: 87a930b779db5a7fb3b11fd5d9fd44abf19da2cc [file] [log] [blame]
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
class jtag_riscv_agent_cfg extends dv_base_agent_cfg;
`uvm_object_utils_begin(jtag_riscv_agent_cfg)
`uvm_object_utils_end
jtag_agent_cfg m_jtag_agent_cfg;
jtag_sequencer jtag_sequencer_h;
// Allows JTAG to return error status.
bit allow_errors = 0;
// RV_DM jtag connects to DM CSRs.
// Because LC jtag will normalize the input address for the last two bits,
// while RV_DM jtag uses the original DM CSR addresses without the normalization.
bit is_rv_dm = 0;
// Indicates the rv_dm jtag is activated or not. Only valid when is_rv_dm = 1.
// It can be only updated by driver and sequence shouldn't set this variable.
bit rv_dm_activated = 0;
// Allows activation to fail. Only valid when is_rv_dm = 1.
bit allow_rv_dm_activation_fail = 0;
// Max attempts to activate rv_dm.
int max_rv_dm_activation_attempts = 100;
// status to return if we assert in_reset
logic [DMI_OPW-1:0] status_in_reset;
bit use_jtag_dmi = 0;
function new(string name = "");
super.new(name);
// Default active
has_driver = 1;
status_in_reset = DmiNoErr;
endfunction : new
endclass