mirror of
https://github.com/Atmosphere-NX/Atmosphere.git
synced 2025-05-29 05:55:16 -04:00
boot: prepare for rewrite of boot sysmodule
This commit is contained in:
parent
6034beb084
commit
7c5dc61795
12 changed files with 2902 additions and 2498 deletions
|
@ -38,11 +38,6 @@
|
|||
#include "sc7.h"
|
||||
#include "exocfg.h"
|
||||
|
||||
#define SMC_USER_HANDLERS 0x13
|
||||
#define SMC_PRIV_HANDLERS 0x9
|
||||
|
||||
#define SMC_AMS_HANDLERS 0x2
|
||||
|
||||
#define DEBUG_LOG_SMCS 0
|
||||
#define DEBUG_PANIC_ON_FAILURE 0
|
||||
|
||||
|
@ -97,7 +92,7 @@ typedef struct {
|
|||
uint32_t num_handlers;
|
||||
} smc_table_t;
|
||||
|
||||
static smc_table_entry_t g_smc_user_table[SMC_USER_HANDLERS] = {
|
||||
static smc_table_entry_t g_smc_user_table[] = {
|
||||
{0, 4, NULL},
|
||||
{0xC3000401, 4, smc_set_config_user},
|
||||
{0xC3000002, 1, smc_get_config_user},
|
||||
|
@ -118,8 +113,9 @@ static smc_table_entry_t g_smc_user_table[SMC_USER_HANDLERS] = {
|
|||
{0xC3000011, 4, smc_load_titlekey},
|
||||
{0xC3000012, 4, smc_unwrap_aes_wrapped_titlekey}
|
||||
};
|
||||
#define SMC_USER_HANDLERS (sizeof(g_smc_user_table) / sizeof(g_smc_user_table[0]))
|
||||
|
||||
static smc_table_entry_t g_smc_priv_table[SMC_PRIV_HANDLERS] = {
|
||||
static smc_table_entry_t g_smc_priv_table[] = {
|
||||
{0, 4, NULL},
|
||||
{0xC4000001, 4, smc_cpu_suspend},
|
||||
{0x84000002, 4, smc_cpu_off},
|
||||
|
@ -130,12 +126,15 @@ static smc_table_entry_t g_smc_priv_table[SMC_PRIV_HANDLERS] = {
|
|||
{0xC3000007, 1, smc_configure_carveout},
|
||||
{0xC3000008, 1, smc_read_write_register}
|
||||
};
|
||||
#define SMC_PRIV_HANDLERS (sizeof(g_smc_priv_table) / sizeof(g_smc_priv_table[0]))
|
||||
|
||||
/* This is a table used for atmosphere-specific SMCs. */
|
||||
static smc_table_entry_t g_smc_ams_table[SMC_AMS_HANDLERS] = {
|
||||
static smc_table_entry_t g_smc_ams_table[] = {
|
||||
{0, 4, NULL},
|
||||
{0xF0000201, 0, smc_ams_iram_copy},
|
||||
{0xF0000002, 0, smc_read_write_register},
|
||||
};
|
||||
#define SMC_AMS_HANDLERS (sizeof(g_smc_ams_table) / sizeof(g_smc_ams_table[0]))
|
||||
|
||||
static smc_table_t g_smc_tables[SMC_HANDLER_COUNT + 1] = {
|
||||
{ /* SMC_HANDLER_USER */
|
||||
|
@ -168,9 +167,7 @@ void set_version_specific_smcs(void) {
|
|||
case ATMOSPHERE_TARGET_FIRMWARE_100:
|
||||
/* 1.0.0 doesn't have ConfigureCarveout or ReadWriteRegister. */
|
||||
g_smc_priv_table[7].handler = NULL;
|
||||
/* However, it is in our interest to enable ReadWriteRegister. */
|
||||
/* So we will not actually NOP it out. */
|
||||
/* g_smc_priv_table[8].handler = NULL; */
|
||||
g_smc_priv_table[8].handler = NULL;
|
||||
/* 1.0.0 doesn't have UnwrapAesWrappedTitlekey. */
|
||||
g_smc_user_table[0x12].handler = NULL;
|
||||
break;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue