Security Engine: Difference between revisions
Fix register definitions |
No edit summary |
||
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. | |||
== Erista == | |||
{| class="wikitable" border="1" | |||
|- | |||
! Name | |||
! Address | |||
|- | |||
| SE_SE_SECURITY | |||
| 0x70012000 | |||
|- | |||
| SE_TZRAM_SECURITY | |||
| 0x70012004 | |||
|- | |||
| SE_OPERATION | |||
| 0x70012008 | |||
|- | |||
| SE_INT_ENABLE | |||
| 0x7001200C | |||
|- | |||
| SE_INT_STATUS | |||
| 0x70012010 | |||
|- | |||
| SE_CONFIG | |||
| 0x70012014 | |||
|- | |||
| SE_IN_LL_ADDR | |||
| 0x70012018 | |||
|- | |||
| SE_IN_CUR_BYTE_ADDR | |||
| 0x7001201C | |||
|- | |||
| SE_IN_CUR_LL_ID | |||
| 0x70012020 | |||
|- | |||
| SE_OUT_LL_ADDR | |||
| 0x70012024 | |||
|- | |||
| SE_OUT_CUR_BYTE_ADDR | |||
| 0x70012028 | |||
|- | |||
| SE_OUT_CUR_LL_ID | |||
| 0x7001202C | |||
|- | |||
| SE_HASH_RESULT_0 | |||
| 0x70012030 | |||
|- | |||
| SE_HASH_RESULT_1 | |||
| 0x70012034 | |||
|- | |||
| SE_HASH_RESULT_2 | |||
| 0x70012038 | |||
|- | |||
| SE_HASH_RESULT_3 | |||
| 0x7001203C | |||
|- | |||
| SE_HASH_RESULT_4 | |||
| 0x70012040 | |||
|- | |||
| SE_HASH_RESULT_5 | |||
| 0x70012044 | |||
|- | |||
| SE_HASH_RESULT_6 | |||
| 0x70012048 | |||
|- | |||
| SE_HASH_RESULT_7 | |||
| 0x7001204C | |||
|- | |||
| SE_HASH_RESULT_8 | |||
| 0x70012050 | |||
|- | |||
| SE_HASH_RESULT_9 | |||
| 0x70012054 | |||
|- | |||
| SE_HASH_RESULT_10 | |||
| 0x70012058 | |||
|- | |||
| SE_HASH_RESULT_11 | |||
| 0x7001205C | |||
|- | |||
| SE_HASH_RESULT_12 | |||
| 0x70012060 | |||
|- | |||
| SE_HASH_RESULT_13 | |||
| 0x70012064 | |||
|- | |||
| SE_HASH_RESULT_14 | |||
| 0x70012068 | |||
|- | |||
| SE_HASH_RESULT_15 | |||
| 0x7001206C | |||
|- | |||
| SE_CTX_SAVE_CONFIG | |||
| 0x70012070 | |||
|- | |||
| SE_SHA_CONFIG | |||
| 0x70012200 | |||
|- | |||
| SE_SHA_MSG_LENGTH_0 | |||
| 0x70012204 | |||
|- | |||
| SE_SHA_MSG_LENGTH_1 | |||
| 0x70012208 | |||
|- | |||
| SE_SHA_MSG_LENGTH_2 | |||
| 0x7001220C | |||
|- | |||
| SE_SHA_MSG_LENGTH_3 | |||
| 0x70012210 | |||
|- | |||
| SE_SHA_MSG_LEFT_0 | |||
| 0x70012214 | |||
|- | |||
| SE_SHA_MSG_LEFT_1 | |||
| 0x70012218 | |||
|- | |||
| SE_SHA_MSG_LEFT_2 | |||
| 0x7001221C | |||
|- | |||
| SE_SHA_MSG_LEFT_3 | |||
| 0x70012220 | |||
|- | |||
| SE_CRYPTO_SECURITY_PERKEY | |||
| 0x70012280 | |||
|- | |||
| SE_CRYPTO_KEYTABLE_ACCESS_0 | |||
| 0x70012284 | |||
|- | |||
| SE_CRYPTO_KEYTABLE_ACCESS_1 | |||
| 0x70012288 | |||
|- | |||
| SE_CRYPTO_KEYTABLE_ACCESS_2 | |||
| 0x7001228C | |||
|- | |||
| SE_CRYPTO_KEYTABLE_ACCESS_3 | |||
| 0x70012290 | |||
|- | |||
| SE_CRYPTO_KEYTABLE_ACCESS_4 | |||
| 0x70012294 | |||
|- | |||
| SE_CRYPTO_KEYTABLE_ACCESS_5 | |||
| 0x70012298 | |||
|- | |||
| SE_CRYPTO_KEYTABLE_ACCESS_6 | |||
| 0x7001229C | |||
|- | |||
| SE_CRYPTO_KEYTABLE_ACCESS_7 | |||
| 0x700122A0 | |||
|- | |||
| SE_CRYPTO_KEYTABLE_ACCESS_8 | |||
| 0x700122A4 | |||
|- | |||
| SE_CRYPTO_KEYTABLE_ACCESS_9 | |||
| 0x700122A8 | |||
|- | |||
| SE_CRYPTO_KEYTABLE_ACCESS_10 | |||
| 0x700122AC | |||
|- | |||
| SE_CRYPTO_KEYTABLE_ACCESS_11 | |||
| 0x700122B0 | |||
|- | |||
| SE_CRYPTO_KEYTABLE_ACCESS_12 | |||
| 0x700122B4 | |||
|- | |||
| SE_CRYPTO_KEYTABLE_ACCESS_13 | |||
| 0x700122B8 | |||
|- | |||
| SE_CRYPTO_KEYTABLE_ACCESS_14 | |||
| 0x700122BC | |||
|- | |||
| SE_CRYPTO_KEYTABLE_ACCESS_15 | |||
| 0x700122C0 | |||
|- | |||
| SE_CRYPTO_CONFIG | |||
| 0x70012304 | |||
|- | |||
| SE_CRYPTO_LINEAR_CTR_0 | |||
| 0x70012308 | |||
|- | |||
| SE_CRYPTO_LINEAR_CTR_1 | |||
| 0x7001230C | |||
|- | |||
| SE_CRYPTO_LINEAR_CTR_2 | |||
| 0x70012310 | |||
|- | |||
| SE_CRYPTO_LINEAR_CTR_3 | |||
| 0x70012314 | |||
|- | |||
| SE_CRYPTO_LAST_BLOCK | |||
| 0x70012318 | |||
|- | |||
| SE_CRYPTO_KEYTABLE_ADDR | |||
| 0x7001231C | |||
|- | |||
| SE_CRYPTO_KEYTABLE_DATA | |||
| 0x70012320 | |||
|- | |||
| SE_CRYPTO_KEYTABLE_DST | |||
| 0x70012330 | |||
|- | |||
| SE_RNG_CONFIG | |||
| 0x70012340 | |||
|- | |||
| SE_RNG_SRC_CONFIG | |||
| 0x70012344 | |||
|- | |||
| SE_RNG_RESEED_INTERVAL | |||
| 0x70012348 | |||
|- | |||
| SE_RSA_CONFIG | |||
| 0x70012400 | |||
|- | |||
| SE_RSA_KEY_SIZE | |||
| 0x70012404 | |||
|- | |||
| SE_RSA_EXP_SIZE | |||
| 0x70012408 | |||
|- | |||
| SE_RSA_SECURITY_PERKEY | |||
| 0x7001240C | |||
|- | |||
| SE_RSA_KEYTABLE_ACCESS_0 | |||
| 0x70012410 | |||
|- | |||
| SE_RSA_KEYTABLE_ACCESS_1 | |||
| 0x70012414 | |||
|- | |||
| SE_RSA_KEYTABLE_ADDR | |||
| 0x70012420 | |||
|- | |||
| SE_RSA_KEYTABLE_DATA | |||
| 0x70012424 | |||
|- | |||
| SE_RSA_OUTPUT_0 | |||
| 0x70012428 | |||
|- | |||
| SE_RSA_OUTPUT_1 | |||
| 0x7001242C | |||
|- | |||
| SE_RSA_OUTPUT_2 | |||
| 0x70012430 | |||
|- | |||
| SE_RSA_OUTPUT_3 | |||
| 0x70012434 | |||
|- | |||
| SE_RSA_OUTPUT_4 | |||
| 0x70012438 | |||
|- | |||
| SE_RSA_OUTPUT_5 | |||
| 0x7001243C | |||
|- | |||
| SE_RSA_OUTPUT_6 | |||
| 0x70012440 | |||
|- | |||
| SE_RSA_OUTPUT_7 | |||
| 0x70012444 | |||
|- | |||
| SE_RSA_OUTPUT_8 | |||
| 0x70012448 | |||
|- | |||
| SE_RSA_OUTPUT_9 | |||
| 0x7001244C | |||
|- | |||
| SE_RSA_OUTPUT_10 | |||
| 0x70012450 | |||
|- | |||
| SE_RSA_OUTPUT_11 | |||
| 0x70012454 | |||
|- | |||
| SE_RSA_OUTPUT_12 | |||
| 0x70012458 | |||
|- | |||
| SE_RSA_OUTPUT_13 | |||
| 0x7001245C | |||
|- | |||
| SE_RSA_OUTPUT_14 | |||
| 0x70012460 | |||
|- | |||
| SE_RSA_OUTPUT_15 | |||
| 0x70012464 | |||
|- | |||
| SE_RSA_OUTPUT_16 | |||
| 0x70012468 | |||
|- | |||
| SE_RSA_OUTPUT_17 | |||
| 0x7001246C | |||
|- | |||
| SE_RSA_OUTPUT_18 | |||
| 0x70012470 | |||
|- | |||
| SE_RSA_OUTPUT_19 | |||
| 0x70012474 | |||
|- | |||
| SE_RSA_OUTPUT_20 | |||
| 0x70012478 | |||
|- | |||
| SE_RSA_OUTPUT_21 | |||
| 0x7001247C | |||
|- | |||
| SE_RSA_OUTPUT_22 | |||
| 0x70012480 | |||
|- | |||
| SE_RSA_OUTPUT_23 | |||
| 0x70012484 | |||
|- | |||
| SE_RSA_OUTPUT_24 | |||
| 0x70012488 | |||
|- | |||
| SE_RSA_OUTPUT_25 | |||
| 0x7001248C | |||
|- | |||
| SE_RSA_OUTPUT_26 | |||
| 0x70012490 | |||
|- | |||
| SE_RSA_OUTPUT_27 | |||
| 0x70012494 | |||
|- | |||
| SE_RSA_OUTPUT_28 | |||
| 0x70012498 | |||
|- | |||
| SE_RSA_OUTPUT_29 | |||
| 0x7001249C | |||
|- | |||
| SE_RSA_OUTPUT_30 | |||
| 0x700124A0 | |||
|- | |||
| SE_RSA_OUTPUT_31 | |||
| 0x700124A4 | |||
|- | |||
| SE_RSA_OUTPUT_32 | |||
| 0x700124A8 | |||
|- | |||
| SE_RSA_OUTPUT_33 | |||
| 0x700124AC | |||
|- | |||
| SE_RSA_OUTPUT_34 | |||
| 0x700124B0 | |||
|- | |||
| SE_RSA_OUTPUT_35 | |||
| 0x700124B4 | |||
|- | |||
| SE_RSA_OUTPUT_36 | |||
| 0x700124B8 | |||
|- | |||
| SE_RSA_OUTPUT_37 | |||
| 0x700124BC | |||
|- | |||
| SE_RSA_OUTPUT_38 | |||
| 0x700124C0 | |||
|- | |||
| SE_RSA_OUTPUT_39 | |||
| 0x700124C4 | |||
|- | |||
| SE_RSA_OUTPUT_40 | |||
| 0x700124C8 | |||
|- | |||
| SE_RSA_OUTPUT_41 | |||
| 0x700124CC | |||
|- | |||
| SE_RSA_OUTPUT_42 | |||
| 0x700124D0 | |||
|- | |||
| SE_RSA_OUTPUT_43 | |||
| 0x700124D4 | |||
|- | |||
| SE_RSA_OUTPUT_44 | |||
| 0x700124D8 | |||
|- | |||
| SE_RSA_OUTPUT_45 | |||
| 0x700124DC | |||
|- | |||
| SE_RSA_OUTPUT_46 | |||
| 0x700124E0 | |||
|- | |||
| SE_RSA_OUTPUT_47 | |||
| 0x700124E4 | |||
|- | |||
| SE_RSA_OUTPUT_48 | |||
| 0x700124E8 | |||
|- | |||
| SE_RSA_OUTPUT_49 | |||
| 0x700124EC | |||
|- | |||
| SE_RSA_OUTPUT_50 | |||
| 0x700124F0 | |||
|- | |||
| SE_RSA_OUTPUT_51 | |||
| 0x700124F4 | |||
|- | |||
| SE_RSA_OUTPUT_52 | |||
| 0x700124F8 | |||
|- | |||
| SE_RSA_OUTPUT_53 | |||
| 0x700124FC | |||
|- | |||
| SE_RSA_OUTPUT_54 | |||
| 0x70012500 | |||
|- | |||
| SE_RSA_OUTPUT_55 | |||
| 0x70012504 | |||
|- | |||
| SE_RSA_OUTPUT_56 | |||
| 0x70012508 | |||
|- | |||
| SE_RSA_OUTPUT_57 | |||
| 0x7001250C | |||
|- | |||
| SE_RSA_OUTPUT_58 | |||
| 0x70012510 | |||
|- | |||
| SE_RSA_OUTPUT_59 | |||
| 0x70012514 | |||
|- | |||
| SE_RSA_OUTPUT_60 | |||
| 0x70012518 | |||
|- | |||
| SE_RSA_OUTPUT_61 | |||
| 0x7001251C | |||
|- | |||
| SE_RSA_OUTPUT_62 | |||
| 0x70012520 | |||
|- | |||
| SE_RSA_OUTPUT_63 | |||
| 0x70012524 | |||
|- | |||
| SE_STATUS | |||
| 0x70012800 | |||
|- | |||
| SE_ERR_STATUS | |||
| 0x70012804 | |||
|- | |||
| SE_MISC | |||
| 0x70012808 | |||
|- | |||
| SE_SPARE | |||
| 0x7001280C | |||
|- | |||
| SE_ENTROPY_DEBUG_COUNTER | |||
| 0x70012810 | |||
|} | |||
= | == Mariko == | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
Line 95: | Line 537: | ||
| SE_CTX_SAVE_CONFIG | | SE_CTX_SAVE_CONFIG | ||
| 0x70012070 | | 0x70012070 | ||
|- | |||
| SE_CTX_SAVE_AUTO | |||
| 0x70012074 | |||
|- | |- | ||
| SE_SHA_CONFIG | | SE_SHA_CONFIG | ||
Line 425: | Line 870: | ||
| SE_RSA_OUTPUT_63 | | SE_RSA_OUTPUT_63 | ||
| 0x70012524 | | 0x70012524 | ||
|- | |||
| SE_TZRAM_OPERATION | |||
| 0x70012540 | |||
|- | |- | ||
| SE_STATUS | | SE_STATUS |