Difference between revisions of "Security Engine"
Jump to navigation
Jump to search
(5 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
The Nintendo Switch uses Tegra's Security Engine (SE) for handling cryptographic opearations at the system's lowest level. | The Nintendo Switch uses Tegra's Security Engine (SE) for handling cryptographic opearations at the system's lowest level. | ||
− | + | = Registers = | |
+ | Erista only has one SE driver which is mapped to physical address 0x70012000 with a total size of 0x2000 bytes. | ||
+ | |||
+ | Mariko has two SE drivers which are mapped to physical addresses 0x70012000 (SE1) and 0x70412000 (SE2), each with a total size of 0x2000 bytes. | ||
− | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
! Name | ! Name | ||
− | ! Address | + | ! Address (Erista SE) |
+ | ! Address (Mariko SE1) | ||
+ | ! Address (Mariko SE2) | ||
|- | |- | ||
− | | | + | | SE_SE_SECURITY |
| 0x70012000 | | 0x70012000 | ||
+ | | 0x70012000 | ||
+ | | 0x70412000 | ||
|- | |- | ||
− | | | + | | SE_TZRAM_SECURITY |
+ | | 0x70012004 | ||
| 0x70012004 | | 0x70012004 | ||
+ | | 0x70412004 | ||
|- | |- | ||
| SE_OPERATION | | SE_OPERATION | ||
| 0x70012008 | | 0x70012008 | ||
+ | | 0x70012008 | ||
+ | | 0x70412008 | ||
|- | |- | ||
| SE_INT_ENABLE | | SE_INT_ENABLE | ||
| 0x7001200C | | 0x7001200C | ||
+ | | 0x7001200C | ||
+ | | 0x7041200C | ||
|- | |- | ||
| SE_INT_STATUS | | SE_INT_STATUS | ||
| 0x70012010 | | 0x70012010 | ||
+ | | 0x70012010 | ||
+ | | 0x70412010 | ||
|- | |- | ||
| SE_CONFIG | | SE_CONFIG | ||
| 0x70012014 | | 0x70012014 | ||
+ | | 0x70012014 | ||
+ | | 0x70412014 | ||
|- | |- | ||
| SE_IN_LL_ADDR | | SE_IN_LL_ADDR | ||
| 0x70012018 | | 0x70012018 | ||
+ | | 0x70012018 | ||
+ | | 0x70412018 | ||
+ | |- | ||
+ | | SE_IN_CUR_BYTE_ADDR | ||
+ | | 0x7001201C | ||
+ | | 0x7001201C | ||
+ | | 0x7041201C | ||
+ | |- | ||
+ | | SE_IN_CUR_LL_ID | ||
+ | | 0x70012020 | ||
+ | | 0x70012020 | ||
+ | | 0x70412020 | ||
|- | |- | ||
| SE_OUT_LL_ADDR | | SE_OUT_LL_ADDR | ||
| 0x70012024 | | 0x70012024 | ||
+ | | 0x70012024 | ||
+ | | 0x70412024 | ||
|- | |- | ||
− | | | + | | SE_OUT_CUR_BYTE_ADDR |
+ | | 0x70012028 | ||
+ | | 0x70012028 | ||
+ | | 0x70412028 | ||
+ | |- | ||
+ | | SE_OUT_CUR_LL_ID | ||
+ | | 0x7001202C | ||
+ | | 0x7001202C | ||
+ | | 0x7041202C | ||
+ | |- | ||
+ | | SE_HASH_RESULT_0 | ||
| 0x70012030 | | 0x70012030 | ||
+ | | 0x70012030 | ||
+ | | 0x70412030 | ||
+ | |- | ||
+ | | SE_HASH_RESULT_1 | ||
+ | | 0x70012034 | ||
+ | | 0x70012034 | ||
+ | | 0x70412034 | ||
+ | |- | ||
+ | | SE_HASH_RESULT_2 | ||
+ | | 0x70012038 | ||
+ | | 0x70012038 | ||
+ | | 0x70412038 | ||
+ | |- | ||
+ | | SE_HASH_RESULT_3 | ||
+ | | 0x7001203C | ||
+ | | 0x7001203C | ||
+ | | 0x7041203C | ||
+ | |- | ||
+ | | SE_HASH_RESULT_4 | ||
+ | | 0x70012040 | ||
+ | | 0x70012040 | ||
+ | | 0x70412040 | ||
+ | |- | ||
+ | | SE_HASH_RESULT_5 | ||
+ | | 0x70012044 | ||
+ | | 0x70012044 | ||
+ | | 0x70412044 | ||
+ | |- | ||
+ | | SE_HASH_RESULT_6 | ||
+ | | 0x70012048 | ||
+ | | 0x70012048 | ||
+ | | 0x70412048 | ||
+ | |- | ||
+ | | SE_HASH_RESULT_7 | ||
+ | | 0x7001204C | ||
+ | | 0x7001204C | ||
+ | | 0x7041204C | ||
+ | |- | ||
+ | | SE_HASH_RESULT_8 | ||
+ | | 0x70012050 | ||
+ | | 0x70012050 | ||
+ | | 0x70412050 | ||
+ | |- | ||
+ | | SE_HASH_RESULT_9 | ||
+ | | 0x70012054 | ||
+ | | 0x70012054 | ||
+ | | 0x70412054 | ||
|- | |- | ||
− | | | + | | SE_HASH_RESULT_10 |
+ | | 0x70012058 | ||
+ | | 0x70012058 | ||
+ | | 0x70412058 | ||
+ | |- | ||
+ | | SE_HASH_RESULT_11 | ||
+ | | 0x7001205C | ||
+ | | 0x7001205C | ||
+ | | 0x7041205C | ||
+ | |- | ||
+ | | SE_HASH_RESULT_12 | ||
+ | | 0x70012060 | ||
+ | | 0x70012060 | ||
+ | | 0x70412060 | ||
+ | |- | ||
+ | | SE_HASH_RESULT_13 | ||
+ | | 0x70012064 | ||
+ | | 0x70012064 | ||
+ | | 0x70412064 | ||
+ | |- | ||
+ | | SE_HASH_RESULT_14 | ||
+ | | 0x70012068 | ||
+ | | 0x70012068 | ||
+ | | 0x70412068 | ||
+ | |- | ||
+ | | SE_HASH_RESULT_15 | ||
+ | | 0x7001206C | ||
+ | | 0x7001206C | ||
+ | | 0x7041206C | ||
+ | |- | ||
+ | | SE_CTX_SAVE_CONFIG | ||
| 0x70012070 | | 0x70012070 | ||
+ | | 0x70012070 | ||
+ | | 0x70412070 | ||
+ | |- | ||
+ | | SE_CTX_SAVE_AUTO | ||
+ | | - | ||
+ | | 0x70012074 | ||
+ | | 0x70412074 | ||
|- | |- | ||
| SE_SHA_CONFIG | | SE_SHA_CONFIG | ||
| 0x70012200 | | 0x70012200 | ||
+ | | 0x70012200 | ||
+ | | 0x70412200 | ||
|- | |- | ||
− | | | + | | SE_SHA_MSG_LENGTH_0 |
| 0x70012204 | | 0x70012204 | ||
+ | | 0x70012204 | ||
+ | | 0x70412204 | ||
|- | |- | ||
− | | | + | | SE_SHA_MSG_LENGTH_1 |
+ | | 0x70012208 | ||
| 0x70012208 | | 0x70012208 | ||
+ | | 0x70412208 | ||
|- | |- | ||
− | | | + | | SE_SHA_MSG_LENGTH_2 |
+ | | 0x7001220C | ||
| 0x7001220C | | 0x7001220C | ||
+ | | 0x7041220C | ||
|- | |- | ||
− | | | + | | SE_SHA_MSG_LENGTH_3 |
| 0x70012210 | | 0x70012210 | ||
+ | | 0x70012210 | ||
+ | | 0x70412210 | ||
|- | |- | ||
− | | | + | | SE_SHA_MSG_LEFT_0 |
| 0x70012214 | | 0x70012214 | ||
+ | | 0x70012214 | ||
+ | | 0x70412214 | ||
|- | |- | ||
− | | | + | | SE_SHA_MSG_LEFT_1 |
| 0x70012218 | | 0x70012218 | ||
+ | | 0x70012218 | ||
+ | | 0x70412218 | ||
|- | |- | ||
− | | | + | | SE_SHA_MSG_LEFT_2 |
| 0x7001221C | | 0x7001221C | ||
+ | | 0x7001221C | ||
+ | | 0x7041221C | ||
|- | |- | ||
− | | | + | | SE_SHA_MSG_LEFT_3 |
| 0x70012220 | | 0x70012220 | ||
+ | | 0x70012220 | ||
+ | | 0x70412220 | ||
|- | |- | ||
− | | | + | | SE_CRYPTO_SECURITY_PERKEY |
+ | | 0x70012280 | ||
| 0x70012280 | | 0x70012280 | ||
+ | | 0x70412280 | ||
|- | |- | ||
− | | | + | | SE_CRYPTO_KEYTABLE_ACCESS_0 |
+ | | 0x70012284 | ||
| 0x70012284 | | 0x70012284 | ||
+ | | 0x70412284 | ||
|- | |- | ||
− | | | + | | SE_CRYPTO_KEYTABLE_ACCESS_1 |
+ | | 0x70012288 | ||
+ | | 0x70012288 | ||
+ | | 0x70412288 | ||
+ | |- | ||
+ | | SE_CRYPTO_KEYTABLE_ACCESS_2 | ||
+ | | 0x7001228C | ||
+ | | 0x7001228C | ||
+ | | 0x7041228C | ||
+ | |- | ||
+ | | SE_CRYPTO_KEYTABLE_ACCESS_3 | ||
+ | | 0x70012290 | ||
+ | | 0x70012290 | ||
+ | | 0x70412290 | ||
+ | |- | ||
+ | | SE_CRYPTO_KEYTABLE_ACCESS_4 | ||
+ | | 0x70012294 | ||
+ | | 0x70012294 | ||
+ | | 0x70412294 | ||
+ | |- | ||
+ | | SE_CRYPTO_KEYTABLE_ACCESS_5 | ||
+ | | 0x70012298 | ||
+ | | 0x70012298 | ||
+ | | 0x70412298 | ||
+ | |- | ||
+ | | SE_CRYPTO_KEYTABLE_ACCESS_6 | ||
+ | | 0x7001229C | ||
+ | | 0x7001229C | ||
+ | | 0x7041229C | ||
+ | |- | ||
+ | | SE_CRYPTO_KEYTABLE_ACCESS_7 | ||
+ | | 0x700122A0 | ||
+ | | 0x700122A0 | ||
+ | | 0x704122A0 | ||
+ | |- | ||
+ | | SE_CRYPTO_KEYTABLE_ACCESS_8 | ||
+ | | 0x700122A4 | ||
+ | | 0x700122A4 | ||
+ | | 0x704122A4 | ||
+ | |- | ||
+ | | SE_CRYPTO_KEYTABLE_ACCESS_9 | ||
+ | | 0x700122A8 | ||
+ | | 0x700122A8 | ||
+ | | 0x704122A8 | ||
+ | |- | ||
+ | | SE_CRYPTO_KEYTABLE_ACCESS_10 | ||
+ | | 0x700122AC | ||
+ | | 0x700122AC | ||
+ | | 0x704122AC | ||
+ | |- | ||
+ | | SE_CRYPTO_KEYTABLE_ACCESS_11 | ||
+ | | 0x700122B0 | ||
+ | | 0x700122B0 | ||
+ | | 0x704122B0 | ||
+ | |- | ||
+ | | SE_CRYPTO_KEYTABLE_ACCESS_12 | ||
+ | | 0x700122B4 | ||
+ | | 0x700122B4 | ||
+ | | 0x704122B4 | ||
+ | |- | ||
+ | | SE_CRYPTO_KEYTABLE_ACCESS_13 | ||
+ | | 0x700122B8 | ||
+ | | 0x700122B8 | ||
+ | | 0x704122B8 | ||
+ | |- | ||
+ | | SE_CRYPTO_KEYTABLE_ACCESS_14 | ||
+ | | 0x700122BC | ||
+ | | 0x700122BC | ||
+ | | 0x704122BC | ||
+ | |- | ||
+ | | SE_CRYPTO_KEYTABLE_ACCESS_15 | ||
+ | | 0x700122C0 | ||
+ | | 0x700122C0 | ||
+ | | 0x704122C0 | ||
+ | |- | ||
+ | | SE_CRYPTO_CONFIG | ||
| 0x70012304 | | 0x70012304 | ||
+ | | 0x70012304 | ||
+ | | 0x70412304 | ||
|- | |- | ||
− | | | + | | SE_CRYPTO_LINEAR_CTR_0 |
| 0x70012308 | | 0x70012308 | ||
+ | | 0x70012308 | ||
+ | | 0x70412308 | ||
|- | |- | ||
− | | | + | | SE_CRYPTO_LINEAR_CTR_1 |
+ | | 0x7001230C | ||
+ | | 0x7001230C | ||
+ | | 0x7041230C | ||
+ | |- | ||
+ | | SE_CRYPTO_LINEAR_CTR_2 | ||
+ | | 0x70012310 | ||
+ | | 0x70012310 | ||
+ | | 0x70412310 | ||
+ | |- | ||
+ | | SE_CRYPTO_LINEAR_CTR_3 | ||
+ | | 0x70012314 | ||
+ | | 0x70012314 | ||
+ | | 0x70412314 | ||
+ | |- | ||
+ | | SE_CRYPTO_LAST_BLOCK | ||
+ | | 0x70012318 | ||
| 0x70012318 | | 0x70012318 | ||
+ | | 0x70412318 | ||
|- | |- | ||
− | | | + | | SE_CRYPTO_KEYTABLE_ADDR |
+ | | 0x7001231C | ||
| 0x7001231C | | 0x7001231C | ||
+ | | 0x7041231C | ||
|- | |- | ||
− | | | + | | SE_CRYPTO_KEYTABLE_DATA |
+ | | 0x70012320 | ||
| 0x70012320 | | 0x70012320 | ||
+ | | 0x70412320 | ||
|- | |- | ||
| SE_CRYPTO_KEYTABLE_DST | | SE_CRYPTO_KEYTABLE_DST | ||
| 0x70012330 | | 0x70012330 | ||
+ | | 0x70012330 | ||
+ | | 0x70412330 | ||
|- | |- | ||
| SE_RNG_CONFIG | | SE_RNG_CONFIG | ||
| 0x70012340 | | 0x70012340 | ||
+ | | 0x70012340 | ||
+ | | 0x70412340 | ||
|- | |- | ||
| SE_RNG_SRC_CONFIG | | SE_RNG_SRC_CONFIG | ||
| 0x70012344 | | 0x70012344 | ||
+ | | 0x70012344 | ||
+ | | 0x70412344 | ||
|- | |- | ||
| SE_RNG_RESEED_INTERVAL | | SE_RNG_RESEED_INTERVAL | ||
| 0x70012348 | | 0x70012348 | ||
+ | | 0x70012348 | ||
+ | | 0x70412348 | ||
|- | |- | ||
| SE_RSA_CONFIG | | SE_RSA_CONFIG | ||
| 0x70012400 | | 0x70012400 | ||
+ | | 0x70012400 | ||
+ | | 0x70412400 | ||
|- | |- | ||
| SE_RSA_KEY_SIZE | | SE_RSA_KEY_SIZE | ||
| 0x70012404 | | 0x70012404 | ||
+ | | 0x70012404 | ||
+ | | 0x70412404 | ||
|- | |- | ||
| SE_RSA_EXP_SIZE | | SE_RSA_EXP_SIZE | ||
| 0x70012408 | | 0x70012408 | ||
+ | | 0x70012408 | ||
+ | | 0x70412408 | ||
|- | |- | ||
− | | | + | | SE_RSA_SECURITY_PERKEY |
| 0x7001240C | | 0x7001240C | ||
+ | | 0x7001240C | ||
+ | | 0x7041240C | ||
|- | |- | ||
− | | | + | | SE_RSA_KEYTABLE_ACCESS_0 |
| 0x70012410 | | 0x70012410 | ||
+ | | 0x70012410 | ||
+ | | 0x70412410 | ||
+ | |- | ||
+ | | SE_RSA_KEYTABLE_ACCESS_1 | ||
+ | | 0x70012414 | ||
+ | | 0x70012414 | ||
+ | | 0x70412414 | ||
|- | |- | ||
| SE_RSA_KEYTABLE_ADDR | | SE_RSA_KEYTABLE_ADDR | ||
| 0x70012420 | | 0x70012420 | ||
+ | | 0x70012420 | ||
+ | | 0x70412420 | ||
|- | |- | ||
| SE_RSA_KEYTABLE_DATA | | SE_RSA_KEYTABLE_DATA | ||
| 0x70012424 | | 0x70012424 | ||
+ | | 0x70012424 | ||
+ | | 0x70412424 | ||
|- | |- | ||
− | | | + | | SE_RSA_OUTPUT_0 |
+ | | 0x70012428 | ||
| 0x70012428 | | 0x70012428 | ||
+ | | 0x70412428 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_1 | ||
+ | | 0x7001242C | ||
+ | | 0x7001242C | ||
+ | | 0x7041242C | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_2 | ||
+ | | 0x70012430 | ||
+ | | 0x70012430 | ||
+ | | 0x70412430 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_3 | ||
+ | | 0x70012434 | ||
+ | | 0x70012434 | ||
+ | | 0x70412434 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_4 | ||
+ | | 0x70012438 | ||
+ | | 0x70012438 | ||
+ | | 0x70412438 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_5 | ||
+ | | 0x7001243C | ||
+ | | 0x7001243C | ||
+ | | 0x7041243C | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_6 | ||
+ | | 0x70012440 | ||
+ | | 0x70012440 | ||
+ | | 0x70412440 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_7 | ||
+ | | 0x70012444 | ||
+ | | 0x70012444 | ||
+ | | 0x70412444 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_8 | ||
+ | | 0x70012448 | ||
+ | | 0x70012448 | ||
+ | | 0x70412448 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_9 | ||
+ | | 0x7001244C | ||
+ | | 0x7001244C | ||
+ | | 0x7041244C | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_10 | ||
+ | | 0x70012450 | ||
+ | | 0x70012450 | ||
+ | | 0x70412450 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_11 | ||
+ | | 0x70012454 | ||
+ | | 0x70012454 | ||
+ | | 0x70412454 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_12 | ||
+ | | 0x70012458 | ||
+ | | 0x70012458 | ||
+ | | 0x70412458 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_13 | ||
+ | | 0x7001245C | ||
+ | | 0x7001245C | ||
+ | | 0x7041245C | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_14 | ||
+ | | 0x70012460 | ||
+ | | 0x70012460 | ||
+ | | 0x70412460 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_15 | ||
+ | | 0x70012464 | ||
+ | | 0x70012464 | ||
+ | | 0x70412464 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_16 | ||
+ | | 0x70012468 | ||
+ | | 0x70012468 | ||
+ | | 0x70412468 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_17 | ||
+ | | 0x7001246C | ||
+ | | 0x7001246C | ||
+ | | 0x7041246C | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_18 | ||
+ | | 0x70012470 | ||
+ | | 0x70012470 | ||
+ | | 0x70412470 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_19 | ||
+ | | 0x70012474 | ||
+ | | 0x70012474 | ||
+ | | 0x70412474 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_20 | ||
+ | | 0x70012478 | ||
+ | | 0x70012478 | ||
+ | | 0x70412478 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_21 | ||
+ | | 0x7001247C | ||
+ | | 0x7001247C | ||
+ | | 0x7041247C | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_22 | ||
+ | | 0x70012480 | ||
+ | | 0x70012480 | ||
+ | | 0x70412480 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_23 | ||
+ | | 0x70012484 | ||
+ | | 0x70012484 | ||
+ | | 0x70412484 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_24 | ||
+ | | 0x70012488 | ||
+ | | 0x70012488 | ||
+ | | 0x70412488 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_25 | ||
+ | | 0x7001248C | ||
+ | | 0x7001248C | ||
+ | | 0x7041248C | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_26 | ||
+ | | 0x70012490 | ||
+ | | 0x70012490 | ||
+ | | 0x70412490 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_27 | ||
+ | | 0x70012494 | ||
+ | | 0x70012494 | ||
+ | | 0x70412494 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_28 | ||
+ | | 0x70012498 | ||
+ | | 0x70012498 | ||
+ | | 0x70412498 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_29 | ||
+ | | 0x7001249C | ||
+ | | 0x7001249C | ||
+ | | 0x7041249C | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_30 | ||
+ | | 0x700124A0 | ||
+ | | 0x700124A0 | ||
+ | | 0x704124A0 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_31 | ||
+ | | 0x700124A4 | ||
+ | | 0x700124A4 | ||
+ | | 0x704124A4 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_32 | ||
+ | | 0x700124A8 | ||
+ | | 0x700124A8 | ||
+ | | 0x704124A8 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_33 | ||
+ | | 0x700124AC | ||
+ | | 0x700124AC | ||
+ | | 0x704124AC | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_34 | ||
+ | | 0x700124B0 | ||
+ | | 0x700124B0 | ||
+ | | 0x704124B0 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_35 | ||
+ | | 0x700124B4 | ||
+ | | 0x700124B4 | ||
+ | | 0x704124B4 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_36 | ||
+ | | 0x700124B8 | ||
+ | | 0x700124B8 | ||
+ | | 0x704124B8 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_37 | ||
+ | | 0x700124BC | ||
+ | | 0x700124BC | ||
+ | | 0x704124BC | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_38 | ||
+ | | 0x700124C0 | ||
+ | | 0x700124C0 | ||
+ | | 0x704124C0 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_39 | ||
+ | | 0x700124C4 | ||
+ | | 0x700124C4 | ||
+ | | 0x704124C4 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_40 | ||
+ | | 0x700124C8 | ||
+ | | 0x700124C8 | ||
+ | | 0x704124C8 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_41 | ||
+ | | 0x700124CC | ||
+ | | 0x700124CC | ||
+ | | 0x704124CC | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_42 | ||
+ | | 0x700124D0 | ||
+ | | 0x700124D0 | ||
+ | | 0x704124D0 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_43 | ||
+ | | 0x700124D4 | ||
+ | | 0x700124D4 | ||
+ | | 0x704124D4 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_44 | ||
+ | | 0x700124D8 | ||
+ | | 0x700124D8 | ||
+ | | 0x704124D8 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_45 | ||
+ | | 0x700124DC | ||
+ | | 0x700124DC | ||
+ | | 0x704124DC | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_46 | ||
+ | | 0x700124E0 | ||
+ | | 0x700124E0 | ||
+ | | 0x704124E0 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_47 | ||
+ | | 0x700124E4 | ||
+ | | 0x700124E4 | ||
+ | | 0x704124E4 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_48 | ||
+ | | 0x700124E8 | ||
+ | | 0x700124E8 | ||
+ | | 0x704124E8 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_49 | ||
+ | | 0x700124EC | ||
+ | | 0x700124EC | ||
+ | | 0x704124EC | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_50 | ||
+ | | 0x700124F0 | ||
+ | | 0x700124F0 | ||
+ | | 0x704124F0 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_51 | ||
+ | | 0x700124F4 | ||
+ | | 0x700124F4 | ||
+ | | 0x704124F4 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_52 | ||
+ | | 0x700124F8 | ||
+ | | 0x700124F8 | ||
+ | | 0x704124F8 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_53 | ||
+ | | 0x700124FC | ||
+ | | 0x700124FC | ||
+ | | 0x704124FC | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_54 | ||
+ | | 0x70012500 | ||
+ | | 0x70012500 | ||
+ | | 0x70412500 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_55 | ||
+ | | 0x70012504 | ||
+ | | 0x70012504 | ||
+ | | 0x70412504 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_56 | ||
+ | | 0x70012508 | ||
+ | | 0x70012508 | ||
+ | | 0x70412508 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_57 | ||
+ | | 0x7001250C | ||
+ | | 0x7001250C | ||
+ | | 0x7041250C | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_58 | ||
+ | | 0x70012510 | ||
+ | | 0x70012510 | ||
+ | | 0x70412510 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_59 | ||
+ | | 0x70012514 | ||
+ | | 0x70012514 | ||
+ | | 0x70412514 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_60 | ||
+ | | 0x70012518 | ||
+ | | 0x70012518 | ||
+ | | 0x70412518 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_61 | ||
+ | | 0x7001251C | ||
+ | | 0x7001251C | ||
+ | | 0x7041251C | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_62 | ||
+ | | 0x70012520 | ||
+ | | 0x70012520 | ||
+ | | 0x70412520 | ||
+ | |- | ||
+ | | SE_RSA_OUTPUT_63 | ||
+ | | 0x70012524 | ||
+ | | 0x70012524 | ||
+ | | 0x70412524 | ||
+ | |- | ||
+ | | SE_TZRAM_OPERATION | ||
+ | | - | ||
+ | | 0x70012540 | ||
+ | | - | ||
|- | |- | ||
| SE_STATUS | | SE_STATUS | ||
| 0x70012800 | | 0x70012800 | ||
+ | | 0x70012800 | ||
+ | | 0x70412800 | ||
|- | |- | ||
| SE_ERR_STATUS | | SE_ERR_STATUS | ||
| 0x70012804 | | 0x70012804 | ||
+ | | 0x70012804 | ||
+ | | 0x70412804 | ||
+ | |- | ||
+ | | SE_MISC | ||
+ | | 0x70012808 | ||
+ | | 0x70012808 | ||
+ | | 0x70412808 | ||
|- | |- | ||
− | | | + | | SE_SPARE |
+ | | 0x7001280C | ||
| 0x7001280C | | 0x7001280C | ||
+ | | 0x7041280C | ||
+ | |- | ||
+ | | SE_ENTROPY_DEBUG_COUNTER | ||
+ | | 0x70012810 | ||
+ | | 0x70012810 | ||
+ | | 0x70412810 | ||
|} | |} |
Latest revision as of 22:05, 2 June 2024
The Nintendo Switch uses Tegra's Security Engine (SE) for handling cryptographic opearations at the system's lowest level.
Registers
Erista only has one SE driver which is mapped to physical address 0x70012000 with a total size of 0x2000 bytes.
Mariko has two SE drivers which are mapped to physical addresses 0x70012000 (SE1) and 0x70412000 (SE2), each with a total size of 0x2000 bytes.
Name | Address (Erista SE) | Address (Mariko SE1) | Address (Mariko SE2) |
---|---|---|---|
SE_SE_SECURITY | 0x70012000 | 0x70012000 | 0x70412000 |
SE_TZRAM_SECURITY | 0x70012004 | 0x70012004 | 0x70412004 |
SE_OPERATION | 0x70012008 | 0x70012008 | 0x70412008 |
SE_INT_ENABLE | 0x7001200C | 0x7001200C | 0x7041200C |
SE_INT_STATUS | 0x70012010 | 0x70012010 | 0x70412010 |
SE_CONFIG | 0x70012014 | 0x70012014 | 0x70412014 |
SE_IN_LL_ADDR | 0x70012018 | 0x70012018 | 0x70412018 |
SE_IN_CUR_BYTE_ADDR | 0x7001201C | 0x7001201C | 0x7041201C |
SE_IN_CUR_LL_ID | 0x70012020 | 0x70012020 | 0x70412020 |
SE_OUT_LL_ADDR | 0x70012024 | 0x70012024 | 0x70412024 |
SE_OUT_CUR_BYTE_ADDR | 0x70012028 | 0x70012028 | 0x70412028 |
SE_OUT_CUR_LL_ID | 0x7001202C | 0x7001202C | 0x7041202C |
SE_HASH_RESULT_0 | 0x70012030 | 0x70012030 | 0x70412030 |
SE_HASH_RESULT_1 | 0x70012034 | 0x70012034 | 0x70412034 |
SE_HASH_RESULT_2 | 0x70012038 | 0x70012038 | 0x70412038 |
SE_HASH_RESULT_3 | 0x7001203C | 0x7001203C | 0x7041203C |
SE_HASH_RESULT_4 | 0x70012040 | 0x70012040 | 0x70412040 |
SE_HASH_RESULT_5 | 0x70012044 | 0x70012044 | 0x70412044 |
SE_HASH_RESULT_6 | 0x70012048 | 0x70012048 | 0x70412048 |
SE_HASH_RESULT_7 | 0x7001204C | 0x7001204C | 0x7041204C |
SE_HASH_RESULT_8 | 0x70012050 | 0x70012050 | 0x70412050 |
SE_HASH_RESULT_9 | 0x70012054 | 0x70012054 | 0x70412054 |
SE_HASH_RESULT_10 | 0x70012058 | 0x70012058 | 0x70412058 |
SE_HASH_RESULT_11 | 0x7001205C | 0x7001205C | 0x7041205C |
SE_HASH_RESULT_12 | 0x70012060 | 0x70012060 | 0x70412060 |
SE_HASH_RESULT_13 | 0x70012064 | 0x70012064 | 0x70412064 |
SE_HASH_RESULT_14 | 0x70012068 | 0x70012068 | 0x70412068 |
SE_HASH_RESULT_15 | 0x7001206C | 0x7001206C | 0x7041206C |
SE_CTX_SAVE_CONFIG | 0x70012070 | 0x70012070 | 0x70412070 |
SE_CTX_SAVE_AUTO | - | 0x70012074 | 0x70412074 |
SE_SHA_CONFIG | 0x70012200 | 0x70012200 | 0x70412200 |
SE_SHA_MSG_LENGTH_0 | 0x70012204 | 0x70012204 | 0x70412204 |
SE_SHA_MSG_LENGTH_1 | 0x70012208 | 0x70012208 | 0x70412208 |
SE_SHA_MSG_LENGTH_2 | 0x7001220C | 0x7001220C | 0x7041220C |
SE_SHA_MSG_LENGTH_3 | 0x70012210 | 0x70012210 | 0x70412210 |
SE_SHA_MSG_LEFT_0 | 0x70012214 | 0x70012214 | 0x70412214 |
SE_SHA_MSG_LEFT_1 | 0x70012218 | 0x70012218 | 0x70412218 |
SE_SHA_MSG_LEFT_2 | 0x7001221C | 0x7001221C | 0x7041221C |
SE_SHA_MSG_LEFT_3 | 0x70012220 | 0x70012220 | 0x70412220 |
SE_CRYPTO_SECURITY_PERKEY | 0x70012280 | 0x70012280 | 0x70412280 |
SE_CRYPTO_KEYTABLE_ACCESS_0 | 0x70012284 | 0x70012284 | 0x70412284 |
SE_CRYPTO_KEYTABLE_ACCESS_1 | 0x70012288 | 0x70012288 | 0x70412288 |
SE_CRYPTO_KEYTABLE_ACCESS_2 | 0x7001228C | 0x7001228C | 0x7041228C |
SE_CRYPTO_KEYTABLE_ACCESS_3 | 0x70012290 | 0x70012290 | 0x70412290 |
SE_CRYPTO_KEYTABLE_ACCESS_4 | 0x70012294 | 0x70012294 | 0x70412294 |
SE_CRYPTO_KEYTABLE_ACCESS_5 | 0x70012298 | 0x70012298 | 0x70412298 |
SE_CRYPTO_KEYTABLE_ACCESS_6 | 0x7001229C | 0x7001229C | 0x7041229C |
SE_CRYPTO_KEYTABLE_ACCESS_7 | 0x700122A0 | 0x700122A0 | 0x704122A0 |
SE_CRYPTO_KEYTABLE_ACCESS_8 | 0x700122A4 | 0x700122A4 | 0x704122A4 |
SE_CRYPTO_KEYTABLE_ACCESS_9 | 0x700122A8 | 0x700122A8 | 0x704122A8 |
SE_CRYPTO_KEYTABLE_ACCESS_10 | 0x700122AC | 0x700122AC | 0x704122AC |
SE_CRYPTO_KEYTABLE_ACCESS_11 | 0x700122B0 | 0x700122B0 | 0x704122B0 |
SE_CRYPTO_KEYTABLE_ACCESS_12 | 0x700122B4 | 0x700122B4 | 0x704122B4 |
SE_CRYPTO_KEYTABLE_ACCESS_13 | 0x700122B8 | 0x700122B8 | 0x704122B8 |
SE_CRYPTO_KEYTABLE_ACCESS_14 | 0x700122BC | 0x700122BC | 0x704122BC |
SE_CRYPTO_KEYTABLE_ACCESS_15 | 0x700122C0 | 0x700122C0 | 0x704122C0 |
SE_CRYPTO_CONFIG | 0x70012304 | 0x70012304 | 0x70412304 |
SE_CRYPTO_LINEAR_CTR_0 | 0x70012308 | 0x70012308 | 0x70412308 |
SE_CRYPTO_LINEAR_CTR_1 | 0x7001230C | 0x7001230C | 0x7041230C |
SE_CRYPTO_LINEAR_CTR_2 | 0x70012310 | 0x70012310 | 0x70412310 |
SE_CRYPTO_LINEAR_CTR_3 | 0x70012314 | 0x70012314 | 0x70412314 |
SE_CRYPTO_LAST_BLOCK | 0x70012318 | 0x70012318 | 0x70412318 |
SE_CRYPTO_KEYTABLE_ADDR | 0x7001231C | 0x7001231C | 0x7041231C |
SE_CRYPTO_KEYTABLE_DATA | 0x70012320 | 0x70012320 | 0x70412320 |
SE_CRYPTO_KEYTABLE_DST | 0x70012330 | 0x70012330 | 0x70412330 |
SE_RNG_CONFIG | 0x70012340 | 0x70012340 | 0x70412340 |
SE_RNG_SRC_CONFIG | 0x70012344 | 0x70012344 | 0x70412344 |
SE_RNG_RESEED_INTERVAL | 0x70012348 | 0x70012348 | 0x70412348 |
SE_RSA_CONFIG | 0x70012400 | 0x70012400 | 0x70412400 |
SE_RSA_KEY_SIZE | 0x70012404 | 0x70012404 | 0x70412404 |
SE_RSA_EXP_SIZE | 0x70012408 | 0x70012408 | 0x70412408 |
SE_RSA_SECURITY_PERKEY | 0x7001240C | 0x7001240C | 0x7041240C |
SE_RSA_KEYTABLE_ACCESS_0 | 0x70012410 | 0x70012410 | 0x70412410 |
SE_RSA_KEYTABLE_ACCESS_1 | 0x70012414 | 0x70012414 | 0x70412414 |
SE_RSA_KEYTABLE_ADDR | 0x70012420 | 0x70012420 | 0x70412420 |
SE_RSA_KEYTABLE_DATA | 0x70012424 | 0x70012424 | 0x70412424 |
SE_RSA_OUTPUT_0 | 0x70012428 | 0x70012428 | 0x70412428 |
SE_RSA_OUTPUT_1 | 0x7001242C | 0x7001242C | 0x7041242C |
SE_RSA_OUTPUT_2 | 0x70012430 | 0x70012430 | 0x70412430 |
SE_RSA_OUTPUT_3 | 0x70012434 | 0x70012434 | 0x70412434 |
SE_RSA_OUTPUT_4 | 0x70012438 | 0x70012438 | 0x70412438 |
SE_RSA_OUTPUT_5 | 0x7001243C | 0x7001243C | 0x7041243C |
SE_RSA_OUTPUT_6 | 0x70012440 | 0x70012440 | 0x70412440 |
SE_RSA_OUTPUT_7 | 0x70012444 | 0x70012444 | 0x70412444 |
SE_RSA_OUTPUT_8 | 0x70012448 | 0x70012448 | 0x70412448 |
SE_RSA_OUTPUT_9 | 0x7001244C | 0x7001244C | 0x7041244C |
SE_RSA_OUTPUT_10 | 0x70012450 | 0x70012450 | 0x70412450 |
SE_RSA_OUTPUT_11 | 0x70012454 | 0x70012454 | 0x70412454 |
SE_RSA_OUTPUT_12 | 0x70012458 | 0x70012458 | 0x70412458 |
SE_RSA_OUTPUT_13 | 0x7001245C | 0x7001245C | 0x7041245C |
SE_RSA_OUTPUT_14 | 0x70012460 | 0x70012460 | 0x70412460 |
SE_RSA_OUTPUT_15 | 0x70012464 | 0x70012464 | 0x70412464 |
SE_RSA_OUTPUT_16 | 0x70012468 | 0x70012468 | 0x70412468 |
SE_RSA_OUTPUT_17 | 0x7001246C | 0x7001246C | 0x7041246C |
SE_RSA_OUTPUT_18 | 0x70012470 | 0x70012470 | 0x70412470 |
SE_RSA_OUTPUT_19 | 0x70012474 | 0x70012474 | 0x70412474 |
SE_RSA_OUTPUT_20 | 0x70012478 | 0x70012478 | 0x70412478 |
SE_RSA_OUTPUT_21 | 0x7001247C | 0x7001247C | 0x7041247C |
SE_RSA_OUTPUT_22 | 0x70012480 | 0x70012480 | 0x70412480 |
SE_RSA_OUTPUT_23 | 0x70012484 | 0x70012484 | 0x70412484 |
SE_RSA_OUTPUT_24 | 0x70012488 | 0x70012488 | 0x70412488 |
SE_RSA_OUTPUT_25 | 0x7001248C | 0x7001248C | 0x7041248C |
SE_RSA_OUTPUT_26 | 0x70012490 | 0x70012490 | 0x70412490 |
SE_RSA_OUTPUT_27 | 0x70012494 | 0x70012494 | 0x70412494 |
SE_RSA_OUTPUT_28 | 0x70012498 | 0x70012498 | 0x70412498 |
SE_RSA_OUTPUT_29 | 0x7001249C | 0x7001249C | 0x7041249C |
SE_RSA_OUTPUT_30 | 0x700124A0 | 0x700124A0 | 0x704124A0 |
SE_RSA_OUTPUT_31 | 0x700124A4 | 0x700124A4 | 0x704124A4 |
SE_RSA_OUTPUT_32 | 0x700124A8 | 0x700124A8 | 0x704124A8 |
SE_RSA_OUTPUT_33 | 0x700124AC | 0x700124AC | 0x704124AC |
SE_RSA_OUTPUT_34 | 0x700124B0 | 0x700124B0 | 0x704124B0 |
SE_RSA_OUTPUT_35 | 0x700124B4 | 0x700124B4 | 0x704124B4 |
SE_RSA_OUTPUT_36 | 0x700124B8 | 0x700124B8 | 0x704124B8 |
SE_RSA_OUTPUT_37 | 0x700124BC | 0x700124BC | 0x704124BC |
SE_RSA_OUTPUT_38 | 0x700124C0 | 0x700124C0 | 0x704124C0 |
SE_RSA_OUTPUT_39 | 0x700124C4 | 0x700124C4 | 0x704124C4 |
SE_RSA_OUTPUT_40 | 0x700124C8 | 0x700124C8 | 0x704124C8 |
SE_RSA_OUTPUT_41 | 0x700124CC | 0x700124CC | 0x704124CC |
SE_RSA_OUTPUT_42 | 0x700124D0 | 0x700124D0 | 0x704124D0 |
SE_RSA_OUTPUT_43 | 0x700124D4 | 0x700124D4 | 0x704124D4 |
SE_RSA_OUTPUT_44 | 0x700124D8 | 0x700124D8 | 0x704124D8 |
SE_RSA_OUTPUT_45 | 0x700124DC | 0x700124DC | 0x704124DC |
SE_RSA_OUTPUT_46 | 0x700124E0 | 0x700124E0 | 0x704124E0 |
SE_RSA_OUTPUT_47 | 0x700124E4 | 0x700124E4 | 0x704124E4 |
SE_RSA_OUTPUT_48 | 0x700124E8 | 0x700124E8 | 0x704124E8 |
SE_RSA_OUTPUT_49 | 0x700124EC | 0x700124EC | 0x704124EC |
SE_RSA_OUTPUT_50 | 0x700124F0 | 0x700124F0 | 0x704124F0 |
SE_RSA_OUTPUT_51 | 0x700124F4 | 0x700124F4 | 0x704124F4 |
SE_RSA_OUTPUT_52 | 0x700124F8 | 0x700124F8 | 0x704124F8 |
SE_RSA_OUTPUT_53 | 0x700124FC | 0x700124FC | 0x704124FC |
SE_RSA_OUTPUT_54 | 0x70012500 | 0x70012500 | 0x70412500 |
SE_RSA_OUTPUT_55 | 0x70012504 | 0x70012504 | 0x70412504 |
SE_RSA_OUTPUT_56 | 0x70012508 | 0x70012508 | 0x70412508 |
SE_RSA_OUTPUT_57 | 0x7001250C | 0x7001250C | 0x7041250C |
SE_RSA_OUTPUT_58 | 0x70012510 | 0x70012510 | 0x70412510 |
SE_RSA_OUTPUT_59 | 0x70012514 | 0x70012514 | 0x70412514 |
SE_RSA_OUTPUT_60 | 0x70012518 | 0x70012518 | 0x70412518 |
SE_RSA_OUTPUT_61 | 0x7001251C | 0x7001251C | 0x7041251C |
SE_RSA_OUTPUT_62 | 0x70012520 | 0x70012520 | 0x70412520 |
SE_RSA_OUTPUT_63 | 0x70012524 | 0x70012524 | 0x70412524 |
SE_TZRAM_OPERATION | - | 0x70012540 | - |
SE_STATUS | 0x70012800 | 0x70012800 | 0x70412800 |
SE_ERR_STATUS | 0x70012804 | 0x70012804 | 0x70412804 |
SE_MISC | 0x70012808 | 0x70012808 | 0x70412808 |
SE_SPARE | 0x7001280C | 0x7001280C | 0x7041280C |
SE_ENTROPY_DEBUG_COUNTER | 0x70012810 | 0x70012810 | 0x70412810 |