exo2: implement through boot config load/validate
This commit is contained in:
@@ -133,32 +133,12 @@ namespace ams::se {
|
||||
DEFINE_SE_REG_BIT_ENUM_WITH_SW_CLEAR(INT_STATUS_ERR_STAT, 16);
|
||||
|
||||
/* SE_CONFIG */
|
||||
DEFINE_SE_REG(CONFIG_DST, 2, 3);
|
||||
DEFINE_SE_REG(CONFIG_DEC_ALG, 8, 4);
|
||||
DEFINE_SE_REG(CONFIG_ENC_ALG, 12, 4);
|
||||
DEFINE_SE_REG(CONFIG_DEC_MODE, 16, 8);
|
||||
DEFINE_SE_REG(CONFIG_ENC_MODE, 24, 8);
|
||||
|
||||
enum SE_CONFIG_DST {
|
||||
SE_CONFIG_DST_MEMORY = 0,
|
||||
SE_CONFIG_DST_HASH_REG = 1,
|
||||
SE_CONFIG_DST_KEYTABLE = 2,
|
||||
SE_CONFIG_DST_SRK = 3,
|
||||
SE_CONFIG_DST_RSA_REG = 4,
|
||||
};
|
||||
|
||||
enum SE_CONFIG_DEC_ALG {
|
||||
SE_CONFIG_DEC_ALG_NOP = 0,
|
||||
SE_CONFIG_DEC_ALG_AES_DEC = 1,
|
||||
};
|
||||
|
||||
enum SE_CONFIG_ENC_ALG {
|
||||
SE_CONFIG_ENC_ALG_NOP = 0,
|
||||
SE_CONFIG_ENC_ALG_AES_ENC = 1,
|
||||
SE_CONFIG_ENC_ALG_RNG = 2,
|
||||
SE_CONFIG_ENC_ALG_SHA = 3,
|
||||
SE_CONFIG_ENC_ALG_RSA = 4,
|
||||
};
|
||||
DEFINE_SE_REG_THREE_BIT_ENUM(CONFIG_DST, 2, MEMORY, HASH_REG, KEYTABLE, SRK, RSA_REG, RESERVED5, RESERVED6, RESERVED7);
|
||||
DEFINE_SE_REG_FOUR_BIT_ENUM(CONFIG_DEC_ALG, 8, NOP, AES_DEC, RESERVED2, RESERVED3, RESERVED4, RESERVED5, RESERVED6, RESERVED7, RESERVED8, RESERVED9, RESERVED10, RESERVED11, RESERVED12, RESERVED13, RESERVED14, RESERVED15);
|
||||
DEFINE_SE_REG_FOUR_BIT_ENUM(CONFIG_ENC_ALG, 12, NOP, AES_ENC, RNG, SHA, RSA, RESERVED5, RESERVED6, RESERVED7, RESERVED8, RESERVED9, RESERVED10, RESERVED11, RESERVED12, RESERVED13, RESERVED14, RESERVED15);
|
||||
|
||||
enum SE_CONFIG_DEC_MODE {
|
||||
SE_CONFIG_DEC_MODE_AESMODE_KEY128 = 0,
|
||||
@@ -171,13 +151,16 @@ namespace ams::se {
|
||||
SE_CONFIG_ENC_MODE_AESMODE_KEY192 = 1,
|
||||
SE_CONFIG_ENC_MODE_AESMODE_KEY256 = 2,
|
||||
|
||||
SE_CONFIG_ENC_MODE_AESMODE_SHA1 = 1,
|
||||
SE_CONFIG_ENC_MODE_AESMODE_SHA224 = 4,
|
||||
SE_CONFIG_ENC_MODE_AESMODE_SHA256 = 5,
|
||||
SE_CONFIG_ENC_MODE_AESMODE_SHA384 = 6,
|
||||
SE_CONFIG_ENC_MODE_AESMODE_SHA512 = 7,
|
||||
SE_CONFIG_ENC_MODE_SHA1 = 1,
|
||||
SE_CONFIG_ENC_MODE_SHA224 = 4,
|
||||
SE_CONFIG_ENC_MODE_SHA256 = 5,
|
||||
SE_CONFIG_ENC_MODE_SHA384 = 6,
|
||||
SE_CONFIG_ENC_MODE_SHA512 = 7,
|
||||
};
|
||||
|
||||
/* SE_SHA_CONFIG */
|
||||
DEFINE_SE_REG(SHA_CONFIG_HW_INIT_HASH, 0, 1);
|
||||
|
||||
|
||||
/* SE_CRYPTO_KEYTABLE_ADDR */
|
||||
DEFINE_SE_REG(CRYPTO_KEYTABLE_ADDR_KEYIV_WORD, 0, 4);
|
||||
@@ -208,6 +191,9 @@ namespace ams::se {
|
||||
|
||||
DEFINE_SE_REG(CRYPTO_KEYTABLE_ADDR_KEYIV_KEY_SLOT, 4, 4);
|
||||
|
||||
/* SE_RSA_CONFIG */
|
||||
DEFINE_SE_REG(RSA_CONFIG_KEY_SLOT, 24, 1);
|
||||
|
||||
/* SE_RSA_KEYTABLE_ADDR */
|
||||
DEFINE_SE_REG(RSA_KEYTABLE_ADDR_WORD_ADDR, 0, 6);
|
||||
DEFINE_SE_REG_BIT_ENUM(RSA_KEYTABLE_ADDR_EXPMOD_SEL, 6, EXPONENT, MODULUS);
|
||||
|
||||
Reference in New Issue
Block a user