// 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_USE_SW_RSA_VERIFY",
                    // 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_KEY_IS_VALID",
                    // 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"
        }
    ]
}
