From 6b87337643c752a9594b667b2100e69c78f309f0 Mon Sep 17 00:00:00 2001 From: Alexander Williams Date: Tue, 8 Aug 2023 14:20:25 -0700 Subject: [PATCH 1/3] [test] Ensure keymgr_sideload_otbn_test has enough entropy Put entropy_src into auto mode so the test doesn't run out. Signed-off-by: Alexander Williams --- sw/device/tests/BUILD | 1 + sw/device/tests/keymgr_sideload_otbn_test.c | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/sw/device/tests/BUILD b/sw/device/tests/BUILD index f25ecd8562fb9..cf93b1ad0997e 100644 --- a/sw/device/tests/BUILD +++ b/sw/device/tests/BUILD @@ -1256,6 +1256,7 @@ opentitan_functest( "//sw/device/lib/runtime:hart", "//sw/device/lib/runtime:log", "//sw/device/lib/runtime:print", + "//sw/device/lib/testing:entropy_testutils", "//sw/device/lib/testing:keymgr_testutils", "//sw/device/lib/testing:otbn_testutils", "//sw/device/lib/testing/test_framework:ottf_main", diff --git a/sw/device/tests/keymgr_sideload_otbn_test.c b/sw/device/tests/keymgr_sideload_otbn_test.c index d6bb4d39b1b0a..65dd9ebdf6466 100644 --- a/sw/device/tests/keymgr_sideload_otbn_test.c +++ b/sw/device/tests/keymgr_sideload_otbn_test.c @@ -12,6 +12,7 @@ #include "sw/device/lib/runtime/hart.h" #include "sw/device/lib/runtime/log.h" #include "sw/device/lib/runtime/print.h" +#include "sw/device/lib/testing/entropy_testutils.h" #include "sw/device/lib/testing/keymgr_testutils.h" #include "sw/device/lib/testing/otbn_testutils.h" #include "sw/device/lib/testing/test_framework/check.h" @@ -160,6 +161,12 @@ bool test_main(void) { dif_otbn_t otbn; CHECK_DIF_OK( dif_otbn_init(mmio_region_from_addr(TOP_EARLGREY_OTBN_BASE_ADDR), &otbn)); + + // Put entropy source into auto mode. If the entropy source was merely left + // with the entropy it generated at boot, this test may exhaust the supply + // with no renewal. + CHECK_STATUS_OK(entropy_testutils_auto_mode_init()); + // Test OTBN sideloading. test_otbn_with_sideloaded_key(&keymgr, &otbn); From 162cdab14ae85fb7889493c55966da5d815af3bd Mon Sep 17 00:00:00 2001 From: Alexander Williams Date: Wed, 3 May 2023 08:38:03 -0700 Subject: [PATCH 2/3] [fpga] Increase CW310 base clock frequency to 24 MHz Set clock frequencies for CW310 to the following clk_main: 24 MHz clk_io_div4: 6 MHz Also improve the SPI_HOST timing constraints to have the correct max frequency, in addition to multicycle paths reflecting the correct capture edges. Lastly, re-sign pre-signed ROM e2e tests as these were updated. Co-authored-by: Tim Trippel Signed-off-by: Alexander Williams --- hw/top_earlgrey/clkgen_xil7series.core | 21 --- hw/top_earlgrey/data/clocks.xdc | 34 ++--- hw/top_earlgrey/rtl/clkgen_xil7series.sv | 26 ++-- .../clkgen_xil7series.core | 22 ++- .../rtl/clkgen_xil7series.sv | 127 +++++++++++++++++- ...mpty_test_sigverify_spx_fpga_cw310.rsa.sig | Bin 384 -> 384 bytes ...mpty_test_sigverify_spx_fpga_cw310.spx.sig | Bin 7856 -> 7856 bytes .../empty_test_sigverify_spx_sim_dv.rsa.sig | Bin 384 -> 384 bytes .../empty_test_sigverify_spx_sim_dv.spx.sig | Bin 7856 -> 7856 bytes ...y_test_sigverify_spx_sim_verilator.rsa.sig | Bin 384 -> 384 bytes ...y_test_sigverify_spx_sim_verilator.spx.sig | Bin 7856 -> 7856 bytes .../rom_e2e_self_hash_fpga_cw310.rsa.sig | Bin 384 -> 384 bytes sw/device/lib/arch/device_fpga_cw310.c | 6 +- ...y_test_sigverify_spx_fpga_cw310.signed.bin | Bin 30320 -> 30016 bytes ...empty_test_sigverify_spx_sim_dv.signed.bin | Bin 30292 -> 29988 bytes ...est_sigverify_spx_sim_verilator.signed.bin | Bin 30292 -> 29988 bytes .../rom_e2e_self_hash_fpga_cw310.signed.bin | Bin 32392 -> 32392 bytes 17 files changed, 182 insertions(+), 54 deletions(-) delete mode 100644 hw/top_earlgrey/clkgen_xil7series.core mode change 120000 => 100644 hw/top_englishbreakfast/clkgen_xil7series.core mode change 120000 => 100644 hw/top_englishbreakfast/rtl/clkgen_xil7series.sv diff --git a/hw/top_earlgrey/clkgen_xil7series.core b/hw/top_earlgrey/clkgen_xil7series.core deleted file mode 100644 index 9bc8eb30dfe73..0000000000000 --- a/hw/top_earlgrey/clkgen_xil7series.core +++ /dev/null @@ -1,21 +0,0 @@ -CAPI=2: -# Copyright lowRISC contributors. -# Licensed under the Apache License, Version 2.0, see LICENSE for details. -# SPDX-License-Identifier: Apache-2.0 - -# TODO: long term this should be merged into AST. - -name: "lowrisc:systems:clkgen_xil7series" -description: "Clock generation infrastructure for Xilinx 7-Series FPGAs." -filesets: - files_rtl: - files: - - rtl/clkgen_xil7series.sv - # piggy-back here for now - - rtl/usr_access_xil7series.sv - file_type: systemVerilogSource - -targets: - default: - filesets: - - files_rtl diff --git a/hw/top_earlgrey/data/clocks.xdc b/hw/top_earlgrey/data/clocks.xdc index e111068c35338..074548bf593b5 100644 --- a/hw/top_earlgrey/data/clocks.xdc +++ b/hw/top_earlgrey/data/clocks.xdc @@ -231,14 +231,29 @@ set_input_delay -clock clk_spi_pt -clock_fall -max ${spi_host_in_delay_max} \ # SPI Host clock origin buffer set spi_host_0_peri [get_pins top_earlgrey/u_clkmgr_aon/u_clk_io_peri_cg/gen_xilinx.u_impl_xilinx/gen_gate.gen_bufgce.u_bufgce/O] -# Even though it's 2x the max possible frequency, keep the peripheral clock -# frequency for the output. This will enable shifting the latch edge for hold -# analysis by the proper amount to effect "half-cycle sampling" of SPI. -create_generated_clock -name clk_spi_host0 -divide_by 1 -add \ +create_generated_clock -name clk_spi_host0 -divide_by 2 -add \ -source ${spi_host_0_peri} \ -master_clock [get_clocks -of_objects ${spi_host_0_peri}] \ [get_ports SPI_HOST_CLK] +# Multi-cycle path to adjust the hold edge, since launch and capture edges are +# opposite in the SPI_HOST_CLK domain. +set_multicycle_path -setup 1 -start \ + -from [get_clocks -of_objects ${spi_host_0_peri}] \ + -to [get_clocks clk_spi_host0] +set_multicycle_path -hold 1 -start \ + -from [get_clocks -of_objects ${spi_host_0_peri}] \ + -to [get_clocks clk_spi_host0] + +# set multicycle path for data going from SPI_HOST_CLK to logic +# the SPI host logic will read these paths at "full cycle" +set_multicycle_path -setup -end 2 \ + -from [get_clocks clk_spi_host0] \ + -to [get_clocks -of_objects ${spi_host_0_peri}] +set_multicycle_path -hold -end 2 \ + -from [get_clocks clk_spi_host0] \ + -to [get_clocks -of_objects ${spi_host_0_peri}] + set spi_host_0_data [get_ports {SPI_HOST_D0 SPI_HOST_D1 SPI_HOST_D2 SPI_HOST_D3 SPI_HOST_CS_L}] set_output_delay -clock clk_spi_host0 -min ${spi_host_out_hold} \ ${spi_host_0_data} -add_delay @@ -249,17 +264,6 @@ set_input_delay -clock clk_spi_host0 -clock_fall -min ${spi_host_in_delay_min} set_input_delay -clock clk_spi_host0 -clock_fall -max ${spi_host_in_delay_max} \ ${spi_host_0_data} -add_delay -# The setup analysis is already correct for half-cycle sampling: If the first -# posedge of the peripheral clock represents the negedge of SPI_HOST_CLK, then -# the next posedge of the peripheral clock is when data should be latched, the -# posedge of SPI_HOST_CLK. -# However, the latch edge for hold analysis represents the same edge and needs -# to be advanced by one cycle of the peripheral clock (half a cycle of -# SPI_HOST_CLK). -set_multicycle_path -hold -end \ - -from [get_clocks -of_objects ${spi_host_0_peri}] \ - -to [get_clocks clk_spi_host0] 1 - ## Set asynchronous clock groups set_clock_groups -asynchronous \ -group {clk_main clk_spi_host0} \ diff --git a/hw/top_earlgrey/rtl/clkgen_xil7series.sv b/hw/top_earlgrey/rtl/clkgen_xil7series.sv index 9687d8fd807ab..e2ce7d761f449 100644 --- a/hw/top_earlgrey/rtl/clkgen_xil7series.sv +++ b/hw/top_earlgrey/rtl/clkgen_xil7series.sv @@ -17,8 +17,8 @@ module clkgen_xil7series # ( logic locked_pll; logic io_clk_buf; logic io_rst_buf_n; - logic clk_10_buf; - logic clk_10_unbuf; + logic clk_main_buf; + logic clk_main_unbuf; logic clk_fb_buf; logic clk_fb_unbuf; logic clk_48_buf; @@ -30,10 +30,11 @@ module clkgen_xil7series # ( .BANDWIDTH ("OPTIMIZED"), .COMPENSATION ("ZHOLD"), .STARTUP_WAIT ("FALSE"), - .DIVCLK_DIVIDE (1), - .CLKFBOUT_MULT_F (12.000), + .CLKIN1_PERIOD (10.000), // f_CLKIN = 100 MHz + .DIVCLK_DIVIDE (1), // f_PFD = 100 MHz + .CLKFBOUT_MULT_F (12.000), // f_VCO = 1200 MHz .CLKFBOUT_PHASE (0.000), - .CLKOUT0_DIVIDE_F (120.0), + .CLKOUT0_DIVIDE_F (50.0), // f_main = 24 MHz .CLKOUT0_PHASE (0.000), .CLKOUT0_DUTY_CYCLE (0.500), .CLKOUT1_DIVIDE (25), @@ -45,12 +46,11 @@ module clkgen_xil7series # ( .CLKOUT4_PHASE (0.000), .CLKOUT4_DUTY_CYCLE (0.500), .CLKOUT4_CASCADE ("TRUE"), - .CLKOUT6_DIVIDE (120), - .CLKIN1_PERIOD (10.000) + .CLKOUT6_DIVIDE (120) ) pll ( .CLKFBOUT (clk_fb_unbuf), .CLKFBOUTB (), - .CLKOUT0 (clk_10_unbuf), + .CLKOUT0 (clk_main_unbuf), .CLKOUT0B (), .CLKOUT1 (clk_48_unbuf), .CLKOUT1B (), @@ -100,9 +100,9 @@ module clkgen_xil7series # ( ); if (AddClkBuf == 1) begin : gen_clk_bufs - BUFG clk_10_bufg ( - .I (clk_10_unbuf), - .O (clk_10_buf) + BUFG clk_main_bufg ( + .I (clk_main_unbuf), + .O (clk_main_buf) ); BUFG clk_48_bufg ( @@ -111,13 +111,13 @@ module clkgen_xil7series # ( ); end else begin : gen_no_clk_bufs // BUFGs added by downstream modules, no need to add here - assign clk_10_buf = clk_10_unbuf; + assign clk_main_buf = clk_main_unbuf; assign clk_48_buf = clk_48_unbuf; end // outputs // clock - assign clk_main_o = clk_10_buf; + assign clk_main_o = clk_main_buf; assign clk_48MHz_o = clk_48_buf; assign clk_aon_o = clk_aon_buf; diff --git a/hw/top_englishbreakfast/clkgen_xil7series.core b/hw/top_englishbreakfast/clkgen_xil7series.core deleted file mode 120000 index c098f061e6e34..0000000000000 --- a/hw/top_englishbreakfast/clkgen_xil7series.core +++ /dev/null @@ -1 +0,0 @@ -../top_earlgrey/clkgen_xil7series.core \ No newline at end of file diff --git a/hw/top_englishbreakfast/clkgen_xil7series.core b/hw/top_englishbreakfast/clkgen_xil7series.core new file mode 100644 index 0000000000000..9bc8eb30dfe73 --- /dev/null +++ b/hw/top_englishbreakfast/clkgen_xil7series.core @@ -0,0 +1,21 @@ +CAPI=2: +# Copyright lowRISC contributors. +# Licensed under the Apache License, Version 2.0, see LICENSE for details. +# SPDX-License-Identifier: Apache-2.0 + +# TODO: long term this should be merged into AST. + +name: "lowrisc:systems:clkgen_xil7series" +description: "Clock generation infrastructure for Xilinx 7-Series FPGAs." +filesets: + files_rtl: + files: + - rtl/clkgen_xil7series.sv + # piggy-back here for now + - rtl/usr_access_xil7series.sv + file_type: systemVerilogSource + +targets: + default: + filesets: + - files_rtl diff --git a/hw/top_englishbreakfast/rtl/clkgen_xil7series.sv b/hw/top_englishbreakfast/rtl/clkgen_xil7series.sv deleted file mode 120000 index 3a2bbbbd37503..0000000000000 --- a/hw/top_englishbreakfast/rtl/clkgen_xil7series.sv +++ /dev/null @@ -1 +0,0 @@ -../../top_earlgrey/rtl/clkgen_xil7series.sv \ No newline at end of file diff --git a/hw/top_englishbreakfast/rtl/clkgen_xil7series.sv b/hw/top_englishbreakfast/rtl/clkgen_xil7series.sv new file mode 100644 index 0000000000000..28299e0cd9826 --- /dev/null +++ b/hw/top_englishbreakfast/rtl/clkgen_xil7series.sv @@ -0,0 +1,126 @@ +// Copyright lowRISC contributors. +// Licensed under the Apache License, Version 2.0, see LICENSE for details. +// SPDX-License-Identifier: Apache-2.0 + +module clkgen_xil7series # ( + // Add BUFG if not done by downstream logic + parameter bit AddClkBuf = 1 +) ( + input clk_i, + input rst_ni, + input srst_ni, + output clk_main_o, + output clk_48MHz_o, + output clk_aon_o, + output rst_no +); + logic locked_pll; + logic io_clk_buf; + logic io_rst_buf_n; + logic clk_main_buf; + logic clk_main_unbuf; + logic clk_fb_buf; + logic clk_fb_unbuf; + logic clk_48_buf; + logic clk_48_unbuf; + logic clk_aon_buf; + logic clk_aon_unbuf; + + MMCME2_ADV #( + .BANDWIDTH ("OPTIMIZED"), + .COMPENSATION ("ZHOLD"), + .STARTUP_WAIT ("FALSE"), + .CLKIN1_PERIOD (10.000), // f_CLKIN = 100 MHz + .DIVCLK_DIVIDE (1), // f_PFD = 100 MHz + .CLKFBOUT_MULT_F (12.000), // f_VCO = 1200 MHz + .CLKFBOUT_PHASE (0.000), + .CLKOUT0_DIVIDE_F (120.0), // f_main = 10 MHz + .CLKOUT0_PHASE (0.000), + .CLKOUT0_DUTY_CYCLE (0.500), + .CLKOUT1_DIVIDE (25), + .CLKOUT1_PHASE (0.000), + .CLKOUT1_DUTY_CYCLE (0.500), + // With CLKOUT4_CASCADE, CLKOUT6's divider is an input to CLKOUT4's + // divider. The effective ratio is a multiplication of the two. + .CLKOUT4_DIVIDE (40), + .CLKOUT4_PHASE (0.000), + .CLKOUT4_DUTY_CYCLE (0.500), + .CLKOUT4_CASCADE ("TRUE"), + .CLKOUT6_DIVIDE (120) + ) pll ( + .CLKFBOUT (clk_fb_unbuf), + .CLKFBOUTB (), + .CLKOUT0 (clk_main_unbuf), + .CLKOUT0B (), + .CLKOUT1 (clk_48_unbuf), + .CLKOUT1B (), + .CLKOUT2 (), + .CLKOUT2B (), + .CLKOUT3 (), + .CLKOUT3B (), + .CLKOUT4 (clk_aon_unbuf), + .CLKOUT5 (), + .CLKOUT6 (), + // Input clock control + .CLKFBIN (clk_fb_buf), + .CLKIN1 (clk_i), + .CLKIN2 (1'b0), + // Tied to always select the primary input clock + .CLKINSEL (1'b1), + // Ports for dynamic reconfiguration + .DADDR (7'h0), + .DCLK (1'b0), + .DEN (1'b0), + .DI (16'h0), + .DO (), + .DRDY (), + .DWE (1'b0), + // Phase shift signals + .PSCLK (1'b0), + .PSEN (1'b0), + .PSINCDEC (1'b0), + .PSDONE (), + // Other control and status signals + .CLKFBSTOPPED (), + .CLKINSTOPPED (), + .LOCKED (locked_pll), + .PWRDWN (1'b0), + // Do not reset MMCM on external reset, otherwise ILA disconnects at a reset + .RST (1'b0)); + + // output buffering + BUFG clk_fb_bufg ( + .I (clk_fb_unbuf), + .O (clk_fb_buf) + ); + + BUFG clk_aon_bufg ( + .I (clk_aon_unbuf), + .O (clk_aon_buf) + ); + + if (AddClkBuf == 1) begin : gen_clk_bufs + BUFG clk_main_bufg ( + .I (clk_main_unbuf), + .O (clk_main_buf) + ); + + BUFG clk_48_bufg ( + .I (clk_48_unbuf), + .O (clk_48_buf) + ); + end else begin : gen_no_clk_bufs + // BUFGs added by downstream modules, no need to add here + assign clk_main_buf = clk_main_unbuf; + assign clk_48_buf = clk_48_unbuf; + end + + // outputs + // clock + assign clk_main_o = clk_main_buf; + assign clk_48MHz_o = clk_48_buf; + assign clk_aon_o = clk_aon_buf; + + // reset + assign rst_no = locked_pll & rst_ni & srst_ni; +endmodule diff --git a/signing/rom_tests/signatures/empty_test_sigverify_spx_fpga_cw310.rsa.sig b/signing/rom_tests/signatures/empty_test_sigverify_spx_fpga_cw310.rsa.sig index 17f8a80994a5092988afc7b3d16824d217bef884..a9642b4b9d52fb334f0d759a6d6f1469017fe52f 100644 GIT binary patch literal 384 zcmV-`0e}7hg|QLc%#_BWxgS**L;CQ5Fz-J6GJ$#L3s9$Rp;vffcg$DsZyx)6uI!8} zIv$vBdMfC0n#KxLSR}tYxsgOwZp+V#b`q^+oOJYFV2LumR6;!Gj&j~?ZQ!XjabGBG zOPC@6H^A(xp@IL@=EDZ}_tee-!VsHDy$dbhdX))4IHo3*LE}RBDyX+O(%P1++qviP z%>|n~ySCPJ54AskBmeZxcwgKO(J~EQ#Fja(tsWKho4isJGmARdK5pj= zx>cEM#03dek;jJWTJ*@BR}^_*%^79Y13rNg@?7HGvnTQr3CHklDzCkJ@e^2<8{Yl( zMeii`Hn3@oE}0fKcwcU6$|JV!G6Gy?V53ayNoc_8iB!*u{nbw}CFJ^Rv9+UTI`Md}c!@}X>`@^&LfLe!5uAk1blg6A(0gXnThDO?E^ e*FARIQ&MV%L*U@cO5L9?tQqm~IhUwT7f*sh0>Z}t literal 384 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 O3*+{0$!5mPhBEcXtbY*z literal 7856 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 literal 384 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 diff --git a/sw/device/lib/arch/device_fpga_cw310.c b/sw/device/lib/arch/device_fpga_cw310.c index 35f51b59cf054..60acfd85121cb 100644 --- a/sw/device/lib/arch/device_fpga_cw310.c +++ b/sw/device/lib/arch/device_fpga_cw310.c @@ -16,15 +16,15 @@ const device_type_t kDeviceType = kDeviceFpgaCw310; -const uint64_t kClockFreqCpuMhz = 10; +const uint64_t kClockFreqCpuMhz = 24; const uint64_t kClockFreqCpuHz = kClockFreqCpuMhz * 1000 * 1000; uint64_t to_cpu_cycles(uint64_t usec) { return usec * kClockFreqCpuMhz; } -const uint64_t kClockFreqHiSpeedPeripheralHz = 10 * 1000 * 1000; // 10MHz +const uint64_t kClockFreqHiSpeedPeripheralHz = 24 * 1000 * 1000; // 24MHz -const uint64_t kClockFreqPeripheralHz = 25 * 100 * 1000; // 2.5MHz +const uint64_t kClockFreqPeripheralHz = 6 * 1000 * 1000; // 6MHz const uint64_t kClockFreqUsbHz = 48 * 1000 * 1000; // 48MHz diff --git a/sw/device/silicon_creator/rom/e2e/presigned_images/empty_test_sigverify_spx_fpga_cw310.signed.bin b/sw/device/silicon_creator/rom/e2e/presigned_images/empty_test_sigverify_spx_fpga_cw310.signed.bin index 67d30cfc7f9a0d2863d9e1802c1c4c7b46706a68..309ac5cca5b941924cf80ffeda474dd999b24ea7 100644 GIT binary patch delta 14749 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

