| // Copyright 2023 Google LLC. |
| // Copyright lowRISC contributors. |
| // Licensed under the Apache License, Version 2.0, see LICENSE for details. |
| // SPDX-License-Identifier: Apache-2.0 |
| // |
| // Use the gen-otp-img.py script to convert this configuration into |
| // a hex file for preloading the OTP in FPGA synthesis or simulation. |
| // |
| |
| { |
| // Seed to be used for generation of partition randomized values. |
| // Can be overridden on the command line with the --seed switch. |
| seed: 01931961561863975174 |
| |
| // The partition and item names must correspond with the OTP memory map. |
| partitions: [ |
| { |
| name: "CREATOR_SW_CFG", |
| items: [ |
| { |
| name: "CREATOR_SW_CFG_DIGEST", |
| value: "0x0", |
| }, |
| { |
| name: "CREATOR_SW_CFG_SIGVERIFY_RSA_MOD_EXP_IBEX_EN", |
| // Use software mod_exp implementation for signature |
| // verification. See the definition of `hardened_bool_t` in |
| // sw/device/lib/base/hardened.h. |
| value: "0x739", |
| }, |
| { |
| name: "CREATOR_SW_CFG_SIGVERIFY_RSA_KEY_EN", |
| // Mark the first two keys as valid and remaining as |
| // invalid since we have currently only two keys. See the |
| // definition of `hardened_byte_bool_t` in |
| // sw/device/lib/base/hardened.h. |
| value: "0x4b4b4b4b4b4ba5a5", |
| } |
| ], |
| } |
| { |
| name: "OWNER_SW_CFG", |
| items: [ |
| { |
| name: "OWNER_SW_CFG_DIGEST", |
| value: "0x0", |
| } |
| ], |
| } |
| { |
| name: "HW_CFG", |
| // If set to true, this computes the HW digest value |
| // and locks the partition. |
| lock: "True", |
| items: [ |
| { |
| name: "DEVICE_ID", |
| value: "0xBF5EA92044DAC540CFD1A00105568DFA97D9C35EA0407D71320B5E0434DB637F", |
| }, |
| { |
| name: "EN_CSRNG_SW_APP_READ", |
| value: true, |
| }, |
| { |
| name: "EN_ENTROPY_SRC_FW_READ", |
| value: true, |
| }, |
| ], |
| } |
| { |
| name: "SECRET0", |
| lock: "True", |
| items: [ |
| { |
| name: "TEST_UNLOCK_TOKEN", |
| value: "0x79DEF38F41A9B895F6BDF341BEADA9B6", |
| } |
| { |
| name: "TEST_EXIT_TOKEN", |
| value: "0x000102030405060708090A0B0C0D0E0F", |
| } |
| ], |
| } |
| { |
| name: "SECRET1", |
| lock: "True", |
| items: [ |
| { |
| name: "FLASH_ADDR_KEY_SEED", |
| value: "<random>", |
| } |
| { |
| name: "FLASH_DATA_KEY_SEED", |
| value: "<random>", |
| } |
| { |
| name: "SRAM_DATA_KEY_SEED", |
| value: "<random>", |
| } |
| ], |
| } |
| { |
| name: "SECRET2", |
| lock: "False", |
| items: [ |
| { |
| name: "RMA_TOKEN", |
| value: "0x4D89B62D287CB957C2500042306DFD57", |
| } |
| { |
| name: "CREATOR_ROOT_KEY_SHARE0", |
| value: "<random>", |
| } |
| { |
| name: "CREATOR_ROOT_KEY_SHARE1", |
| value: "<random>", |
| } |
| ], |
| } |
| { |
| name: "LIFE_CYCLE", |
| // Can be one of the following strings: |
| // RAW, TEST_UNLOCKED0-3, TEST_LOCKED0-2, DEV, PROD, PROD_END, RMA, SCRAP |
| state: "TEST_UNLOCKED2", |
| // Can range from 0 to 16. |
| // Note that a value of 0 is only permissible in RAW state. |
| count: "7" |
| } |
| ] |
| } |