blob: eb4f70f92913d54a3136a4a3ea571768e63afa31 [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 chip_sw_rom_e2e_shutdown_output_vseq extends
chip_sw_rom_e2e_base_vseq;
`uvm_object_utils(chip_sw_rom_e2e_shutdown_output_vseq)
`uvm_object_new
virtual task body();
super.body();
foreach (lc_state_2_rom_lcv[lc_state]) begin
`uvm_info(`gfn, $sformatf("Backdoor overwriting the lifecycle state and applying POR ..."),
UVM_LOW)
cfg.mem_bkdr_util_h[Otp].otp_write_lc_partition_state(lc_state);
apply_reset();
// Wait for retention SRAM initialization to be done before hooking up the UART agent to
// prevent X's propagating as a result of multiple drivers on pins IOC3 and IOC4 (due to DFT
// strap sampling in TestUnlocked* and RMA lifecycle states). Once the retention SRAM is
// initialized, we have made it to `rom_main()`.
`DV_WAIT(cfg.chip_vif.sram_ret_init_done == 1)
connect_rom_uart_agent();
check_uart_output_msg(
$sformatf("BFV:%0s\x0d\nLCV:%0s\x0d\n", ROM_BFV_BAD_IDENTIFIER,
lc_state_2_rom_lcv[lc_state]));
disconnect_rom_uart_agent();
end
rom_e2e_test_boot_fault_success();
endtask
endclass : chip_sw_rom_e2e_shutdown_output_vseq