Skip to content

Commit cc6a338

Browse files
committed
entdaa: use csrs for id
1 parent 9bbc866 commit cc6a338

File tree

8 files changed

+57
-14
lines changed

8 files changed

+57
-14
lines changed

src/ctrl/ccc.sv

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,6 @@ module ccc
8989
(
9090
input logic clk_i, // Clock
9191
input logic rst_ni, // Async reset, active low
92-
input logic [47:0] id_i,
9392

9493
// CC is decoded from the frame by the primary FSM
9594
input logic [7:0] ccc_i,
@@ -240,6 +239,18 @@ module ccc
240239
// I3C_DIRECT_GETDCR
241240
input logic [7:0] get_dcr_i,
242241

242+
// Get virtual device Provisioned ID
243+
// I3C_DIRECT_GETPID
244+
input logic [47:0] virtual_get_pid_i,
245+
246+
// Get virtual device Bus Characteristics Register
247+
// I3C_DIRECT_GETBCR
248+
input logic [7:0] virtual_get_bcr_i,
249+
250+
// Get virtual Device Characteristics Register
251+
// I3C_DIRECT_GETDCR
252+
input logic [7:0] virtual_get_dcr_i,
253+
243254
// Get Device Status
244255
// [15:8] Reserved for vendor-specific meaning, expected to be unused.
245256
// TODO: Bits 7:6 are tied to '11 until the Handoff procedure is fully implemented.
@@ -1023,10 +1034,14 @@ module ccc
10231034
ccc_entdaa xccc_entdaa (
10241035
.clk_i, // Clock
10251036
.rst_ni, // Async reset, active low
1026-
.id_i,
1037+
.id_i(get_pid_i),
10271038
.bcr_i(get_bcr_i),
10281039
.dcr_i(get_dcr_i),
10291040

1041+
.virtual_id_i(virtual_get_pid_i),
1042+
.virtual_bcr_i(virtual_get_bcr_i),
1043+
.virtual_dcr_i(virtual_get_dcr_i),
1044+
10301045
.start_daa_i(entdaa_o),
10311046
.done_daa_o(entdaa_done),
10321047

src/ctrl/ccc_entdaa.sv

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ module ccc_entdaa
88
input logic [7:0] dcr_i,
99
input logic [7:0] bcr_i,
1010

11+
input logic [47:0] virtual_id_i,
12+
input logic [7:0] virtual_dcr_i,
13+
input logic [7:0] virtual_bcr_i,
14+
1115
input logic start_daa_i,
1216
output logic done_daa_o,
1317

src/ctrl/configuration.sv

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ module configuration (
3535
output logic [47:0] pid_o, // Target ID
3636
output logic [ 7:0] bcr_o, // Bus Characteristics Register
3737
output logic [ 7:0] dcr_o, // Device Characteristics Register
38+
output logic [47:0] virtual_pid_o, // Target ID
39+
output logic [ 7:0] virtual_bcr_o, // Bus Characteristics Register
40+
output logic [ 7:0] virtual_dcr_o, // Device Characteristics Register
3841

3942
// Output effective target address (static or dynamic or recovery)
4043
output logic [6:0] target_sta_addr_o,
@@ -180,6 +183,18 @@ module configuration (
180183
};
181184

182185
assign dcr_o = hwif_out_i.I3C_EC.StdbyCtrlMode.STBY_CR_DEVICE_CHAR.DCR.value;
186+
assign virtual_pid_o = {
187+
hwif_out_i.I3C_EC.StdbyCtrlMode.STBY_CR_DEVICE_CHAR.PID_HI.value,
188+
1'b0,
189+
hwif_out_i.I3C_EC.StdbyCtrlMode.STBY_CR_DEVICE_PID_LO.PID_LO.value
190+
};
191+
192+
assign virtual_bcr_o = {
193+
hwif_out_i.I3C_EC.StdbyCtrlMode.STBY_CR_DEVICE_CHAR.BCR_FIXED.value,
194+
hwif_out_i.I3C_EC.StdbyCtrlMode.STBY_CR_DEVICE_CHAR.BCR_VAR.value
195+
};
196+
197+
assign virtual_dcr_o = hwif_out_i.I3C_EC.StdbyCtrlMode.STBY_CR_DEVICE_CHAR.DCR.value;
183198
assign daa_unique_response_o = {pid_o, bcr_o, dcr_o};
184199

185200
assign target_ibi_addr_o = target_dyn_addr_valid_o ? target_dyn_addr_o : target_sta_addr_o;

src/ctrl/controller.sv

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,6 @@ module controller
6262
) (
6363
input logic clk_i,
6464
input logic rst_ni,
65-
input logic [47:0] id_i,
66-
6765
// Interface to SDA/SCL
6866
input logic scl_i,
6967
input logic sda_i,
@@ -268,6 +266,9 @@ module controller
268266
logic [47:0] pid;
269267
logic [7:0] bcr;
270268
logic [7:0] dcr;
269+
logic [47:0] virtual_pid;
270+
logic [7:0] virtual_bcr;
271+
logic [7:0] virtual_dcr;
271272
logic [6:0] target_sta_addr;
272273
logic target_sta_addr_valid;
273274
logic [6:0] target_dyn_addr;
@@ -354,6 +355,9 @@ module controller
354355
.pid_o (pid),
355356
.bcr_o (bcr),
356357
.dcr_o (dcr),
358+
.virtual_pid_o (virtual_pid),
359+
.virtual_bcr_o (virtual_bcr),
360+
.virtual_dcr_o (virtual_dcr),
357361
.target_sta_addr_o (target_sta_addr),
358362
.target_sta_addr_valid_o (target_sta_addr_valid),
359363
.target_dyn_addr_o (target_dyn_addr),
@@ -458,7 +462,6 @@ module controller
458462
controller_standby xcontroller_standby (
459463
.clk_i(clk_i),
460464
.rst_ni(rst_ni),
461-
.id_i(id_i),
462465
.ctrl_bus_i(ctrl_bus_i[2:3]),
463466
.ctrl_scl_o(ctrl_scl_o[2:3]),
464467
.ctrl_sda_o(ctrl_sda_o[2:3]),
@@ -533,6 +536,9 @@ module controller
533536
.pid_i(pid),
534537
.bcr_i(bcr),
535538
.dcr_i(dcr),
539+
.virtual_pid_i(virtual_pid),
540+
.virtual_bcr_i(virtual_bcr),
541+
.virtual_dcr_i(virtual_dcr),
536542
.target_sta_addr_i(target_sta_addr),
537543
.target_sta_addr_valid_i(target_sta_addr_valid),
538544
.target_dyn_addr_i(target_dyn_addr),

src/ctrl/controller_standby.sv

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,6 @@ module controller_standby
3030
) (
3131
input logic clk_i,
3232
input logic rst_ni,
33-
input logic [47:0] id_i,
34-
3533
// Interface to SDA/SCL
3634
input bus_state_t ctrl_bus_i[2],
3735
output logic ctrl_scl_o[2],
@@ -125,6 +123,9 @@ module controller_standby
125123
input logic [47:0] pid_i,
126124
input logic [7:0] bcr_i,
127125
input logic [7:0] dcr_i,
126+
input logic [47:0] virtual_pid_i,
127+
input logic [7:0] virtual_bcr_i,
128+
input logic [7:0] virtual_dcr_i,
128129
input logic [6:0] target_sta_addr_i,
129130
input logic target_sta_addr_valid_i,
130131
input logic [6:0] target_dyn_addr_i,
@@ -385,7 +386,6 @@ module controller_standby
385386
) xcontroller_standby_i3c (
386387
.clk_i(clk_i),
387388
.rst_ni(rst_ni),
388-
.id_i(id_i),
389389
.ctrl_bus_i(ctrl_bus_i[1]),
390390
.ctrl_scl_o(ctrl_scl_o[1]),
391391
.ctrl_sda_o(ctrl_sda_o[1]),
@@ -428,6 +428,9 @@ module controller_standby
428428
.pid_i(pid_i),
429429
.bcr_i(bcr_i),
430430
.dcr_i(dcr_i),
431+
.virtual_pid_i(virtual_pid_i),
432+
.virtual_bcr_i(virtual_bcr_i),
433+
.virtual_dcr_i(virtual_dcr_i),
431434
.target_sta_addr_i(target_sta_addr_i),
432435
.target_sta_addr_valid_i(target_sta_addr_valid_i),
433436
.target_dyn_addr_i(target_dyn_addr_i),

src/ctrl/controller_standby_i3c.sv

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ module controller_standby_i3c
1616
) (
1717
input logic clk_i,
1818
input logic rst_ni,
19-
input logic [47:0] id_i,
2019

2120
// Interface to SDA/SCL
2221
input bus_state_t ctrl_bus_i,
@@ -77,6 +76,9 @@ module controller_standby_i3c
7776
input logic [47:0] pid_i,
7877
input logic [7:0] bcr_i,
7978
input logic [7:0] dcr_i,
79+
input logic [47:0] virtual_pid_i,
80+
input logic [7:0] virtual_bcr_i,
81+
input logic [7:0] virtual_dcr_i,
8082
input logic [6:0] target_sta_addr_i,
8183
input logic target_sta_addr_valid_i,
8284
input logic [6:0] target_dyn_addr_i,
@@ -469,7 +471,6 @@ module controller_standby_i3c
469471
ccc xccc (
470472
.clk_i,
471473
.rst_ni,
472-
.id_i,
473474
.arbitration_lost_i,
474475
.ccc_i (ccc),
475476
.ccc_valid_i (ccc_valid),
@@ -533,6 +534,9 @@ module controller_standby_i3c
533534
.get_pid_i (pid_i),
534535
.get_bcr_i (bcr_i),
535536
.get_dcr_i (dcr_i),
537+
.virtual_get_pid_i (virtual_pid_i),
538+
.virtual_get_bcr_i (virtual_bcr_i),
539+
.virtual_get_dcr_i (virtual_dcr_i),
536540
.get_status_fmt1_i (get_status_fmt1_i),
537541
.get_acccr_i (get_acccr),
538542
.set_brgtgt_o (set_brgtgt),

src/i3c.sv

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,6 @@ module i3c
102102
) (
103103
input clk_i, // clock
104104
input rst_ni, // active low reset
105-
input logic [47:0] id_i,
106105

107106
`ifdef I3C_USE_AHB
108107
// AHB-Lite interface
@@ -565,7 +564,6 @@ module i3c
565564
) xcontroller (
566565
.clk_i (clk_i),
567566
.rst_ni(rst_ni),
568-
.id_i (id_i),
569567

570568
.scl_i(phy2ctrl_scl),
571569
.sda_i(phy2ctrl_sda),

src/i3c_wrapper.sv

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ module i3c_wrapper #(
2222
) (
2323
input clk_i, // clock
2424
input rst_ni, // active low reset
25-
input logic [47:0] id_i,
2625

2726
`ifdef I3C_USE_AHB
2827
// AHB-Lite interface
@@ -163,7 +162,6 @@ module i3c_wrapper #(
163162
) i3c (
164163
.clk_i,
165164
.rst_ni,
166-
.id_i,
167165

168166
`ifdef I3C_USE_AHB
169167
.haddr_i,

0 commit comments

Comments
 (0)