[flash_ctrl] Reset keymgr seeds - addresses #14137 - This just gives the seeds a reset value so that on reset if lc_hw_rd_en is off it doesn't somehow maintain the prior seed values. - Longer term it may be even better to scramble the seed values with random data upon initialization. So that if lc_hw_rd_en is 1, we read the actual seed. If it is 0, we just randomize to some other data. Signed-off-by: Timothy Chen <timothytim@google.com>
diff --git a/hw/ip/flash_ctrl/data/flash_ctrl.hjson b/hw/ip/flash_ctrl/data/flash_ctrl.hjson index 8c79db4..1801cf3 100644 --- a/hw/ip/flash_ctrl/data/flash_ctrl.hjson +++ b/hw/ip/flash_ctrl/data/flash_ctrl.hjson
@@ -351,6 +351,12 @@ randcount: "128", randtype: "data", // randomize randcount databits }, + { name: "RndCnstAllSeeds", + desc: "Compile-time random bits for default seeds", + type: "flash_ctrl_pkg::all_seeds_t" + randcount: "512", + randtype: "data", // randomize randcount databits + }, { name: "RndCnstLfsrSeed", desc: "Compile-time random bits for initial LFSR seed", type: "flash_ctrl_pkg::lfsr_seed_t"
diff --git a/hw/ip/flash_ctrl/data/flash_ctrl.hjson.tpl b/hw/ip/flash_ctrl/data/flash_ctrl.hjson.tpl index c36954a..cbd1977 100644 --- a/hw/ip/flash_ctrl/data/flash_ctrl.hjson.tpl +++ b/hw/ip/flash_ctrl/data/flash_ctrl.hjson.tpl
@@ -362,6 +362,12 @@ randcount: "128", randtype: "data", // randomize randcount databits }, + { name: "RndCnstAllSeeds", + desc: "Compile-time random bits for default seeds", + type: "flash_ctrl_pkg::all_seeds_t" + randcount: "512", + randtype: "data", // randomize randcount databits + }, { name: "RndCnstLfsrSeed", desc: "Compile-time random bits for initial LFSR seed", type: "flash_ctrl_pkg::lfsr_seed_t"
diff --git a/hw/ip/flash_ctrl/data/flash_ctrl.sv.tpl b/hw/ip/flash_ctrl/data/flash_ctrl.sv.tpl index 34136e3..cd0eea5 100644 --- a/hw/ip/flash_ctrl/data/flash_ctrl.sv.tpl +++ b/hw/ip/flash_ctrl/data/flash_ctrl.sv.tpl
@@ -14,6 +14,7 @@ parameter logic [NumAlerts-1:0] AlertAsyncOn = {NumAlerts{1'b1}}, parameter flash_key_t RndCnstAddrKey = RndCnstAddrKeyDefault, parameter flash_key_t RndCnstDataKey = RndCnstDataKeyDefault, + parameter all_seeds_t RndCnstAllSeeds = RndCnstAllSeedsDefault, parameter lfsr_seed_t RndCnstLfsrSeed = RndCnstLfsrSeedDefault, parameter lfsr_perm_t RndCnstLfsrPerm = RndCnstLfsrPermDefault, parameter int ProgFifoDepth = MaxFifoDepth, @@ -422,7 +423,8 @@ // hardware interface flash_ctrl_lcmgr #( .RndCnstAddrKey(RndCnstAddrKey), - .RndCnstDataKey(RndCnstDataKey) + .RndCnstDataKey(RndCnstDataKey), + .RndCnstAllSeeds(RndCnstAllSeeds) ) u_flash_hw_if ( .clk_i, .rst_ni,
diff --git a/hw/ip/flash_ctrl/data/flash_ctrl_pkg.sv.tpl b/hw/ip/flash_ctrl/data/flash_ctrl_pkg.sv.tpl index f7627e3..49b24d9 100644 --- a/hw/ip/flash_ctrl/data/flash_ctrl_pkg.sv.tpl +++ b/hw/ip/flash_ctrl/data/flash_ctrl_pkg.sv.tpl
@@ -200,6 +200,9 @@ parameter bit [PageW-1:0] OwnerInfoPage = 2; parameter bit [PageW-1:0] IsolatedInfoPage = 3; + parameter int TotalSeedWidth = SeedWidth * NumSeeds; + typedef logic [TotalSeedWidth-1:0] all_seeds_t; + // which page of which info type of which bank for seed selection parameter page_addr_t SeedInfoPageSel [NumSeeds] = '{ '{ @@ -310,6 +313,11 @@ 128'h5d707f8a2d01d400928fa691c6a6e0a4; parameter flash_key_t RndCnstDataKeyDefault = 128'h39953618f2ca6f674af39f64975ea1f5; + parameter all_seeds_t RndCnstAllSeedsDefault = { + 256'h3528874c0d9e481ead4d240eb6238a2c6218896f5315edb5ccefe029a6d04091, + 256'h9cde77e25a313a76984ab0ebf990983432b03b48186dcd556565fe721b447477 + }; + //////////////////////////// // Flash operation related enums
diff --git a/hw/ip/flash_ctrl/rtl/flash_ctrl.sv b/hw/ip/flash_ctrl/rtl/flash_ctrl.sv index 2726390..4d7c672 100644 --- a/hw/ip/flash_ctrl/rtl/flash_ctrl.sv +++ b/hw/ip/flash_ctrl/rtl/flash_ctrl.sv
@@ -14,6 +14,7 @@ parameter logic [NumAlerts-1:0] AlertAsyncOn = {NumAlerts{1'b1}}, parameter flash_key_t RndCnstAddrKey = RndCnstAddrKeyDefault, parameter flash_key_t RndCnstDataKey = RndCnstDataKeyDefault, + parameter all_seeds_t RndCnstAllSeeds = RndCnstAllSeedsDefault, parameter lfsr_seed_t RndCnstLfsrSeed = RndCnstLfsrSeedDefault, parameter lfsr_perm_t RndCnstLfsrPerm = RndCnstLfsrPermDefault, parameter int ProgFifoDepth = MaxFifoDepth, @@ -423,7 +424,8 @@ // hardware interface flash_ctrl_lcmgr #( .RndCnstAddrKey(RndCnstAddrKey), - .RndCnstDataKey(RndCnstDataKey) + .RndCnstDataKey(RndCnstDataKey), + .RndCnstAllSeeds(RndCnstAllSeeds) ) u_flash_hw_if ( .clk_i, .rst_ni,
diff --git a/hw/ip/flash_ctrl/rtl/flash_ctrl_lcmgr.sv b/hw/ip/flash_ctrl/rtl/flash_ctrl_lcmgr.sv index b991c8a..a63add0 100644 --- a/hw/ip/flash_ctrl/rtl/flash_ctrl_lcmgr.sv +++ b/hw/ip/flash_ctrl/rtl/flash_ctrl_lcmgr.sv
@@ -9,8 +9,9 @@ import flash_ctrl_pkg::*; import lc_ctrl_pkg::lc_tx_t; #( - parameter flash_key_t RndCnstAddrKey = RndCnstAddrKeyDefault, - parameter flash_key_t RndCnstDataKey = RndCnstDataKeyDefault + parameter flash_key_t RndCnstAddrKey = RndCnstAddrKeyDefault, + parameter flash_key_t RndCnstDataKey = RndCnstDataKeyDefault, + parameter all_seeds_t RndCnstAllSeeds = RndCnstAllSeedsDefault ) ( input clk_i, input rst_ni, @@ -256,9 +257,11 @@ logic [NumSeedWidth-1:0] seed_idx; assign rd_idx = addr_cnt_q[SeedRdsWidth-1:0]; assign seed_idx = seed_cnt_q[NumSeedWidth-1:0]; - always_ff @(posedge clk_i) begin - // validate current value - if (seed_phase && validate_q && rvalid_i) begin + always_ff @(posedge clk_i or negedge rst_ni) begin + if (!rst_ni) begin + seeds_q <= RndCnstAllSeeds; + end else if (seed_phase && validate_q && rvalid_i) begin + // validate current value seeds_q[seed_idx][rd_idx] <= seeds_q[seed_idx][rd_idx] & rdata_i[BusWidth-1:0]; end else if (seed_phase && rvalid_i) begin
diff --git a/hw/ip/flash_ctrl/rtl/flash_ctrl_pkg.sv b/hw/ip/flash_ctrl/rtl/flash_ctrl_pkg.sv index f37e685..a958c90 100644 --- a/hw/ip/flash_ctrl/rtl/flash_ctrl_pkg.sv +++ b/hw/ip/flash_ctrl/rtl/flash_ctrl_pkg.sv
@@ -200,6 +200,9 @@ parameter bit [PageW-1:0] OwnerInfoPage = 2; parameter bit [PageW-1:0] IsolatedInfoPage = 3; + parameter int TotalSeedWidth = SeedWidth * NumSeeds; + typedef logic [TotalSeedWidth-1:0] all_seeds_t; + // which page of which info type of which bank for seed selection parameter page_addr_t SeedInfoPageSel [NumSeeds] = '{ '{ @@ -310,6 +313,11 @@ 128'h5d707f8a2d01d400928fa691c6a6e0a4; parameter flash_key_t RndCnstDataKeyDefault = 128'h39953618f2ca6f674af39f64975ea1f5; + parameter all_seeds_t RndCnstAllSeedsDefault = { + 256'h3528874c0d9e481ead4d240eb6238a2c6218896f5315edb5ccefe029a6d04091, + 256'h9cde77e25a313a76984ab0ebf990983432b03b48186dcd556565fe721b447477 + }; + //////////////////////////// // Flash operation related enums
diff --git a/hw/top_earlgrey/data/autogen/top_earlgrey.gen.hjson b/hw/top_earlgrey/data/autogen/top_earlgrey.gen.hjson index f6e5c21..a3c4fa0 100644 --- a/hw/top_earlgrey/data/autogen/top_earlgrey.gen.hjson +++ b/hw/top_earlgrey/data/autogen/top_earlgrey.gen.hjson
@@ -4552,13 +4552,23 @@ randwidth: 128 } { + name: RndCnstAllSeeds + desc: Compile-time random bits for default seeds + type: flash_ctrl_pkg::all_seeds_t + randcount: 512 + randtype: data + name_top: RndCnstFlashCtrlAllSeeds + default: 0xaa3cf1c7fec9f29fde876aa58dab46f4f7b0ce3cffda0e9782216c0746509e39f6d4e529c9f758f873d25a17251fbe68478b95e538de6eb34dfa33f033a4ac96 + randwidth: 512 + } + { name: RndCnstLfsrSeed desc: Compile-time random bits for initial LFSR seed type: flash_ctrl_pkg::lfsr_seed_t randcount: 32 randtype: data name_top: RndCnstFlashCtrlLfsrSeed - default: 0x33a4ac96 + default: 0x72bb2473 randwidth: 32 } { @@ -4568,7 +4578,7 @@ randcount: 32 randtype: perm name_top: RndCnstFlashCtrlLfsrPerm - default: 0x3480d1896c7ff9ed5941bd125c6eb18772e220f3 + default: 0x660be981b6922265bc8718bfd76e950f219d26ea randwidth: 160 } { @@ -5267,7 +5277,7 @@ randcount: 64 randtype: data name_top: RndCnstAesClearingLfsrSeed - default: 0x8e18edeb46b20763 + default: 0x83d6d00b39ff9e2a randwidth: 64 } { @@ -5277,7 +5287,7 @@ randcount: 64 randtype: perm name_top: RndCnstAesClearingLfsrPerm - default: 0x5cf6536a2ee3e49d22a36fa59ea2c4620d062f69f5f3209dc203ee4c87ff199b2af013b1ed4e0395175c5dd94e29d06 + default: 0xb0d5e71606d63da435ed8b832dc97ce69bc87e4c22a9ee0ade8fa3074c9244954200ec5d336846e99ff34ebf44507b66 randwidth: 384 } { @@ -5287,7 +5297,7 @@ randcount: 64 randtype: perm name_top: RndCnstAesClearingSharePerm - default: 0x57ec2e416728b1fd9d00a60c08d538de2c75cc325a65e95b98bac182f10eeb4e52f2a93d22d3f24c51d1a7f1a387b5e7 + default: 0xe7b4f2237d969c253d7253d11de43e54524aa9803f3695e1aece19cda8ba91dd1f1b5bc36ee9bc2d2a300608ed13138c randwidth: 384 } { @@ -5297,7 +5307,7 @@ randcount: 160 randtype: data name_top: RndCnstAesMaskingLfsrSeed - default: 0x5147f1ef84f4b3a9d281437d77f970022c91c1a2 + default: 0xc89a3209a1642741192e3979e50f4b7302bf908c randwidth: 160 } { @@ -5307,7 +5317,7 @@ randcount: 160 randtype: perm name_top: RndCnstAesMaskingLfsrPerm - default: 0x8a88993a824011121a5e9a4936802793375f2e640110219e6607524d796847435a3b257f67298e72469c239506756b614869422c91506a7b76733d60327141132439704a0b908b28977c4b1455841c89569653095d3e0e2f1d150d1f8f511792048d4e3f9f1b83742b6298770c26226e450f6d356f4f581e7e784c6c57187a5b86943300030a445c2a65597d818719023c8c1630639b2d31209d340508548538 + default: 0x4383494791069f29850f2e962b3a3411209d609a9e05861a8f8b529b125a267a807b2c3f624c2388829278217038946469074a424b5572463589255f7e224f323010610c369c7c4853276f40583b500873132439846e0b3c1854288e6d76149795561c1b742d6b7509793e660e2f5d1d67150d1f6c685e027751171604994e7f71370145574193194d908a1e6a3d315b9863338d00030a8c445c2a65597d8187 randwidth: 1280 } ] @@ -5519,7 +5529,7 @@ randcount: 800 randtype: data name_top: RndCnstKmacLfsrSeed - default: 0x30d16a94098e681252f1c7741dd6e62190d79f1230d02f643ac42fa70cb942155264f8c121b7387a0a07db44fe8c330ca072829f9970f91074501568220e25ba7743095f2c1194fb74487a86b6fee0311af608b7123f603c251a36ab2e658548c5420be5 + default: 0x4857ffe38745ae400e4aee8385f157b88ab8ed1fce7408f7be58b7d21102be301eb1a8d04814ac33b45de425069e5959df06d42254a25afae52a5963310fb843b64ef41e69029587c377a10c9ab33f80f21fad7205be139eaa9fbe945120695530d16a94 randwidth: 800 } { @@ -5529,7 +5539,7 @@ randcount: 800 randtype: perm name_top: RndCnstKmacLfsrPerm - default: 0x658201763c640fa7703f4ead00959a7196babda714f0e5b947b3f17a491f675552019f631cd435d18ec120344ab92ef33c052be5a689e5b12943bdbb9ca066d6d757ed3a1c50c78e6a1586814d32d23297ac79fa7da1a756b9d93ee491e66935a115ca0a38a63a9ec055ae1114355a6ca0b9ad9d9ebb38775157d5f0707debe1ce7a5eed58e8f085a8877c7c9bb1ba962e7609a27c1c1509c8e2e8710fd390b2b20c5a3d22ab2c68d084ae824860e09d1e73a88e144465525b74cd400d741609d7e81491d7771cc3a26623840044ac34cab15ff1a9070b1daff72eb72b593004696118f32cf7020595fadf871f06cab54c652638fe77a42a0a678214bc31e93487e7814816e786b0403761e4515c09a1a6984c43ada039072a887432b03f03b2959bbf3015d9a91bad428cd51aa2db153e0c64b805f472923a6256c4661a86e31091b20a3f02a2b4b567319ed19da1a80a1575818503042a2528160322e224a9c36926ad2a66e157074d03348c329e23a1bf89223799e181cee3c8a280ce538c1fae45c8bdaf0d94c944b09f18bc2942602a94c2f70560bbb998c4d872296249d655e9e38b0524a0c92ea933c706665330ccbc0f2b34e5bc8a04f06413a3949c48aea8d29b9dba644dc2de9b966d853428a059e1b6cb5be6b88592651b7960c029240012453b52eb35fb446eb621ffae2f6a4513c261b8c5d658e661a027b6d8d36e224196a956968f4f69740cb7166bc26c2b07fb58727f23731e9e45474940484f1ec106203e42a715952427f3b12c76b1f26e71a75db0de90ab6de5c1c93e299ac9198f90bbb12505c4368c4e3a54e247051d71dbb46f12d4f299f37bf1c6e5821803db096dc1dce65dc117d09a2ec13cdf85ce8c4a8638102c8566dc6494c0e00b329789d348e5dd950065b14a47a640bf157a900365e8545f5ba8556a2687e68a01dc3af22639cf5088a7b750f70ac961571671242d4617c6fd405417027b305464ddb1849162c6336ce192246b732fa50c71ba5a0b96f346abdc00b68d95a2e5086f4c224c0f259640f9833388106e6f21449579181ec5774135b80a82f64d56e4492abba7c9906078836f4791f68395954deeaa0986d03a4ad797c88635c6587dc84fd030e02bc1243bc44d2ee57752532225fa92fb3d1b084daac5ab62fd3b8c0324da4837e839cef5a367783229c20472e11c2a502256d23fc10afc345d679085be4f5ab27823625783ad172faae5a30f73c6c47550b9866c088369510971fd0a71407a953300275cb3bcaa216aabbfa8425e4fa69b6234640250593310178de02e4e83cab4102d919404e2104bc7d5620962a6598202159d5be0117f9d223d61360d1c627018a35a008b4861d0e6178aaf91107a482d106952312d96930d9a816aa944 + default: 0x9d0807bd69bceb5bb8319ed233c15c986e6b558b89073142f46f0fea958fbeebf575eb0fdde1c0549766c78ca3094a51e689af5fc6fecd7189cb6d9baea7f3162e7b012772b8895f3b9c4aa7a87426fe7fce4b630f32cd4080b47849a3ed7a035984fb0241e6e6a6a976d97a65543805391e68c56696b5874c6d1449625ce20855cab846a439d3114356ca143cc2e1767559cf752d6b558af071556e2033eae3ba2f70171e7821a706dd38a3e5f0cf812c20e5c5274e163a56c459a8ecd68eb1d212ea090c3582458719f6488e1444634a6d820ef00cd36420b6527c0518464ef08be557b4fc002d92ca26966c4a6e9f55ea6c7c76c4e071b9e5aa0011a4e6631485b408165cb6b0fd8b05fb5e8c4311b99288735fba81dfb1d6e859653a83d6847eb899916d867c1a71012269ada5dc2618ecc1310dbb40e498aa21d1fa9e391dde72b43b6dec3374d588e2da289f451211f1c457ef61097ba60829440a4ea5460b0abe867b2ab32865b67a180c10a978a0514c8bd492904da7457fa42b9901724b41d3420a2323c328a63a14251e34759ba7e8eea14f2289c7394e307e961729194836abe632c2ffbca27a4ea4676bc4c2d60559154b016d47a692862297d49d80c6d96b063d14928324ba604f1c6a1e4cc332f03cb1939765a213c1904e3f524442b974ad9296e6e96b8dc2ded49aeeb53428a51bb1b6de5be7d8c9d86be7ea866a804a47a404988ed4bae00b111c3588a0acbc267144f038ae42925639e06809ebe634dbb21065aa67182283da6f032ef59a58968ac1fdf41ca06738c7ac5151d1da1213c86c418c4f90a9e265490a48ec4b1f751205ad2b07e037a8ec0bc570724f8ab2c54665042e1d4941710da3138e953891c647505b001bc4b53d4ca3cc0bb17eb4c9b4a9e65d8c6334584c894c5e00b7eaa8e13492ddd998065b14a47a760bee4845ea400d97a1517d6fd155a8a2df988a9d01e2170ecf8dce73d42229e9743dc2b71855c59c490b5185f1c4101505c0a38c1519376c69c849162c6336ce192246b7327250c71bf1a0c4b0646ad0c50b68d95a2e5086f4c224c0f259640f9833388106e8121449579181ec5774135ab4a82f64d56e4492aceac8990607883707791f68395954deeaee7a261b40e92b5e5f2218d71961f7213f40c380af1890f04134bb95dd494c8897eb7c38f46c2136a81ab24bf4ee300c936920dfa0e73c228d9de0c8a71c11cb8470a940895b94ff042d20d1759e4216f93d6ac9e08d895e0eb45cbeab96885dcf1b11d542f919b1620da54425c7f4294801ea54cc009d72cf05a885aaaf0ba109793e9a6d88d190094164c8a85e3780b93a0f2ad040b646501388412f1f5588258a99660808567570cbe0117f9d223d61360d13127018a35a008b randwidth: 8000 } { @@ -5539,7 +5549,7 @@ randcount: 32 randtype: perm name_top: RndCnstKmacLfsrFwdPerm - default: 0xd91d738a787affa424a1e48758d9aaee61e3028c + default: 0xa3c7206c896aa2887d8771bdcb96da5f433166b8 randwidth: 160 } { @@ -5549,7 +5559,7 @@ randcount: 64 randtype: perm name_top: RndCnstKmacMsgPerm - default: 0x7d283f118981787a4631dcc35e5a08549e0feb5ac58d44640936bccbbd10016c2f85ba998ac3add9cfa7f6edcd2f1e4a + default: 0x1e9c6a2737c3eb9e00204f0dd94d0c28f175b2682b610964bbe73f8d9546bdb051ed29de857cbd5a888e0b74ed68bc1d randwidth: 384 } ] @@ -5727,7 +5737,7 @@ randcount: 256 randtype: data name_top: RndCnstOtbnUrndPrngSeed - default: 0xb1ac8ea0520d1e942e68202565535cf357b4544cecd50b63d8a077517ea4b4ee + default: 0x9c2b2e5ce6567e44e86fc9fa5b79f6090b08f77c203b16ae27047899fa42c837 randwidth: 256 } { @@ -5737,7 +5747,7 @@ randcount: 128 randtype: data name_top: RndCnstOtbnOtbnKey - default: 0x4f2f4eb66e1c16646a7bd56d29ac43ec + default: 0x4b993b2bd311b6c32bbcf17bb4cb2d5a randwidth: 128 } { @@ -5747,7 +5757,7 @@ randcount: 64 randtype: data name_top: RndCnstOtbnOtbnNonce - default: 0xbec29248eaed09a + default: 0xa453cd7abdf5ba4e randwidth: 64 } ] @@ -5932,7 +5942,7 @@ randcount: 64 randtype: data name_top: RndCnstKeymgrLfsrSeed - default: 0x61480d9e25ee5c4f + default: 0xbaebbe70437da6bf randwidth: 64 } { @@ -5942,7 +5952,7 @@ randcount: 64 randtype: perm name_top: RndCnstKeymgrLfsrPerm - default: 0xb3e8efd642c5bb87b4dc3557cfc33198196ac1b513e8fc9dffd8a0691d9f64d847710ed2e6d9d608824438aa29180ad8 + default: 0x590d1bfd3f0f5cb53eafadce1312b5925148c83bbdd9c18cef34828c1567a2679d62f029b62aa06b8449b307d93611f9 randwidth: 384 } { @@ -5952,7 +5962,7 @@ randcount: 32 randtype: perm name_top: RndCnstKeymgrRandPerm - default: 0xe48303cefe06dbf199d1622bac6496489f42ad5d + default: 0x2eb63e41caaac2499bb168287b6199fcafe7a448 randwidth: 160 } { @@ -5962,7 +5972,7 @@ randcount: 256 randtype: data name_top: RndCnstKeymgrRevisionSeed - default: 0xb46fc99ae645f3dd8f3ead31df20485cec3b1975d7e78d34474b8a3e1ebd40f2 + default: 0xd6349a2266c33522317db4910816e9f35a99f403273cdff3ad3389c1708a2a7a randwidth: 256 } { @@ -5972,7 +5982,7 @@ randcount: 256 randtype: data name_top: RndCnstKeymgrCreatorIdentitySeed - default: 0x81f213faf8a2d8e27d0e00d2bff0ac380a5bde7e8ab3461a9b86823818d0ffd7 + default: 0x22b6f355a2cb8f24f7e8bb0a0439b0cd362939bb2e0d30a49d0522e9a5b96197 randwidth: 256 } { @@ -5982,7 +5992,7 @@ randcount: 256 randtype: data name_top: RndCnstKeymgrOwnerIntIdentitySeed - default: 0x66c33522317db4910816e9f35a99f403273cdff3ad3389c1708a2a7a6da271bf + default: 0xaeac01e3203beb21b48e13b127fa42a14ceb82b6610a5457bbf1caf507098f70 randwidth: 256 } { @@ -5992,7 +6002,7 @@ randcount: 256 randtype: data name_top: RndCnstKeymgrOwnerIdentitySeed - default: 0xa2cb8f24f7e8bb0a0439b0cd362939bb2e0d30a49d0522e9a5b96197d6349a22 + default: 0xdb8ec31e0c00998fe5d2429b122499f398d73409c6ce2e8c4cc7ab13c648d6f3 randwidth: 256 } { @@ -6002,7 +6012,7 @@ randcount: 256 randtype: data name_top: RndCnstKeymgrSoftOutputSeed - default: 0x203beb21b48e13b127fa42a14ceb82b6610a5457bbf1caf507098f7022b6f355 + default: 0x8ff6992325552fd110de6f185a80f3ae276db2416fc002d04b77c626e56477e3 randwidth: 256 } { @@ -6012,7 +6022,7 @@ randcount: 256 randtype: data name_top: RndCnstKeymgrHardOutputSeed - default: 0xc00998fe5d2429b122499f398d73409c6ce2e8c4cc7ab13c648d6f3aeac01e3 + default: 0x716eb94c28f496819267fc8761be9c1ab36495fd7c0cb3abff6a4fc7f10263b0 randwidth: 256 } { @@ -6022,7 +6032,7 @@ randcount: 256 randtype: data name_top: RndCnstKeymgrAesSeed - default: 0x25552fd110de6f185a80f3ae276db2416fc002d04b77c626e56477e3db8ec31e + default: 0xae6862f2f5d3781cdc459fe1c6ac6343a98f8f32e989297c02610693700d68b4 randwidth: 256 } { @@ -6032,7 +6042,7 @@ randcount: 256 randtype: data name_top: RndCnstKeymgrKmacSeed - default: 0x28f496819267fc8761be9c1ab36495fd7c0cb3abff6a4fc7f10263b08ff69923 + default: 0x72492f963eac99515e95f75b2f747ab4fd7b64834768d0b0cd8a5828bbf2cd4b randwidth: 256 } { @@ -6042,7 +6052,7 @@ randcount: 256 randtype: data name_top: RndCnstKeymgrOtbnSeed - default: 0xf5d3781cdc459fe1c6ac6343a98f8f32e989297c02610693700d68b4716eb94c + default: 0x85eeb801011d8ad4c0195d90ae1582ad51e12eb525c2e74de16a934681a42f3c randwidth: 256 } { @@ -6052,7 +6062,7 @@ randcount: 256 randtype: data name_top: RndCnstKeymgrCdi - default: 0x3eac99515e95f75b2f747ab4fd7b64834768d0b0cd8a5828bbf2cd4bae6862f2 + default: 0x8fc01cbc67c9ea62add8ef450563c45144edf3c3312b7eb88e6b5c614553e6a2 randwidth: 256 } { @@ -6062,7 +6072,7 @@ randcount: 256 randtype: data name_top: RndCnstKeymgrNoneSeed - default: 0x11d8ad4c0195d90ae1582ad51e12eb525c2e74de16a934681a42f3c72492f96 + default: 0x11b0d83a2ce3940f256b3db0eb494ee8937d08c08c974099f25b81790baf3122 randwidth: 256 } ] @@ -6272,7 +6282,7 @@ randcount: 384 randtype: data name_top: RndCnstCsrngCsKeymgrDivNonProduction - default: 0x8c974099f25b81790baf31228fc01cbc67c9ea62add8ef450563c45144edf3c3312b7eb88e6b5c614553e6a285eeb801 + default: 0x2141384fafbf21ab369d0abf6e68b959301e3403f5347613c1c980f2b67a249592b3504aeea248439f4703d603124e32 randwidth: 384 } { @@ -6282,7 +6292,7 @@ randcount: 384 randtype: data name_top: RndCnstCsrngCsKeymgrDivProduction - default: 0xf5347613c1c980f2b67a249592b3504aeea248439f4703d603124e3211b0d83a2ce3940f256b3db0eb494ee8937d08c0 + default: 0x52add7d74665fcd3e7ff977dd899341f621a0fa74e5c2ce9ef80bcce0d147ee3ffa4cb6f1be8eece2ea06860734991cf randwidth: 384 } { @@ -6748,7 +6758,7 @@ randcount: 128 randtype: data name_top: RndCnstSramCtrlMainSramKey - default: 0xafbf21ab369d0abf6e68b959301e3403 + default: 0x3f1eb7982ac2c0c2054167d74e4d1edd randwidth: 128 } { @@ -6758,7 +6768,7 @@ randcount: 128 randtype: data name_top: RndCnstSramCtrlMainSramNonce - default: 0x1be8eece2ea06860734991cf2141384f + default: 0x21ad35efe85d23c884c5845d25cf9ae4 randwidth: 128 } { @@ -6768,7 +6778,7 @@ randcount: 32 randtype: data name_top: RndCnstSramCtrlMainLfsrSeed - default: 0xffa4cb6f + default: 0x741d5e1b randwidth: 32 } { @@ -6778,7 +6788,7 @@ randcount: 32 randtype: perm name_top: RndCnstSramCtrlMainLfsrPerm - default: 0xabc416cf965e23afe646bba9021ca0f291b627a3 + default: 0x6e0131bb7c1648b616c8f6bef542f2a7627aa4c1 randwidth: 160 } { @@ -6949,7 +6959,7 @@ randcount: 64 randtype: data name_top: RndCnstRomCtrlScrNonce - default: 0x5360cdf714f75bae + default: 0x979e60d582e0392 randwidth: 64 } { @@ -6959,7 +6969,7 @@ randcount: 128 randtype: data name_top: RndCnstRomCtrlScrKey - default: 0x96990eb046b67b2cbb2a1859c5c6a54a + default: 0x222273a89b8e0ee991f6b23fc6261d9 randwidth: 128 } { @@ -7146,7 +7156,7 @@ randcount: 32 randtype: data name_top: RndCnstRvCoreIbexLfsrSeed - default: 0x26e4d620 + default: 0x46caafef randwidth: 32 } { @@ -7156,7 +7166,7 @@ randcount: 32 randtype: perm name_top: RndCnstRvCoreIbexLfsrPerm - default: 0xbf5cdb4b6620ab41b0b0e29008cf4bf070979ff9 + default: 0xe02a2ca19a88cc493b7682da9287e7c2bdd9ddf4 randwidth: 160 } { @@ -7166,7 +7176,7 @@ randcount: 128 randtype: data name_top: RndCnstRvCoreIbexIbexKeyDefault - default: 0xcf829f05b62e1ff4cf4a35794396adfc + default: 0xfa23da15e7d42e08e9ac008c70e0b630 randwidth: 128 } { @@ -7176,7 +7186,7 @@ randcount: 64 randtype: data name_top: RndCnstRvCoreIbexIbexNonceDefault - default: 0x67843d1fb59ad3d2 + default: 0xbf098f0f567f6710 randwidth: 64 } {
diff --git a/hw/top_earlgrey/ip/flash_ctrl/data/autogen/flash_ctrl.hjson b/hw/top_earlgrey/ip/flash_ctrl/data/autogen/flash_ctrl.hjson index a218068..2419b8f 100644 --- a/hw/top_earlgrey/ip/flash_ctrl/data/autogen/flash_ctrl.hjson +++ b/hw/top_earlgrey/ip/flash_ctrl/data/autogen/flash_ctrl.hjson
@@ -357,6 +357,12 @@ randcount: "128", randtype: "data", // randomize randcount databits }, + { name: "RndCnstAllSeeds", + desc: "Compile-time random bits for default seeds", + type: "flash_ctrl_pkg::all_seeds_t" + randcount: "512", + randtype: "data", // randomize randcount databits + }, { name: "RndCnstLfsrSeed", desc: "Compile-time random bits for initial LFSR seed", type: "flash_ctrl_pkg::lfsr_seed_t"
diff --git a/hw/top_earlgrey/ip/flash_ctrl/rtl/autogen/flash_ctrl.sv b/hw/top_earlgrey/ip/flash_ctrl/rtl/autogen/flash_ctrl.sv index ddb63af..9777159 100644 --- a/hw/top_earlgrey/ip/flash_ctrl/rtl/autogen/flash_ctrl.sv +++ b/hw/top_earlgrey/ip/flash_ctrl/rtl/autogen/flash_ctrl.sv
@@ -20,6 +20,7 @@ parameter logic [NumAlerts-1:0] AlertAsyncOn = {NumAlerts{1'b1}}, parameter flash_key_t RndCnstAddrKey = RndCnstAddrKeyDefault, parameter flash_key_t RndCnstDataKey = RndCnstDataKeyDefault, + parameter all_seeds_t RndCnstAllSeeds = RndCnstAllSeedsDefault, parameter lfsr_seed_t RndCnstLfsrSeed = RndCnstLfsrSeedDefault, parameter lfsr_perm_t RndCnstLfsrPerm = RndCnstLfsrPermDefault, parameter int ProgFifoDepth = MaxFifoDepth, @@ -429,7 +430,8 @@ // hardware interface flash_ctrl_lcmgr #( .RndCnstAddrKey(RndCnstAddrKey), - .RndCnstDataKey(RndCnstDataKey) + .RndCnstDataKey(RndCnstDataKey), + .RndCnstAllSeeds(RndCnstAllSeeds) ) u_flash_hw_if ( .clk_i, .rst_ni,
diff --git a/hw/top_earlgrey/ip/flash_ctrl/rtl/autogen/flash_ctrl_pkg.sv b/hw/top_earlgrey/ip/flash_ctrl/rtl/autogen/flash_ctrl_pkg.sv index b3cbe91..14f9829 100644 --- a/hw/top_earlgrey/ip/flash_ctrl/rtl/autogen/flash_ctrl_pkg.sv +++ b/hw/top_earlgrey/ip/flash_ctrl/rtl/autogen/flash_ctrl_pkg.sv
@@ -206,6 +206,9 @@ parameter bit [PageW-1:0] OwnerInfoPage = 2; parameter bit [PageW-1:0] IsolatedInfoPage = 3; + parameter int TotalSeedWidth = SeedWidth * NumSeeds; + typedef logic [TotalSeedWidth-1:0] all_seeds_t; + // which page of which info type of which bank for seed selection parameter page_addr_t SeedInfoPageSel [NumSeeds] = '{ '{ @@ -316,6 +319,11 @@ 128'h5d707f8a2d01d400928fa691c6a6e0a4; parameter flash_key_t RndCnstDataKeyDefault = 128'h39953618f2ca6f674af39f64975ea1f5; + parameter all_seeds_t RndCnstAllSeedsDefault = { + 256'h3528874c0d9e481ead4d240eb6238a2c6218896f5315edb5ccefe029a6d04091, + 256'h9cde77e25a313a76984ab0ebf990983432b03b48186dcd556565fe721b447477 + }; + //////////////////////////// // Flash operation related enums
diff --git a/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv b/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv index 1c6b438..e7c2579 100644 --- a/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv +++ b/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv
@@ -2056,6 +2056,7 @@ .AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[35:33]), .RndCnstAddrKey(RndCnstFlashCtrlAddrKey), .RndCnstDataKey(RndCnstFlashCtrlDataKey), + .RndCnstAllSeeds(RndCnstFlashCtrlAllSeeds), .RndCnstLfsrSeed(RndCnstFlashCtrlLfsrSeed), .RndCnstLfsrPerm(RndCnstFlashCtrlLfsrPerm), .SecScrambleEn(SecFlashCtrlScrambleEn),
diff --git a/hw/top_earlgrey/rtl/autogen/top_earlgrey_rnd_cnst_pkg.sv b/hw/top_earlgrey/rtl/autogen/top_earlgrey_rnd_cnst_pkg.sv index 4d12583..3ee62c9 100644 --- a/hw/top_earlgrey/rtl/autogen/top_earlgrey_rnd_cnst_pkg.sv +++ b/hw/top_earlgrey/rtl/autogen/top_earlgrey_rnd_cnst_pkg.sv
@@ -105,14 +105,20 @@ 128'hED204633_871CB178_192AADBB_7C918ACB }; + // Compile-time random bits for default seeds + parameter flash_ctrl_pkg::all_seeds_t RndCnstFlashCtrlAllSeeds = { + 256'hAA3CF1C7_FEC9F29F_DE876AA5_8DAB46F4_F7B0CE3C_FFDA0E97_82216C07_46509E39, + 256'hF6D4E529_C9F758F8_73D25A17_251FBE68_478B95E5_38DE6EB3_4DFA33F0_33A4AC96 + }; + // Compile-time random bits for initial LFSR seed parameter flash_ctrl_pkg::lfsr_seed_t RndCnstFlashCtrlLfsrSeed = { - 32'h33A4AC96 + 32'h72BB2473 }; // Compile-time random permutation for LFSR output parameter flash_ctrl_pkg::lfsr_perm_t RndCnstFlashCtrlLfsrPerm = { - 160'h3480D189_6C7FF9ED_5941BD12_5C6EB187_72E220F3 + 160'h660BE981_B6922265_BC8718BF_D76E950F_219D26EA }; //////////////////////////////////////////// @@ -120,33 +126,33 @@ //////////////////////////////////////////// // Default seed of the PRNG used for register clearing. parameter aes_pkg::clearing_lfsr_seed_t RndCnstAesClearingLfsrSeed = { - 64'h8E18EDEB_46B20763 + 64'h83D6D00B_39FF9E2A }; // Permutation applied to the LFSR of the PRNG used for clearing. parameter aes_pkg::clearing_lfsr_perm_t RndCnstAesClearingLfsrPerm = { - 128'h05CF6536_A2EE3E49_D22A36FA_59EA2C46, - 256'h20D062F6_9F5F3209_DC203EE4_C87FF199_B2AF013B_1ED4E039_5175C5DD_94E29D06 + 128'hB0D5E716_06D63DA4_35ED8B83_2DC97CE6, + 256'h9BC87E4C_22A9EE0A_DE8FA307_4C924495_4200EC5D_336846E9_9FF34EBF_44507B66 }; // Permutation applied to the clearing PRNG output for clearing the second share of registers. parameter aes_pkg::clearing_lfsr_perm_t RndCnstAesClearingSharePerm = { - 128'h57EC2E41_6728B1FD_9D00A60C_08D538DE, - 256'h2C75CC32_5A65E95B_98BAC182_F10EEB4E_52F2A93D_22D3F24C_51D1A7F1_A387B5E7 + 128'hE7B4F223_7D969C25_3D7253D1_1DE43E54, + 256'h524AA980_3F3695E1_AECE19CD_A8BA91DD_1F1B5BC3_6EE9BC2D_2A300608_ED13138C }; // Default seed of the PRNG used for masking. parameter aes_pkg::masking_lfsr_seed_t RndCnstAesMaskingLfsrSeed = { - 160'h5147F1EF_84F4B3A9_D281437D_77F97002_2C91C1A2 + 160'hC89A3209_A1642741_192E3979_E50F4B73_02BF908C }; // Permutation applied to the concatenated LFSRs of the PRNG used for masking. parameter aes_pkg::masking_lfsr_perm_t RndCnstAesMaskingLfsrPerm = { - 256'h8A88993A_82401112_1A5E9A49_36802793_375F2E64_0110219E_6607524D_79684743, - 256'h5A3B257F_67298E72_469C2395_06756B61_4869422C_91506A7B_76733D60_32714113, - 256'h2439704A_0B908B28_977C4B14_55841C89_56965309_5D3E0E2F_1D150D1F_8F511792, - 256'h048D4E3F_9F1B8374_2B629877_0C26226E_450F6D35_6F4F581E_7E784C6C_57187A5B, - 256'h86943300_030A445C_2A65597D_81871902_3C8C1630_639B2D31_209D3405_08548538 + 256'h43834947_91069F29_850F2E96_2B3A3411_209D609A_9E05861A_8F8B529B_125A267A, + 256'h807B2C3F_624C2388_82927821_70389464_69074A42_4B557246_3589255F_7E224F32, + 256'h3010610C_369C7C48_53276F40_583B5008_73132439_846E0B3C_1854288E_6D761497, + 256'h95561C1B_742D6B75_09793E66_0E2F5D1D_67150D1F_6C685E02_77511716_04994E7F, + 256'h71370145_57419319_4D908A1E_6A3D315B_9863338D_00030A8C_445C2A65_597D8187 }; //////////////////////////////////////////// @@ -154,57 +160,57 @@ //////////////////////////////////////////// // Compile-time random data for LFSR default seed parameter kmac_pkg::lfsr_seed_t RndCnstKmacLfsrSeed = { - 32'h30D16A94, - 256'h098E6812_52F1C774_1DD6E621_90D79F12_30D02F64_3AC42FA7_0CB94215_5264F8C1, - 256'h21B7387A_0A07DB44_FE8C330C_A072829F_9970F910_74501568_220E25BA_7743095F, - 256'h2C1194FB_74487A86_B6FEE031_1AF608B7_123F603C_251A36AB_2E658548_C5420BE5 + 32'h4857FFE3, + 256'h8745AE40_0E4AEE83_85F157B8_8AB8ED1F_CE7408F7_BE58B7D2_1102BE30_1EB1A8D0, + 256'h4814AC33_B45DE425_069E5959_DF06D422_54A25AFA_E52A5963_310FB843_B64EF41E, + 256'h69029587_C377A10C_9AB33F80_F21FAD72_05BE139E_AA9FBE94_51206955_30D16A94 }; // Compile-time random permutation for LFSR output parameter kmac_pkg::lfsr_perm_t RndCnstKmacLfsrPerm = { - 64'h65820176_3C640FA7, - 256'h703F4EAD_00959A71_96BABDA7_14F0E5B9_47B3F17A_491F6755_52019F63_1CD435D1, - 256'h8EC12034_4AB92EF3_3C052BE5_A689E5B1_2943BDBB_9CA066D6_D757ED3A_1C50C78E, - 256'h6A158681_4D32D232_97AC79FA_7DA1A756_B9D93EE4_91E66935_A115CA0A_38A63A9E, - 256'hC055AE11_14355A6C_A0B9AD9D_9EBB3877_5157D5F0_707DEBE1_CE7A5EED_58E8F085, - 256'hA8877C7C_9BB1BA96_2E7609A2_7C1C1509_C8E2E871_0FD390B2_B20C5A3D_22AB2C68, - 256'hD084AE82_4860E09D_1E73A88E_14446552_5B74CD40_0D741609_D7E81491_D7771CC3, - 256'hA2662384_0044AC34_CAB15FF1_A9070B1D_AFF72EB7_2B593004_696118F3_2CF70205, - 256'h95FADF87_1F06CAB5_4C652638_FE77A42A_0A678214_BC31E934_87E78148_16E786B0, - 256'h403761E4_515C09A1_A6984C43_ADA03907_2A887432_B03F03B2_959BBF30_15D9A91B, - 256'hAD428CD5_1AA2DB15_3E0C64B8_05F47292_3A6256C4_661A86E3_1091B20A_3F02A2B4, - 256'hB567319E_D19DA1A8_0A157581_8503042A_25281603_22E224A9_C36926AD_2A66E157, - 256'h074D0334_8C329E23_A1BF8922_3799E181_CEE3C8A2_80CE538C_1FAE45C8_BDAF0D94, - 256'hC944B09F_18BC2942_602A94C2_F70560BB_B998C4D8_72296249_D655E9E3_8B0524A0, - 256'hC92EA933_C7066653_30CCBC0F_2B34E5BC_8A04F064_13A3949C_48AEA8D2_9B9DBA64, - 256'h4DC2DE9B_966D8534_28A059E1_B6CB5BE6_B8859265_1B7960C0_29240012_453B52EB, - 256'h35FB446E_B621FFAE_2F6A4513_C261B8C5_D658E661_A027B6D8_D36E2241_96A95696, - 256'h8F4F6974_0CB7166B_C26C2B07_FB58727F_23731E9E_45474940_484F1EC1_06203E42, - 256'hA7159524_27F3B12C_76B1F26E_71A75DB0_DE90AB6D_E5C1C93E_299AC919_8F90BBB1, - 256'h2505C436_8C4E3A54_E247051D_71DBB46F_12D4F299_F37BF1C6_E5821803_DB096DC1, - 256'hDCE65DC1_17D09A2E_C13CDF85_CE8C4A86_38102C85_66DC6494_C0E00B32_9789D348, - 256'hE5DD9500_65B14A47_A640BF15_7A900365_E8545F5B_A8556A26_87E68A01_DC3AF226, - 256'h39CF5088_A7B750F7_0AC96157_1671242D_4617C6FD_40541702_7B305464_DDB18491, - 256'h62C6336C_E192246B_732FA50C_71BA5A0B_96F346AB_DC00B68D_95A2E508_6F4C224C, - 256'h0F259640_F9833388_106E6F21_44957918_1EC57741_35B80A82_F64D56E4_492ABBA7, - 256'hC9906078_836F4791_F6839595_4DEEAA09_86D03A4A_D797C886_35C6587D_C84FD030, - 256'hE02BC124_3BC44D2E_E5775253_2225FA92_FB3D1B08_4DAAC5AB_62FD3B8C_0324DA48, - 256'h37E839CE_F5A36778_3229C204_72E11C2A_502256D2_3FC10AFC_345D6790_85BE4F5A, - 256'hB2782362_5783AD17_2FAAE5A3_0F73C6C4_7550B986_6C088369_510971FD_0A71407A, - 256'h95330027_5CB3BCAA_216AABBF_A8425E4F_A69B6234_64025059_3310178D_E02E4E83, - 256'hCAB4102D_919404E2_104BC7D5_620962A6_59820215_9D5BE011_7F9D223D_61360D1C, - 256'h627018A3_5A008B48_61D0E617_8AAF9110_7A482D10_6952312D_96930D9A_816AA944 + 64'h9D0807BD_69BCEB5B, + 256'hB8319ED2_33C15C98_6E6B558B_89073142_F46F0FEA_958FBEEB_F575EB0F_DDE1C054, + 256'h9766C78C_A3094A51_E689AF5F_C6FECD71_89CB6D9B_AEA7F316_2E7B0127_72B8895F, + 256'h3B9C4AA7_A87426FE_7FCE4B63_0F32CD40_80B47849_A3ED7A03_5984FB02_41E6E6A6, + 256'hA976D97A_65543805_391E68C5_6696B587_4C6D1449_625CE208_55CAB846_A439D311, + 256'h4356CA14_3CC2E176_7559CF75_2D6B558A_F071556E_2033EAE3_BA2F7017_1E7821A7, + 256'h06DD38A3_E5F0CF81_2C20E5C5_274E163A_56C459A8_ECD68EB1_D212EA09_0C358245, + 256'h8719F648_8E144463_4A6D820E_F00CD364_20B6527C_0518464E_F08BE557_B4FC002D, + 256'h92CA2696_6C4A6E9F_55EA6C7C_76C4E071_B9E5AA00_11A4E663_1485B408_165CB6B0, + 256'hFD8B05FB_5E8C4311_B9928873_5FBA81DF_B1D6E859_653A83D6_847EB899_916D867C, + 256'h1A710122_69ADA5DC_2618ECC1_310DBB40_E498AA21_D1FA9E39_1DDE72B4_3B6DEC33, + 256'h74D588E2_DA289F45_1211F1C4_57EF6109_7BA60829_440A4EA5_460B0ABE_867B2AB3, + 256'h2865B67A_180C10A9_78A0514C_8BD49290_4DA7457F_A42B9901_724B41D3_420A2323, + 256'hC328A63A_14251E34_759BA7E8_EEA14F22_89C7394E_307E9617_29194836_ABE632C2, + 256'hFFBCA27A_4EA4676B_C4C2D605_59154B01_6D47A692_862297D4_9D80C6D9_6B063D14, + 256'h928324BA_604F1C6A_1E4CC332_F03CB193_9765A213_C1904E3F_524442B9_74AD9296, + 256'hE6E96B8D_C2DED49A_EEB53428_A51BB1B6_DE5BE7D8_C9D86BE7_EA866A80_4A47A404, + 256'h988ED4BA_E00B111C_3588A0AC_BC267144_F038AE42_925639E0_6809EBE6_34DBB210, + 256'h65AA6718_2283DA6F_032EF59A_58968AC1_FDF41CA0_6738C7AC_5151D1DA_1213C86C, + 256'h418C4F90_A9E26549_0A48EC4B_1F751205_AD2B07E0_37A8EC0B_C570724F_8AB2C546, + 256'h65042E1D_4941710D_A3138E95_3891C647_505B001B_C4B53D4C_A3CC0BB1_7EB4C9B4, + 256'hA9E65D8C_6334584C_894C5E00_B7EAA8E1_3492DDD9_98065B14_A47A760B_EE4845EA, + 256'h400D97A1_517D6FD1_55A8A2DF_988A9D01_E2170ECF_8DCE73D4_2229E974_3DC2B718, + 256'h55C59C49_0B5185F1_C4101505_C0A38C15_19376C69_C849162C_6336CE19_2246B732, + 256'h7250C71B_F1A0C4B0_646AD0C5_0B68D95A_2E5086F4_C224C0F2_59640F98_33388106, + 256'hE8121449_579181EC_5774135A_B4A82F64_D56E4492_ACEAC899_06078837_07791F68, + 256'h395954DE_EAEE7A26_1B40E92B_5E5F2218_D71961F7_213F40C3_80AF1890_F04134BB, + 256'h95DD494C_8897EB7C_38F46C21_36A81AB2_4BF4EE30_0C936920_DFA0E73C_228D9DE0, + 256'hC8A71C11_CB8470A9_40895B94_FF042D20_D1759E42_16F93D6A_C9E08D89_5E0EB45C, + 256'hBEAB9688_5DCF1B11_D542F919_B1620DA5_4425C7F4_294801EA_54CC009D_72CF05A8, + 256'h85AAAF0B_A109793E_9A6D88D1_90094164_C8A85E37_80B93A0F_2AD040B6_46501388, + 256'h412F1F55_88258A99_66080856_7570CBE0_117F9D22_3D61360D_13127018_A35A008B }; // Compile-time random permutation for forwarding LFSR state parameter kmac_pkg::lfsr_fwd_perm_t RndCnstKmacLfsrFwdPerm = { - 160'hD91D738A_787AFFA4_24A1E487_58D9AAEE_61E3028C + 160'hA3C7206C_896AA288_7D8771BD_CB96DA5F_433166B8 }; // Compile-time random permutation for LFSR Message output parameter kmac_pkg::msg_perm_t RndCnstKmacMsgPerm = { - 128'h7D283F11_8981787A_4631DCC3_5E5A0854, - 256'h9E0FEB5A_C58D4464_0936BCCB_BD10016C_2F85BA99_8AC3ADD9_CFA7F6ED_CD2F1E4A + 128'h1E9C6A27_37C3EB9E_00204F0D_D94D0C28, + 256'hF175B268_2B610964_BBE73F8D_9546BDB0_51ED29DE_857CBD5A_888E0B74_ED68BC1D }; //////////////////////////////////////////// @@ -212,17 +218,17 @@ //////////////////////////////////////////// // Default seed of the PRNG used for URND. parameter otbn_pkg::urnd_prng_seed_t RndCnstOtbnUrndPrngSeed = { - 256'hB1AC8EA0_520D1E94_2E682025_65535CF3_57B4544C_ECD50B63_D8A07751_7EA4B4EE + 256'h9C2B2E5C_E6567E44_E86FC9FA_5B79F609_0B08F77C_203B16AE_27047899_FA42C837 }; // Compile-time random reset value for IMem/DMem scrambling key. parameter otp_ctrl_pkg::otbn_key_t RndCnstOtbnOtbnKey = { - 128'h4F2F4EB6_6E1C1664_6A7BD56D_29AC43EC + 128'h4B993B2B_D311B6C3_2BBCF17B_B4CB2D5A }; // Compile-time random reset value for IMem/DMem scrambling nonce. parameter otp_ctrl_pkg::otbn_nonce_t RndCnstOtbnOtbnNonce = { - 64'h0BEC2924_8EAED09A + 64'hA453CD7A_BDF5BA4E }; //////////////////////////////////////////// @@ -230,73 +236,73 @@ //////////////////////////////////////////// // Compile-time random bits for initial LFSR seed parameter keymgr_pkg::lfsr_seed_t RndCnstKeymgrLfsrSeed = { - 64'h61480D9E_25EE5C4F + 64'hBAEBBE70_437DA6BF }; // Compile-time random permutation for LFSR output parameter keymgr_pkg::lfsr_perm_t RndCnstKeymgrLfsrPerm = { - 128'hB3E8EFD6_42C5BB87_B4DC3557_CFC33198, - 256'h196AC1B5_13E8FC9D_FFD8A069_1D9F64D8_47710ED2_E6D9D608_824438AA_29180AD8 + 128'h590D1BFD_3F0F5CB5_3EAFADCE_1312B592, + 256'h5148C83B_BDD9C18C_EF34828C_1567A267_9D62F029_B62AA06B_8449B307_D93611F9 }; // Compile-time random permutation for entropy used in share overriding parameter keymgr_pkg::rand_perm_t RndCnstKeymgrRandPerm = { - 160'hE48303CE_FE06DBF1_99D1622B_AC649648_9F42AD5D + 160'h2EB63E41_CAAAC249_9BB16828_7B6199FC_AFE7A448 }; // Compile-time random bits for revision seed parameter keymgr_pkg::seed_t RndCnstKeymgrRevisionSeed = { - 256'hB46FC99A_E645F3DD_8F3EAD31_DF20485C_EC3B1975_D7E78D34_474B8A3E_1EBD40F2 + 256'hD6349A22_66C33522_317DB491_0816E9F3_5A99F403_273CDFF3_AD3389C1_708A2A7A }; // Compile-time random bits for creator identity seed parameter keymgr_pkg::seed_t RndCnstKeymgrCreatorIdentitySeed = { - 256'h81F213FA_F8A2D8E2_7D0E00D2_BFF0AC38_0A5BDE7E_8AB3461A_9B868238_18D0FFD7 + 256'h22B6F355_A2CB8F24_F7E8BB0A_0439B0CD_362939BB_2E0D30A4_9D0522E9_A5B96197 }; // Compile-time random bits for owner intermediate identity seed parameter keymgr_pkg::seed_t RndCnstKeymgrOwnerIntIdentitySeed = { - 256'h66C33522_317DB491_0816E9F3_5A99F403_273CDFF3_AD3389C1_708A2A7A_6DA271BF + 256'hAEAC01E3_203BEB21_B48E13B1_27FA42A1_4CEB82B6_610A5457_BBF1CAF5_07098F70 }; // Compile-time random bits for owner identity seed parameter keymgr_pkg::seed_t RndCnstKeymgrOwnerIdentitySeed = { - 256'hA2CB8F24_F7E8BB0A_0439B0CD_362939BB_2E0D30A4_9D0522E9_A5B96197_D6349A22 + 256'hDB8EC31E_0C00998F_E5D2429B_122499F3_98D73409_C6CE2E8C_4CC7AB13_C648D6F3 }; // Compile-time random bits for software generation seed parameter keymgr_pkg::seed_t RndCnstKeymgrSoftOutputSeed = { - 256'h203BEB21_B48E13B1_27FA42A1_4CEB82B6_610A5457_BBF1CAF5_07098F70_22B6F355 + 256'h8FF69923_25552FD1_10DE6F18_5A80F3AE_276DB241_6FC002D0_4B77C626_E56477E3 }; // Compile-time random bits for hardware generation seed parameter keymgr_pkg::seed_t RndCnstKeymgrHardOutputSeed = { - 256'h0C00998F_E5D2429B_122499F3_98D73409_C6CE2E8C_4CC7AB13_C648D6F3_AEAC01E3 + 256'h716EB94C_28F49681_9267FC87_61BE9C1A_B36495FD_7C0CB3AB_FF6A4FC7_F10263B0 }; // Compile-time random bits for generation seed when aes destination selected parameter keymgr_pkg::seed_t RndCnstKeymgrAesSeed = { - 256'h25552FD1_10DE6F18_5A80F3AE_276DB241_6FC002D0_4B77C626_E56477E3_DB8EC31E + 256'hAE6862F2_F5D3781C_DC459FE1_C6AC6343_A98F8F32_E989297C_02610693_700D68B4 }; // Compile-time random bits for generation seed when kmac destination selected parameter keymgr_pkg::seed_t RndCnstKeymgrKmacSeed = { - 256'h28F49681_9267FC87_61BE9C1A_B36495FD_7C0CB3AB_FF6A4FC7_F10263B0_8FF69923 + 256'h72492F96_3EAC9951_5E95F75B_2F747AB4_FD7B6483_4768D0B0_CD8A5828_BBF2CD4B }; // Compile-time random bits for generation seed when otbn destination selected parameter keymgr_pkg::seed_t RndCnstKeymgrOtbnSeed = { - 256'hF5D3781C_DC459FE1_C6AC6343_A98F8F32_E989297C_02610693_700D68B4_716EB94C + 256'h85EEB801_011D8AD4_C0195D90_AE1582AD_51E12EB5_25C2E74D_E16A9346_81A42F3C }; // Compile-time random bits for generation seed when no CDI is selected parameter keymgr_pkg::seed_t RndCnstKeymgrCdi = { - 256'h3EAC9951_5E95F75B_2F747AB4_FD7B6483_4768D0B0_CD8A5828_BBF2CD4B_AE6862F2 + 256'h8FC01CBC_67C9EA62_ADD8EF45_0563C451_44EDF3C3_312B7EB8_8E6B5C61_4553E6A2 }; // Compile-time random bits for generation seed when no destination selected parameter keymgr_pkg::seed_t RndCnstKeymgrNoneSeed = { - 256'h011D8AD4_C0195D90_AE1582AD_51E12EB5_25C2E74D_E16A9346_81A42F3C_72492F96 + 256'h11B0D83A_2CE3940F_256B3DB0_EB494EE8_937D08C0_8C974099_F25B8179_0BAF3122 }; //////////////////////////////////////////// @@ -304,14 +310,14 @@ //////////////////////////////////////////// // Compile-time random bits for csrng state group diversification value parameter csrng_pkg::cs_keymgr_div_t RndCnstCsrngCsKeymgrDivNonProduction = { - 128'h8C974099_F25B8179_0BAF3122_8FC01CBC, - 256'h67C9EA62_ADD8EF45_0563C451_44EDF3C3_312B7EB8_8E6B5C61_4553E6A2_85EEB801 + 128'h2141384F_AFBF21AB_369D0ABF_6E68B959, + 256'h301E3403_F5347613_C1C980F2_B67A2495_92B3504A_EEA24843_9F4703D6_03124E32 }; // Compile-time random bits for csrng state group diversification value parameter csrng_pkg::cs_keymgr_div_t RndCnstCsrngCsKeymgrDivProduction = { - 128'hF5347613_C1C980F2_B67A2495_92B3504A, - 256'hEEA24843_9F4703D6_03124E32_11B0D83A_2CE3940F_256B3DB0_EB494EE8_937D08C0 + 128'h52ADD7D7_4665FCD3_E7FF977D_D899341F, + 256'h621A0FA7_4E5C2CE9_EF80BCCE_0D147EE3_FFA4CB6F_1BE8EECE_2EA06860_734991CF }; //////////////////////////////////////////// @@ -319,22 +325,22 @@ //////////////////////////////////////////// // Compile-time random reset value for SRAM scrambling key. parameter otp_ctrl_pkg::sram_key_t RndCnstSramCtrlMainSramKey = { - 128'hAFBF21AB_369D0ABF_6E68B959_301E3403 + 128'h3F1EB798_2AC2C0C2_054167D7_4E4D1EDD }; // Compile-time random reset value for SRAM scrambling nonce. parameter otp_ctrl_pkg::sram_nonce_t RndCnstSramCtrlMainSramNonce = { - 128'h1BE8EECE_2EA06860_734991CF_2141384F + 128'h21AD35EF_E85D23C8_84C5845D_25CF9AE4 }; // Compile-time random bits for initial LFSR seed parameter sram_ctrl_pkg::lfsr_seed_t RndCnstSramCtrlMainLfsrSeed = { - 32'hFFA4CB6F + 32'h741D5E1B }; // Compile-time random permutation for LFSR output parameter sram_ctrl_pkg::lfsr_perm_t RndCnstSramCtrlMainLfsrPerm = { - 160'hABC416CF_965E23AF_E646BBA9_021CA0F2_91B627A3 + 160'h6E0131BB_7C1648B6_16C8F6BE_F542F2A7_627AA4C1 }; //////////////////////////////////////////// @@ -342,12 +348,12 @@ //////////////////////////////////////////// // Fixed nonce used for address / data scrambling parameter bit [63:0] RndCnstRomCtrlScrNonce = { - 64'h5360CDF7_14F75BAE + 64'h0979E60D_582E0392 }; // Randomised constant used as a scrambling key for ROM data parameter bit [127:0] RndCnstRomCtrlScrKey = { - 128'h96990EB0_46B67B2C_BB2A1859_C5C6A54A + 128'h0222273A_89B8E0EE_991F6B23_FC6261D9 }; //////////////////////////////////////////// @@ -355,22 +361,22 @@ //////////////////////////////////////////// // Default seed of the PRNG used for random instructions. parameter ibex_pkg::lfsr_seed_t RndCnstRvCoreIbexLfsrSeed = { - 32'h26E4D620 + 32'h46CAAFEF }; // Permutation applied to the LFSR of the PRNG used for random instructions. parameter ibex_pkg::lfsr_perm_t RndCnstRvCoreIbexLfsrPerm = { - 160'hBF5CDB4B_6620AB41_B0B0E290_08CF4BF0_70979FF9 + 160'hE02A2CA1_9A88CC49_3B7682DA_9287E7C2_BDD9DDF4 }; // Default icache scrambling key parameter logic [ibex_pkg::SCRAMBLE_KEY_W-1:0] RndCnstRvCoreIbexIbexKeyDefault = { - 128'hCF829F05_B62E1FF4_CF4A3579_4396ADFC + 128'hFA23DA15_E7D42E08_E9AC008C_70E0B630 }; // Default icache scrambling nonce parameter logic [ibex_pkg::SCRAMBLE_NONCE_W-1:0] RndCnstRvCoreIbexIbexNonceDefault = { - 64'h67843D1F_B59AD3D2 + 64'hBF098F0F_567F6710 }; endpackage : top_earlgrey_rnd_cnst_pkg