Update pulp_riscv_dbg to pulp-platform/riscv-dbg@834853c Update code from upstream repository https://github.com/pulp- platform/riscv-dbg to revision 834853c0c68fc48d032a3e256e563f2b0bd28492 Signed-off-by: Michael Schaffner <msf@google.com>
diff --git a/hw/vendor/patches/pulp_riscv_dbg/0001-Style-lint-cleanup-to-make-Verible-lint-happy.patch b/hw/vendor/patches/pulp_riscv_dbg/0001-Style-lint-cleanup-to-make-Verible-lint-happy.patch index 1c5668c..0d329ef 100644 --- a/hw/vendor/patches/pulp_riscv_dbg/0001-Style-lint-cleanup-to-make-Verible-lint-happy.patch +++ b/hw/vendor/patches/pulp_riscv_dbg/0001-Style-lint-cleanup-to-make-Verible-lint-happy.patch
@@ -212,5 +212,5 @@ end -- -2.27.0.389.gc38d7665816-goog +2.28.0.rc0.105.gf9edc3c819-goog
diff --git a/hw/vendor/patches/pulp_riscv_dbg/0002-Use-lowrisc-instead-of-PULP-primitives.patch b/hw/vendor/patches/pulp_riscv_dbg/0002-Use-lowrisc-instead-of-PULP-primitives.patch index 417058c..d959765 100644 --- a/hw/vendor/patches/pulp_riscv_dbg/0002-Use-lowrisc-instead-of-PULP-primitives.patch +++ b/hw/vendor/patches/pulp_riscv_dbg/0002-Use-lowrisc-instead-of-PULP-primitives.patch
@@ -1,8 +1,9 @@ -From 570145de9ffca99595e2fee9fcfb433fee6c3610 Mon Sep 17 00:00:00 2001 +From 256422ad7df932c6f9934e65361cd963b8ac3bf0 Mon Sep 17 00:00:00 2001 From: Philipp Wagner <phw@lowrisc.org> Date: Fri, 22 Feb 2019 14:48:46 +0000 Subject: [PATCH 2/2] Use lowrisc instead of PULP primitives +Signed-off-by: Michael Schaffner <msf@google.com> --- src/dm_csrs.sv | 42 +++++++++++++++------------------- src/dmi_cdc.sv | 56 +++++++++++++++++++++++++++------------------ @@ -10,7 +11,7 @@ 3 files changed, 60 insertions(+), 58 deletions(-) diff --git a/src/dm_csrs.sv b/src/dm_csrs.sv -index f131392..b7fc5e1 100644 +index f131392..0d88e79 100644 --- a/src/dm_csrs.sv +++ b/src/dm_csrs.sv @@ -78,6 +78,7 @@ module dm_csrs #( @@ -24,16 +25,16 @@ @@ -85,10 +86,6 @@ module dm_csrs #( dm::dtm_op_e dtm_op; assign dtm_op = dm::dtm_op_e'(dmi_req_i.op); - + - logic resp_queue_full; - logic resp_queue_empty; - logic resp_queue_push; - logic resp_queue_pop; logic [31:0] resp_queue_data; - + localparam dm::dm_csr_e DataEnd = dm::dm_csr_e'(dm::Data0 + {4'b0, dm::DataCount} - 8'h1); @@ -180,9 +177,6 @@ module dm_csrs #( - + // a successful response returns zero assign dmi_resp_o.resp = dm::DTM_SUCCESS; - assign dmi_resp_valid_o = ~resp_queue_empty; @@ -45,11 +46,11 @@ @@ -550,27 +544,27 @@ module dm_csrs #( assign progbuf_o = progbuf_q; assign data_o = data_q; - + - assign resp_queue_pop = dmi_resp_ready_i & ~resp_queue_empty; - assign ndmreset_o = dmcontrol_q.ndmreset; - + + logic unused_testmode; + assign unused_testmode = testmode_i; + @@ -85,16 +86,16 @@ + .rready_i( dmi_resp_ready_i ), + .depth_o ( ) // Doesn't use ); - + always_ff @(posedge clk_i or negedge rst_ni) begin : p_regs diff --git a/src/dmi_cdc.sv b/src/dmi_cdc.sv -index 4665c91..1e4a6f3 100644 +index 4665c91..1299b09 100644 --- a/src/dmi_cdc.sv +++ b/src/dmi_cdc.sv @@ -42,32 +42,44 @@ module dmi_cdc ( input logic core_dmi_valid_i ); - + - cdc_2phase #(.T(dm::dmi_req_t)) i_cdc_req ( - .src_rst_ni ( trst_ni ), - .src_clk_i ( tck_i ), @@ -102,7 +103,7 @@ - .src_valid_i ( jtag_dmi_valid_i ), - .src_ready_o ( jtag_dmi_ready_o ), + // TODO: Make it clean for synthesis. - + - .dst_rst_ni ( rst_ni ), - .dst_clk_i ( clk_i ), - .dst_data_o ( core_dmi_req_o ), @@ -126,7 +127,7 @@ + .rdata_o ( core_dmi_req_o ), + .rdepth_o ( ) ); - + - cdc_2phase #(.T(dm::dmi_resp_t)) i_cdc_resp ( - .src_rst_ni ( rst_ni ), - .src_clk_i ( clk_i ), @@ -143,7 +144,7 @@ + .wready_o ( core_dmi_ready_o ), // wrclk + .wdata_i ( core_dmi_resp_i ), + .wdepth_o ( ), - + - .dst_rst_ni ( trst_ni ), - .dst_clk_i ( tck_i ), - .dst_data_o ( jtag_dmi_resp_o ), @@ -156,10 +157,10 @@ + .rdata_o ( jtag_dmi_resp_o ), + .rdepth_o ( ) ); - + endmodule : dmi_cdc diff --git a/src/dmi_jtag_tap.sv b/src/dmi_jtag_tap.sv -index 3d11145..ca6b824 100644 +index 3d11145..94b51d6 100644 --- a/src/dmi_jtag_tap.sv +++ b/src/dmi_jtag_tap.sv @@ -216,18 +216,14 @@ module dmi_jtag_tap #( @@ -180,15 +181,15 @@ - .clk_o ( tck_n ) + logic tck_n; + -+ prim_clock_inverter #( ++ prim_clock_inv #( + .HasScanMode(1'b1) + ) i_tck_inv ( + .clk_i ( tck_i ), + .clk_no ( tck_n ), + .scanmode_i ( testmode_i ) ); - + // TDO changes state at negative edge of TCK --- -2.27.0.389.gc38d7665816-goog +-- +2.28.0.rc0.105.gf9edc3c819-goog
diff --git a/hw/vendor/pulp_riscv_dbg/src/dmi_jtag_tap.sv b/hw/vendor/pulp_riscv_dbg/src/dmi_jtag_tap.sv index ca6b824..94b51d6 100644 --- a/hw/vendor/pulp_riscv_dbg/src/dmi_jtag_tap.sv +++ b/hw/vendor/pulp_riscv_dbg/src/dmi_jtag_tap.sv
@@ -218,7 +218,7 @@ // ---------------- logic tck_n; - prim_clock_inverter #( + prim_clock_inv #( .HasScanMode(1'b1) ) i_tck_inv ( .clk_i ( tck_i ),