[sysrst_ctrl] Add input path for flash_wp_l
Signed-off-by: Michael Schaffner <msf@opentitan.org>
diff --git a/hw/ip/sysrst_ctrl/data/sysrst_ctrl.hjson b/hw/ip/sysrst_ctrl/data/sysrst_ctrl.hjson
index 30dfa55..680f2b9 100644
--- a/hw/ip/sysrst_ctrl/data/sysrst_ctrl.hjson
+++ b/hw/ip/sysrst_ctrl/data/sysrst_ctrl.hjson
@@ -53,6 +53,7 @@
],
available_inout_list: [
{ name: "ec_rst_l", desc: "ec_rst_l as an inout to/from the open drain IO" }
+ { name: "flash_wp_l", desc: "flash_wp_l as an inout to/from the open drain IO" }
],
available_input_list: [
{ name: "ac_present", desc: "A/C power is present" }
@@ -64,7 +65,6 @@
],
available_output_list: [
{ name: "bat_disable", desc: "Battery is disconnected" }
- { name: "flash_wp_l", desc: "flash_wp_l as an output to the open drain IO" }
{ name: "key0_out", desc: "Passthrough from key0_in, can be configured to invert" }
{ name: "key1_out", desc: "Passthrough from key1_in, can be configured to invert" }
{ name: "key2_out", desc: "Passthrough from key2_in, can be configured to invert" }
@@ -483,40 +483,45 @@
"excl:CsrAllTests:CsrExclCheck"],
fields: [
{ bits: "0",
- name: "ac_present",
- desc: "raw ac_present value; before the invert logic",
- resval: "0",
- }
- { bits: "1",
- name: "ec_rst_l",
- desc: "raw ec_rst_l value; before the invert logic",
- resval: "0",
- }
- { bits: "2",
name: "pwrb_in",
desc: "raw pwrb_in value; before the invert logic",
resval: "0",
}
- { bits: "3",
+ { bits: "1",
name: "key0_in",
desc: "raw key0_in value; before the invert logic",
resval: "0",
}
- { bits: "4",
+ { bits: "2",
name: "key1_in",
desc: "raw key1_in value; before the invert logic",
resval: "0",
}
- { bits: "5",
+ { bits: "3",
name: "key2_in",
desc: "raw key2_in value; before the invert logic",
resval: "0",
}
- { bits: "6",
+ { bits: "4",
name: "lid_open",
desc: "raw lid_open value; before the invert logic",
resval: "0",
}
+ { bits: "5",
+ name: "ac_present",
+ desc: "raw ac_present value; before the invert logic",
+ resval: "0",
+ }
+ { bits: "6",
+ name: "ec_rst_l",
+ desc: "raw ec_rst_l value; before the invert logic",
+ resval: "0",
+ }
+ { bits: "7",
+ name: "flash_wp_l",
+ desc: "raw flash_wp_l value; before the invert logic",
+ resval: "0",
+ }
]
}
{ name: "KEY_INTR_CTL",
@@ -557,6 +562,11 @@
desc: "0: disable, 1: enable",
resval: "0",
}
+ { bits: "6",
+ name: "flash_wp_l_H2L",
+ desc: "0: disable, 1: enable",
+ resval: "0",
+ }
{ bits: "8",
name: "pwrb_in_L2H",
desc: "0: disable, 1: enable",
@@ -587,6 +597,11 @@
desc: "0: disable, 1: enable",
resval: "0",
}
+ { bits: "14",
+ name: "flash_wp_l_L2H",
+ desc: "0: disable, 1: enable",
+ resval: "0",
+ }
]
}
{ name: "KEY_INTR_DEBOUNCE_CTL",
@@ -845,35 +860,45 @@
resval: "0",
}
{ bits: "6",
- name: "pwrb_L2H",
+ name: "flash_wp_l_H2L",
desc: "0: case not detected;1: case detected",
resval: "0",
}
{ bits: "7",
- name: "key0_in_L2H",
+ name: "pwrb_L2H",
desc: "0: case not detected;1: case detected",
resval: "0",
}
{ bits: "8",
- name: "key1_in_L2H",
+ name: "key0_in_L2H",
desc: "0: case not detected;1: case detected",
resval: "0",
}
{ bits: "9",
- name: "key2_in_L2H",
+ name: "key1_in_L2H",
desc: "0: case not detected;1: case detected",
resval: "0",
}
{ bits: "10",
- name: "ac_present_L2H",
+ name: "key2_in_L2H",
desc: "0: case not detected;1: case detected",
resval: "0",
}
{ bits: "11",
+ name: "ac_present_L2H",
+ desc: "0: case not detected;1: case detected",
+ resval: "0",
+ }
+ { bits: "12",
name: "ec_rst_l_L2H",
desc: "0: case not detected;1: case detected",
resval: "0",
}
+ { bits: "13",
+ name: "flash_wp_l_L2H",
+ desc: "0: case not detected;1: case detected",
+ resval: "0",
+ }
]
}
],
diff --git a/hw/ip/sysrst_ctrl/dv/env/sysrst_ctrl_if.sv b/hw/ip/sysrst_ctrl/dv/env/sysrst_ctrl_if.sv
index 6aa967d..fc075f0 100644
--- a/hw/ip/sysrst_ctrl/dv/env/sysrst_ctrl_if.sv
+++ b/hw/ip/sysrst_ctrl/dv/env/sysrst_ctrl_if.sv
@@ -13,6 +13,7 @@
logic pwrb_in;
logic ac_present;
logic ec_rst_l_in;
+ logic flash_wp_l_in;
logic lid_open;
logic bat_disable;
logic flash_wp_l;
@@ -36,6 +37,7 @@
pwrb_in <= 0;
lid_open <= 0;
ec_rst_l_in <= 1;
+ flash_wp_l_in <= 1;
z3_wakeup_in <= 0;
bat_disable_in <= 0;
endfunction
@@ -43,14 +45,15 @@
task automatic randomize_input();
// VCS doesn't support randomizing logic variable
// so declare bit variable, randomize it and assigned it to logic
- bit pwrb, key0, key1, key2, ec_rst_l;
- `DV_CHECK_FATAL(std::randomize(pwrb, key0, key1, key2, ec_rst_l), ,
+ bit pwrb, key0, key1, key2, ec_rst_l, flash_wp_l;
+ `DV_CHECK_FATAL(std::randomize(pwrb, key0, key1, key2, ec_rst_l, flash_wp_l), ,
"sysrst_ctrl_if")
pwrb_in = pwrb;
key0_in = key0;
key1_in = key1;
key2_in = key2;
ec_rst_l_in = ec_rst_l;
+ flash_wp_l_in = flash_wp_l;
endtask
endinterface : sysrst_ctrl_if
diff --git a/hw/ip/sysrst_ctrl/dv/tb.sv b/hw/ip/sysrst_ctrl/dv/tb.sv
index e3a0c5d..edad44d 100644
--- a/hw/ip/sysrst_ctrl/dv/tb.sv
+++ b/hw/ip/sysrst_ctrl/dv/tb.sv
@@ -53,6 +53,7 @@
.alert_tx_o (alert_tx),
.cio_ac_present_i (sysrst_ctrl_if.ac_present),
.cio_ec_rst_l_i (sysrst_ctrl_if.ec_rst_l_in),
+ .cio_flash_wp_l_i (sysrst_ctrl_if.flash_wp_l_in),
.cio_key0_in_i (sysrst_ctrl_if.key0_in),
.cio_key1_in_i (sysrst_ctrl_if.key1_in),
.cio_key2_in_i (sysrst_ctrl_if.key2_in),
diff --git a/hw/ip/sysrst_ctrl/rtl/sysrst_ctrl.sv b/hw/ip/sysrst_ctrl/rtl/sysrst_ctrl.sv
index ef16492..d2761e6 100644
--- a/hw/ip/sysrst_ctrl/rtl/sysrst_ctrl.sv
+++ b/hw/ip/sysrst_ctrl/rtl/sysrst_ctrl.sv
@@ -37,6 +37,7 @@
input cio_key2_in_i, // TBD button in tablet; row input from keyboard matrix in a laptop
input cio_pwrb_in_i, // Power button in both tablet and laptop
input cio_lid_open_i, // lid is open from GMR
+ input cio_flash_wp_l_i, // read back of the flash_wp_l output pad
output logic cio_bat_disable_o, // Battery is disconnected
output logic cio_flash_wp_l_o,//Flash write protect is asserted by sysrst_ctrl
output logic cio_ec_rst_l_o, // EC reset is asserted by sysrst_ctrl
@@ -100,25 +101,34 @@
///////////////////////////////////////
// Optionally invert some of the input signals
- logic pwrb_int, key0_int, key1_int, key2_int, ac_present_int, lid_open_int, ec_rst_l_int;
+ logic pwrb_int, key0_int, key1_int, key2_int, ac_present_int, lid_open_int;
+ logic ec_rst_l_int, flash_wp_l_int;
assign pwrb_int = reg2hw.key_invert_ctl.pwrb_in.q ^ cio_pwrb_in_i;
assign key0_int = reg2hw.key_invert_ctl.key0_in.q ^ cio_key0_in_i;
assign key1_int = reg2hw.key_invert_ctl.key1_in.q ^ cio_key1_in_i;
assign key2_int = reg2hw.key_invert_ctl.key2_in.q ^ cio_key2_in_i;
assign ac_present_int = reg2hw.key_invert_ctl.ac_present.q ^ cio_ac_present_i;
assign lid_open_int = reg2hw.key_invert_ctl.lid_open.q ^ cio_lid_open_i;
- // Uninverted input
+ // Uninverted inputs
assign ec_rst_l_int = cio_ec_rst_l_i;
+ assign flash_wp_l_int = cio_flash_wp_l_i;
// Synchronize input signals to AON clock
logic aon_pwrb_int, aon_key0_int, aon_key1_int, aon_key2_int;
- logic aon_ac_present_int, aon_lid_open_int, aon_ec_rst_l_int;
+ logic aon_ac_present_int, aon_lid_open_int, aon_ec_rst_l_int, aon_flash_wp_l_int;
prim_flop_2sync #(
- .Width(7)
+ .Width(8)
) u_prim_flop_2sync_input (
.clk_i(clk_aon_i),
.rst_ni(rst_aon_ni),
- .d_i({pwrb_int, key0_int, key1_int, key2_int, ac_present_int, lid_open_int, ec_rst_l_int}),
+ .d_i({pwrb_int,
+ key0_int,
+ key1_int,
+ key2_int,
+ ac_present_int,
+ lid_open_int,
+ ec_rst_l_int,
+ flash_wp_l_int}),
.q_o({
aon_pwrb_int,
aon_key0_int,
@@ -126,7 +136,8 @@
aon_key2_int,
aon_ac_present_int,
aon_lid_open_int,
- aon_ec_rst_l_int
+ aon_ec_rst_l_int,
+ aon_flash_wp_l_int
})
);
@@ -200,6 +211,7 @@
.key2_int_i(aon_key2_int),
.ac_present_int_i(aon_ac_present_int),
.ec_rst_l_int_i(aon_ec_rst_l_int),
+ .flash_wp_l_int_i(aon_flash_wp_l_int),
// CSRs synced to AON clock
.key_intr_ctl_i(reg2hw.key_intr_ctl),
.key_intr_debounce_ctl_i(reg2hw.key_intr_debounce_ctl),
@@ -257,6 +269,7 @@
.cio_key2_in_i,
.cio_ac_present_i,
.cio_ec_rst_l_i,
+ .cio_flash_wp_l_i,
.cio_lid_open_i,
// Signals from autoblock (not synced to AON clock)
.pwrb_out_hw_i(pwrb_out_hw),
diff --git a/hw/ip/sysrst_ctrl/rtl/sysrst_ctrl_keyintr.sv b/hw/ip/sysrst_ctrl/rtl/sysrst_ctrl_keyintr.sv
index e1d9e6d..caf2d76 100644
--- a/hw/ip/sysrst_ctrl/rtl/sysrst_ctrl_keyintr.sv
+++ b/hw/ip/sysrst_ctrl/rtl/sysrst_ctrl_keyintr.sv
@@ -17,6 +17,7 @@
input key2_int_i,
input ac_present_int_i,
input ec_rst_l_int_i,
+ input flash_wp_l_int_i,
// CSRs synced to AON clock
input sysrst_ctrl_reg2hw_key_intr_ctl_reg_t key_intr_ctl_i,
input sysrst_ctrl_reg2hw_key_intr_debounce_ctl_reg_t key_intr_debounce_ctl_i,
@@ -25,10 +26,16 @@
output sysrst_ctrl_key_intr_o
);
- localparam int NumKeyIntr = 6;
+ localparam int NumKeyIntr = 7;
logic [NumKeyIntr-1:0] triggers, l2h_en, h2l_en;
assign triggers = {
- pwrb_int_i, key0_int_i, key1_int_i, key2_int_i, ac_present_int_i, ec_rst_l_int_i
+ pwrb_int_i,
+ key0_int_i,
+ key1_int_i,
+ key2_int_i,
+ ac_present_int_i,
+ ec_rst_l_int_i,
+ flash_wp_l_int_i
};
assign l2h_en = {
key_intr_ctl_i.pwrb_in_l2h.q,
@@ -36,7 +43,8 @@
key_intr_ctl_i.key1_in_l2h.q,
key_intr_ctl_i.key2_in_l2h.q,
key_intr_ctl_i.ac_present_l2h.q,
- key_intr_ctl_i.ec_rst_l_l2h.q
+ key_intr_ctl_i.ec_rst_l_l2h.q,
+ key_intr_ctl_i.flash_wp_l_l2h.q
};
assign h2l_en = {
key_intr_ctl_i.pwrb_in_h2l.q,
@@ -44,7 +52,8 @@
key_intr_ctl_i.key1_in_h2l.q,
key_intr_ctl_i.key2_in_h2l.q,
key_intr_ctl_i.ac_present_h2l.q,
- key_intr_ctl_i.ec_rst_l_h2l.q
+ key_intr_ctl_i.ec_rst_l_h2l.q,
+ key_intr_ctl_i.flash_wp_l_h2l.q
};
logic [NumKeyIntr-1:0] l2h_met_pulse, h2l_met_pulse;
@@ -94,14 +103,16 @@
key_intr_status_o.key1_in_l2h.de,
key_intr_status_o.key2_in_l2h.de,
key_intr_status_o.ac_present_l2h.de,
- key_intr_status_o.ec_rst_l_l2h.de} = l2h_met_pulse;
+ key_intr_status_o.ec_rst_l_l2h.de,
+ key_intr_status_o.flash_wp_l_l2h.de} = l2h_met_pulse;
assign {key_intr_status_o.pwrb_h2l.de,
key_intr_status_o.key0_in_h2l.de,
key_intr_status_o.key1_in_h2l.de,
key_intr_status_o.key2_in_h2l.de,
key_intr_status_o.ac_present_h2l.de,
- key_intr_status_o.ec_rst_l_h2l.de} = h2l_met_pulse;
+ key_intr_status_o.ec_rst_l_h2l.de,
+ key_intr_status_o.flash_wp_l_h2l.de} = h2l_met_pulse;
// Send out aggregated interrupt pulse
assign sysrst_ctrl_key_intr_o = |l2h_met_pulse || |h2l_met_pulse;
@@ -119,5 +130,7 @@
assign key_intr_status_o.ac_present_l2h.d = 1'b1;
assign key_intr_status_o.ec_rst_l_h2l.d = 1'b1;
assign key_intr_status_o.ec_rst_l_l2h.d = 1'b1;
+ assign key_intr_status_o.flash_wp_l_h2l.d = 1'b1;
+ assign key_intr_status_o.flash_wp_l_l2h.d = 1'b1;
endmodule
diff --git a/hw/ip/sysrst_ctrl/rtl/sysrst_ctrl_pin.sv b/hw/ip/sysrst_ctrl/rtl/sysrst_ctrl_pin.sv
index ccf7c4e..ce6b6f3 100644
--- a/hw/ip/sysrst_ctrl/rtl/sysrst_ctrl_pin.sv
+++ b/hw/ip/sysrst_ctrl/rtl/sysrst_ctrl_pin.sv
@@ -17,6 +17,7 @@
input cio_key2_in_i,
input cio_ac_present_i,
input cio_ec_rst_l_i,
+ input cio_flash_wp_l_i,
input cio_lid_open_i,
// Signals from autoblock (not synced to AON clock)
input pwrb_out_hw_i,
@@ -49,37 +50,40 @@
// Synchronize between GPIO and cfg(24MHz)
// Use the raw input values here (not the inverted pass through values)
prim_flop_2sync #(
- .Width(7)
+ .Width(8)
) u_cfg_ac_present_i_pin (
.clk_i,
.rst_ni,
.d_i({
- cio_ac_present_i,
- cio_ec_rst_l_i,
cio_pwrb_in_i,
cio_key0_in_i,
cio_key1_in_i,
cio_key2_in_i,
- cio_lid_open_i
+ cio_lid_open_i,
+ cio_ac_present_i,
+ cio_ec_rst_l_i,
+ cio_flash_wp_l_i
}),
.q_o({
- pin_in_value_o.ac_present.d,
- pin_in_value_o.ec_rst_l.d,
pin_in_value_o.pwrb_in.d,
pin_in_value_o.key0_in.d,
pin_in_value_o.key1_in.d,
pin_in_value_o.key2_in.d,
- pin_in_value_o.lid_open.d
+ pin_in_value_o.lid_open.d,
+ pin_in_value_o.ac_present.d,
+ pin_in_value_o.ec_rst_l.d,
+ pin_in_value_o.flash_wp_l.d
})
);
- assign pin_in_value_o.ac_present.de = 1'b1;
- assign pin_in_value_o.ec_rst_l.de = 1'b1;
assign pin_in_value_o.pwrb_in.de = 1'b1;
assign pin_in_value_o.key0_in.de = 1'b1;
assign pin_in_value_o.key1_in.de = 1'b1;
assign pin_in_value_o.key2_in.de = 1'b1;
assign pin_in_value_o.lid_open.de = 1'b1;
+ assign pin_in_value_o.ac_present.de = 1'b1;
+ assign pin_in_value_o.ec_rst_l.de = 1'b1;
+ assign pin_in_value_o.flash_wp_l.de = 1'b1;
// Pin override logic.
localparam int NumSignals = 8;
diff --git a/hw/ip/sysrst_ctrl/rtl/sysrst_ctrl_reg_pkg.sv b/hw/ip/sysrst_ctrl/rtl/sysrst_ctrl_reg_pkg.sv
index 710b3bb..2b21fc2 100644
--- a/hw/ip/sysrst_ctrl/rtl/sysrst_ctrl_reg_pkg.sv
+++ b/hw/ip/sysrst_ctrl/rtl/sysrst_ctrl_reg_pkg.sv
@@ -226,6 +226,9 @@
} ec_rst_l_h2l;
struct packed {
logic q;
+ } flash_wp_l_h2l;
+ struct packed {
+ logic q;
} pwrb_in_l2h;
struct packed {
logic q;
@@ -242,6 +245,9 @@
struct packed {
logic q;
} ec_rst_l_l2h;
+ struct packed {
+ logic q;
+ } flash_wp_l_l2h;
} sysrst_ctrl_reg2hw_key_intr_ctl_reg_t;
typedef struct packed {
@@ -334,14 +340,6 @@
struct packed {
logic d;
logic de;
- } ac_present;
- struct packed {
- logic d;
- logic de;
- } ec_rst_l;
- struct packed {
- logic d;
- logic de;
} pwrb_in;
struct packed {
logic d;
@@ -359,6 +357,18 @@
logic d;
logic de;
} lid_open;
+ struct packed {
+ logic d;
+ logic de;
+ } ac_present;
+ struct packed {
+ logic d;
+ logic de;
+ } ec_rst_l;
+ struct packed {
+ logic d;
+ logic de;
+ } flash_wp_l;
} sysrst_ctrl_hw2reg_pin_in_value_reg_t;
typedef struct packed {
@@ -408,6 +418,10 @@
struct packed {
logic d;
logic de;
+ } flash_wp_l_h2l;
+ struct packed {
+ logic d;
+ logic de;
} pwrb_l2h;
struct packed {
logic d;
@@ -429,25 +443,29 @@
logic d;
logic de;
} ec_rst_l_l2h;
+ struct packed {
+ logic d;
+ logic de;
+ } flash_wp_l_l2h;
} sysrst_ctrl_hw2reg_key_intr_status_reg_t;
// Register -> HW type
typedef struct packed {
- sysrst_ctrl_reg2hw_intr_state_reg_t intr_state; // [330:330]
- sysrst_ctrl_reg2hw_intr_enable_reg_t intr_enable; // [329:329]
- sysrst_ctrl_reg2hw_intr_test_reg_t intr_test; // [328:327]
- sysrst_ctrl_reg2hw_alert_test_reg_t alert_test; // [326:325]
- sysrst_ctrl_reg2hw_ec_rst_ctl_reg_t ec_rst_ctl; // [324:309]
- sysrst_ctrl_reg2hw_ulp_ac_debounce_ctl_reg_t ulp_ac_debounce_ctl; // [308:293]
- sysrst_ctrl_reg2hw_ulp_lid_debounce_ctl_reg_t ulp_lid_debounce_ctl; // [292:277]
- sysrst_ctrl_reg2hw_ulp_pwrb_debounce_ctl_reg_t ulp_pwrb_debounce_ctl; // [276:261]
- sysrst_ctrl_reg2hw_ulp_ctl_reg_t ulp_ctl; // [260:260]
- sysrst_ctrl_reg2hw_wkup_status_reg_t wkup_status; // [259:259]
- sysrst_ctrl_reg2hw_key_invert_ctl_reg_t key_invert_ctl; // [258:247]
- sysrst_ctrl_reg2hw_pin_allowed_ctl_reg_t pin_allowed_ctl; // [246:231]
- sysrst_ctrl_reg2hw_pin_out_ctl_reg_t pin_out_ctl; // [230:223]
- sysrst_ctrl_reg2hw_pin_out_value_reg_t pin_out_value; // [222:215]
- sysrst_ctrl_reg2hw_key_intr_ctl_reg_t key_intr_ctl; // [214:203]
+ sysrst_ctrl_reg2hw_intr_state_reg_t intr_state; // [332:332]
+ sysrst_ctrl_reg2hw_intr_enable_reg_t intr_enable; // [331:331]
+ sysrst_ctrl_reg2hw_intr_test_reg_t intr_test; // [330:329]
+ sysrst_ctrl_reg2hw_alert_test_reg_t alert_test; // [328:327]
+ sysrst_ctrl_reg2hw_ec_rst_ctl_reg_t ec_rst_ctl; // [326:311]
+ sysrst_ctrl_reg2hw_ulp_ac_debounce_ctl_reg_t ulp_ac_debounce_ctl; // [310:295]
+ sysrst_ctrl_reg2hw_ulp_lid_debounce_ctl_reg_t ulp_lid_debounce_ctl; // [294:279]
+ sysrst_ctrl_reg2hw_ulp_pwrb_debounce_ctl_reg_t ulp_pwrb_debounce_ctl; // [278:263]
+ sysrst_ctrl_reg2hw_ulp_ctl_reg_t ulp_ctl; // [262:262]
+ sysrst_ctrl_reg2hw_wkup_status_reg_t wkup_status; // [261:261]
+ sysrst_ctrl_reg2hw_key_invert_ctl_reg_t key_invert_ctl; // [260:249]
+ sysrst_ctrl_reg2hw_pin_allowed_ctl_reg_t pin_allowed_ctl; // [248:233]
+ sysrst_ctrl_reg2hw_pin_out_ctl_reg_t pin_out_ctl; // [232:225]
+ sysrst_ctrl_reg2hw_pin_out_value_reg_t pin_out_value; // [224:217]
+ sysrst_ctrl_reg2hw_key_intr_ctl_reg_t key_intr_ctl; // [216:203]
sysrst_ctrl_reg2hw_key_intr_debounce_ctl_reg_t key_intr_debounce_ctl; // [202:187]
sysrst_ctrl_reg2hw_auto_block_debounce_ctl_reg_t auto_block_debounce_ctl; // [186:170]
sysrst_ctrl_reg2hw_auto_block_out_ctl_reg_t auto_block_out_ctl; // [169:164]
@@ -458,12 +476,12 @@
// HW -> register type
typedef struct packed {
- sysrst_ctrl_hw2reg_intr_state_reg_t intr_state; // [51:50]
- sysrst_ctrl_hw2reg_ulp_status_reg_t ulp_status; // [49:48]
- sysrst_ctrl_hw2reg_wkup_status_reg_t wkup_status; // [47:46]
- sysrst_ctrl_hw2reg_pin_in_value_reg_t pin_in_value; // [45:32]
- sysrst_ctrl_hw2reg_combo_intr_status_reg_t combo_intr_status; // [31:24]
- sysrst_ctrl_hw2reg_key_intr_status_reg_t key_intr_status; // [23:0]
+ sysrst_ctrl_hw2reg_intr_state_reg_t intr_state; // [57:56]
+ sysrst_ctrl_hw2reg_ulp_status_reg_t ulp_status; // [55:54]
+ sysrst_ctrl_hw2reg_wkup_status_reg_t wkup_status; // [53:52]
+ sysrst_ctrl_hw2reg_pin_in_value_reg_t pin_in_value; // [51:36]
+ sysrst_ctrl_hw2reg_combo_intr_status_reg_t combo_intr_status; // [35:28]
+ sysrst_ctrl_hw2reg_key_intr_status_reg_t key_intr_status; // [27:0]
} sysrst_ctrl_hw2reg_t;
// Register offsets
diff --git a/hw/ip/sysrst_ctrl/rtl/sysrst_ctrl_reg_top.sv b/hw/ip/sysrst_ctrl/rtl/sysrst_ctrl_reg_top.sv
index 6288cdd..d33f006 100644
--- a/hw/ip/sysrst_ctrl/rtl/sysrst_ctrl_reg_top.sv
+++ b/hw/ip/sysrst_ctrl/rtl/sysrst_ctrl_reg_top.sv
@@ -168,15 +168,16 @@
logic pin_out_value_we;
logic [7:0] pin_out_value_qs;
logic pin_out_value_busy;
- logic pin_in_value_ac_present_qs;
- logic pin_in_value_ec_rst_l_qs;
logic pin_in_value_pwrb_in_qs;
logic pin_in_value_key0_in_qs;
logic pin_in_value_key1_in_qs;
logic pin_in_value_key2_in_qs;
logic pin_in_value_lid_open_qs;
+ logic pin_in_value_ac_present_qs;
+ logic pin_in_value_ec_rst_l_qs;
+ logic pin_in_value_flash_wp_l_qs;
logic key_intr_ctl_we;
- logic [13:0] key_intr_ctl_qs;
+ logic [14:0] key_intr_ctl_qs;
logic key_intr_ctl_busy;
logic key_intr_debounce_ctl_we;
logic [15:0] key_intr_debounce_ctl_qs;
@@ -227,7 +228,7 @@
logic [3:0] combo_intr_status_qs;
logic combo_intr_status_busy;
logic key_intr_status_we;
- logic [11:0] key_intr_status_qs;
+ logic [13:0] key_intr_status_qs;
logic key_intr_status_busy;
// Define register CDC handling.
// CDC handling is done on a per-reg instead of per-field boundary.
@@ -720,14 +721,16 @@
logic aon_key_intr_ctl_key2_in_h2l_qs_int;
logic aon_key_intr_ctl_ac_present_h2l_qs_int;
logic aon_key_intr_ctl_ec_rst_l_h2l_qs_int;
+ logic aon_key_intr_ctl_flash_wp_l_h2l_qs_int;
logic aon_key_intr_ctl_pwrb_in_l2h_qs_int;
logic aon_key_intr_ctl_key0_in_l2h_qs_int;
logic aon_key_intr_ctl_key1_in_l2h_qs_int;
logic aon_key_intr_ctl_key2_in_l2h_qs_int;
logic aon_key_intr_ctl_ac_present_l2h_qs_int;
logic aon_key_intr_ctl_ec_rst_l_l2h_qs_int;
- logic [13:0] aon_key_intr_ctl_d;
- logic [13:0] aon_key_intr_ctl_wdata;
+ logic aon_key_intr_ctl_flash_wp_l_l2h_qs_int;
+ logic [14:0] aon_key_intr_ctl_d;
+ logic [14:0] aon_key_intr_ctl_wdata;
logic aon_key_intr_ctl_we;
logic unused_aon_key_intr_ctl_wdata;
logic aon_key_intr_ctl_regwen;
@@ -740,18 +743,20 @@
aon_key_intr_ctl_d[3] = aon_key_intr_ctl_key2_in_h2l_qs_int;
aon_key_intr_ctl_d[4] = aon_key_intr_ctl_ac_present_h2l_qs_int;
aon_key_intr_ctl_d[5] = aon_key_intr_ctl_ec_rst_l_h2l_qs_int;
+ aon_key_intr_ctl_d[6] = aon_key_intr_ctl_flash_wp_l_h2l_qs_int;
aon_key_intr_ctl_d[8] = aon_key_intr_ctl_pwrb_in_l2h_qs_int;
aon_key_intr_ctl_d[9] = aon_key_intr_ctl_key0_in_l2h_qs_int;
aon_key_intr_ctl_d[10] = aon_key_intr_ctl_key1_in_l2h_qs_int;
aon_key_intr_ctl_d[11] = aon_key_intr_ctl_key2_in_l2h_qs_int;
aon_key_intr_ctl_d[12] = aon_key_intr_ctl_ac_present_l2h_qs_int;
aon_key_intr_ctl_d[13] = aon_key_intr_ctl_ec_rst_l_l2h_qs_int;
+ aon_key_intr_ctl_d[14] = aon_key_intr_ctl_flash_wp_l_l2h_qs_int;
end
prim_reg_cdc #(
- .DataWidth(14),
- .ResetVal(14'h0),
- .BitMask(14'h3f3f)
+ .DataWidth(15),
+ .ResetVal(15'h0),
+ .BitMask(15'h7f7f)
) u_key_intr_ctl_cdc (
.clk_src_i (clk_i),
.rst_src_ni (rst_ni),
@@ -761,7 +766,7 @@
.src_regwen_i (regwen_qs),
.src_we_i (key_intr_ctl_we),
.src_re_i ('0),
- .src_wd_i (reg_wdata[13:0]),
+ .src_wd_i (reg_wdata[14:0]),
.src_busy_o (key_intr_ctl_busy),
.src_qs_o (key_intr_ctl_qs), // for software read back
.dst_d_i (aon_key_intr_ctl_d),
@@ -1444,14 +1449,16 @@
logic aon_key_intr_status_key2_in_h2l_qs_int;
logic aon_key_intr_status_ac_present_h2l_qs_int;
logic aon_key_intr_status_ec_rst_l_h2l_qs_int;
+ logic aon_key_intr_status_flash_wp_l_h2l_qs_int;
logic aon_key_intr_status_pwrb_l2h_qs_int;
logic aon_key_intr_status_key0_in_l2h_qs_int;
logic aon_key_intr_status_key1_in_l2h_qs_int;
logic aon_key_intr_status_key2_in_l2h_qs_int;
logic aon_key_intr_status_ac_present_l2h_qs_int;
logic aon_key_intr_status_ec_rst_l_l2h_qs_int;
- logic [11:0] aon_key_intr_status_d;
- logic [11:0] aon_key_intr_status_wdata;
+ logic aon_key_intr_status_flash_wp_l_l2h_qs_int;
+ logic [13:0] aon_key_intr_status_d;
+ logic [13:0] aon_key_intr_status_wdata;
logic aon_key_intr_status_we;
logic unused_aon_key_intr_status_wdata;
@@ -1463,18 +1470,20 @@
aon_key_intr_status_d[3] = aon_key_intr_status_key2_in_h2l_qs_int;
aon_key_intr_status_d[4] = aon_key_intr_status_ac_present_h2l_qs_int;
aon_key_intr_status_d[5] = aon_key_intr_status_ec_rst_l_h2l_qs_int;
- aon_key_intr_status_d[6] = aon_key_intr_status_pwrb_l2h_qs_int;
- aon_key_intr_status_d[7] = aon_key_intr_status_key0_in_l2h_qs_int;
- aon_key_intr_status_d[8] = aon_key_intr_status_key1_in_l2h_qs_int;
- aon_key_intr_status_d[9] = aon_key_intr_status_key2_in_l2h_qs_int;
- aon_key_intr_status_d[10] = aon_key_intr_status_ac_present_l2h_qs_int;
- aon_key_intr_status_d[11] = aon_key_intr_status_ec_rst_l_l2h_qs_int;
+ aon_key_intr_status_d[6] = aon_key_intr_status_flash_wp_l_h2l_qs_int;
+ aon_key_intr_status_d[7] = aon_key_intr_status_pwrb_l2h_qs_int;
+ aon_key_intr_status_d[8] = aon_key_intr_status_key0_in_l2h_qs_int;
+ aon_key_intr_status_d[9] = aon_key_intr_status_key1_in_l2h_qs_int;
+ aon_key_intr_status_d[10] = aon_key_intr_status_key2_in_l2h_qs_int;
+ aon_key_intr_status_d[11] = aon_key_intr_status_ac_present_l2h_qs_int;
+ aon_key_intr_status_d[12] = aon_key_intr_status_ec_rst_l_l2h_qs_int;
+ aon_key_intr_status_d[13] = aon_key_intr_status_flash_wp_l_l2h_qs_int;
end
prim_reg_cdc #(
- .DataWidth(12),
- .ResetVal(12'h0),
- .BitMask(12'hfff)
+ .DataWidth(14),
+ .ResetVal(14'h0),
+ .BitMask(14'h3fff)
) u_key_intr_status_cdc (
.clk_src_i (clk_i),
.rst_src_ni (rst_ni),
@@ -1484,7 +1493,7 @@
.src_regwen_i ('0),
.src_we_i (key_intr_status_we),
.src_re_i ('0),
- .src_wd_i (reg_wdata[11:0]),
+ .src_wd_i (reg_wdata[13:0]),
.src_busy_o (key_intr_status_busy),
.src_qs_o (key_intr_status_qs), // for software read back
.dst_d_i (aon_key_intr_status_d),
@@ -2896,57 +2905,7 @@
// R[pin_in_value]: V(False)
- // F[ac_present]: 0:0
- prim_subreg #(
- .DW (1),
- .SwAccess(prim_subreg_pkg::SwAccessRO),
- .RESVAL (1'h0)
- ) u_pin_in_value_ac_present (
- .clk_i (clk_i),
- .rst_ni (rst_ni),
-
- // from register interface
- .we (1'b0),
- .wd ('0),
-
- // from internal hardware
- .de (hw2reg.pin_in_value.ac_present.de),
- .d (hw2reg.pin_in_value.ac_present.d),
-
- // to internal hardware
- .qe (),
- .q (),
-
- // to register interface (read)
- .qs (pin_in_value_ac_present_qs)
- );
-
- // F[ec_rst_l]: 1:1
- prim_subreg #(
- .DW (1),
- .SwAccess(prim_subreg_pkg::SwAccessRO),
- .RESVAL (1'h0)
- ) u_pin_in_value_ec_rst_l (
- .clk_i (clk_i),
- .rst_ni (rst_ni),
-
- // from register interface
- .we (1'b0),
- .wd ('0),
-
- // from internal hardware
- .de (hw2reg.pin_in_value.ec_rst_l.de),
- .d (hw2reg.pin_in_value.ec_rst_l.d),
-
- // to internal hardware
- .qe (),
- .q (),
-
- // to register interface (read)
- .qs (pin_in_value_ec_rst_l_qs)
- );
-
- // F[pwrb_in]: 2:2
+ // F[pwrb_in]: 0:0
prim_subreg #(
.DW (1),
.SwAccess(prim_subreg_pkg::SwAccessRO),
@@ -2971,7 +2930,7 @@
.qs (pin_in_value_pwrb_in_qs)
);
- // F[key0_in]: 3:3
+ // F[key0_in]: 1:1
prim_subreg #(
.DW (1),
.SwAccess(prim_subreg_pkg::SwAccessRO),
@@ -2996,7 +2955,7 @@
.qs (pin_in_value_key0_in_qs)
);
- // F[key1_in]: 4:4
+ // F[key1_in]: 2:2
prim_subreg #(
.DW (1),
.SwAccess(prim_subreg_pkg::SwAccessRO),
@@ -3021,7 +2980,7 @@
.qs (pin_in_value_key1_in_qs)
);
- // F[key2_in]: 5:5
+ // F[key2_in]: 3:3
prim_subreg #(
.DW (1),
.SwAccess(prim_subreg_pkg::SwAccessRO),
@@ -3046,7 +3005,7 @@
.qs (pin_in_value_key2_in_qs)
);
- // F[lid_open]: 6:6
+ // F[lid_open]: 4:4
prim_subreg #(
.DW (1),
.SwAccess(prim_subreg_pkg::SwAccessRO),
@@ -3071,6 +3030,81 @@
.qs (pin_in_value_lid_open_qs)
);
+ // F[ac_present]: 5:5
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRO),
+ .RESVAL (1'h0)
+ ) u_pin_in_value_ac_present (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (1'b0),
+ .wd ('0),
+
+ // from internal hardware
+ .de (hw2reg.pin_in_value.ac_present.de),
+ .d (hw2reg.pin_in_value.ac_present.d),
+
+ // to internal hardware
+ .qe (),
+ .q (),
+
+ // to register interface (read)
+ .qs (pin_in_value_ac_present_qs)
+ );
+
+ // F[ec_rst_l]: 6:6
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRO),
+ .RESVAL (1'h0)
+ ) u_pin_in_value_ec_rst_l (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (1'b0),
+ .wd ('0),
+
+ // from internal hardware
+ .de (hw2reg.pin_in_value.ec_rst_l.de),
+ .d (hw2reg.pin_in_value.ec_rst_l.d),
+
+ // to internal hardware
+ .qe (),
+ .q (),
+
+ // to register interface (read)
+ .qs (pin_in_value_ec_rst_l_qs)
+ );
+
+ // F[flash_wp_l]: 7:7
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRO),
+ .RESVAL (1'h0)
+ ) u_pin_in_value_flash_wp_l (
+ .clk_i (clk_i),
+ .rst_ni (rst_ni),
+
+ // from register interface
+ .we (1'b0),
+ .wd ('0),
+
+ // from internal hardware
+ .de (hw2reg.pin_in_value.flash_wp_l.de),
+ .d (hw2reg.pin_in_value.flash_wp_l.d),
+
+ // to internal hardware
+ .qe (),
+ .q (),
+
+ // to register interface (read)
+ .qs (pin_in_value_flash_wp_l_qs)
+ );
+
// R[key_intr_ctl]: V(False)
// F[pwrb_in_h2l]: 0:0
@@ -3223,6 +3257,31 @@
.qs (aon_key_intr_ctl_ec_rst_l_h2l_qs_int)
);
+ // F[flash_wp_l_h2l]: 6:6
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_key_intr_ctl_flash_wp_l_h2l (
+ .clk_i (clk_aon_i),
+ .rst_ni (rst_aon_ni),
+
+ // from register interface
+ .we (aon_key_intr_ctl_we & aon_key_intr_ctl_regwen),
+ .wd (aon_key_intr_ctl_wdata[6]),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.key_intr_ctl.flash_wp_l_h2l.q),
+
+ // to register interface (read)
+ .qs (aon_key_intr_ctl_flash_wp_l_h2l_qs_int)
+ );
+
// F[pwrb_in_l2h]: 8:8
prim_subreg #(
.DW (1),
@@ -3373,6 +3432,31 @@
.qs (aon_key_intr_ctl_ec_rst_l_l2h_qs_int)
);
+ // F[flash_wp_l_l2h]: 14:14
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessRW),
+ .RESVAL (1'h0)
+ ) u_key_intr_ctl_flash_wp_l_l2h (
+ .clk_i (clk_aon_i),
+ .rst_ni (rst_aon_ni),
+
+ // from register interface
+ .we (aon_key_intr_ctl_we & aon_key_intr_ctl_regwen),
+ .wd (aon_key_intr_ctl_wdata[14]),
+
+ // from internal hardware
+ .de (1'b0),
+ .d ('0),
+
+ // to internal hardware
+ .qe (),
+ .q (reg2hw.key_intr_ctl.flash_wp_l_l2h.q),
+
+ // to register interface (read)
+ .qs (aon_key_intr_ctl_flash_wp_l_l2h_qs_int)
+ );
+
// R[key_intr_debounce_ctl]: V(False)
prim_subreg #(
@@ -4889,7 +4973,32 @@
.qs (aon_key_intr_status_ec_rst_l_h2l_qs_int)
);
- // F[pwrb_l2h]: 6:6
+ // F[flash_wp_l_h2l]: 6:6
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessW1C),
+ .RESVAL (1'h0)
+ ) u_key_intr_status_flash_wp_l_h2l (
+ .clk_i (clk_aon_i),
+ .rst_ni (rst_aon_ni),
+
+ // from register interface
+ .we (aon_key_intr_status_we),
+ .wd (aon_key_intr_status_wdata[6]),
+
+ // from internal hardware
+ .de (hw2reg.key_intr_status.flash_wp_l_h2l.de),
+ .d (hw2reg.key_intr_status.flash_wp_l_h2l.d),
+
+ // to internal hardware
+ .qe (),
+ .q (),
+
+ // to register interface (read)
+ .qs (aon_key_intr_status_flash_wp_l_h2l_qs_int)
+ );
+
+ // F[pwrb_l2h]: 7:7
prim_subreg #(
.DW (1),
.SwAccess(prim_subreg_pkg::SwAccessW1C),
@@ -4900,7 +5009,7 @@
// from register interface
.we (aon_key_intr_status_we),
- .wd (aon_key_intr_status_wdata[6]),
+ .wd (aon_key_intr_status_wdata[7]),
// from internal hardware
.de (hw2reg.key_intr_status.pwrb_l2h.de),
@@ -4914,7 +5023,7 @@
.qs (aon_key_intr_status_pwrb_l2h_qs_int)
);
- // F[key0_in_l2h]: 7:7
+ // F[key0_in_l2h]: 8:8
prim_subreg #(
.DW (1),
.SwAccess(prim_subreg_pkg::SwAccessW1C),
@@ -4925,7 +5034,7 @@
// from register interface
.we (aon_key_intr_status_we),
- .wd (aon_key_intr_status_wdata[7]),
+ .wd (aon_key_intr_status_wdata[8]),
// from internal hardware
.de (hw2reg.key_intr_status.key0_in_l2h.de),
@@ -4939,7 +5048,7 @@
.qs (aon_key_intr_status_key0_in_l2h_qs_int)
);
- // F[key1_in_l2h]: 8:8
+ // F[key1_in_l2h]: 9:9
prim_subreg #(
.DW (1),
.SwAccess(prim_subreg_pkg::SwAccessW1C),
@@ -4950,7 +5059,7 @@
// from register interface
.we (aon_key_intr_status_we),
- .wd (aon_key_intr_status_wdata[8]),
+ .wd (aon_key_intr_status_wdata[9]),
// from internal hardware
.de (hw2reg.key_intr_status.key1_in_l2h.de),
@@ -4964,7 +5073,7 @@
.qs (aon_key_intr_status_key1_in_l2h_qs_int)
);
- // F[key2_in_l2h]: 9:9
+ // F[key2_in_l2h]: 10:10
prim_subreg #(
.DW (1),
.SwAccess(prim_subreg_pkg::SwAccessW1C),
@@ -4975,7 +5084,7 @@
// from register interface
.we (aon_key_intr_status_we),
- .wd (aon_key_intr_status_wdata[9]),
+ .wd (aon_key_intr_status_wdata[10]),
// from internal hardware
.de (hw2reg.key_intr_status.key2_in_l2h.de),
@@ -4989,7 +5098,7 @@
.qs (aon_key_intr_status_key2_in_l2h_qs_int)
);
- // F[ac_present_l2h]: 10:10
+ // F[ac_present_l2h]: 11:11
prim_subreg #(
.DW (1),
.SwAccess(prim_subreg_pkg::SwAccessW1C),
@@ -5000,7 +5109,7 @@
// from register interface
.we (aon_key_intr_status_we),
- .wd (aon_key_intr_status_wdata[10]),
+ .wd (aon_key_intr_status_wdata[11]),
// from internal hardware
.de (hw2reg.key_intr_status.ac_present_l2h.de),
@@ -5014,7 +5123,7 @@
.qs (aon_key_intr_status_ac_present_l2h_qs_int)
);
- // F[ec_rst_l_l2h]: 11:11
+ // F[ec_rst_l_l2h]: 12:12
prim_subreg #(
.DW (1),
.SwAccess(prim_subreg_pkg::SwAccessW1C),
@@ -5025,7 +5134,7 @@
// from register interface
.we (aon_key_intr_status_we),
- .wd (aon_key_intr_status_wdata[11]),
+ .wd (aon_key_intr_status_wdata[12]),
// from internal hardware
.de (hw2reg.key_intr_status.ec_rst_l_l2h.de),
@@ -5039,6 +5148,31 @@
.qs (aon_key_intr_status_ec_rst_l_l2h_qs_int)
);
+ // F[flash_wp_l_l2h]: 13:13
+ prim_subreg #(
+ .DW (1),
+ .SwAccess(prim_subreg_pkg::SwAccessW1C),
+ .RESVAL (1'h0)
+ ) u_key_intr_status_flash_wp_l_l2h (
+ .clk_i (clk_aon_i),
+ .rst_ni (rst_aon_ni),
+
+ // from register interface
+ .we (aon_key_intr_status_we),
+ .wd (aon_key_intr_status_wdata[13]),
+
+ // from internal hardware
+ .de (hw2reg.key_intr_status.flash_wp_l_l2h.de),
+ .d (hw2reg.key_intr_status.flash_wp_l_l2h.d),
+
+ // to internal hardware
+ .qe (),
+ .q (),
+
+ // to register interface (read)
+ .qs (aon_key_intr_status_flash_wp_l_l2h_qs_int)
+ );
+
logic [34:0] addr_hit;
@@ -5212,6 +5346,8 @@
+
+
assign key_intr_debounce_ctl_we = addr_hit[18] & reg_we & !reg_error;
assign auto_block_debounce_ctl_we = addr_hit[19] & reg_we & !reg_error;
@@ -5295,6 +5431,8 @@
+
+
// Read data return
always_comb begin
reg_rdata_next = '0;
@@ -5353,13 +5491,14 @@
reg_rdata_next = DW'(pin_out_value_qs);
end
addr_hit[16]: begin
- reg_rdata_next[0] = pin_in_value_ac_present_qs;
- reg_rdata_next[1] = pin_in_value_ec_rst_l_qs;
- reg_rdata_next[2] = pin_in_value_pwrb_in_qs;
- reg_rdata_next[3] = pin_in_value_key0_in_qs;
- reg_rdata_next[4] = pin_in_value_key1_in_qs;
- reg_rdata_next[5] = pin_in_value_key2_in_qs;
- reg_rdata_next[6] = pin_in_value_lid_open_qs;
+ reg_rdata_next[0] = pin_in_value_pwrb_in_qs;
+ reg_rdata_next[1] = pin_in_value_key0_in_qs;
+ reg_rdata_next[2] = pin_in_value_key1_in_qs;
+ reg_rdata_next[3] = pin_in_value_key2_in_qs;
+ reg_rdata_next[4] = pin_in_value_lid_open_qs;
+ reg_rdata_next[5] = pin_in_value_ac_present_qs;
+ reg_rdata_next[6] = pin_in_value_ec_rst_l_qs;
+ reg_rdata_next[7] = pin_in_value_flash_wp_l_qs;
end
addr_hit[17]: begin
diff --git a/hw/top_earlgrey/data/autogen/top_earlgrey.gen.hjson b/hw/top_earlgrey/data/autogen/top_earlgrey.gen.hjson
index acb6167..d137577 100644
--- a/hw/top_earlgrey/data/autogen/top_earlgrey.gen.hjson
+++ b/hw/top_earlgrey/data/autogen/top_earlgrey.gen.hjson
@@ -11232,6 +11232,17 @@
glob_idx: 11
}
{
+ name: sysrst_ctrl_aon_flash_wp_l
+ width: 1
+ type: inout
+ idx: -1
+ pad: IOR9
+ attr: BidirOd
+ connection: direct
+ desc: ""
+ glob_idx: 12
+ }
+ {
name: spi_device_sck
width: 1
type: input
@@ -11240,7 +11251,7 @@
attr: InputStd
connection: direct
desc: ""
- glob_idx: 12
+ glob_idx: 13
}
{
name: spi_device_csb
@@ -11251,7 +11262,7 @@
attr: InputStd
connection: direct
desc: ""
- glob_idx: 13
+ glob_idx: 14
}
{
name: uart0_rx
@@ -11427,7 +11438,7 @@
attr: BidirStd
connection: direct
desc: ""
- glob_idx: 14
+ glob_idx: 15
}
{
name: spi_host0_csb
@@ -11438,7 +11449,7 @@
attr: BidirStd
connection: direct
desc: ""
- glob_idx: 15
+ glob_idx: 16
}
{
name: usbdev_se0
@@ -11449,7 +11460,7 @@
attr: BidirTol
connection: manual
desc: ""
- glob_idx: 16
+ glob_idx: 17
}
{
name: usbdev_dp_pullup
@@ -11460,7 +11471,7 @@
attr: BidirTol
connection: manual
desc: ""
- glob_idx: 17
+ glob_idx: 18
}
{
name: usbdev_dn_pullup
@@ -11471,7 +11482,7 @@
attr: BidirTol
connection: manual
desc: ""
- glob_idx: 18
+ glob_idx: 19
}
{
name: usbdev_tx_mode_se
@@ -11482,7 +11493,7 @@
attr: BidirTol
connection: manual
desc: ""
- glob_idx: 19
+ glob_idx: 20
}
{
name: usbdev_suspend
@@ -11493,7 +11504,7 @@
attr: BidirTol
connection: manual
desc: ""
- glob_idx: 20
+ glob_idx: 21
}
{
name: usbdev_rx_enable
@@ -11504,7 +11515,7 @@
attr: BidirTol
connection: manual
desc: ""
- glob_idx: 21
+ glob_idx: 22
}
{
name: uart0_tx
@@ -11815,17 +11826,6 @@
glob_idx: 69
}
{
- name: sysrst_ctrl_aon_flash_wp_l
- width: 1
- type: output
- idx: -1
- pad: IOR9
- attr: BidirOd
- connection: direct
- desc: ""
- glob_idx: 22
- }
- {
name: sysrst_ctrl_aon_key0_out
width: 1
type: output
@@ -11885,9 +11885,9 @@
{
dedicated:
{
- inouts: 12
+ inouts: 13
inputs: 2
- outputs: 9
+ outputs: 8
pads: 23
}
muxed:
@@ -12143,13 +12143,13 @@
name: tck
pad: SPI_DEV_CLK
desc: JTAG tck signal, overlaid on SPI_DEV.
- idx: 59
+ idx: 60
}
{
name: tms
pad: SPI_DEV_CS_L
desc: JTAG tms signal, overlaid on SPI_DEV.
- idx: 60
+ idx: 61
}
{
name: trst_n
@@ -12325,13 +12325,13 @@
name: tck
pad: SPI_DEV_CLK
desc: JTAG tck signal, overlaid on SPI_DEV.
- idx: 59
+ idx: 60
}
{
name: tms
pad: SPI_DEV_CS_L
desc: JTAG tms signal, overlaid on SPI_DEV.
- idx: 60
+ idx: 61
}
{
name: trst_n
diff --git a/hw/top_earlgrey/ip/pinmux/doc/autogen/pinout_asic.md b/hw/top_earlgrey/ip/pinmux/doc/autogen/pinout_asic.md
index 28ece7b..03fe2e6 100644
--- a/hw/top_earlgrey/ip/pinmux/doc/autogen/pinout_asic.md
+++ b/hw/top_earlgrey/ip/pinmux/doc/autogen/pinout_asic.md
@@ -141,6 +141,7 @@
| <p style="font-size:smaller">spi_host1_sd[2]</p> | <p style="font-size:smaller">muxed</p> | <p style="font-size:smaller">-</p> | <p style="font-size:smaller">kTopEarlgreyPinmuxOutselSpiHost1Sd2 / kTopEarlgreyPinmuxPeripheralInSpiHost1Sd2</p> | <p style="font-size:smaller"></p> |
| <p style="font-size:smaller">spi_host1_sd[3]</p> | <p style="font-size:smaller">muxed</p> | <p style="font-size:smaller">-</p> | <p style="font-size:smaller">kTopEarlgreyPinmuxOutselSpiHost1Sd3 / kTopEarlgreyPinmuxPeripheralInSpiHost1Sd3</p> | <p style="font-size:smaller"></p> |
| <p style="font-size:smaller">sysrst_ctrl_aon_ec_rst_l</p> | <p style="font-size:smaller">direct</p> | <p style="font-size:smaller">IOR8</p> | <p style="font-size:smaller">- / -</p> | <p style="font-size:smaller"></p> |
+| <p style="font-size:smaller">sysrst_ctrl_aon_flash_wp_l</p> | <p style="font-size:smaller">direct</p> | <p style="font-size:smaller">IOR9</p> | <p style="font-size:smaller">- / -</p> | <p style="font-size:smaller"></p> |
| <p style="font-size:smaller">spi_device_sck</p> | <p style="font-size:smaller">direct</p> | <p style="font-size:smaller">SPI_DEV_CLK</p> | <p style="font-size:smaller">- / -</p> | <p style="font-size:smaller"></p> |
| <p style="font-size:smaller">spi_device_csb</p> | <p style="font-size:smaller">direct</p> | <p style="font-size:smaller">SPI_DEV_CS_L</p> | <p style="font-size:smaller">- / -</p> | <p style="font-size:smaller"></p> |
| <p style="font-size:smaller">uart0_rx</p> | <p style="font-size:smaller">muxed</p> | <p style="font-size:smaller">-</p> | <p style="font-size:smaller">- / kTopEarlgreyPinmuxPeripheralInUart0Rx</p> | <p style="font-size:smaller"></p> |
@@ -194,7 +195,6 @@
| <p style="font-size:smaller">pwm_aon_pwm[5]</p> | <p style="font-size:smaller">muxed</p> | <p style="font-size:smaller">-</p> | <p style="font-size:smaller">kTopEarlgreyPinmuxOutselPwmAonPwm5 / -</p> | <p style="font-size:smaller"></p> |
| <p style="font-size:smaller">otp_ctrl_test[0]</p> | <p style="font-size:smaller">muxed</p> | <p style="font-size:smaller">-</p> | <p style="font-size:smaller">kTopEarlgreyPinmuxOutselOtpCtrlTest0 / -</p> | <p style="font-size:smaller"></p> |
| <p style="font-size:smaller">sysrst_ctrl_aon_bat_disable</p> | <p style="font-size:smaller">muxed</p> | <p style="font-size:smaller">-</p> | <p style="font-size:smaller">kTopEarlgreyPinmuxOutselSysrstCtrlAonBatDisable / -</p> | <p style="font-size:smaller"></p> |
-| <p style="font-size:smaller">sysrst_ctrl_aon_flash_wp_l</p> | <p style="font-size:smaller">direct</p> | <p style="font-size:smaller">IOR9</p> | <p style="font-size:smaller">- / -</p> | <p style="font-size:smaller"></p> |
| <p style="font-size:smaller">sysrst_ctrl_aon_key0_out</p> | <p style="font-size:smaller">muxed</p> | <p style="font-size:smaller">-</p> | <p style="font-size:smaller">kTopEarlgreyPinmuxOutselSysrstCtrlAonKey0Out / -</p> | <p style="font-size:smaller"></p> |
| <p style="font-size:smaller">sysrst_ctrl_aon_key1_out</p> | <p style="font-size:smaller">muxed</p> | <p style="font-size:smaller">-</p> | <p style="font-size:smaller">kTopEarlgreyPinmuxOutselSysrstCtrlAonKey1Out / -</p> | <p style="font-size:smaller"></p> |
| <p style="font-size:smaller">sysrst_ctrl_aon_key2_out</p> | <p style="font-size:smaller">muxed</p> | <p style="font-size:smaller">-</p> | <p style="font-size:smaller">kTopEarlgreyPinmuxOutselSysrstCtrlAonKey2Out / -</p> | <p style="font-size:smaller"></p> |
diff --git a/hw/top_earlgrey/ip/pinmux/doc/autogen/pinout_cw310.md b/hw/top_earlgrey/ip/pinmux/doc/autogen/pinout_cw310.md
index 0cd5c39..8a90142 100644
--- a/hw/top_earlgrey/ip/pinmux/doc/autogen/pinout_cw310.md
+++ b/hw/top_earlgrey/ip/pinmux/doc/autogen/pinout_cw310.md
@@ -124,6 +124,7 @@
| <p style="font-size:smaller">spi_host1_sd[2]</p> | <p style="font-size:smaller">muxed</p> | <p style="font-size:smaller">-</p> | <p style="font-size:smaller">kTopEarlgreyPinmuxOutselSpiHost1Sd2 / kTopEarlgreyPinmuxPeripheralInSpiHost1Sd2</p> | <p style="font-size:smaller"></p> |
| <p style="font-size:smaller">spi_host1_sd[3]</p> | <p style="font-size:smaller">muxed</p> | <p style="font-size:smaller">-</p> | <p style="font-size:smaller">kTopEarlgreyPinmuxOutselSpiHost1Sd3 / kTopEarlgreyPinmuxPeripheralInSpiHost1Sd3</p> | <p style="font-size:smaller"></p> |
| <p style="font-size:smaller">sysrst_ctrl_aon_ec_rst_l</p> | <p style="font-size:smaller">direct</p> | <p style="font-size:smaller">IOR8</p> | <p style="font-size:smaller">- / -</p> | <p style="font-size:smaller"></p> |
+| <p style="font-size:smaller">sysrst_ctrl_aon_flash_wp_l</p> | <p style="font-size:smaller">direct</p> | <p style="font-size:smaller">IOR9</p> | <p style="font-size:smaller">- / -</p> | <p style="font-size:smaller"></p> |
| <p style="font-size:smaller">spi_device_sck</p> | <p style="font-size:smaller">direct</p> | <p style="font-size:smaller">SPI_DEV_CLK</p> | <p style="font-size:smaller">- / -</p> | <p style="font-size:smaller"></p> |
| <p style="font-size:smaller">spi_device_csb</p> | <p style="font-size:smaller">direct</p> | <p style="font-size:smaller">SPI_DEV_CS_L</p> | <p style="font-size:smaller">- / -</p> | <p style="font-size:smaller"></p> |
| <p style="font-size:smaller">uart0_rx</p> | <p style="font-size:smaller">muxed</p> | <p style="font-size:smaller">-</p> | <p style="font-size:smaller">- / kTopEarlgreyPinmuxPeripheralInUart0Rx</p> | <p style="font-size:smaller"></p> |
@@ -177,7 +178,6 @@
| <p style="font-size:smaller">pwm_aon_pwm[5]</p> | <p style="font-size:smaller">muxed</p> | <p style="font-size:smaller">-</p> | <p style="font-size:smaller">kTopEarlgreyPinmuxOutselPwmAonPwm5 / -</p> | <p style="font-size:smaller"></p> |
| <p style="font-size:smaller">otp_ctrl_test[0]</p> | <p style="font-size:smaller">muxed</p> | <p style="font-size:smaller">-</p> | <p style="font-size:smaller">kTopEarlgreyPinmuxOutselOtpCtrlTest0 / -</p> | <p style="font-size:smaller"></p> |
| <p style="font-size:smaller">sysrst_ctrl_aon_bat_disable</p> | <p style="font-size:smaller">muxed</p> | <p style="font-size:smaller">-</p> | <p style="font-size:smaller">kTopEarlgreyPinmuxOutselSysrstCtrlAonBatDisable / -</p> | <p style="font-size:smaller"></p> |
-| <p style="font-size:smaller">sysrst_ctrl_aon_flash_wp_l</p> | <p style="font-size:smaller">direct</p> | <p style="font-size:smaller">IOR9</p> | <p style="font-size:smaller">- / -</p> | <p style="font-size:smaller"></p> |
| <p style="font-size:smaller">sysrst_ctrl_aon_key0_out</p> | <p style="font-size:smaller">muxed</p> | <p style="font-size:smaller">-</p> | <p style="font-size:smaller">kTopEarlgreyPinmuxOutselSysrstCtrlAonKey0Out / -</p> | <p style="font-size:smaller"></p> |
| <p style="font-size:smaller">sysrst_ctrl_aon_key1_out</p> | <p style="font-size:smaller">muxed</p> | <p style="font-size:smaller">-</p> | <p style="font-size:smaller">kTopEarlgreyPinmuxOutselSysrstCtrlAonKey1Out / -</p> | <p style="font-size:smaller"></p> |
| <p style="font-size:smaller">sysrst_ctrl_aon_key2_out</p> | <p style="font-size:smaller">muxed</p> | <p style="font-size:smaller">-</p> | <p style="font-size:smaller">kTopEarlgreyPinmuxOutselSysrstCtrlAonKey2Out / -</p> | <p style="font-size:smaller"></p> |
diff --git a/hw/top_earlgrey/ip/pinmux/doc/autogen/pinout_nexysvideo.md b/hw/top_earlgrey/ip/pinmux/doc/autogen/pinout_nexysvideo.md
index c3d09eb..d649fc6 100644
--- a/hw/top_earlgrey/ip/pinmux/doc/autogen/pinout_nexysvideo.md
+++ b/hw/top_earlgrey/ip/pinmux/doc/autogen/pinout_nexysvideo.md
@@ -119,6 +119,7 @@
| <p style="font-size:smaller">spi_host1_sd[2]</p> | <p style="font-size:smaller">muxed</p> | <p style="font-size:smaller">-</p> | <p style="font-size:smaller">kTopEarlgreyPinmuxOutselSpiHost1Sd2 / kTopEarlgreyPinmuxPeripheralInSpiHost1Sd2</p> | <p style="font-size:smaller"></p> |
| <p style="font-size:smaller">spi_host1_sd[3]</p> | <p style="font-size:smaller">muxed</p> | <p style="font-size:smaller">-</p> | <p style="font-size:smaller">kTopEarlgreyPinmuxOutselSpiHost1Sd3 / kTopEarlgreyPinmuxPeripheralInSpiHost1Sd3</p> | <p style="font-size:smaller"></p> |
| <p style="font-size:smaller">sysrst_ctrl_aon_ec_rst_l</p> | <p style="font-size:smaller">direct</p> | <p style="font-size:smaller">IOR8</p> | <p style="font-size:smaller">- / -</p> | <p style="font-size:smaller"></p> |
+| <p style="font-size:smaller">sysrst_ctrl_aon_flash_wp_l</p> | <p style="font-size:smaller">direct</p> | <p style="font-size:smaller">IOR9</p> | <p style="font-size:smaller">- / -</p> | <p style="font-size:smaller"></p> |
| <p style="font-size:smaller">spi_device_sck</p> | <p style="font-size:smaller">direct</p> | <p style="font-size:smaller">SPI_DEV_CLK</p> | <p style="font-size:smaller">- / -</p> | <p style="font-size:smaller"></p> |
| <p style="font-size:smaller">spi_device_csb</p> | <p style="font-size:smaller">direct</p> | <p style="font-size:smaller">SPI_DEV_CS_L</p> | <p style="font-size:smaller">- / -</p> | <p style="font-size:smaller"></p> |
| <p style="font-size:smaller">uart0_rx</p> | <p style="font-size:smaller">muxed</p> | <p style="font-size:smaller">-</p> | <p style="font-size:smaller">- / kTopEarlgreyPinmuxPeripheralInUart0Rx</p> | <p style="font-size:smaller"></p> |
@@ -172,7 +173,6 @@
| <p style="font-size:smaller">pwm_aon_pwm[5]</p> | <p style="font-size:smaller">muxed</p> | <p style="font-size:smaller">-</p> | <p style="font-size:smaller">kTopEarlgreyPinmuxOutselPwmAonPwm5 / -</p> | <p style="font-size:smaller"></p> |
| <p style="font-size:smaller">otp_ctrl_test[0]</p> | <p style="font-size:smaller">muxed</p> | <p style="font-size:smaller">-</p> | <p style="font-size:smaller">kTopEarlgreyPinmuxOutselOtpCtrlTest0 / -</p> | <p style="font-size:smaller"></p> |
| <p style="font-size:smaller">sysrst_ctrl_aon_bat_disable</p> | <p style="font-size:smaller">muxed</p> | <p style="font-size:smaller">-</p> | <p style="font-size:smaller">kTopEarlgreyPinmuxOutselSysrstCtrlAonBatDisable / -</p> | <p style="font-size:smaller"></p> |
-| <p style="font-size:smaller">sysrst_ctrl_aon_flash_wp_l</p> | <p style="font-size:smaller">direct</p> | <p style="font-size:smaller">IOR9</p> | <p style="font-size:smaller">- / -</p> | <p style="font-size:smaller"></p> |
| <p style="font-size:smaller">sysrst_ctrl_aon_key0_out</p> | <p style="font-size:smaller">muxed</p> | <p style="font-size:smaller">-</p> | <p style="font-size:smaller">kTopEarlgreyPinmuxOutselSysrstCtrlAonKey0Out / -</p> | <p style="font-size:smaller"></p> |
| <p style="font-size:smaller">sysrst_ctrl_aon_key1_out</p> | <p style="font-size:smaller">muxed</p> | <p style="font-size:smaller">-</p> | <p style="font-size:smaller">kTopEarlgreyPinmuxOutselSysrstCtrlAonKey1Out / -</p> | <p style="font-size:smaller"></p> |
| <p style="font-size:smaller">sysrst_ctrl_aon_key2_out</p> | <p style="font-size:smaller">muxed</p> | <p style="font-size:smaller">-</p> | <p style="font-size:smaller">kTopEarlgreyPinmuxOutselSysrstCtrlAonKey2Out / -</p> | <p style="font-size:smaller"></p> |
diff --git a/hw/top_earlgrey/rtl/autogen/chip_earlgrey_asic.sv b/hw/top_earlgrey/rtl/autogen/chip_earlgrey_asic.sv
index d37baa6..8217d98 100644
--- a/hw/top_earlgrey/rtl/autogen/chip_earlgrey_asic.sv
+++ b/hw/top_earlgrey/rtl/autogen/chip_earlgrey_asic.sv
@@ -122,7 +122,6 @@
usb_sense_idx: MioInUsbdevSense,
// Pad types for attribute WARL behavior
dio_pad_type: {
- BidirOd, // DIO sysrst_ctrl_aon_flash_wp_l
BidirTol, // DIO usbdev_rx_enable
BidirTol, // DIO usbdev_suspend
BidirTol, // DIO usbdev_tx_mode_se
@@ -133,6 +132,7 @@
BidirStd, // DIO spi_host0_sck
InputStd, // DIO spi_device_csb
InputStd, // DIO spi_device_sck
+ BidirOd, // DIO sysrst_ctrl_aon_flash_wp_l
BidirOd, // DIO sysrst_ctrl_aon_ec_rst_l
BidirTol, // DIO usbdev_dn
BidirTol, // DIO usbdev_dp
diff --git a/hw/top_earlgrey/rtl/autogen/chip_earlgrey_cw310.sv b/hw/top_earlgrey/rtl/autogen/chip_earlgrey_cw310.sv
index 5168fdf..737c9e0 100644
--- a/hw/top_earlgrey/rtl/autogen/chip_earlgrey_cw310.sv
+++ b/hw/top_earlgrey/rtl/autogen/chip_earlgrey_cw310.sv
@@ -87,8 +87,8 @@
parameter int Tap1PadIdx = 16;
parameter int Dft0PadIdx = 23;
parameter int Dft1PadIdx = 34;
- parameter int TckPadIdx = 59;
- parameter int TmsPadIdx = 60;
+ parameter int TckPadIdx = 60;
+ parameter int TmsPadIdx = 61;
parameter int TrstNPadIdx = 18;
parameter int TdiPadIdx = 51;
parameter int TdoPadIdx = 52;
@@ -112,7 +112,6 @@
usb_sense_idx: MioInUsbdevSense,
// Pad types for attribute WARL behavior
dio_pad_type: {
- BidirOd, // DIO sysrst_ctrl_aon_flash_wp_l
BidirTol, // DIO usbdev_rx_enable
BidirTol, // DIO usbdev_suspend
BidirTol, // DIO usbdev_tx_mode_se
@@ -123,6 +122,7 @@
BidirStd, // DIO spi_host0_sck
InputStd, // DIO spi_device_csb
InputStd, // DIO spi_device_sck
+ BidirOd, // DIO sysrst_ctrl_aon_flash_wp_l
BidirOd, // DIO sysrst_ctrl_aon_ec_rst_l
BidirTol, // DIO usbdev_dn
BidirTol, // DIO usbdev_dp
diff --git a/hw/top_earlgrey/rtl/autogen/chip_earlgrey_nexysvideo.sv b/hw/top_earlgrey/rtl/autogen/chip_earlgrey_nexysvideo.sv
index f84cd2c..fd36c86 100644
--- a/hw/top_earlgrey/rtl/autogen/chip_earlgrey_nexysvideo.sv
+++ b/hw/top_earlgrey/rtl/autogen/chip_earlgrey_nexysvideo.sv
@@ -82,8 +82,8 @@
parameter int Tap1PadIdx = 16;
parameter int Dft0PadIdx = 23;
parameter int Dft1PadIdx = 34;
- parameter int TckPadIdx = 59;
- parameter int TmsPadIdx = 60;
+ parameter int TckPadIdx = 60;
+ parameter int TmsPadIdx = 61;
parameter int TrstNPadIdx = 18;
parameter int TdiPadIdx = 51;
parameter int TdoPadIdx = 52;
@@ -107,7 +107,6 @@
usb_sense_idx: MioInUsbdevSense,
// Pad types for attribute WARL behavior
dio_pad_type: {
- BidirOd, // DIO sysrst_ctrl_aon_flash_wp_l
BidirTol, // DIO usbdev_rx_enable
BidirTol, // DIO usbdev_suspend
BidirTol, // DIO usbdev_tx_mode_se
@@ -118,6 +117,7 @@
BidirStd, // DIO spi_host0_sck
InputStd, // DIO spi_device_csb
InputStd, // DIO spi_device_sck
+ BidirOd, // DIO sysrst_ctrl_aon_flash_wp_l
BidirOd, // DIO sysrst_ctrl_aon_ec_rst_l
BidirTol, // DIO usbdev_dn
BidirTol, // DIO usbdev_dp
diff --git a/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv b/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv
index 2859cb4..8afc0f8 100644
--- a/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv
+++ b/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv
@@ -314,10 +314,9 @@
logic cio_sysrst_ctrl_aon_pwrb_in_p2d;
logic cio_sysrst_ctrl_aon_lid_open_p2d;
logic cio_sysrst_ctrl_aon_ec_rst_l_p2d;
+ logic cio_sysrst_ctrl_aon_flash_wp_l_p2d;
logic cio_sysrst_ctrl_aon_bat_disable_d2p;
logic cio_sysrst_ctrl_aon_bat_disable_en_d2p;
- logic cio_sysrst_ctrl_aon_flash_wp_l_d2p;
- logic cio_sysrst_ctrl_aon_flash_wp_l_en_d2p;
logic cio_sysrst_ctrl_aon_key0_out_d2p;
logic cio_sysrst_ctrl_aon_key0_out_en_d2p;
logic cio_sysrst_ctrl_aon_key1_out_d2p;
@@ -330,6 +329,8 @@
logic cio_sysrst_ctrl_aon_z3_wakeup_en_d2p;
logic cio_sysrst_ctrl_aon_ec_rst_l_d2p;
logic cio_sysrst_ctrl_aon_ec_rst_l_en_d2p;
+ logic cio_sysrst_ctrl_aon_flash_wp_l_d2p;
+ logic cio_sysrst_ctrl_aon_flash_wp_l_en_d2p;
// adc_ctrl_aon
// pwm_aon
logic [5:0] cio_pwm_aon_pwm_d2p;
@@ -1794,12 +1795,11 @@
.cio_pwrb_in_i (cio_sysrst_ctrl_aon_pwrb_in_p2d),
.cio_lid_open_i (cio_sysrst_ctrl_aon_lid_open_p2d),
.cio_ec_rst_l_i (cio_sysrst_ctrl_aon_ec_rst_l_p2d),
+ .cio_flash_wp_l_i (cio_sysrst_ctrl_aon_flash_wp_l_p2d),
// Output
.cio_bat_disable_o (cio_sysrst_ctrl_aon_bat_disable_d2p),
.cio_bat_disable_en_o (cio_sysrst_ctrl_aon_bat_disable_en_d2p),
- .cio_flash_wp_l_o (cio_sysrst_ctrl_aon_flash_wp_l_d2p),
- .cio_flash_wp_l_en_o (cio_sysrst_ctrl_aon_flash_wp_l_en_d2p),
.cio_key0_out_o (cio_sysrst_ctrl_aon_key0_out_d2p),
.cio_key0_out_en_o (cio_sysrst_ctrl_aon_key0_out_en_d2p),
.cio_key1_out_o (cio_sysrst_ctrl_aon_key1_out_d2p),
@@ -1812,6 +1812,8 @@
.cio_z3_wakeup_en_o (cio_sysrst_ctrl_aon_z3_wakeup_en_d2p),
.cio_ec_rst_l_o (cio_sysrst_ctrl_aon_ec_rst_l_d2p),
.cio_ec_rst_l_en_o (cio_sysrst_ctrl_aon_ec_rst_l_en_d2p),
+ .cio_flash_wp_l_o (cio_sysrst_ctrl_aon_flash_wp_l_d2p),
+ .cio_flash_wp_l_en_o (cio_sysrst_ctrl_aon_flash_wp_l_en_d2p),
// Interrupt
.intr_sysrst_ctrl_o (intr_sysrst_ctrl_aon_sysrst_ctrl),
@@ -3191,6 +3193,7 @@
assign cio_usbdev_dp_p2d = dio_p2d[DioUsbdevDp];
assign cio_usbdev_dn_p2d = dio_p2d[DioUsbdevDn];
assign cio_sysrst_ctrl_aon_ec_rst_l_p2d = dio_p2d[DioSysrstCtrlAonEcRstL];
+ assign cio_sysrst_ctrl_aon_flash_wp_l_p2d = dio_p2d[DioSysrstCtrlAonFlashWpL];
assign cio_spi_device_sck_p2d = dio_p2d[DioSpiDeviceSck];
assign cio_spi_device_csb_p2d = dio_p2d[DioSpiDeviceCsb];
@@ -3207,6 +3210,7 @@
assign dio_d2p[DioUsbdevDp] = cio_usbdev_dp_d2p;
assign dio_d2p[DioUsbdevDn] = cio_usbdev_dn_d2p;
assign dio_d2p[DioSysrstCtrlAonEcRstL] = cio_sysrst_ctrl_aon_ec_rst_l_d2p;
+ assign dio_d2p[DioSysrstCtrlAonFlashWpL] = cio_sysrst_ctrl_aon_flash_wp_l_d2p;
assign dio_d2p[DioSpiDeviceSck] = 1'b0;
assign dio_d2p[DioSpiDeviceCsb] = 1'b0;
assign dio_d2p[DioSpiHost0Sck] = cio_spi_host0_sck_d2p;
@@ -3217,7 +3221,6 @@
assign dio_d2p[DioUsbdevTxModeSe] = cio_usbdev_tx_mode_se_d2p;
assign dio_d2p[DioUsbdevSuspend] = cio_usbdev_suspend_d2p;
assign dio_d2p[DioUsbdevRxEnable] = cio_usbdev_rx_enable_d2p;
- assign dio_d2p[DioSysrstCtrlAonFlashWpL] = cio_sysrst_ctrl_aon_flash_wp_l_d2p;
// All dedicated output enables
assign dio_en_d2p[DioSpiHost0Sd0] = cio_spi_host0_sd_en_d2p[0];
@@ -3232,6 +3235,7 @@
assign dio_en_d2p[DioUsbdevDp] = cio_usbdev_dp_en_d2p;
assign dio_en_d2p[DioUsbdevDn] = cio_usbdev_dn_en_d2p;
assign dio_en_d2p[DioSysrstCtrlAonEcRstL] = cio_sysrst_ctrl_aon_ec_rst_l_en_d2p;
+ assign dio_en_d2p[DioSysrstCtrlAonFlashWpL] = cio_sysrst_ctrl_aon_flash_wp_l_en_d2p;
assign dio_en_d2p[DioSpiDeviceSck] = 1'b0;
assign dio_en_d2p[DioSpiDeviceCsb] = 1'b0;
assign dio_en_d2p[DioSpiHost0Sck] = cio_spi_host0_sck_en_d2p;
@@ -3242,7 +3246,6 @@
assign dio_en_d2p[DioUsbdevTxModeSe] = cio_usbdev_tx_mode_se_en_d2p;
assign dio_en_d2p[DioUsbdevSuspend] = cio_usbdev_suspend_en_d2p;
assign dio_en_d2p[DioUsbdevRxEnable] = cio_usbdev_rx_enable_en_d2p;
- assign dio_en_d2p[DioSysrstCtrlAonFlashWpL] = cio_sysrst_ctrl_aon_flash_wp_l_en_d2p;
// make sure scanmode_i is never X (including during reset)
diff --git a/hw/top_earlgrey/rtl/autogen/top_earlgrey_pkg.sv b/hw/top_earlgrey/rtl/autogen/top_earlgrey_pkg.sv
index fc945d7..9119994 100644
--- a/hw/top_earlgrey/rtl/autogen/top_earlgrey_pkg.sv
+++ b/hw/top_earlgrey/rtl/autogen/top_earlgrey_pkg.sv
@@ -716,17 +716,17 @@
DioUsbdevDp = 9,
DioUsbdevDn = 10,
DioSysrstCtrlAonEcRstL = 11,
- DioSpiDeviceSck = 12,
- DioSpiDeviceCsb = 13,
- DioSpiHost0Sck = 14,
- DioSpiHost0Csb = 15,
- DioUsbdevSe0 = 16,
- DioUsbdevDpPullup = 17,
- DioUsbdevDnPullup = 18,
- DioUsbdevTxModeSe = 19,
- DioUsbdevSuspend = 20,
- DioUsbdevRxEnable = 21,
- DioSysrstCtrlAonFlashWpL = 22,
+ DioSysrstCtrlAonFlashWpL = 12,
+ DioSpiDeviceSck = 13,
+ DioSpiDeviceCsb = 14,
+ DioSpiHost0Sck = 15,
+ DioSpiHost0Csb = 16,
+ DioUsbdevSe0 = 17,
+ DioUsbdevDpPullup = 18,
+ DioUsbdevDnPullup = 19,
+ DioUsbdevTxModeSe = 20,
+ DioUsbdevSuspend = 21,
+ DioUsbdevRxEnable = 22,
DioCount = 23
} dio_e;