Package: lc_ctrl_state_pkg

Description

Copyright lowRISC contributors.
Licensed under the Apache License, Version 2.0, see LICENSE for details.
SPDX-License-Identifier: Apache-2.0

Life cycle state encoding definition.

DO NOT EDIT THIS FILE DIRECTLY.
It has been generated with
$ ./util/design/gen-lc-state-enc.py --seed 10167336684108184581

Signals

Name Type Description
lc_ctrl_state_pkg endpackage

Constants

Name Type Value Description
LcValueWidth int 16 ///////////////////////////// General size declarations // /////////////////////////////
NumLcStateValues int 20
LcStateWidth int NumLcStateValues * LcValueWidth
NumLcStates int 21
DecLcStateWidth int vbits(NumLcStates)
NumLcCountValues int 24
LcCountWidth int NumLcCountValues * LcValueWidth
NumLcCountStates int 25
DecLcCountWidth int vbits(NumLcCountStates)
NumLcIdStates int 2 This state is not stored in OTP, but inferred from the locked status of the secret partitions. Hence, only the decoded ID state is declared here for exposure through the CSR interface.
DecLcIdStateWidth int NumLcIdStates+1
A0 logic [15:0] 16'b1000011000111000 ECC: 6'b110000
B0 logic [15:0] 16'b1110011001111001 ECC: 6'b111111
A1 logic [15:0] 16'b1100011000100110 ECC: 6'b101001
B1 logic [15:0] 16'b1101111101101110 ECC: 6'b101011
A2 logic [15:0] 16'b0010000111101100 ECC: 6'b110010
B2 logic [15:0] 16'b0111011111101101 ECC: 6'b110110
A3 logic [15:0] 16'b0001100111101000 ECC: 6'b000100
B3 logic [15:0] 16'b1101101111101100 ECC: 6'b001101
A4 logic [15:0] 16'b1001011001100100 ECC: 6'b000001
B4 logic [15:0] 16'b1101111001110100 ECC: 6'b101101
A5 logic [15:0] 16'b0001011000010110 ECC: 6'b111001
B5 logic [15:0] 16'b1011011001110111 ECC: 6'b111101
A6 logic [15:0] 16'b0101001001010010 ECC: 6'b001111
B6 logic [15:0] 16'b1101111111110010 ECC: 6'b001111
A7 logic [15:0] 16'b0010001001011111 ECC: 6'b011000
B7 logic [15:0] 16'b0011101011111111 ECC: 6'b011101
A8 logic [15:0] 16'b0000001110111001 ECC: 6'b001000
B8 logic [15:0] 16'b1100001110111111 ECC: 6'b101010
A9 logic [15:0] 16'b1100100101111000 ECC: 6'b010010
B9 logic [15:0] 16'b1111101101111001 ECC: 6'b011110
A10 logic [15:0] 16'b0010000110110111 ECC: 6'b010001
B10 logic [15:0] 16'b1011010111111111 ECC: 6'b010101
A11 logic [15:0] 16'b1011000100000111 ECC: 6'b011001
B11 logic [15:0] 16'b1111110110000111 ECC: 6'b011111
A12 logic [15:0] 16'b0011100000010000 ECC: 6'b111001
B12 logic [15:0] 16'b1111100100110000 ECC: 6'b111111
A13 logic [15:0] 16'b0011000010101011 ECC: 6'b100110
B13 logic [15:0] 16'b1011010011111011 ECC: 6'b111110
A14 logic [15:0] 16'b0011110100100000 ECC: 6'b011000
B14 logic [15:0] 16'b0011111101101011 ECC: 6'b011100
A15 logic [15:0] 16'b1010101100010010 ECC: 6'b111000
B15 logic [15:0] 16'b1111111110011010 ECC: 6'b111010
A16 logic [15:0] 16'b0100011010010100 ECC: 6'b110110
B16 logic [15:0] 16'b0101111110010111 ECC: 6'b111110
A17 logic [15:0] 16'b1011111110000101 ECC: 6'b000000
B17 logic [15:0] 16'b1011111111010111 ECC: 6'b000111
A18 logic [15:0] 16'b1110010000010111 ECC: 6'b010100
B18 logic [15:0] 16'b1111110010111111 ECC: 6'b010110
A19 logic [15:0] 16'b0100100101011010 ECC: 6'b001000
B19 logic [15:0] 16'b1110100111111111 ECC: 6'b001101
C0 logic [15:0] 16'b0000110000011011 ECC: 6'b110110
D0 logic [15:0] 16'b0011111000011111 ECC: 6'b111111
C1 logic [15:0] 16'b0111001100010100 ECC: 6'b011001
D1 logic [15:0] 16'b1111101101110110 ECC: 6'b111001
C2 logic [15:0] 16'b0001101110100010 ECC: 6'b100011
D2 logic [15:0] 16'b0011111111100011 ECC: 6'b110111
C3 logic [15:0] 16'b0000110101000010 ECC: 6'b111101
D3 logic [15:0] 16'b1100110111010110 ECC: 6'b111111
C4 logic [15:0] 16'b0001111111010001 ECC: 6'b000010
D4 logic [15:0] 16'b0001111111111001 ECC: 6'b101111
C5 logic [15:0] 16'b0010010000110000 ECC: 6'b111111
D5 logic [15:0] 16'b0111011100110101 ECC: 6'b111111
C6 logic [15:0] 16'b0010111010001111 ECC: 6'b001000
D6 logic [15:0] 16'b1011111010111111 ECC: 6'b101100
C7 logic [15:0] 16'b0100010000111101 ECC: 6'b011010
D7 logic [15:0] 16'b0101110011111101 ECC: 6'b111110
C8 logic [15:0] 16'b1110000000101100 ECC: 6'b111001
D8 logic [15:0] 16'b1110010110111101 ECC: 6'b111101
C9 logic [15:0] 16'b0010011100101110 ECC: 6'b010001
D9 logic [15:0] 16'b1011011110101111 ECC: 6'b111001
C10 logic [15:0] 16'b0010110011101110 ECC: 6'b000100
D10 logic [15:0] 16'b1010111011111110 ECC: 6'b110110
C11 logic [15:0] 16'b1100000100010011 ECC: 6'b000011
D11 logic [15:0] 16'b1110000110011011 ECC: 6'b111011
C12 logic [15:0] 16'b1000110110101101 ECC: 6'b000010
D12 logic [15:0] 16'b1001111110111101 ECC: 6'b010111
C13 logic [15:0] 16'b0000011111001011 ECC: 6'b001010
D13 logic [15:0] 16'b1001111111001111 ECC: 6'b111010
C14 logic [15:0] 16'b1101001001001010 ECC: 6'b110100
D14 logic [15:0] 16'b1101001011101111 ECC: 6'b110111
C15 logic [15:0] 16'b0001100011110101 ECC: 6'b100010
D15 logic [15:0] 16'b0011110011110111 ECC: 6'b111011
C16 logic [15:0] 16'b1000001110100011 ECC: 6'b010110
D16 logic [15:0] 16'b1100111111101111 ECC: 6'b010110
C17 logic [15:0] 16'b0100110101010001 ECC: 6'b100110
D17 logic [15:0] 16'b1111110101010011 ECC: 6'b110111
C18 logic [15:0] 16'b1010010000101010 ECC: 6'b100001
D18 logic [15:0] 16'b1010011111101110 ECC: 6'b100011
C19 logic [15:0] 16'b0001111001110000 ECC: 6'b101010
D19 logic [15:0] 16'b0111111111110011 ECC: 6'b101010
C20 logic [15:0] 16'b0010101001111110 ECC: 6'b100000
D20 logic [15:0] 16'b0110101111111110 ECC: 6'b110101
C21 logic [15:0] 16'b1001000011110000 ECC: 6'b000011
D21 logic [15:0] 16'b1001001011111101 ECC: 6'b001111
C22 logic [15:0] 16'b0101101010000001 ECC: 6'b110110
D22 logic [15:0] 16'b1111101010010101 ECC: 6'b111111
C23 logic [15:0] 16'b1101000100101110 ECC: 6'b110000
D23 logic [15:0] 16'b1111100110101110 ECC: 6'b111110
ZRO logic [15:0] 16'h0
LcTokenWidth int 128 ///////////////////////////////////////// Hashed RAW unlock and all-zero tokens // /////////////////////////////////////////
lc_token_t lc_token_t
lc_token_t lc_token_t
lc_token_t lc_token_t
lc_token_t lc_token_t

