Skip to content

[rstmgr, update] Reset Manager updated in top level#575

Open
KolosKoblasz-Semify wants to merge 7 commits into
lowRISC:mainfrom
KolosKoblasz-Semify:kk_rstmgr_top_update
Open

[rstmgr, update] Reset Manager updated in top level#575
KolosKoblasz-Semify wants to merge 7 commits into
lowRISC:mainfrom
KolosKoblasz-Semify:kk_rstmgr_top_update

Conversation

@KolosKoblasz-Semify
Copy link
Copy Markdown
Collaborator

@KolosKoblasz-Semify KolosKoblasz-Semify commented May 21, 2026

To enable rstmgr dv porting PR to be merged some of the OT changes in the name of rstmgr package variables have to be ported to Mocha first.

dvsim hw/top_chip/dv/top_chip_sim_cfg.hjson -i all_once

Simulator: XCELIUM

Test Results

Stage Name Tests Max Job Runtime Simulated Time Passing Total Pass Rate
uart_smoke 48.000s 1745.876us 1 1 100.00 %
uart_smoke_cheri 63.000s 1955.715us 1 1 100.00 %
rv_plic_smoke 31.000s 1383.830us 1 1 100.00 %
rv_plic_smoke_cheri 56.000s 1620.115us 1 1 100.00 %
rv_timer_smoke 37.000s 1485.994us 1 1 100.00 %
rv_timer_smoke_cheri 49.000s 1703.858us 1 1 100.00 %
rv_timer_irq 50.000s 2831.139us 1 1 100.00 %
rv_timer_irq_cheri 69.000s 3106.511us 1 1 100.00 %
test_framework_exception_test 59.000s 1756.557us 1 1 100.00 %
test_framework_exception_test_cheri 49.000s 2017.916us 1 1 100.00 %
spi_device_smoke 53.000s 1665.945us 0 1 0.00 %
spi_device_smoke_cheri 56.000s 1919.676us 0 1 0.00 %
spi_host_smoke 35.000s 1235.238us 1 1 100.00 %
spi_host_smoke_cheri 59.000s 1445.884us 1 1 100.00 %
i2c_host_tx_rx 1.026s 0.000us 0 1 0.00 %
i2c_device_tx_rx 0.976s 0.000us 0 1 0.00 %
gpio_smoke 49.000s 1286.067us 1 1 100.00 %
gpio_smoke_cheri 37.000s 1497.093us 1 1 100.00 %
rom_ctrl_integrity_check 1.058s 0.000us 0 1 0.00 %
rom_ctrl_smoke 1.058s 0.000us 0 1 0.00 %
rom_ctrl_smoke_cheri 1.037s 0.000us 0 1 0.00 %
rstmgr_smoke 67.000s 2277.559us 1 1 100.00 %
rstmgr_smoke_cheri 52.000s 2662.632us 1 1 100.00 %
clkmgr_smoke 32.000s 1279.173us 1 1 100.00 %
clkmgr_smoke_cheri 55.000s 1505.262us 1 1 100.00 %
pwrmgr_smoke 35.000s 1283.625us 1 1 100.00 %
pwrmgr_smoke_cheri 40.000s 1505.337us 1 1 100.00 %
rv_dm_ndm_reset_req 1.042s 0.000us 0 1 0.00 %
rv_dm_ndm_reset_req_when_cpu_halted 1.007s 0.000us 0 1 0.00 %
rv_dm_access_after_wakeup 1.013s 0.000us 0 1 0.00 %
rv_dm_access_after_escalation_reset 1.023s 0.000us 0 1 0.00 %
mailbox_smoke 33.000s 1279.029us 1 1 100.00 %
mailbox_smoke_cheri 59.000s 1496.955us 1 1 100.00 %
axi_sram_smoke 32.000s 1240.690us 1 1 100.00 %
axi_sram_smoke_cheri 39.000s 1448.221us 1 1 100.00 %
axi_sram_tag_test 34.000s 1221.670us 1 1 100.00 %
axi_sram_tag_test_cheri 39.000s 1464.235us 1 1 100.00 %
TOTAL 26 37 70.27 %
TOTAL 26 37 70.27 %