&8Aa3;J(RB5twoSy5! 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 Ozxi~!wfDrzZ2ljOcFKq6jb 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 diff --git a/sw/device/silicon_creator/rom/e2e/presigned_images/empty_test_sigverify_spx_sim_dv.signed.bin b/sw/device/silicon_creator/rom/e2e/presigned_images/empty_test_sigverify_spx_sim_dv.signed.bin index f9755d4a3b6c415f0679130b475da91ec8106d3f..f2034e6eb0659926989735e010b6427e57399147 100644 GIT binary patch delta 14563 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�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≧YT@0 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

+{)JpeFIRNwK@WAg zZR_OngAppb_~WDbn*6%m5z0eSEU@>1XBn3{7&T`!-<(d>{4yJb#%do$Wm<&?wYA&a z{Dnwq57B!4;!=R`=Me|9tOnP1E8HLtJ}LDPX3#FKuI>kDV>l6kG86FX)EHn7ur6Opmw@@-H5?kdXp)}_YzR@$!*}|PjK8s?w2!N) z1>5(d%g4eJ+jbg-0>W(2lf2Zn0uCdF_ivuqz8LRLjwNkkpixfi@HVKK{$bAE-=}7q z{4UA%!F-eF>;P`ud-JTq1C#*sgna$=M-nA_?PHvKQx~$5uvKkN@v_5ZKW^XuRMTQF z*-UO71EWGA@cMbTe6@OvskPu+nQLJ@-h4Ce$%Y%x-{i>1X>yY9p~;klV)ha?s1z7- z7blj^aRI>Ku%)`)E7pj#nVp}dG zWReNr3;e8v2@v)`XK8cZ^GRrO@6^!TRVd8-*|WwQig{GZb26-J6s6gE60I$cJ$E$k z``m?ob<5WzwshN0EKBGnMND_JZa{C&uV1r%v8RN2DUEIStH|JOh1|y#mp+r@seIOa z0?ky{B9rf&&~oDef8^C&{NcG+z`~~ijr9S{d7$_C^BehV<#`_?q?esMsW`Q4-Iy?L zZejZp8^_3XzuaPe*1>V?K5F~6byl_aiptojF1iFkpU8Cw9siOXwB=9~4Y}=3TentV zBE@7dK$CGHGsLkd2`PX2Dh_w#;b#2L#d}A^;#z3rD~pGOTs)pP7uDD&Oy@cpRII;O zz5G_dQLw_J$qOz%c)R-nhcg50|>S{K*%_&_@FSCHk z3L0mesAvd1r?Yz*FRG69TQiVHa;_szfo6)*xrsexSsL-I#-oxG?Q2MSOZB* zx!hi?&$DT-mxZNmZ_C?y&tu;%F*?YBELJX>?P6Jj>%{YbKio zbJTI<-op*PlFO61vet3WzR%R{M_k|FVYVVm+DRyMacxj)P z5wd&TMkn{9%CI}Xc^J8dX}E7cTCO3m?!o>g6ru<7D3mz82f? z?cDJ&iLL#xl&emYXLJj#o#6!Q;LXWTsLz;oz(KD>T#2hOp+(xX)`d4P%IMzrA0G(bqq&!P;z%`*&f3T&(%_?p32_TY zqZc_VWm4ut^KTDRy>7F5bUgFa+>3ixj(kly>W^Q)QBZ-;j&4)}zkjJ^P21$m?V^Pi zPS1Q6daz7FLaq>%{h-eqd+vsKKw{&!bg@VWMzxz+XI=8{b<3>avp(`SXa-E)d z5J=9K_wQW{?nbHFe}-{fphAxDJ}V>dHm?EC=IP18A|H8k;#S6TGUgpIR7*;~4` zCr{M#n=F(exE_kkIrgFzbXIuq--eI4>KrW+L=*;FJ@#3;I+{gKzNLJRM)R06v$a=c zLegS~a*~~3zz9|*0GM$+b1U&(OJtghTDYt;<57P2Gx?!LHp5oo-B;zq(w7Sj#F&sz zQ?}=9CZjtFG_o9rX|G)I&*2oEp#*<`8phWV)8N7VC{p7|RAA~FT2NKnMKXt9q2sl# zw(Y9x$}cTf!G?Kl`C5C$C85hL+YS{~Cvm{{)OSVIU916FP_OrTr%(IPnliNpk>2r1 zrYN~OhATnjXOw@wT%Ro!b#~7?i@9rBU&@2p(@&BT>4<9 zI@{pLqZ1+e7p1yHkpp89a@f(JNmM|Yj$cTL{7i7NGd$7WGxBVid)8Tq7Gr{OK!Piu zXWZMBv@lJp~ p_ZO^C^_Mu3zp(XTs%5A%r8UCOHu{Dx*lKwEF#pT}1(+^t{2!==vYG$@ delta 14678 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 diff --git a/sw/device/silicon_creator/rom/e2e/presigned_images/rom_e2e_self_hash_fpga_cw310.signed.bin b/sw/device/silicon_creator/rom/e2e/presigned_images/rom_e2e_self_hash_fpga_cw310.signed.bin index 55e8c3950dca7d0fd4be80fb5f86c956beeaba8d..37fddbfc1848abcce42141177058727bb49e4657 100644 GIT binary patch delta 416 zcmV;R0bl-z{Q-#m0e}1z_}Nim2_=wsbIAfgRPx&mp?10t4Cw&z`>Bs@&Jwh6eEiEk zwC17LHvA|IP6d2J^mH6E+>0MHU+b^+I%62U1M4a0T3wA&Mr~Jp z+Tu%z*itTdHYZxYWB_K`W6@#P4}Fb6e#;Vn#Z*A~0%5gV(X-dqWYZ9scI@K=!7oF+ zr!76&YNMkH5`PAXAubE0uibLlVnbjXh#VO#|4qWxFukR$iLMahnoI&>{u)*NJF8ka z4&u0{!9{4bR&<}*p!WXwh0!W$wSEFnl?l%g&iOma=J&0PhV2Z}d~j4p#L3Ri@eOPg z5flFZV38_!(_iQKo_^|`m?WuIL1qDOu~iL>99qW9j|20;J+puTfO!i5Hf{j`0001h Kja#z|dwm0!vdZxQ delta 416 zcmV;R0bl-z{Q-#m0e{j3!&D#BHQmUP;xMApx}$ex^)f9^kl95I&jHf*XCE*L(i2b0 z{Hb5fOfc1J{9pN5=_EW;XZ0$Qh2+ge=E=w=^?$p}l1tytd}gG@{q#naQM0s z2C#gyzE^`iJ*NPG>02+V$@BAjiCnAj{E+5Vh`L-4jQtnG`G0RTWdFKSRglz@+br<) z6%o<9K8N`eFnlz2^P+XJacwvdHd=NBl$+ek@52{1xaX`Tw`%lx!sWvRHnm#FdL$id z`JVW+E>IW^+y90DPVHTMAZhCc@`|Jf7H8j#_d7WugLo~@wU6+VP|C3;MkHm=ZKUk%7c#wbVGdj;qAH?@h3I2n@CkHbYI z#j-kDUejS)cP8eD%!RwCm>}qNT0}}VvGOrROK`;-)C0TK7PEi>fO!jmmY4tl0001> KB_^{Adwm0NJkv7( From 7c07eb0a5e7e2242d14a714210eb144d773a71ef Mon Sep 17 00:00:00 2001 From: Alexander Williams Date: Wed, 9 Aug 2023 10:35:50 -0700 Subject: [PATCH 3/3] [test] Fix lack of entropy for wycheproof test The test did not initialize the entropy complex to auto mode, and it would exhaust the available, finite entropy generated during boot, leading to freezing and timeouts. Add this test back to the FPGA suite. Signed-off-by: Alexander Williams --- sw/device/tests/crypto/BUILD | 6 +++--- sw/device/tests/crypto/rsa_3072_verify_functest.c | 4 ++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/sw/device/tests/crypto/BUILD b/sw/device/tests/crypto/BUILD index eaaf5e4613d12..e8f7feb0eae3a 100644 --- a/sw/device/tests/crypto/BUILD +++ b/sw/device/tests/crypto/BUILD @@ -177,8 +177,7 @@ opentitan_functest( name = "rsa_3072_verify_functest_wycheproof", srcs = ["rsa_3072_verify_functest.c"], cw310 = cw310_params( - timeout = "long", - tags = ["broken"], # FIXME #16805 hangs at vector 170 + timeout = "moderate", ), targets = [ "cw310_test_rom", @@ -187,10 +186,10 @@ opentitan_functest( ], verilator = verilator_params( timeout = "eternal", - tags = ["broken"], # FIXME #16805 hangs at vector 165 after ~3h ), deps = [ ":rsa_3072_verify_testvectors_wycheproof_header", + "//sw/device/lib/crypto/drivers:entropy", "//sw/device/lib/crypto/drivers:hmac", "//sw/device/lib/crypto/drivers:otbn", "//sw/device/lib/crypto/impl/rsa:rsa_3072_verify", @@ -214,6 +213,7 @@ opentitan_functest( ), deps = [ ":rsa_3072_verify_testvectors_hardcoded_header", + "//sw/device/lib/crypto/drivers:entropy", "//sw/device/lib/crypto/drivers:hmac", "//sw/device/lib/crypto/drivers:otbn", "//sw/device/lib/crypto/impl/rsa:rsa_3072_verify", diff --git a/sw/device/tests/crypto/rsa_3072_verify_functest.c b/sw/device/tests/crypto/rsa_3072_verify_functest.c index 7c607a42e2aa7..d35119e342d85 100644 --- a/sw/device/tests/crypto/rsa_3072_verify_functest.c +++ b/sw/device/tests/crypto/rsa_3072_verify_functest.c @@ -3,6 +3,7 @@ // SPDX-License-Identifier: Apache-2.0 #include "sw/device/lib/base/memory.h" +#include "sw/device/lib/crypto/drivers/entropy.h" #include "sw/device/lib/crypto/drivers/otbn.h" #include "sw/device/lib/crypto/impl/rsa/rsa_3072_verify.h" #include "sw/device/lib/runtime/log.h" @@ -60,6 +61,9 @@ bool test_main(void) { // Stays true only if all tests pass. bool result = true; + // Set entropy complex to auto mode. + CHECK_STATUS_OK(entropy_complex_init()); + // The definition of `RULE_NAME` comes from the autogen Bazel rule. LOG_INFO("Starting rsa_3072_verify_test:%s", RULE_NAME); for (uint32_t i = 0; i < RSA_3072_VERIFY_NUM_TESTS; i++) {