Types

Name Type Description
lc_state_e enum logic [LcStateWidth-1:0] {
LcStRaw = {
ZRO,
ZRO,
ZRO,
ZRO,
ZRO,
ZRO,
ZRO,
ZRO,
ZRO,
ZRO,
ZRO,
ZRO,
ZRO,
ZRO,
ZRO,
ZRO,
ZRO,
ZRO,
ZRO,
ZRO},
LcStTestUnlocked0 = {
A19,
A18,
A17,
A16,
A15,
A14,
A13,
A12,
A11,
A10,
A9,
A8,
A7,
A6,
A5,
A4,
A3,
A2,
A1,
B0},
LcStTestLocked0 = {
A19,
A18,
A17,
A16,
A15,
A14,
A13,
A12,
A11,
A10,
A9,
A8,
A7,
A6,
A5,
A4,
A3,
A2,
B1,
B0},
LcStTestUnlocked1 = {
A19,
A18,
A17,
A16,
A15,
A14,
A13,
A12,
A11,
A10,
A9,
A8,
A7,
A6,
A5,
A4,
A3,
B2,
B1,
B0},
LcStTestLocked1 = {
A19,
A18,
A17,
A16,
A15,
A14,
A13,
A12,
A11,
A10,
A9,
A8,
A7,
A6,
A5,
A4,
B3,
B2,
B1,
B0},
LcStTestUnlocked2 = {
A19,
A18,
A17,
A16,
A15,
A14,
A13,
A12,
A11,
A10,
A9,
A8,
A7,
A6,
A5,
B4,
B3,
B2,
B1,
B0},
LcStTestLocked2 = {
A19,
A18,
A17,
A16,
A15,
A14,
A13,
A12,
A11,
A10,
A9,
A8,
A7,
A6,
B5,
B4,
B3,
B2,
B1,
B0},
LcStTestUnlocked3 = {
A19,
A18,
A17,
A16,
A15,
A14,
A13,
A12,
A11,
A10,
A9,
A8,
A7,
B6,
B5,
B4,
B3,
B2,
B1,
B0},
LcStTestLocked3 = {
A19,
A18,
A17,
A16,
A15,
A14,
A13,
A12,
A11,
A10,
A9,
A8,
B7,
B6,
B5,
B4,
B3,
B2,
B1,
B0},
LcStTestUnlocked4 = {
A19,
A18,
A17,
A16,
A15,
A14,
A13,
A12,
A11,
A10,
A9,
B8,
B7,
B6,
B5,
B4,
B3,
B2,
B1,
B0},
LcStTestLocked4 = {
A19,
A18,
A17,
A16,
A15,
A14,
A13,
A12,
A11,
A10,
B9,
B8,
B7,
B6,
B5,
B4,
B3,
B2,
B1,
B0},
LcStTestUnlocked5 = {
A19,
A18,
A17,
A16,
A15,
A14,
A13,
A12,
A11,
B10,
B9,
B8,
B7,
B6,
B5,
B4,
B3,
B2,
B1,
B0},
LcStTestLocked5 = {
A19,
A18,
A17,
A16,
A15,
A14,
A13,
A12,
B11,
B10,
B9,
B8,
B7,
B6,
B5,
B4,
B3,
B2,
B1,
B0},
LcStTestUnlocked6 = {
A19,
A18,
A17,
A16,
A15,
A14,
A13,
B12,
B11,
B10,
B9,
B8,
B7,
B6,
B5,
B4,
B3,
B2,
B1,
B0},
LcStTestLocked6 = {
A19,
A18,
A17,
A16,
A15,
A14,
B13,
B12,
B11,
B10,
B9,
B8,
B7,
B6,
B5,
B4,
B3,
B2,
B1,
B0},
LcStTestUnlocked7 = {
A19,
A18,
A17,
A16,
A15,
B14,
B13,
B12,
B11,
B10,
B9,
B8,
B7,
B6,
B5,
B4,
B3,
B2,
B1,
B0},
LcStDev = {
A19,
A18,
A17,
A16,
B15,
B14,
B13,
B12,
B11,
B10,
B9,
B8,
B7,
B6,
B5,
B4,
B3,
B2,
B1,
B0},
LcStProd = {
A19,
A18,
A17,
B16,
A15,
B14,
B13,
B12,
B11,
B10,
B9,
B8,
B7,
B6,
B5,
B4,
B3,
B2,
B1,
B0},
LcStProdEnd = {
A19,
A18,
B17,
A16,
A15,
B14,
B13,
B12,
B11,
B10,
B9,
B8,
B7,
B6,
B5,
B4,
B3,
B2,
B1,
B0},
LcStRma = {
B19,
B18,
A17,
B16,
B15,
B14,
B13,
B12,
B11,
B10,
B9,
B8,
B7,
B6,
B5,
B4,
B3,
B2,
B1,
B0},
LcStScrap = {
B19,
B18,
B17,
B16,
B15,
B14,
B13,
B12,
B11,
B10,
B9,
B8,
B7,
B6,
B5,
B4,
B3,
B2,
B1,
B0} }
////////////////////// Derived enum types // //////////////////////
lc_cnt_e enum logic [LcCountWidth-1:0] {
LcCnt0 = {
ZRO,
ZRO,
ZRO,
ZRO,
ZRO,
ZRO,
ZRO,
ZRO,
ZRO,
ZRO,
ZRO,
ZRO,
ZRO,
ZRO,
ZRO,
ZRO,
ZRO,
ZRO,
ZRO,
ZRO,
ZRO,
ZRO,
ZRO,
ZRO},
LcCnt1 = {
C23,
C22,
C21,
C20,
C19,
C18,
C17,
C16,
C15,
C14,
C13,
C12,
C11,
C10,
C9,
C8,
C7,
C6,
C5,
C4,
C3,
C2,
C1,
D0},
LcCnt2 = {
C23,
C22,
C21,
C20,
C19,
C18,
C17,
C16,
C15,
C14,
C13,
C12,
C11,
C10,
C9,
C8,
C7,
C6,
C5,
C4,
C3,
C2,
D1,
D0},
LcCnt3 = {
C23,
C22,
C21,
C20,
C19,
C18,
C17,
C16,
C15,
C14,
C13,
C12,
C11,
C10,
C9,
C8,
C7,
C6,
C5,
C4,
C3,
D2,
D1,
D0},
LcCnt4 = {
C23,
C22,
C21,
C20,
C19,
C18,
C17,
C16,
C15,
C14,
C13,
C12,
C11,
C10,
C9,
C8,
C7,
C6,
C5,
C4,
D3,
D2,
D1,
D0},
LcCnt5 = {
C23,
C22,
C21,
C20,
C19,
C18,
C17,
C16,
C15,
C14,
C13,
C12,
C11,
C10,
C9,
C8,
C7,
C6,
C5,
D4,
D3,
D2,
D1,
D0},
LcCnt6 = {
C23,
C22,
C21,
C20,
C19,
C18,
C17,
C16,
C15,
C14,
C13,
C12,
C11,
C10,
C9,
C8,
C7,
C6,
D5,
D4,
D3,
D2,
D1,
D0},
LcCnt7 = {
C23,
C22,
C21,
C20,
C19,
C18,
C17,
C16,
C15,
C14,
C13,
C12,
C11,
C10,
C9,
C8,
C7,
D6,
D5,
D4,
D3,
D2,
D1,
D0},
LcCnt8 = {
C23,
C22,
C21,
C20,
C19,
C18,
C17,
C16,
C15,
C14,
C13,
C12,
C11,
C10,
C9,
C8,
D7,
D6,
D5,
D4,
D3,
D2,
D1,
D0},
LcCnt9 = {
C23,
C22,
C21,
C20,
C19,
C18,
C17,
C16,
C15,
C14,
C13,
C12,
C11,
C10,
C9,
D8,
D7,
D6,
D5,
D4,
D3,
D2,
D1,
D0},
LcCnt10 = {
C23,
C22,
C21,
C20,
C19,
C18,
C17,
C16,
C15,
C14,
C13,
C12,
C11,
C10,
D9,
D8,
D7,
D6,
D5,
D4,
D3,
D2,
D1,
D0},
LcCnt11 = {
C23,
C22,
C21,
C20,
C19,
C18,
C17,
C16,
C15,
C14,
C13,
C12,
C11,
D10,
D9,
D8,
D7,
D6,
D5,
D4,
D3,
D2,
D1,
D0},
LcCnt12 = {
C23,
C22,
C21,
C20,
C19,
C18,
C17,
C16,
C15,
C14,
C13,
C12,
D11,
D10,
D9,
D8,
D7,
D6,
D5,
D4,
D3,
D2,
D1,
D0},
LcCnt13 = {
C23,
C22,
C21,
C20,
C19,
C18,
C17,
C16,
C15,
C14,
C13,
D12,
D11,
D10,
D9,
D8,
D7,
D6,
D5,
D4,
D3,
D2,
D1,
D0},
LcCnt14 = {
C23,
C22,
C21,
C20,
C19,
C18,
C17,
C16,
C15,
C14,
D13,
D12,
D11,
D10,
D9,
D8,
D7,
D6,
D5,
D4,
D3,
D2,
D1,
D0},
LcCnt15 = {
C23,
C22,
C21,
C20,
C19,
C18,
C17,
C16,
C15,
D14,
D13,
D12,
D11,
D10,
D9,
D8,
D7,
D6,
D5,
D4,
D3,
D2,
D1,
D0},
LcCnt16 = {
C23,
C22,
C21,
C20,
C19,
C18,
C17,
C16,
D15,
D14,
D13,
D12,
D11,
D10,
D9,
D8,
D7,
D6,
D5,
D4,
D3,
D2,
D1,
D0},
LcCnt17 = {
C23,
C22,
C21,
C20,
C19,
C18,
C17,
D16,
D15,
D14,
D13,
D12,
D11,
D10,
D9,
D8,
D7,
D6,
D5,
D4,
D3,
D2,
D1,
D0},
LcCnt18 = {
C23,
C22,
C21,
C20,
C19,
C18,
D17,
D16,
D15,
D14,
D13,
D12,
D11,
D10,
D9,
D8,
D7,
D6,
D5,
D4,
D3,
D2,
D1,
D0},
LcCnt19 = {
C23,
C22,
C21,
C20,
C19,
D18,
D17,
D16,
D15,
D14,
D13,
D12,
D11,
D10,
D9,
D8,
D7,
D6,
D5,
D4,
D3,
D2,
D1,
D0},
LcCnt20 = {
C23,
C22,
C21,
C20,
D19,
D18,
D17,
D16,
D15,
D14,
D13,
D12,
D11,
D10,
D9,
D8,
D7,
D6,
D5,
D4,
D3,
D2,
D1,
D0},
LcCnt21 = {
C23,
C22,
C21,
D20,
D19,
D18,
D17,
D16,
D15,
D14,
D13,
D12,
D11,
D10,
D9,
D8,
D7,
D6,
D5,
D4,
D3,
D2,
D1,
D0},
LcCnt22 = {
C23,
C22,
D21,
D20,
D19,
D18,
D17,
D16,
D15,
D14,
D13,
D12,
D11,
D10,
D9,
D8,
D7,
D6,
D5,
D4,
D3,
D2,
D1,
D0},
LcCnt23 = {
C23,
D22,
D21,
D20,
D19,
D18,
D17,
D16,
D15,
D14,
D13,
D12,
D11,
D10,
D9,
D8,
D7,
D6,
D5,
D4,
D3,
D2,
D1,
D0},
LcCnt24 = {
D23,
D22,
D21,
D20,
D19,
D18,
D17,
D16,
D15,
D14,
D13,
D12,
D11,
D10,
D9,
D8,
D7,
D6,
D5,
D4,
D3,
D2,
D1,
D0} }
dec_lc_state_e enum logic [DecLcStateWidth-1:0] {
DecLcStRaw = 0,
DecLcStTestUnlocked0 = 1,
DecLcStTestLocked0 = 2,
DecLcStTestUnlocked1 = 3,
DecLcStTestLocked1 = 4,
DecLcStTestUnlocked2 = 5,
DecLcStTestLocked2 = 6,
DecLcStTestUnlocked3 = 7,
DecLcStTestLocked3 = 8,
DecLcStTestUnlocked4 = 9,
DecLcStTestLocked4 = 10,
DecLcStTestUnlocked5 = 11,
DecLcStTestLocked5 = 12,
DecLcStTestUnlocked6 = 13,
DecLcStTestLocked6 = 14,
DecLcStTestUnlocked7 = 15,
DecLcStDev = 16,
DecLcStProd = 17,
DecLcStProdEnd = 18,
DecLcStRma = 19,
DecLcStScrap = 20,
DecLcStPostTrans = 21,
DecLcStEscalate = 22,
DecLcStInvalid = 23 }
Decoded life cycle state, used to interface with CSRs and TAP.
dec_lc_id_state_e enum logic [DecLcIdStateWidth-1:0] {
DecLcIdBlank,
DecLcIdPersonalized,
DecLcIdInvalid }
dec_lc_cnt_t logic [DecLcCountWidth-1:0]
lc_token_t logic [LcTokenWidth-1:0]