[top] Change edn hook-up see #5487 Signed-off-by: Timothy Chen <timothytim@google.com>
diff --git a/hw/ip/edn/data/edn.hjson b/hw/ip/edn/data/edn.hjson index 4193385..490f672 100644 --- a/hw/ip/edn/data/edn.hjson +++ b/hw/ip/edn/data/edn.hjson
@@ -51,7 +51,7 @@ type: "req_rsp", name: "edn", act: "rsp", - width: "4", + width: "6", default: "'0", desc: ''' The collection of peripheral ports supported by edn. The width (4)
diff --git a/hw/ip/edn/rtl/edn.sv b/hw/ip/edn/rtl/edn.sv index 6fb6bb7..84b75da 100644 --- a/hw/ip/edn/rtl/edn.sv +++ b/hw/ip/edn/rtl/edn.sv
@@ -10,7 +10,7 @@ import edn_pkg::*; import edn_reg_pkg::*; #( - parameter int NumEndPoints = 4, + parameter int NumEndPoints = 6, parameter logic [NumAlerts-1:0] AlertAsyncOn = {NumAlerts{1'b1}}, parameter int BootInsCmd = 32'h0000_0001, parameter int BootGenCmd = 32'h0000_3003
diff --git a/hw/top_earlgrey/data/autogen/top_earlgrey.gen.hjson b/hw/top_earlgrey/data/autogen/top_earlgrey.gen.hjson index c73a645..6d2fe8b 100644 --- a/hw/top_earlgrey/data/autogen/top_earlgrey.gen.hjson +++ b/hw/top_earlgrey/data/autogen/top_earlgrey.gen.hjson
@@ -1894,8 +1894,8 @@ width: 1 inst_name: alert_handler default: "" - top_signame: edn1_edn - index: 0 + top_signame: edn0_edn + index: 4 } { name: esc_rx @@ -3469,8 +3469,8 @@ width: 1 inst_name: aes default: "" - top_signame: edn1_edn - index: 2 + top_signame: edn0_edn + index: 5 } { name: tl @@ -4178,7 +4178,7 @@ package: edn_pkg type: req_rsp act: rsp - width: 4 + width: 6 default: "'0" inst_name: edn0 end_idx: -1 @@ -4250,10 +4250,10 @@ package: edn_pkg type: req_rsp act: rsp - width: 4 + width: 6 default: "'0" inst_name: edn1 - end_idx: 3 + end_idx: 1 top_type: partial-one-to-N top_signame: edn1_edn index: -1 @@ -4475,7 +4475,7 @@ inst_name: otbn default: "" top_signame: edn1_edn - index: 1 + index: 0 } { name: idle @@ -5005,12 +5005,12 @@ otp_ctrl.edn ast_edn.edn kmac.entropy + alert_handler.edn + aes.edn ] edn1.edn: [ - alert_handler.edn otbn.edn - aes.edn ] otp_ctrl.otp_keymgr_key: [ @@ -9463,8 +9463,8 @@ width: 1 inst_name: alert_handler default: "" - top_signame: edn1_edn - index: 0 + top_signame: edn0_edn + index: 4 } { name: esc_rx @@ -10534,8 +10534,8 @@ width: 1 inst_name: aes default: "" - top_signame: edn1_edn - index: 2 + top_signame: edn0_edn + index: 5 } { name: tl @@ -10912,7 +10912,7 @@ package: edn_pkg type: req_rsp act: rsp - width: 4 + width: 6 default: "'0" inst_name: edn0 end_idx: -1 @@ -10960,10 +10960,10 @@ package: edn_pkg type: req_rsp act: rsp - width: 4 + width: 6 default: "'0" inst_name: edn1 - end_idx: 3 + end_idx: 1 top_type: partial-one-to-N top_signame: edn1_edn index: -1 @@ -11091,7 +11091,7 @@ inst_name: otbn default: "" top_signame: edn1_edn - index: 1 + index: 0 } { name: idle @@ -12766,7 +12766,7 @@ package: edn_pkg struct: edn_req signame: edn0_edn_req - width: 4 + width: 6 type: req_rsp end_idx: -1 act: rsp @@ -12777,7 +12777,7 @@ package: edn_pkg struct: edn_rsp signame: edn0_edn_rsp - width: 4 + width: 6 type: req_rsp end_idx: -1 act: rsp @@ -12788,9 +12788,9 @@ package: edn_pkg struct: edn_req signame: edn1_edn_req - width: 4 + width: 6 type: req_rsp - end_idx: 3 + end_idx: 1 act: rsp suffix: req default: "'0" @@ -12799,9 +12799,9 @@ package: edn_pkg struct: edn_rsp signame: edn1_edn_rsp - width: 4 + width: 6 type: req_rsp - end_idx: 3 + end_idx: 1 act: rsp suffix: rsp default: "'0"
diff --git a/hw/top_earlgrey/data/top_earlgrey.hjson b/hw/top_earlgrey/data/top_earlgrey.hjson index 78bafa4..e9745ae 100755 --- a/hw/top_earlgrey/data/top_earlgrey.hjson +++ b/hw/top_earlgrey/data/top_earlgrey.hjson
@@ -785,9 +785,10 @@ 'usbdev.usb_suspend' : ['pinmux_aon.usb_suspend'], 'pinmux_aon.usb_state_debug' : ['usbdev.usb_state_debug'], - // TODO see #4447 - 'edn0.edn' : ['keymgr.edn', 'otp_ctrl.edn', 'ast_edn.edn', 'kmac.entropy'], - 'edn1.edn' : ['alert_handler.edn', 'otbn.edn', 'aes.edn'], + // Edn connections + 'edn0.edn' : ['keymgr.edn', 'otp_ctrl.edn', 'ast_edn.edn', 'kmac.entropy', + 'alert_handler.edn', 'aes.edn'], + 'edn1.edn' : ['otbn.edn'], // KeyMgr Sideload & KDF function 'otp_ctrl.otp_keymgr_key' : ['keymgr.otp_key'],
diff --git a/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv b/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv index df2e19b..0f357df 100644 --- a/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv +++ b/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv
@@ -446,10 +446,10 @@ logic usbdev_usb_aon_wake_ack; logic usbdev_usb_suspend; usbdev_pkg::awk_state_t pinmux_aon_usb_state_debug; - edn_pkg::edn_req_t [3:0] edn0_edn_req; - edn_pkg::edn_rsp_t [3:0] edn0_edn_rsp; - edn_pkg::edn_req_t [3:0] edn1_edn_req; - edn_pkg::edn_rsp_t [3:0] edn1_edn_rsp; + edn_pkg::edn_req_t [5:0] edn0_edn_req; + edn_pkg::edn_rsp_t [5:0] edn0_edn_rsp; + edn_pkg::edn_req_t [5:0] edn1_edn_req; + edn_pkg::edn_rsp_t [5:0] edn1_edn_rsp; otp_ctrl_pkg::otp_keymgr_key_t otp_ctrl_otp_keymgr_key; keymgr_pkg::hw_key_req_t keymgr_kmac_key; keymgr_pkg::kmac_data_req_t keymgr_kmac_data_req; @@ -579,11 +579,23 @@ assign ast_edn_edn_rsp_o = edn0_edn_rsp[2]; // define partial inter-module tie-off + edn_pkg::edn_rsp_t unused_edn1_edn_rsp1; + edn_pkg::edn_rsp_t unused_edn1_edn_rsp2; edn_pkg::edn_rsp_t unused_edn1_edn_rsp3; + edn_pkg::edn_rsp_t unused_edn1_edn_rsp4; + edn_pkg::edn_rsp_t unused_edn1_edn_rsp5; // assign partial inter-module tie-off + assign unused_edn1_edn_rsp1 = edn1_edn_rsp[1]; + assign unused_edn1_edn_rsp2 = edn1_edn_rsp[2]; assign unused_edn1_edn_rsp3 = edn1_edn_rsp[3]; + assign unused_edn1_edn_rsp4 = edn1_edn_rsp[4]; + assign unused_edn1_edn_rsp5 = edn1_edn_rsp[5]; + assign edn1_edn_req[1] = '0; + assign edn1_edn_req[2] = '0; assign edn1_edn_req[3] = '0; + assign edn1_edn_req[4] = '0; + assign edn1_edn_req[5] = '0; // Unused reset signals @@ -1522,8 +1534,8 @@ // Inter-module signals .crashdump_o(alert_handler_crashdump), - .edn_o(edn1_edn_req[0]), - .edn_i(edn1_edn_rsp[0]), + .edn_o(edn0_edn_req[4]), + .edn_i(edn0_edn_rsp[4]), .esc_rx_i(alert_handler_esc_rx), .esc_tx_o(alert_handler_esc_tx), .tl_i(alert_handler_tl_req), @@ -1848,8 +1860,8 @@ // Inter-module signals .idle_o(clkmgr_aon_idle[0]), .lc_escalate_en_i(lc_ctrl_lc_escalate_en), - .edn_o(edn1_edn_req[2]), - .edn_i(edn1_edn_rsp[2]), + .edn_o(edn0_edn_req[5]), + .edn_i(edn0_edn_rsp[5]), .tl_i(aes_tl_req), .tl_o(aes_tl_rsp), @@ -2098,8 +2110,8 @@ .alert_rx_i ( alert_rx[28:27] ), // Inter-module signals - .edn_o(edn1_edn_req[1]), - .edn_i(edn1_edn_rsp[1]), + .edn_o(edn1_edn_req[0]), + .edn_i(edn1_edn_rsp[0]), .idle_o(clkmgr_aon_idle[3]), .tl_i(otbn_tl_req), .tl_o(otbn_tl_rsp),
diff --git a/sw/device/tests/aes_test.c b/sw/device/tests/aes_test.c index 82765f3..93a04df 100644 --- a/sw/device/tests/aes_test.c +++ b/sw/device/tests/aes_test.c
@@ -51,7 +51,7 @@ ENTROPY_SRC_CONF_REG_OFFSET, 0x2); mmio_region_write32(mmio_region_from_addr(TOP_EARLGREY_CSRNG_BASE_ADDR), CSRNG_CTRL_REG_OFFSET, 0x1); - mmio_region_write32(mmio_region_from_addr(TOP_EARLGREY_EDN1_BASE_ADDR), + mmio_region_write32(mmio_region_from_addr(TOP_EARLGREY_EDN0_BASE_ADDR), EDN_CTRL_REG_OFFSET, 0x1); // Wait for AES unit being idle @@ -90,12 +90,12 @@ kCipherTextGold[i], buffer[i]); } - // Disable and re-enable EDN1 to get some more entropy out of it. This is + // Disable and re-enable EDN0 to get some more entropy out of it. This is // dirty and needs to be reworked. We need to setup CSRNG/EDN to continously // provide entropy. - mmio_region_write32(mmio_region_from_addr(TOP_EARLGREY_EDN1_BASE_ADDR), + mmio_region_write32(mmio_region_from_addr(TOP_EARLGREY_EDN0_BASE_ADDR), EDN_CTRL_REG_OFFSET, 0x0); - mmio_region_write32(mmio_region_from_addr(TOP_EARLGREY_EDN1_BASE_ADDR), + mmio_region_write32(mmio_region_from_addr(TOP_EARLGREY_EDN0_BASE_ADDR), EDN_CTRL_REG_OFFSET, 0x1); // Decode
diff --git a/sw/device/tests/dif/dif_aes_smoketest.c b/sw/device/tests/dif/dif_aes_smoketest.c index 6e85a0c..0d23423 100644 --- a/sw/device/tests/dif/dif_aes_smoketest.c +++ b/sw/device/tests/dif/dif_aes_smoketest.c
@@ -75,7 +75,7 @@ ENTROPY_SRC_CONF_REG_OFFSET, 0x2); mmio_region_write32(mmio_region_from_addr(TOP_EARLGREY_CSRNG_BASE_ADDR), CSRNG_CTRL_REG_OFFSET, 0x1); - mmio_region_write32(mmio_region_from_addr(TOP_EARLGREY_EDN1_BASE_ADDR), + mmio_region_write32(mmio_region_from_addr(TOP_EARLGREY_EDN0_BASE_ADDR), EDN_CTRL_REG_OFFSET, 0x1); // Initialise AES. @@ -132,12 +132,12 @@ cipher_text_gold_words[i], out_data_cipher.data[i]); } - // Disable and re-enable EDN1 to get some more entropy out of it. This is + // Disable and re-enable EDN0 to get some more entropy out of it. This is // dirty and needs to be reworked. We need to setup CSRNG/EDN to continously // provide entropy. - mmio_region_write32(mmio_region_from_addr(TOP_EARLGREY_EDN1_BASE_ADDR), + mmio_region_write32(mmio_region_from_addr(TOP_EARLGREY_EDN0_BASE_ADDR), EDN_CTRL_REG_OFFSET, 0x0); - mmio_region_write32(mmio_region_from_addr(TOP_EARLGREY_EDN1_BASE_ADDR), + mmio_region_write32(mmio_region_from_addr(TOP_EARLGREY_EDN0_BASE_ADDR), EDN_CTRL_REG_OFFSET, 0x1); // Setup ECB decryption transaction.