Coverage Results

Coverage Dashboard

Failure Buckets

  • Some pass patterns missing: ['^TEST PASSED (UVM_)?CHECKS$'] has 9 failures:
    • Test i2c_host_tx_rx has 1 failure.
      • 0.i2c_host_tx_rx.26263772996085310306569676151388495243827830386901315848048392428081761327953
        Log /home/kkoblasz/projects/mocha/scratch/kk_rstmgr_top_update/top_chip_system.sim.xcelium/0.i2c_host_tx_rx/latest/run.log

            File "/home/kkoblasz/projects/mocha/util/build_sw_collateral_for_sim.py", line 52, in <module>
              main()
            File "/home/kkoblasz/projects/mocha/util/build_sw_collateral_for_sim.py", line 48, in main
              args.func(args)
            File "/home/kkoblasz/projects/mocha/util/build_sw_collateral_for_sim.py", line 24, in generate
              subprocess.run(cmd, capture_output=False, check=True)
            File "/nix/store/s5l2yljjj41b8750dcdxl0hshmdpd61c-python3-3.10.19/lib/python3.10/subprocess.py", line 526, in run
              raise CalledProcessError(retcode, process.args,
          subprocess.CalledProcessError: Command '['cmake', '--build', PosixPath('/home/kkoblasz/projects/mocha/scratch/kk_rstmgr_top_update/top_chip
        

_system.sim.xcelium/0.i2c_host_tx_rx/latest/sw_build'), '-v', '--target', 'i2c_host_tx_rx_test_vanilla_sram']' returned non-zero exit status 2.
make: *** [/home/kkoblasz/projects/mocha/hw/vendor/lowrisc_ip/dv/tools/dvsim/sim.mk:58: sw_build] Error 1

* Test i2c_device_tx_rx has 1 failure.
    * 0.i2c_device_tx_rx.45549836868455644413030784874633989657917907686975938526802871818575282442371\
      Log /home/kkoblasz/projects/mocha/scratch/kk_rstmgr_top_update/top_chip_system.sim.xcelium/0.i2c_device_tx_rx/latest/run.log

              File "/home/kkoblasz/projects/mocha/util/build_sw_collateral_for_sim.py", line 52, in <module>
                main()
              File "/home/kkoblasz/projects/mocha/util/build_sw_collateral_for_sim.py", line 48, in main
                args.func(args)
              File "/home/kkoblasz/projects/mocha/util/build_sw_collateral_for_sim.py", line 24, in generate
                subprocess.run(cmd, capture_output=False, check=True)
              File "/nix/store/s5l2yljjj41b8750dcdxl0hshmdpd61c-python3-3.10.19/lib/python3.10/subprocess.py", line 526, in run
                raise CalledProcessError(retcode, process.args,
            subprocess.CalledProcessError: Command '['cmake', '--build', PosixPath('/home/kkoblasz/projects/mocha/scratch/kk_rstmgr_top_update/top_chip

_system.sim.xcelium/0.i2c_device_tx_rx/latest/sw_build'), '-v', '--target', 'i2c_device_tx_rx_test_vanilla_sram']' returned non-zero exit status 2.
make: *** [/home/kkoblasz/projects/mocha/hw/vendor/lowrisc_ip/dv/tools/dvsim/sim.mk:58: sw_build] Error 1

* Test rom_ctrl_integrity_check has 1 failure.
    * 0.rom_ctrl_integrity_check.1815008358100088271921480646743540394954553321960907812840532777111581208188\
      Log /home/kkoblasz/projects/mocha/scratch/kk_rstmgr_top_update/top_chip_system.sim.xcelium/0.rom_ctrl_integrity_check/latest/run.log

              File "/home/kkoblasz/projects/mocha/util/build_sw_collateral_for_sim.py", line 52, in <module>
                main()
              File "/home/kkoblasz/projects/mocha/util/build_sw_collateral_for_sim.py", line 48, in main
                args.func(args)
              File "/home/kkoblasz/projects/mocha/util/build_sw_collateral_for_sim.py", line 24, in generate
                subprocess.run(cmd, capture_output=False, check=True)
              File "/nix/store/s5l2yljjj41b8750dcdxl0hshmdpd61c-python3-3.10.19/lib/python3.10/subprocess.py", line 526, in run
                raise CalledProcessError(retcode, process.args,
            subprocess.CalledProcessError: Command '['cmake', '--build', PosixPath('/home/kkoblasz/projects/mocha/scratch/kk_rstmgr_top_update/top_chip

_system.sim.xcelium/0.rom_ctrl_integrity_check/latest/sw_build'), '-v', '--target', 'rom_ctrl_integrity_check_test_vanilla_sram']' returned non-zero exit s
tatus 2.
make: *** [/home/kkoblasz/projects/mocha/hw/vendor/lowrisc_ip/dv/tools/dvsim/sim.mk:58: sw_build] Error 1

* Test rom_ctrl_smoke has 1 failure.
    * 0.rom_ctrl_smoke.30425499512186920335170375108354709254660571541732876145650654016561776119065\
      Log /home/kkoblasz/projects/mocha/scratch/kk_rstmgr_top_update/top_chip_system.sim.xcelium/0.rom_ctrl_smoke/latest/run.log

              File "/home/kkoblasz/projects/mocha/util/build_sw_collateral_for_sim.py", line 52, in <module>
                main()
              File "/home/kkoblasz/projects/mocha/util/build_sw_collateral_for_sim.py", line 48, in main
                args.func(args)
              File "/home/kkoblasz/projects/mocha/util/build_sw_collateral_for_sim.py", line 24, in generate
                subprocess.run(cmd, capture_output=False, check=True)
              File "/nix/store/s5l2yljjj41b8750dcdxl0hshmdpd61c-python3-3.10.19/lib/python3.10/subprocess.py", line 526, in run
                raise CalledProcessError(retcode, process.args,
            subprocess.CalledProcessError: Command '['cmake', '--build', PosixPath('/home/kkoblasz/projects/mocha/scratch/kk_rstmgr_top_update/top_chip

_system.sim.xcelium/0.rom_ctrl_smoke/latest/sw_build'), '-v', '--target', 'rom_ctrl_smoketest_vanilla_sram']' returned non-zero exit status 2.
make: *** [/home/kkoblasz/projects/mocha/hw/vendor/lowrisc_ip/dv/tools/dvsim/sim.mk:58: sw_build] Error 1

* Test rom_ctrl_smoke_cheri has 1 failure.
    * 0.rom_ctrl_smoke_cheri.37832321509209150401141737059626147409158102599100707012535031429583379386248\
      Log /home/kkoblasz/projects/mocha/scratch/kk_rstmgr_top_update/top_chip_system.sim.xcelium/0.rom_ctrl_smoke_cheri/latest/run.log

              File "/home/kkoblasz/projects/mocha/util/build_sw_collateral_for_sim.py", line 52, in <module>
                main()
              File "/home/kkoblasz/projects/mocha/util/build_sw_collateral_for_sim.py", line 48, in main
                args.func(args)
              File "/home/kkoblasz/projects/mocha/util/build_sw_collateral_for_sim.py", line 24, in generate
                subprocess.run(cmd, capture_output=False, check=True)
              File "/nix/store/s5l2yljjj41b8750dcdxl0hshmdpd61c-python3-3.10.19/lib/python3.10/subprocess.py", line 526, in run
                raise CalledProcessError(retcode, process.args,
            subprocess.CalledProcessError: Command '['cmake', '--build', PosixPath('/home/kkoblasz/projects/mocha/scratch/kk_rstmgr_top_update/top_chip

_system.sim.xcelium/0.rom_ctrl_smoke_cheri/latest/sw_build'), '-v', '--target', 'rom_ctrl_smoketest_cheri_sram']' returned non-zero exit status 2.
make: *** [/home/kkoblasz/projects/mocha/hw/vendor/lowrisc_ip/dv/tools/dvsim/sim.mk:58: sw_build] Error 1

    * ... and 4 more tests.
  • xmsim: *E,ASRTST (/home/kkoblasz/projects/mocha/scratch/kk_rstmgr_top_update/top_chip_system.sim.xcelium/default/fusesoc-work/src/lowrisc_prim_all_*/rtl /prim_sync_reqack_data.sv,122): Assertion SyncReqAckDataHoldSrc2Dst has failed has 2 failures:
    • Test spi_device_smoke has 1 failure.

      • 0.spi_device_smoke.18982898952349762173368805721125064526416880181834691725444065354901183476549
        Line 321, in log /home/kkoblasz/projects/mocha/scratch/kk_rstmgr_top_update/top_chip_system.sim.xcelium/0.spi_device_smoke/latest/run.log

          UVM_ERROR @           1665945434: (prim_sync_reqack_data.sv:122) [ASSERT FAILED] SyncReqAckDataHoldSrc2Dst
          UVM_INFO @           1665945434: (uvm_report_catcher.svh:705) [UVM/REPORT/CATCHER]
          --- UVM Report catcher Summary ---
        
    • Test spi_device_smoke_cheri has 1 failure.

      • 0.spi_device_smoke_cheri.47638340174764531012986152448268009724760532322663049693478652677477141399263
        Line 341, in log /home/kkoblasz/projects/mocha/scratch/kk_rstmgr_top_update/top_chip_system.sim.xcelium/0.spi_device_smoke_cheri/latest/run.log

          UVM_ERROR @           1919675694: (prim_sync_reqack_data.sv:122) [ASSERT FAILED] SyncReqAckDataHoldSrc2Dst
          UVM_INFO @           1919675694: (uvm_report_catcher.svh:705) [UVM/REPORT/CATCHER]
          --- UVM Report catcher Summary ---
        

        [ legend ]: [S: scheduled, Q: queued, R: running, P: passed, F: failed, K: killed, T: total]
        00:02:20 [ build ]: [S: 00, Q: 00, R: 00, P: 01, F: 00, K: 00, T: 01] 100%
        00:03:33 [ run ]: [S: 00, Q: 00, R: 00, P: 26, F: 11, K: 00, T: 37] 100%

@KolosKoblasz-Semify KolosKoblasz-Semify marked this pull request as ready for review May 21, 2026 09:19
@martin-velay
Copy link
Copy Markdown
Contributor

Thanks Kolos. It's looking good, would you also paste the output from the command:
dvsim hw/top_chip/dv/top_chip_sim_cfg.hjson -i all_once

@KolosKoblasz-Semify
Copy link
Copy Markdown
Collaborator Author

KolosKoblasz-Semify commented May 21, 2026

Thanks Kolos. It's looking good, would you also paste the output from the command: dvsim hw/top_chip/dv/top_chip_sim_cfg.hjson -i all_once

Results copied to the description header.

Copy link
Copy Markdown
Contributor

@martin-velay martin-velay left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Things are looking good, I'll let Marno confirming as he knows better than me this IP and the work done before. Thanks Kolos

Copy link
Copy Markdown
Collaborator

@marnovandermaas marnovandermaas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a minor comment of content needing to be in a different commit. Otherwise looks pretty good to me.

@KolosKoblasz-Semify KolosKoblasz-Semify force-pushed the kk_rstmgr_top_update branch 3 times, most recently from 27dea1a to fe495b9 Compare May 22, 2026 11:11
 * changes in hw/vendor/patches/lowrisc_ip/i2c/0002-Fix-Widths.patch
   file got implemented in upstream repo, making this patch redundant.
 * this commit removes the patch file

Signed-off-by: Kolos Koblasz <kolos.koblasz@semify-eda.com>
 * kmack_app_agent_rom_ctrl_dv.patch removed

Signed-off-by: Kolos Koblasz <kolos.koblasz@semify-eda.com>
 * Upstream repo now contains the patch file, therfore
   hw/vendor/patches/lowrisc_ip/prim_xilinx/0001_Mem_Init_String.patch
   is deleted

Signed-off-by: Kolos Koblasz <kolos.koblasz@semify-eda.com>
Update code from upstream repository
https://github.com/lowRISC/opentitan to revision
bf4a2b24e41742151cfce9c4041e959a3ba76ca3

* [I2C, DV] Refactoring the way ACKs / NACKs are driven (Kinza Qamar)
* [I2C, DV] Use urandom_range() to simplify randomizing Ack / Nack
  (Kinza Qamar)
* [dv] Correct documentation about reset tracking in csr_utils (Rupert
  Swarbrick)
* [tl,dv] Minor timing fixes in tl_host_driver (Rupert Swarbrick)
* [tl,dv] Tidy up signal names in clocking blocks (Rupert Swarbrick)
* [alert,dv] Remove alert_esc_seq_item::alert_int_err_type (Rupert
  Swarbrick)
* [dv] Define csr_excluded to balance iterations in csr_hw_reset_seq
  (Rupert Swarbrick)
* [dv] Define a csr_excluded function in csr_base_seq (Rupert
  Swarbrick)
* [dv] Split csr_hw_reset_seq into its own file (Rupert Swarbrick)
* [dv] Split out max_num_test_csrs explicitly in csr_base_seq (Rupert
  Swarbrick)
* [dv,doc] Add detailed documentation to csr_base_seq.sv (Rupert
  Swarbrick)
* [dv,csr_utils] Split csr_base_seq into its own file (Rupert
  Swarbrick)
* [dv] Fix and document timing in cip_base_vseq::wait_alert_trigger
  (Rupert Swarbrick)
* [dv] Allow a test to configure an env_cfg before cfg.initialize()
  (Rupert Swarbrick)
* [kmac,rtl] Add bypass to message FIFO to support 2 shares (Pascal
  Etterli)
* [kmac,rtl] Clean up naming of strobe (Pascal Etterli)
* [kmac] Increase version to 2.1.0 (Pascal Etterli)
* [dv] Extend memory backdoor data width limit (Sharon Topaz)
* [reggen] Avoid spamming console for some params from gen_cheader
  (Rupert Swarbrick)
* [dv] Decouple mem_bkdr_util row width and uvm_hdl_data_t (Rupert
  Swarbrick)
* [top,rstmgr] Rename power domain "0" to "Main" (Florian Glaser)
* [top] Untangle power- and reset domains (Florian Glaser)
* [doc] Update various dvsim references (Harry Callahan)
* [alert,dv] Simplify how we constrain ping_delay (Rupert Swarbrick)
* [alert,dv] Randomize correct object in alert_receiver_alert_rsp_seq
  (Rupert Swarbrick)
* [jtag,dv] Make jtag_dtm_reg_adapter a bit more local (Rupert
  Swarbrick)
* [dv] Extract the dv_base_agent files into their own core and package
  (Rupert Swarbrick)
* [toplevels] Reorganize toplevel.sv templates (Florian Glaser)
* [alert,dv] Don't return too early from a ping (Rupert Swarbrick)
* [dv] Rationalise dv_base_driver reset tracking (Rupert Swarbrick)
* [dv] Restructure the way jtag_dmi_reg_frontdoor is given dmi/dtmcs
  (Rupert Swarbrick)
* [entropy_src,dv] Remove remaining tb.dut paths from entropy_src dv
  (Rupert Swarbrick)
* [entropy_src,dv] Remove a bunch of unused path definitions (Rupert
  Swarbrick)
* [entropy_src,dv] Use relative references in entropy_src_cov_if
  (Rupert Swarbrick)
* [entropy_src,dv] Bind instance of entropy_src_path_if into the dut
  (Rupert Swarbrick)
* [aes/dv] Add RAL type override to allow separating GCM and non-GCM
  DV (Pirmin Vogel)
* [hw/otbn] Add new HPC gadgets (Hakim Filali)
* [prim/rtl] Improve prim_fifo_async_simple for rv_dm and lc_ctrl
  (Neil Webb)
* [clkmgr/cdc] Deglitch on shadow register error alerts (Neil Webb)
* [prim/rtl] Explicitly assign values to FSM states in
  prim_sync_reqack (Neil Webb)
* [rstmgr, DV] Fixed the message and ID body inside (Kinza Qamar)
* [i2c,hw] Correct assign/compare widths (Elliot Baptist)
* [dv] Pass is_active from cip_base_env_cfg to alert and TL agents
  (Rupert Swarbrick)
* [prim_xilinx] Use typeless parameter for MemInitFile (Ray Lau)
* [dv] Stop jtag_dmi_monitor depending on jtag_agent_cfg (Rupert
  Swarbrick)
* [dv] Beta-reduce slightly silly templating in fpv_csr.sv.tpl (Rupert
  Swarbrick)
* [dv] Fix REGWEN_PATH in fpv_csr.sv.tpl (Rupert Swarbrick)
* [top/templates] Indentation and whitespaces fixes (Florian Glaser)
* [topgen] Automatically generate port map for toplevels (Florian
  Glaser)
* [clkmgr,dv] Fix invalid type in clkmgr_regwen_vseq (Rupert
  Swarbrick)
* [tl,dv] Make TL assertions cause simulation failure when they fail
  (Rupert Swarbrick)
* [topgen,sw] Fix operations between different enum types, part II
  (Luís Marques)
* [rv_plic,rtl] Move the onehot0 checks to rv_plic_gateway (Rupert
  Swarbrick)
* [rv_plic,doc] Add some careful documentation to rv_plic_gateway.sv
  (Rupert Swarbrick)
* [rv_plic,rtl] Simplify code for ia update in the gateway (Rupert
  Swarbrick)
* [rv_plic,rtl] Simplify ip_o rule in rv_plic_gateway (Rupert
  Swarbrick)
* [rv_plic,fpv] Add an assertion about relationship between ia and ip
  (Rupert Swarbrick)
* [I2C, dv] Removed unused argument (Kinza Qamar)
* [tl,dv] Clear the stop flag at the end, not the start, of body()
  (Rupert Swarbrick)
* [I2C, dv] Simplified i2c_device_response seq's drive_read_byte()
  (Kinza Qamar)
* [i2c/rtl] Change VAL register input to synced SCL/SDA (Neil Webb)
* [I2C, dv] Removed the unused i2c_dv_if (Kinza Qamar)
* [dv] Simplify key sideload driver (Rupert Swarbrick)
* [dv] Allow a cfg to be passed directly to dv_base_agent (Rupert
  Swarbrick)
* [hw,prim] Add new prim_inv (Hakim Filali)
* [prim] Add prim_flop_x module to wrap different prim_flop variants
  (Pirmin Vogel)
* [dv] Remove csr_base_addr argument from dv_base_env_cfg::initialize
  (Rupert Swarbrick)
* [dv] Add "Monitor" to if_mode_e (Rupert Swarbrick)
* [hw] gpiodpi: fix backwards log message (Alice Ziuziakowska)
* [pwrmgr,dv] Remove do-nothing $assertoff (Rupert Swarbrick)

Signed-off-by: Kolos Koblasz <kolos.koblasz@semify-eda.com>
 * To track latest Open Titan variable name changes
   the domain "0" had to be replaced with "Main".
 * This is required to be able to complie the code
 * Only hw/top_chip/data/rstmgr_cfg.hjson is modified in thsi commit

Signed-off-by: Kolos Koblasz <kolos.koblasz@semify-eda.com>
 * The latest version of OT has different rstmgr domain name ("0" -> "Main").
 * This commit contains the relevant changes of the RTL and the TB

Signed-off-by: Kolos Koblasz <kolos.koblasz@semify-eda.com>
 * As result of previous changes autogenerated modules
   had to be regenerated.

Signed-off-by: Kolos Koblasz <kolos.koblasz@semify-eda.com>
Copy link
Copy Markdown
Collaborator

@marnovandermaas marnovandermaas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me. I haven't run the actual DV tests though so I'll leave it to someone who has done that to merge this PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants