Commit graph

499 commits

Author SHA1 Message Date
Michael Scire 6780b096ca exo2: address volca review commentary 2020-06-14 22:07:45 -07:00
Michael Scire da4107996a exo2: first pass at backwards-compat 2020-06-14 22:07:45 -07:00
Michael Scire 42f1a3bf60 exo2: rename exosphere2 -> exosphere 2020-06-14 22:07:45 -07:00
Michael Scire 282f8f6612 ams: delete exo1 2020-06-14 22:07:45 -07:00
Michael Scire 95d38a1a94 exo2: suspend fixes (sleep/wake now works on hardware) 2020-06-14 22:07:45 -07:00
Michael Scire f66b41c027 exo2: Initial work on the exosphere rewrite.
exo2: Implement uncompressor stub and boot code up to Main().

exo2: implement some more init (uart/gic)

exo2: implement more of init

exo2: improve reg api, add keyslot flag setters

exo2: implement se aes decryption/enc

exo2: fix bugs in loader stub/mmu mappings

exo2: start skeletoning bootconfig/global context types

arch: fix makefile flags

exo2: implement through master key derivation

exo2: implement device master keygen

exo2: more init through start of SetupSocSecurity

exo2: implement pmc secure scratch management

se: implement sticky bit validation

libexosphere: fix building for arm32

libexo: fix makefile flags

libexo: support building for arm64/arm

sc7fw: skeleton binary

sc7fw: skeleton a little more

sc7fw: implement all non-dram functionality

exo2: fix DivideUp error

sc7fw: implement more dram code, fix reg library errors

sc7fw: complete sc7fw impl.

exo2: skeleton the rest of SetupSocSecurity

exo2: implement fiq interrupt handler

exo2: implement all exception handlers

exo2: skeleton the entire smc api, implement the svc invoker

exo2: implement rest of SetupSocSecurity

exo2: correct slave security errors

exo2: fix register definition

exo2: minor fixes
2020-06-14 22:07:45 -07:00
Michael Scire a2496e5462 exo: fix warmboot memory address error 2020-05-18 08:57:20 -07:00
SciresM 3a1ccdd919
Switch atmosphere's build target to C++20. (#952)
* ams: update to build with gcc10/c++20

* remove mno-outline-atomics

* ams: take care of most TODO C++20s

* fusee/sept: update for gcc10

* whoosh, your code now uses pre-compiled headers

