blob: 728499b1d0c50382ed5c9fb51c04bccbcec86449 [file] [log] [blame]
Michael Schaffner26588202020-12-29 16:31:58 -08001// Copyright lowRISC contributors.
2// Licensed under the Apache License, Version 2.0, see LICENSE for details.
3// SPDX-License-Identifier: Apache-2.0
4//
5// Use the gen-lc-state-enc.py script to regenerate the SV package:
6//
Michael Schaffnerf7a04082021-01-25 18:23:50 -08007// $ ./util/design/gen-lc-state-enc.py
Michael Schaffner26588202020-12-29 16:31:58 -08008
9{
10 // Seed to be used for generation of partition item default values.
11 // Can be overridden on the command line with the --seed switch.
12 seed: 10167336684108184581
13
14 // Secded used in prim_generic_otp.sv
Michael Schaffnerf7a04082021-01-25 18:23:50 -080015 // SECDED matrix used for ECC in OTP
Michael Schaffner26588202020-12-29 16:31:58 -080016 secded : {
17 data_width : 16,
18 ecc_width : 6,
19 ecc_matrix : [
Michael Schaffnerf7a04082021-01-25 18:23:50 -080020 // This is a standard extended Hamming code for 16bit
21 [0, 1, 3, 4, 6, 8, 10, 11, 13, 15], // ECC bit 0
22 [0, 2, 3, 5, 6, 9, 10, 12, 13], // ECC bit 1
23 [1, 2, 3, 7, 8, 9, 10, 14, 15], // ECC bit 2
24 [4, 5, 6, 7, 8, 9, 10], // ECC bit 3
25 [11, 12, 13, 14, 15], // ECC bit 4
26 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], // Parity bit
Michael Schaffner26588202020-12-29 16:31:58 -080027 ]
28 }
29
Michael Schaffner26588202020-12-29 16:31:58 -080030 // Additional Hamming weight and distance requirements.
31 // Note that the life cycle words are 16 + 6 = 22 bits wide total.
32 min_hw : 5,
33 max_hw : 17,
34 min_hd : 5
Michael Schaffner5a3c15e2021-01-08 20:10:34 -080035
36 // LC token size in bit
37 token_size : 128
38 tokens : [
39 {
40 name: "AllZeroToken"
41 value: "0x0"
42 }
43 {
44 name: "RndCnstRawUnlockToken"
45 value: "<random>"
46 }
47 ]
Michael Schaffner60dd7282021-01-28 14:56:37 -080048
49 // Life cycle state definition.
50 // From least to most significant OTP word in ascending order.
51 lc_state : {
52 RAW : [ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'],
53 TEST_UNLOCKED0 : ['B0', 'A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'A9', 'A10', 'A11'],
54 TEST_LOCKED0 : ['B0', 'B1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'A9', 'A10', 'A11'],
55 TEST_UNLOCKED1 : ['B0', 'B1', 'B2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'A9', 'A10', 'A11'],
56 TEST_LOCKED1 : ['B0', 'B1', 'B2', 'B3', 'A4', 'A5', 'A6', 'A7', 'A8', 'A9', 'A10', 'A11'],
57 TEST_UNLOCKED2 : ['B0', 'B1', 'B2', 'B3', 'B4', 'A5', 'A6', 'A7', 'A8', 'A9', 'A10', 'A11'],
58 TEST_LOCKED2 : ['B0', 'B1', 'B2', 'B3', 'B4', 'B5', 'A6', 'A7', 'A8', 'A9', 'A10', 'A11'],
59 TEST_UNLOCKED3 : ['B0', 'B1', 'B2', 'B3', 'B4', 'B5', 'B6', 'A7', 'A8', 'A9', 'A10', 'A11'],
60 DEV : ['B0', 'B1', 'B2', 'B3', 'B4', 'B5', 'B6', 'B7', 'A8', 'A9', 'A10', 'A11'],
61 PROD : ['B0', 'B1', 'B2', 'B3', 'B4', 'B5', 'B6', 'A7', 'B8', 'A9', 'A10', 'A11'],
62 PROD_END : ['B0', 'B1', 'B2', 'B3', 'B4', 'B5', 'B6', 'A7', 'A8', 'B9', 'A10', 'A11'],
63 RMA : ['B0', 'B1', 'B2', 'B3', 'B4', 'B5', 'B6', 'B7', 'B8', 'A9', 'B10', 'B11'],
64 SCRAP : ['B0', 'B1', 'B2', 'B3', 'B4', 'B5', 'B6', 'B7', 'B8', 'B9', 'B10', 'B11']
65 }
66
67 // Life cycle state transition counter definition.
68 // From least to most significant OTP word in ascending order.
69 lc_cnt : {
Michael Schaffnerbdcb2cd2021-01-28 15:54:37 -080070 0 : [ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'],
Michael Schaffner60dd7282021-01-28 14:56:37 -080071 1 : ['D0', 'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9', 'C10', 'C11', 'C12', 'C13', 'C14', 'C15'],
72 2 : ['D0', 'D1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9', 'C10', 'C11', 'C12', 'C13', 'C14', 'C15'],
73 3 : ['D0', 'D1', 'D2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9', 'C10', 'C11', 'C12', 'C13', 'C14', 'C15'],
74 4 : ['D0', 'D1', 'D2', 'D3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9', 'C10', 'C11', 'C12', 'C13', 'C14', 'C15'],
75 5 : ['D0', 'D1', 'D2', 'D3', 'D4', 'C5', 'C6', 'C7', 'C8', 'C9', 'C10', 'C11', 'C12', 'C13', 'C14', 'C15'],
76 6 : ['D0', 'D1', 'D2', 'D3', 'D4', 'D5', 'C6', 'C7', 'C8', 'C9', 'C10', 'C11', 'C12', 'C13', 'C14', 'C15'],
77 7 : ['D0', 'D1', 'D2', 'D3', 'D4', 'D5', 'D6', 'C7', 'C8', 'C9', 'C10', 'C11', 'C12', 'C13', 'C14', 'C15'],
78 8 : ['D0', 'D1', 'D2', 'D3', 'D4', 'D5', 'D6', 'D7', 'C8', 'C9', 'C10', 'C11', 'C12', 'C13', 'C14', 'C15'],
79 9 : ['D0', 'D1', 'D2', 'D3', 'D4', 'D5', 'D6', 'D7', 'D8', 'C9', 'C10', 'C11', 'C12', 'C13', 'C14', 'C15'],
80 10 : ['D0', 'D1', 'D2', 'D3', 'D4', 'D5', 'D6', 'D7', 'D8', 'D9', 'C10', 'C11', 'C12', 'C13', 'C14', 'C15'],
81 11 : ['D0', 'D1', 'D2', 'D3', 'D4', 'D5', 'D6', 'D7', 'D8', 'D9', 'D10', 'C11', 'C12', 'C13', 'C14', 'C15'],
82 12 : ['D0', 'D1', 'D2', 'D3', 'D4', 'D5', 'D6', 'D7', 'D8', 'D9', 'D10', 'D11', 'C12', 'C13', 'C14', 'C15'],
83 13 : ['D0', 'D1', 'D2', 'D3', 'D4', 'D5', 'D6', 'D7', 'D8', 'D9', 'D10', 'D11', 'D12', 'C13', 'C14', 'C15'],
84 14 : ['D0', 'D1', 'D2', 'D3', 'D4', 'D5', 'D6', 'D7', 'D8', 'D9', 'D10', 'D11', 'D12', 'D13', 'C14', 'C15'],
85 15 : ['D0', 'D1', 'D2', 'D3', 'D4', 'D5', 'D6', 'D7', 'D8', 'D9', 'D10', 'D11', 'D12', 'D13', 'D14', 'C15'],
86 16 : ['D0', 'D1', 'D2', 'D3', 'D4', 'D5', 'D6', 'D7', 'D8', 'D9', 'D10', 'D11', 'D12', 'D13', 'D14', 'D15']
87 }
88
89 lc_id_state : {
90 IdBlank : ['E0'],
91 IdPersonalized : ['F0']
92 }
Michael Schaffner26588202020-12-29 16:31:58 -080093}