mirror of
https://github.com/Atmosphere-NX/Atmosphere.git
synced 2024-12-23 10:52:13 +00:00
fusee_cpp: list remaining tasks for setup
This commit is contained in:
parent
565282d06e
commit
dbad464323
1 changed files with 11 additions and 21 deletions
|
@ -33,21 +33,6 @@ namespace ams::nxboot {
|
||||||
|
|
||||||
constinit secmon::EmummcConfiguration g_emummc_cfg = {};
|
constinit secmon::EmummcConfiguration g_emummc_cfg = {};
|
||||||
|
|
||||||
void DisableArc() {
|
|
||||||
/* Disable ARC_CLK_OVR_ON. */
|
|
||||||
reg::ReadWrite(CLKRST + CLK_RST_CONTROLLER_LVL2_CLK_GATE_OVRD, CLK_RST_REG_BITS_ENUM(LVL2_CLK_GATE_OVRD_ARC_CLK_OVR_ON, OFF));
|
|
||||||
|
|
||||||
/* Disable the ARC. */
|
|
||||||
reg::ReadWrite(MC + MC_IRAM_REG_CTRL, MC_REG_BITS_ENUM(IRAM_REG_CTRL_IRAM_CFG_WRITE_ACCESS, DISABLED));
|
|
||||||
|
|
||||||
/* Set IRAM BOM/TOP to close all redirection access. */
|
|
||||||
reg::Write(MC + MC_IRAM_BOM, 0xFFFFF000);
|
|
||||||
reg::Write(MC + MC_IRAM_TOM, 0x00000000);
|
|
||||||
|
|
||||||
/* Read to ensure our configuration takes. */
|
|
||||||
reg::Read(MC + MC_IRAM_REG_CTRL);
|
|
||||||
}
|
|
||||||
|
|
||||||
void DeriveAllKeys(const fuse::SocType soc_type) {
|
void DeriveAllKeys(const fuse::SocType soc_type) {
|
||||||
/* If on erista, run the TSEC keygen firmware. */
|
/* If on erista, run the TSEC keygen firmware. */
|
||||||
if (soc_type == fuse::SocType_Erista) {
|
if (soc_type == fuse::SocType_Erista) {
|
||||||
|
@ -351,9 +336,8 @@ namespace ams::nxboot {
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetupAndStartHorizon() {
|
void SetupAndStartHorizon() {
|
||||||
/* Get soc/hardware type. */
|
/* Get soc type. */
|
||||||
const auto soc_type = fuse::GetSocType();
|
const auto soc_type = fuse::GetSocType();
|
||||||
const auto hw_type = fuse::GetHardwareType();
|
|
||||||
|
|
||||||
/* Derive all keys. */
|
/* Derive all keys. */
|
||||||
DeriveAllKeys(soc_type);
|
DeriveAllKeys(soc_type);
|
||||||
|
@ -362,6 +346,7 @@ namespace ams::nxboot {
|
||||||
const bool emummc_enabled = ConfigureEmummc();
|
const bool emummc_enabled = ConfigureEmummc();
|
||||||
|
|
||||||
/* Initialize emummc. */
|
/* Initialize emummc. */
|
||||||
|
/* NOTE: SYSTEM:/ accessible past this point. */
|
||||||
InitializeEmummc(emummc_enabled, g_emummc_cfg);
|
InitializeEmummc(emummc_enabled, g_emummc_cfg);
|
||||||
|
|
||||||
/* Read bootloader. */
|
/* Read bootloader. */
|
||||||
|
@ -371,11 +356,16 @@ namespace ams::nxboot {
|
||||||
const auto target_firmware = GetTargetFirmware(package1);
|
const auto target_firmware = GetTargetFirmware(package1);
|
||||||
AMS_UNUSED(target_firmware);
|
AMS_UNUSED(target_firmware);
|
||||||
|
|
||||||
AMS_UNUSED(hw_type);
|
/* TODO: Read/decrypt package2. */
|
||||||
ShowFatalError("SetupAndStartHorizon not fully implemented\n");
|
|
||||||
|
|
||||||
/* Disable the ARC. */
|
/* TODO: Setup warmboot firmware. */
|
||||||
DisableArc();
|
|
||||||
|
/* TODO: Setup exosphere. */
|
||||||
|
|
||||||
|
/* TODO: Start CPU. */
|
||||||
|
/* NOTE: Security Engine unusable past this point. */
|
||||||
|
|
||||||
|
/* TODO: Build modified package2. */
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in a new issue