* make: dependency fixes
2020-05-11 15:02:10 -07:00
Michael Scire 8e75a4169d ams: revamp target firmware 2020-05-06 22:29:07 -07:00
Michael Scire 7bc0250cea exosphere: correct reencryption of rsa private keys 2020-04-24 17:36:37 -07:00
SciresM 3bc2d79384
PRODINFO: Revamp blanking/write disallow policy. (#913)
* exo/fusee: hookup new prodinfo settings

* fusee: new scheme doesn't need FLAGS_DEFAULT

* fusee: fix c/p errors

* ams.mitm: completely revamp prodinfo backup mechanism

* ams.mitm: Implement revamped blanking/write policy

* strat: make early boot more debuggable

* exo: condense flag logic
2020-04-22 16:22:14 -07:00
Michael Scire 1d9a4f47fd exosphere: set cpuactlr to guarantee it holds non reset value 2020-04-15 01:26:28 -07:00
Michael Scire 3f5f9b60ea exosphere: ... 2020-04-15 00:14:36 -07:00
Michael Scire 7d30460214 exosphere: fix reentrancy of se interrupt handler 2020-04-14 12:23:08 -07:00
Michael Scire 4a38a36036 exo: fix c/p error 2020-04-14 03:03:04 -07:00
Michael Scire aa4c79cd9c exosphere: update to support 10.0.0 2020-04-13 23:30:54 -07:00
hexkyz b4856a2d07 exo/fusee/sept: fix uart pinmuxing (thanks @CTCaer and @TuxSH) 2020-03-09 19:38:56 +00:00
Michael Scire 6ecf04c3b7 find -exec sed -i'' -e 's/2018-2019 Atmo/2018-2020 Atmo/g' {} + 2020-01-24 02:10:40 -08:00
Jan4V 471bc7cc92 fusee/exo/sept: fix dev key derivation 2020-01-21 13:07:07 -08:00
Michael Scire 2e8f06ef44 exo: fix data abort in car access 2019-12-31 13:48:35 -08:00
Michael Scire 5fbd728962 exo: fix off-by-one 2019-12-31 13:29:08 -08:00
Michael Scire 11ec6a6912 fusee/exo/sept: additional fixes 2019-12-31 13:26:15 -08:00
hexkyz b89f0e45ec Cleanup FUSE, TSEC and SE code and add KFUSE state check during TSEC initialization (thanks @CTCaer). 2019-12-31 17:59:15 +00:00
Michael Scire 2866cb5fe6 mesosphere: Implement kernelldr through first page table mapping 2019-12-31 00:46:09 -08:00
Michael Scire d4f99ddb4d libstratosphere: use from /atmosphere/libraries 2019-12-09 18:54:29 -08:00
Michael Scire 7e6ff1f327 exosphere: support enabling usermode pmu regs (closes #703) 2019-12-07 15:35:34 -08:00
Michael Scire 33827fe3a3 Implement support for 9.1.0 2019-12-07 13:44:08 -08:00
Michael Scire 93d83c5bb9 ams: initial support for 9.0.0 2019-09-14 10:43:39 -07:00
hexkyz 0c3a294cbe Minor information update regarding previously unknown mysteries 2019-08-22 20:52:40 +01:00
TuxSH 72dd25a99e Fix uart init 2019-07-24 00:52:02 +02:00
hexkyz 0c688189f6 Fix uart pinmux configuration 2019-07-21 21:21:13 +01:00
hexkyz 7cee36544c Cleanup and re-write uart code 2019-07-21 19:18:15 +01:00
hexkyz 85bf7c86e0 fusee: cleanup and optimize boot sequence 2019-07-06 20:58:01 +01:00
Michael Scire 493b074a9e exo: support for 8.1.0 2019-06-18 23:54:53 -07:00
Michael Scire befd912a88 sept: update to support 8.1.0 2019-06-18 23:23:31 -07:00
Michael Scire c96ae0148e Revise sept key generation methodology. 2019-06-18 22:22:40 -07:00
Michael Scire 0dcb496522 Fix emummc nintendo dir redirection 2019-06-14 21:20:53 -07:00
Michael Scire 8bd79e8299 fusee: add automatic emummc injection support 2019-06-14 06:37:25 -07:00
Michael Scire 4f8ab5c599 exo: add smcAmsGetEmummcConfig 2019-06-14 04:06:33 -07:00
Michael Scire 6dd366cb22 Fix emunand SMC behaviors 2019-05-28 13:25:12 -07:00
Michael Scire 40b838c896 exo: add extension smc to write to user address 2019-05-28 02:56:15 -07:00
Michael Scire 79d96bbdfd fusee/exo: add emunand configitem support 2019-05-27 12:07:51 -07:00
Michael Scire bb6cc6532b fusee/exo: add ability to disable user exception handlers
please do not use this
yellows8 needs it to debug am, 99% of use cases want them on
2019-05-10 03:50:25 -07:00
Michael Scire 7c5dc61795 boot: prepare for rewrite of boot sysmodule 2019-04-29 03:25:24 -07:00
Michael Scire 6034beb084 boot_100.kip vs boot_200.kip is gross 2019-04-29 03:00:04 -07:00
Michael Scire 81895c8019 fusee: update to support booting 8.0.0 2019-04-20 10:36:38 -07:00
Michael Scire ae90a9d7a6 exo/fusee: implement 8.0.0 support (package2 changes still TODO) 2019-04-20 10:36:38 -07:00
Michael Scire 1e5fcff242 exo: always enable usermode exception handlers 2019-04-10 23:30:19 -07:00
2g4y1 3cb60b324b More 2019 Copyrights (#503) 2019-04-08 12:47:01 +02:00
Michael Scire 03e176d7f1 atmosphere: current year is 2019 2019-04-07 19:00:49 -07:00
Michael Scire 262d6af519 bis_protect: guard against autorcm on rcm-patched units 2019-04-01 17:24:15 -07:00
Michael Scire 350dccff3d exo: also check for rcm ipatch (thanks @balika011) 2019-04-01 16:37:04 -07:00
Michael Scire 4d76f4d79c exo: add config item for rcm patch detection (note TODO) 2019-04-01 13:10:45 -07:00
thedax fd4d6a4e55 exosphere: add new ConfigItem which allows the caller to retrieve the git commit hash. (#493) 2019-03-29 15:16:03 -07:00
Michael Scire 3fcad4bc65 exo: fix SE driver coherency bug (closes #384) 2019-03-14 13:07:54 -07:00
Michael Scire cfc9576eaf rebootstub: pc-relative load (thanks fincs) 2019-02-21 07:47:49 -08:00
Michael Scire 83f21d7d2a exo: don't forget to dereference your pointers kids 2019-02-21 07:41:09 -08:00
Michael Scire a0e06cf7b2 exo/bpc.mitm: Add support for proper shutdown. 2019-02-21 07:05:58 -08:00
Michael Scire 85669ef491 Fix off-by-one (thanks @CtCaer) 2019-02-20 04:52:44 -08:00
Michael Scire a71b2d9329 Exo: update package2 constants 2019-01-31 01:39:53 -08:00
Michael Scire 506ac3f167 exo: theoretical support for moved MAILBOX page 2019-01-30 23:13:27 -08:00
Michael Scire 46f4896992 exo/fusee: add support for new master key 2019-01-30 22:37:26 -08:00
Michael Scire 3d6405be85 exo: change config to its own static page
This is necessary to support both pre-7.0.0 and 7.0.0...
2019-01-30 13:53:16 -08:00
Michael Scire 0e4c300745 exo: fix rebootstub makefile 2019-01-24 09:18:18 -08:00
Michael Scire c6f06e2c40 exosphere: properly implement reboot-to-payload 2019-01-24 08:12:10 -08:00
Michael Scire deb124138b exosphere: Implement smc_ams_iram_copy 2019-01-22 05:38:27 -08:00
Michael Scire eeef08e58e exo: ensure IRAM initialization. 2019-01-22 05:38:27 -08:00
Michael Scire 295574740d exosphere: improve nested switch format 2019-01-22 05:38:27 -08:00
Michael Scire a52e601f2e exosphere: Add support for rebooting to a payload in IRAM. 2019-01-22 05:38:27 -08:00
Michael Scire d349bdb1f8 fusee/exo: build warmboot, use instead of Nintendo's. 2019-01-22 05:38:27 -08:00
Michael Scire caba025e97 warmboot: fix bugs in firmware 2019-01-22 05:38:27 -08:00
Michael Scire add52b90c9 exosphere: Add support for AMS SMC extensions 2019-01-22 05:38:27 -08:00
Michael Scire 34c16e211f warmboot: make remaining TODOs explicit 2018-12-18 16:02:49 -08:00
Michael Scire 95a9e1e215 warmboot: add code for decrypting/restoring tzram. 2018-12-18 15:55:16 -08:00
Michael Scire 3924a2ef76 warmboot: start secmon_restore_to_tzram 2018-12-18 15:31:34 -08:00
Michael Scire 4f9ecc9d50 warmboot: finish cluster_initialize_cpu 2018-12-17 17:32:44 -08:00
Michael Scire f6bc4abfd0 warmboot: implement cluster_power_on_cpu 2018-12-17 17:17:19 -08:00
Michael Scire 7a704827f1 warmboot: add flow_perform_ram_repair 2018-12-17 17:13:24 -08:00
Michael Scire 72594c6783 warmboot: add crail power on code 2018-12-17 17:03:39 -08:00
Michael Scire 754aaecc18 warmboot: add i2c code to enable PMIC 2018-12-17 16:48:14 -08:00
Michael Scire b419c0df29 warmboot: more code, through power on i2c5 2018-12-17 16:34:41 -08:00
Michael Scire a4ce50ffd5 warmboot: add through dpd disable 2018-12-17 16:18:27 -08:00
Michael Scire 802830d8d4 warmboot: start cluster_init, skeleton all remaining code 2018-12-17 16:04:50 -08:00
Michael Scire 83941f8647 warmboot: add car_mbist_workaround 2018-12-17 15:35:07 -08:00
Michael Scire 8d08e60916 warmboot: add ram config 2018-12-17 14:40:30 -08:00
Michael Scire 0b15539479 warmboot: add car_configure_oscillators 2018-12-17 14:18:04 -08:00
Michael Scire a94bee71d2 warmboot: add fuse bypass init 2018-12-17 13:58:28 -08:00
Michael Scire 5f905c6b42 warmboot: Add device debug configuration 2018-12-17 13:22:08 -08:00
Michael Scire e0f1e637f7 Add single source of truth for target firmwares. 2018-12-17 12:40:06 -08:00
Michael Scire fc4912ef54 exo: add stub warmboot.bin 2018-12-17 12:01:10 -08:00
Michael Scire dca51291aa Exo: bpmpfw -> sc7fw, lp0 -> sc7 2018-12-17 11:30:59 -08:00
Michael Scire b72a68f622 exo: follow hekate's example, disable warmboot signature checks via bootrom arbwrite.
(rip mariko)
2018-12-16 17:46:53 -08:00
Michael Scire d452d6f89d exo: Correct seal key source 2018-12-06 09:29:09 -08:00
Michael Scire a51d355707 exo: there's no reason to not always init uart to be safe, actually 2018-12-04 16:01:26 -08:00
Michael Scire a79f4cf6f6 exosphere: fix sleep mode when debugmode is enabled 2018-12-04 15:59:30 -08:00
Michael Scire fc426a06b2 exo: fix vaddr/paddr confusion in rcm reboot code 2018-12-01 13:56:13 -08:00
Michael Scire be5b58d033 fatal: Reboot to RCM if VOL is pressed instead of PWR. 2018-11-30 05:33:35 -08:00
Michael Scire 8d3b8354c3 Exosphere: Add extension to perform a reboot to rcm. 2018-11-30 04:57:17 -08:00
Michael Scire 72a2c10896 exosphere: Add support for enabling debugmode via BCT.ini 2018-11-30 03:10:27 -08:00
SciresM ab33329129
Merge pull request #266 from Atmosphere-NX/fatal
Implement custom fatal sysmodule.
2018-11-29 12:04:40 -08:00
Michael Scire 767a4b3606 fusee/exo: BYOK support for 6.2.0. Proper support TODO. 2018-11-25 22:37:24 -08:00
Michael Scire a71d98d78b exosphere: Implement optional 6.2.0+ keygen 2018-11-25 17:11:21 -08:00
Michael Scire eab5e0df9b exosphere: add EXOSPHERE_TARGET_FIRMWARE_620 2018-11-25 16:06:46 -08:00
Michael Scire e214f4d325 exosphere: update for new master key 2018-11-25 15:51:04 -08:00
hexkyz 7e3b5c37d0
exosphere: Add missing register write. 2018-11-15 21:38:32 +00:00
SciresM c530bb8910
Merge branch 'master' into fatal 2018-11-14 14:15:01 -08:00
hexkyz 7c61e935ee exosphere: Fix virtual mapping of MC_SECURITY_CFG3.
Allow DRAM magic test value to be written on < 4.0.0.
2018-11-14 21:12:36 +00:00
hexkyz e5e9968d22 fusee: Remove obsolete MC carveout configuration.
exosphere: Fix client access for MC carveout 2.
2018-11-14 20:14:41 +00:00
Michael Scire 2838e41819 Add defines for atmosphere git revision. 2018-11-13 12:42:35 -08:00
Michael Scire f9f9997d3f Exosphere: fix warmboot constant for 4.0.0-4.1.0 2018-10-17 16:40:57 -07:00
Michael Scire 6711cd93a8 atmosphere: extract API version management to common folder 2018-10-16 17:54:50 -07:00
Michael Scire 412511f32a Exosphere: Bump version to 0.7.0 2018-10-16 17:30:24 -07:00
Michael Scire 11159f5fa9 exosphere: Add package2 support for 6.0.0 2018-10-16 14:10:00 -07:00
TuxSH 06088d4c60 exosphere: fix neon regs being used => don't link against newlib, use -mgeneral-regs-only 2018-09-27 23:56:01 +02:00
TuxSH 210c6425c3 Cull unmainted exosphere/src/dbg folder 2018-09-27 22:54:30 +02:00
Michael Scire a2b4d9168d exosphere: ConfigItem_IsQuestUnit was added in 3.0, not 4.0 2018-09-20 13:47:20 -07:00
hexkyz 39d812f434 fusee: Move nxboot hand-off to IRAM.
fusee/exosphere: Minor cleanup.
2018-09-15 21:08:58 +01:00
Michael Scire fa0e906129 exosphere: Add support for 6.0.0. 2018-09-08 23:51:52 -07:00
hexkyz 28e4d4411d Add and fix copyright notices for better GPL compliance (thanks @naehrwert and @CTCaer). 2018-09-07 16:00:13 +01:00
Resaec d8451eb804 Merge branch 'master' of https://github.com/Atmosphere-NX/Atmosphere 2018-09-05 05:56:06 +02:00
Resaec 1c8abb4afb name some MC registers
replace hex values with enum
cleanup code for better readability
2018-09-05 05:55:46 +02:00
hexkyz a8ac5c651f
exosphere: Add SYSCTR0 register definitions. 2018-08-31 22:38:46 +00:00
hexkyz 611e85e6ee fusee: Implement BootConfig and Boot Reason handling. 2018-08-29 18:28:21 +01:00
Michael Scire c40bb9b317 Exosphere: Fix crash for certain games on newer firmwares 2018-08-20 19:31:15 -07:00
SciresM b5234e9efb
exo: cleanup + (theoretical) 1.0.0 support in smcCpuSuspend 2018-08-20 14:38:39 +09:00
Michael Scire d9f83ce368 exosphere: add theoretical dev unit key support 2018-08-16 22:13:29 -07:00
Michael Scire 7346ede1e1 exosphere: use our open source bpmpfw (warmboot still works) 2018-08-16 20:46:33 -07:00
Michael Scire 46f68fcbff Exosphere: Fix carveout saving (warmboot now works on 5.1.0) 2018-08-16 20:17:37 -07:00
Michael Scire a0deea8ae0 exo: fix SAVE_WP_REG definition 2018-08-16 18:56:49 -07:00
Michael Scire ee0117b59e exo: tabs->spaces... 2018-08-16 18:56:04 -07:00
Michael Scire f41aaccaa2 exosphere: commit WIP warmboot progress
-15+ bugs fixed
-We now receive ~0x400 SMCs from user processes
 (including from psm) on wake-from-sleep
2018-08-16 18:45:38 -07:00
Michael Scire adc496b6a7 Exosphere: Change physical segment maps depending on firmware version 2018-08-02 21:33:55 -07:00
Michael Scire a9b20b5553 Exosphere: Fix CFLAGs for latest devkitA64 2018-07-29 11:02:20 -07:00
hexkyz 7836609839 Fix multiple issues reported by Coverity Scan 2018-07-26 18:45:18 +01:00
hexkyz 116eb6c67c
Merge pull request #73 from Resaec/uart
Add UART register enumerators
2018-06-04 16:33:43 +01:00
Michael Scire fa4c219395 Exosphere: Fix bugs, now boots 5.1.0 successfully. 2018-06-01 22:20:04 -06:00
Michael Scire b566d04036 Exosphere: Fix 4.0+ hang while waiting for BPMP shutdown. 2018-06-01 01:39:08 -06:00
Michael Scire af9bee6e7f Exosphere: Fix SE definition bug, misc other bugs. Now boots on 1.0.0 2018-06-01 00:46:05 -06:00
Michael Scire 1058ac7b2d Exosphere: Fix MMIO configuration on low firmware versions. 2018-05-31 18:32:51 -06:00
TuxSH ad5be3cae5 Refactor exosphère's linker script
To properly separate text/rodata/data+bss, page-alignment needs to be added, as well as some symbol definitions and support code...
2018-05-27 00:36:41 +02:00
Michael Scire ef9adabb40 Exosphere: Fix MC carveout setup bug, now receives smcCpuOn from kernel on 1.0.0. 2018-05-21 20:14:18 -06:00
TuxSH 561fa90669 Use uintX_t for the SE & copy bugfixed SE struct definition 2018-05-21 19:05:00 +02:00
Michael Scire 366cc5e189 Exosphere: Fix extremely spooky Security Engine bugs, now makes it to the end of package2loader. 2018-05-21 04:30:53 -06:00
TuxSH b4eeddd7e1 Revamp all the Makefiles (thanks @fincs @WinterMute)
... dependencies are now properly handled (e.g. header changes, etc.)
2018-05-19 01:07:27 +02:00
Michael Scire 9424510f8f Exosphere: Fix remaining crt0 bugs, we now make it to pk2ldr. 2018-05-18 07:16:41 -06:00
Michael Scire 6954925f71 Exosphere: Fix bug, we now make it past MMU enable. 2018-05-18 06:58:49 -06:00
Michael Scire ea905725c4 Exosphere: Copy initial data image to DRAM for coldboot init. 2018-05-18 06:49:49 -06:00
Michael Scire 1a9f095463 Exosphere: Fix relocation bug (warmboot relocs currently broken in edge case) 2018-05-18 03:10:48 -06:00
TuxSH 5b5d3c69c2 [exosphere] Fix bug in package2.c 2018-05-17 16:15:30 +02:00
TuxSH 3dac6c9268 Fix bug in fusee: package2.c, etc. 2018-05-17 16:11:10 +02:00