Commit graph

301 commits

Author SHA1 Message Date
Michael Scire dc2b8ebab9 fusee: remove unnecessary delay. 2019-01-26 00:59:27 -08:00
Michael Scire 901723621c fusee: hide non-error logs behind splash screen (closes #328) 2019-01-26 00:50:38 -08:00
Michael Scire 3f6325c358 fusee-secondary: reboot to fusee-primary, instead of rcm 2019-01-26 00:21:34 -08:00
Michael Scire d349bdb1f8 fusee/exo: build warmboot, use instead of Nintendo's. 2019-01-22 05:38:27 -08:00
TuxSH d0505d3c11 Revert "Merge pull request #313 from jul2003/master"
This reverts commit dad67de8af, reversing
changes made to af55d5872c.
2019-01-22 05:38:27 -08:00
jul2003 d1abc53d33 devkitARM r50-3 buildfix 2019-01-22 05:38:27 -08:00
The Dax 3ce32d2014 DevkitARM r50-2 buildfix. 2019-01-22 05:38:27 -08:00
Michael Scire e0f1e637f7 Add single source of truth for target firmwares. 2018-12-17 12:40:06 -08:00
Michael Scire 0ef3368893 fusee: retry tsec key generation on failure. 2018-12-07 14:54:06 -08:00
Michael Scire 4827fd71b4 fusee: Fix race condition involving volatile reads 2018-12-07 14:27:46 -08:00
hexkyz 00aa283a54
fusee: Fix KFUSE clock. 2018-12-07 22:18:01 +00:00
Michael Scire 021d84ff04 fusee: remove duplicate hook 2018-12-01 21:39:29 -08:00
Michael Scire 8ecf68cb65 fusee: Add support for 1.0.0-7. 2018-12-01 21:38:28 -08:00
Michael Scire bd76e73b25 fusee: fix configuration typo 2018-12-01 13:58:09 -08:00
Michael Scire 33b7e227d4 fusee: do PMC reboots, not CAR reboots. 2018-11-30 06:34:20 -08:00
Michael Scire 5201803685 fusee: auto-apply nogc if fuses say we should. 2018-11-30 04:36:29 -08:00
Michael Scire 72f028efae fusee: Implement built-in support for togglable nogc patches 2018-11-30 04:10:23 -08:00
Michael Scire 72a2c10896 exosphere: Add support for enabling debugmode via BCT.ini 2018-11-30 03:10:27 -08:00
hexkyz ed37706915 fusee: Add full 6.2.0 support via SMMU virtualization. 2018-11-29 23:32:31 +00: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 c3569ec5e2 fusee: support getting old tsec key from new tsec fw. 2018-11-25 16:22:47 -08:00
hexkyz 982797df31
fusee: Fix custom splash screen loading. 2018-11-19 20:05:47 +00:00
hexkyz 6e7eb47d33 fusee: Minor hardware configuration fixes. 2018-11-17 21:50:31 +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
hexkyz b19e50e720 fusee: Implement DRAM training:
- Based on reverse engineered code and Peter De Schrijver's patches;
- Complemented with CTCaer's minerva_tc project.
2018-11-12 01:55:16 +00:00
Michael Scire ce1a6a68bf fs.mitm/loader: Fix crashes when launching too many processes. 2018-11-08 16:02:04 -08:00
Michael Scire 2f29bcef3a fusee: Fix IPS patching for KIPs. (closes #3). 2018-10-16 17:21:08 -07:00
Michael Scire 472059134a fusee: Hook up kip/kernel patch support (needs testing). 2018-10-16 16:17:30 -07:00
Michael Scire b78a3f7065 fusee: Add support for loading kernel from SD 2018-10-16 16:03:23 -07:00
Michael Scire d4d197a26a fusee: add untested, not hooked up ips code 2018-10-16 15:54:42 -07:00
Michael Scire bfa5847e48 fusee: Greatly simplify and improve KIP loading 2018-10-16 15:08:06 -07:00
Michael Scire 49f627bb28 fusee: Load fs.mitm by default. 2018-10-16 14:19:55 -07:00
hexkyz ca0e41e8a0 fusee: Improve integration with the new logging system
fusee: Implement log level configuration from BCT.ini
2018-09-28 21:12:59 +01:00
hexkyz 2e6983d214
Merge pull request #209 from Resaec/new_print
Silenced boot from stage 2
2018-09-28 16:26:42 +01:00
hexkyz b2b7bf2bb3
fusee: Fix support for firmware 6.0.0 2018-09-26 21:31:18 +01:00
hexkyz 7b0ed094a7
fusee: Fix support for firmware 6.0.0 2018-09-26 21:30:53 +01:00
Resaec 1d22bb7b81
we need to strip the NO_PREFIX flag so your log_level is corrected for checking against the global 2018-09-26 02:47:24 +02:00
Resaec d67a7c0a87
moving log.c and log.h to lib/
removing lib/driver_utils.h as it have no purpose anymore now
2018-09-26 02:13:20 +02:00
Resaec 762383f0d2
fix stray [DEBUG] at the end of sdmmc log 2018-09-26 00:25:01 +02:00
Resaec d2355cdc9b
add the ability to print without adding a prefix for multi part/line prints 2018-09-25 23:43:52 +02:00
Resaec 1eb3d7969e
changes to fit the codestyle
improved a comment
removed unused code and imports
2018-09-24 00:02:58 +02:00
Resaec 8cc266174d
change all print* calls to use the new print with a log_level 2018-09-23 23:22:25 +02:00
Resaec 7548c8ecfa
rather call the files log.c and log.h
changed LOG_LEVEL order
export only externaly used functions
add todos
2018-09-23 23:18:41 +02:00
Resaec 840242b68e started on centralized printing/logging
some character problems with "atmosphère" and such strings
2018-09-22 05:14:43 +02:00
hexkyz f622eac36e fusee: Finish implementing support for 6.0.0 2018-09-20 20:02:10 +01:00
hexkyz f864b0835d fusee: Add support for firmware version 6.0.0.
fusee: Implement splash screen rendering.
fusee: Add minor notes and update lz library.
2018-09-17 21:03:03 +01:00
hexkyz 39d812f434 fusee: Move nxboot hand-off to IRAM.
fusee/exosphere: Minor cleanup.
2018-09-15 21:08:58 +01:00
Michael Scire d61ec20679 fusee: add fs.mitm kernel patches for 6.0.0 2018-09-10 15:54:14 -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
hexkyz 2f8edfa8e2 fusee: Minor bugfixes. 2018-09-05 20:51:03 +01:00
hexkyz ad4605abde
fusee: Fix a bug in cluster boot code. 2018-09-04 19:16:03 +01:00
hexkyz 5542352239
fusee: Fix CAR registers' definition. 2018-09-04 19:14:29 +01:00
hexkyz 8007480a15
fusee: Re-enable built-in PM system module. 2018-09-03 18:48:01 +01:00
hexkyz abf57d2e43
fusee: Unmount *after* reading the splash screen. 2018-08-31 22:52:31 +00:00
hexkyz 58a42be38f
fusee: Comment out splash screen delay. 2018-08-31 22:46:08 +00:00
hexkyz 97d1ca3cc9
fusee: Disable built-in PM system module. 2018-08-31 20:10:06 +00:00
hexkyz 3cf37330ca fusee: Disable AHB redirection when necessary.
fusee: Add 3.0.0/3.0.1/3.0.2 warmboot fix.
2018-08-30 19:49:33 +01:00
hexkyz 611e85e6ee fusee: Implement BootConfig and Boot Reason handling. 2018-08-29 18:28:21 +01:00
hexkyz 8edec43be2 fusee: Add automatic firmware version detection. 2018-08-23 19:57:01 +01:00
hexkyz e5bfb95c22 fusee: Add warmboot support. 2018-08-19 17:09:30 +01:00
hexkyz 320ec38be1 fusee: Complete re-write of the hardware initialization code:
- Updated code to match hekate's;
- Improved nxboot (now boots firmwares 2.x successfully);
- Temporarily disabled built-in boot system module support;
- Fixed multiple bugs.
2018-08-18 17:59:33 +01:00
hexkyz 6eac78595e
fusee-secondary: Remove restriction for loading from eMMC 2018-08-01 21:15:16 +01:00
Lioncash 4b8455baf9 fusee-secondary: Correct else-if condition in xmemmove()
Previously both the if and else conditions were the same.
2018-07-29 20:53:01 -07:00
Lioncash bbdf2868c9 fusee-secondary/fs_dev: Correct uninitialized cast within fsdev_seek()
Previously this was casting the same unassigned variable that was being
assigned to.
2018-07-29 20:15:44 -07:00
Luke Street a3d53fbb2c Define wait() in fusee-primary/secondary 2018-07-29 10:53:06 -07:00
hexkyz 054c65dffb
Revert unnecessary change (thanks @rajkosto) 2018-07-26 19:26:43 +01:00
hexkyz 7836609839 Fix multiple issues reported by Coverity Scan 2018-07-26 18:45:18 +01:00
hexkyz fd88bd1d2c
fusee: Disable the SDCLK when switching to low voltage. 2018-07-24 19:06:41 +01:00
hexkyz e58927a8ab fusee: Fix SDMMC high speed support and other bugs. 2018-07-23 20:14:53 +01:00
hexkyz 3db9ce32fa Fusee: Deployed new SDMMC driver in fusee-secondary. All stages boot now.
Fusee: Fixed wrong argument in se.c function.
Fusee: Improved timers.
2018-07-19 21:07:53 +01:00
hexkyz 3394f0cf0d
Merge pull request #161 from TheDgtl/fix_4xx_kernel
Fix issue with fusee-secondary 4.x kernel patches
2018-07-04 22:06:11 +01:00
hexkyz c5e9aec013 fusee: Temporarily disable anything that prevents the fusee-primary to fusee-secondary transition. 2018-07-04 22:04:41 +01:00
Drakia 6ab81e1780 Fix issue with fusee-secondary 4.x kernel patches 2018-07-01 17:50:02 -07:00
Benoit7413 0f6d4baa8e
Replace NAND by eMMC
Using NAND doens't really make sense
2018-06-26 08:49:50 +02:00
Michael Scire 9687218fbc Fusee: lfs kernel patches for 3.0.0/3.0.2 2018-06-24 16:24:22 -06:00
Michael Scire 1252c4d5e1 Fusee: Complete hashes (Thanks @Thog), lfs patches for 2.0.0 2018-06-24 15:51:29 -06:00
Michael Scire 040cfa90d3 Fusee: Add kernel patches for 1.0.0. 2018-06-24 15:20:16 -06:00
Drakia a446aca2c4 Fix a few issues in the secondary kernel_patches.c file 2018-06-17 19:28:19 -07:00
hexkyz fca9ed2a15
Merge pull request #145 from Traiver/master
fusee: Add 4.1.0 kernel patch definitions
2018-06-17 16:56:36 +01:00
Traiver 33af704ee2
Update kernel_patches.c 2018-06-17 15:54:06 +02:00
Traiver 57819fa345
Update kernel_patches.c 2018-06-17 14:02:08 +02:00
Traiver 0295c8a51d
Update kernel_patches.c 2018-06-17 12:38:57 +02:00
Traiver b211a7cf05
add kernel patches for 4.1.0 2018-06-17 11:00:42 +02:00
DavidBuchanan314 20a721a4a6 fusee: correct 4.x free_code_space_offset value 2018-06-13 22:26:00 +01:00
DavidBuchanan314 58d2f8f0a5 fusee: Add 3.0.0-3.0.1 kernel hash (and free_code_space_offset) 2018-06-13 22:08:18 +01:00
Tomasz Moń 206c10f333 Rework sdmmc clocking configuration
Use 204 MHz as host clock in SDR104 mode instead of 136 MHz.
Due to this, also change the frequency init divider so the
initialization frequency is below 400 kHz.
This makes the clocks for SDMMC1 in all modes to match the TRM table.

Make it clear in the code that HS200/HS400 modes in fact use PLLP_OUT0
and not PLLC4_OUT2_LJ like the comment suggest. In fact selecting the
PLLC4_OUT2_LJ as clock source results in freeze after switching to
HS200/HS400 mode. This is most likely related to the PLLC4 not being
enabled, but it should be checked later.

Set the HS200/HS400 divider to 3, as this is what the code really did
set prior to this change - so this commit does not change that.

Configure Legacy 12 MHz clock to run at 12 MHz using the SW default
configuration (as per TRM) for the SDMMC legacy timer.

Introduce initial version of sdmmc_host_clock_delay() in order to use it
in places where the wait is host clock dependent. The way it is
implemented now does not change the sleep that was used instead.
2018-06-12 17:20:15 +02:00
Max K d8c9399cff fusee: Run periodic autocal only on the uSD controller (#137) 2018-06-10 21:09:48 -07:00
hexkyz ceb93867b4
Merge pull request #132 from tslater2006/master
Add sdmmc_dump_regs function
2018-06-10 16:21:18 +01:00
Tomasz Moń 804a40830e Fix race conditions and misconfiguration in sdmmc
Properly configure pull up and pull down offsets for autocal.
Run autocal prior to every transfer.

Prevent race conditions in sdmmc_wait_for_event() - make sure the fault
handler has highest priority, then the target irq, state conditions and
finally the error mask.

Do not clear all bits (|=) when acknowledging fault conditions,
only acknowledge the fault conditions itself.

Enable interrupts before preparing command registers - if sdmmc is fast
enough it can actually finish transfer before we enabled the interrupts.
Enabling interrupts clears the COMMAND COMPLETE status bit.

Temporarily print all the sdmmc messages in stage2 - for yet unknown
reason respecting the log level results in some failures.

This results in working microsd card in stage2 on my switch with Samsung
EVO+ 256GB microsd card.
2018-06-09 17:37:53 +02:00
Timothy Slater a79d3454d8 Switched to mmc_debug, and use inttypes 2018-06-08 07:50:36 -05:00
Timothy Slater 7df8ca7c4b use printf instead of printk for secondary 2018-06-07 13:05:41 -05:00
Timothy Slater ca907077af Add sdmmc_dump_regs function 2018-06-07 12:55:29 -05:00
Tomasz Moń 7b9dcd2f1a Make sdmmc autocalibration follow TRM procedure
Sleep for 1 us, not 1 ms.
Timeout after 10 ms, set driver strength code values according to TRM.

Fix typo (mS) - time is in milliseconds, not milliSiemens.
2018-06-05 19:07:14 +02:00
TuxSH 0491a21a99 Fix logic bug in stage2's main function 2018-06-05 16:18:02 +02:00
Max K 6b7da2887f package2 verification and ini1 merging fixes (#125)
* fusee: Incremet offset while reading kip1s

* fusee: Pass package2 section data along with the decrypted metadata
2018-06-04 14:04:44 -07:00
TuxSH b2139ed182 Pass screen status and mmc struct from stage1 to 2 2018-06-04 19:17:23 +02:00
hexkyz 7e5fda86b2
Merge pull request #114 from desowin/sdmmc-errata
Set SDMMC controller to SDR104 as a workaround
2018-06-04 16:20:19 +01:00
langerhans 41429e9120 fusee: Add kernel hash for 4.x 2018-06-03 16:59:21 +02:00
Michael Scire 968c86578a Fusee: Add 5.x kernel patches to allow for IPC PID mitm. 2018-06-02 20:01:44 -06:00
Michael Scire cc69079d73 Fusee: Add mechanism for branching back at end of hook. 2018-06-02 19:11:50 -06:00