Commit graph

620 commits

Author SHA1 Message Date
CTCaer 2424ecc4f0 Disable coreboot.rom chainloading for T210B01
Unlike all RCM payloads that are based on hekate's hwinit, coreboot does full power management before sdram init is run.

Because of that and because it doesn't support T210B01, it does not hang as expected and configures all regulators and pins which can be dangerous!
2020-12-02 00:57:32 +02:00
CTCaer da0cdf1bd0 hos: Add stock secmon support for Mariko 2020-07-04 21:58:21 +03:00
CTCaer 708863358e hos: Move warmboot patching into pkg1 object 2020-07-04 21:44:39 +03:00
CTCaer a862b85a46 hos: Add Mariko warmboot storage and general configurator
The Mariko warmboot storage is needed because the warmboot exploit is not existant.

Fuses and PA id must match with the proper warmboot binary. Thus for supporting downgrades, we keep a copy of it for future use.
2020-07-04 21:43:34 +03:00
CTCaer 495907b8a4 sept: Mark as ready for Mariko 2020-07-04 21:36:37 +03:00
CTCaer 8ef9f888f6 hos: Add PK21 decryption support for Mariko 2020-07-04 21:35:26 +03:00
CTCaer 9b3e9724b7 hos: Add Mariko PK11 decryption and unpacking 2020-07-04 21:32:36 +03:00
CTCaer 8880dfab24 eks: Disallow on Mariko 2020-07-04 21:21:48 +03:00
CTCaer 5ffbbf40a5 hos: Add Mariko keygen 2020-07-04 21:13:25 +03:00
CTCaer 528ddbe12c minerva: Disable for T210B01
Minerva is currently unsupported for Mariko LPDDR4X.
2020-07-04 21:02:45 +03:00
CTCaer 1c9efa327c Correct RCM patched status for Mariko
This also disallows AutoRCM for Mariko.
2020-06-26 22:40:06 +03:00
CTCaer d0a73bdc72 sc7: Add T210B01 SC7/LP0 (deep sleep) support
Note to future self: Almost a month passed and nothing changed, have fun cleaning that in the end...
2020-06-26 19:00:30 +03:00
CTCaer cabaa6cfb8 Utilize BIT macro everywhere 2020-11-26 01:41:45 +02:00
CTCaer cabb8cd33a Allow booting on damaged fuel gauge 2020-11-15 14:49:54 +02:00
CTCaer 669e42960c Utilize ARRAY_SIZE macro 2020-11-15 13:56:45 +02:00
CTCaer 1c19a69e35 hos: Do not use custom kernel if stock 2020-11-15 13:45:45 +02:00
CTCaer 67a03bbd85 eks: Use LOT0 for identification 2020-11-15 13:43:22 +02:00
CTCaer 68d57861cd Add missing guard from some macros
Guard them for future usage, as none of these macros had a non-preset variable used with them yet.
2020-11-15 13:39:27 +02:00
CTCaer 5a6608dff4 Bump hekate to v5.3.4 and Nyx to v0.9.5 2020-10-27 21:28:06 +02:00
CTCaer 8f222fd0bd main: Fix update.bin creation on first boot 2020-10-27 21:27:51 +02:00
CTCaer 1f5b371608 Refactor some names
Additionally:
- Do not retry to init sd if all modes failed in Nyx.
- Do not try to read/write if sdmmc controller and card are not initialized.
2020-10-23 06:32:24 +03:00
CTCaer ce156ab4e7 hos: Automate some eks and bis checks 2020-10-20 11:53:28 +03:00
CTCaer 9d1c0ce308 Create update.bin if missing
This will allow l4t/Android to always use latest hekate in case of old r2p.
2020-10-20 10:34:33 +03:00
CTCaer 27b1f0e843 Various small fixes 2020-10-20 10:32:32 +03:00
CTCaer 2f5b52223c config: Add bootloader protection
`bootprotect=1` enables protection of the `bootloader` folder inside HOS.

This disallows any reading/writing of the folder and its contents inside HOS, preventing any corruption of it.

This of course has the side-effect of homebrew that depend on it (e.g. hekate Toolbox) to not work fully.
2020-10-20 10:16:12 +03:00
CTCaer bf222290b8 hos: Add support for mesosphere
The change adds support for mesosphere loading from fss0 or sd (kernel=).
2020-10-17 23:18:48 +03:00
CTCaer d825be5eb2 hos: Tiny refactoring 2020-10-17 23:16:16 +03:00
Aurora Wright 216d97aada Push changes as requested 2020-10-17 21:11:21 +02:00
Aurora Wright e3421fd44e hos: Prevent sysmmc boot on emummc patch failure if emummc is forced 2020-10-14 19:37:36 +02:00
CTCaer 85d43147ee Bump hekate to v5.3.3 and Nyx to v0.9.4 2020-09-15 20:24:56 +03:00
CTCaer 8f7bdd45b1 hos: Report exFAT compatible if missing FS kip hashes 2020-09-15 19:07:16 +03:00
CTCaer 0142ac1697 Add TUI reload in case of missing bootloader files 2020-09-15 18:57:49 +03:00
Nichole Mattera bdb21ce3fd Added new FS patches for 10.2.0. 2020-09-15 07:26:27 -04:00
CTCaer 926bd5d2fb Add SD error report on first boot 2020-08-28 09:37:48 +03:00
CTCaer 9686eaf3f1 info: Add better SD error debugging on hekate main
Now the SD Card info function on hekate main will not rely on proper FAT partition, allowing for SDMMC init and FAT mounting to be separate for debugging issues with each one.

Additionally, add SDMMC error counters info.
2020-08-15 13:23:11 +03:00
CTCaer 98555b24f8 l4t: Clear boot mode if user canceled autoboot 2020-08-15 13:12:41 +03:00
CTCaer 15b46ddb27 hos: Hold more devices in Reset for secmon launch 2020-08-15 12:31:44 +03:00
CTCaer 78c4e6510d hos: Add backup bootloader support 2020-08-15 12:30:18 +03:00
CTCaer fb7c83a66c exo: Fix exo fatal dump's header 2020-08-02 03:51:36 +03:00
CTCaer f021665089 Bump hekate to v5.3.2 2020-07-19 23:26:05 +03:00
CTCaer 6c887c15be l4t: Disable kernel panic dumping for now 2020-07-19 23:25:49 +03:00
CTCaer 2b7722da7d hos: Fix hold usbd in reset 2020-07-19 23:10:21 +03:00
CTCaer 4f65697522 Bump hekate to v5.3.1 and Nyx to v0.9.3 2020-07-19 20:56:22 +03:00
CTCaer af0cd34f92 l4t: Add panic dump (PSTORE) 2020-07-19 20:32:22 +03:00
CTCaer b8ca88ee0a exo: Change fatal names and add stack overflow 2020-07-18 12:53:05 +03:00
CTCaer 11df6030f9 Various fixes 2020-07-18 00:54:35 +03:00
CTCaer 32e58d2bb3 hw init: Cosmetic refactoring 2020-07-17 18:08:27 +03:00
CTCaer 638a3909c5 Refactor various variables and names 2020-07-17 18:00:32 +03:00
CTCaer e158d9bc00 clk: Refactor CLK devices bits 2020-07-17 16:50:17 +03:00
CTCaer 3ddd1c26ad pkg1: Fix PK11 component split in pkg1/2 dump tool 2020-07-14 23:29:48 +03:00
CTCaer ab5b59e10d Refactor fatal/hard error names 2020-07-14 22:41:48 +03:00
CTCaer ddc89c9f49 hos: Reduce size of pkg1 id array 2020-06-22 12:04:49 +03:00
CTCaer 9673d5524a hos: Fix pkg2 re-encryption for exo2 & 8.1.0/9.0.X 2020-06-20 21:31:58 +03:00
CTCaer 98e05d941d Bump hekate to v5.3.0 and Nyx to v0.9.2 2020-06-15 17:33:20 +03:00
CTCaer 90ab1e5656 hos: Hold USBD in reset before booting 2020-06-15 17:33:13 +03:00
CTCaer f689bb253e nyx: Add simple CAL0 info 2020-06-15 15:03:14 +03:00
CTCaer 2aa9055fae Various fixes 2020-06-15 14:58:50 +03:00
CTCaer 1369d66043 exo: Use exo new instead of fss ver for new versioning 2020-06-15 10:57:15 +03:00
CTCaer 9e48d64b27 hos: Clear secmon mailbox where appropriate 2020-06-15 10:54:52 +03:00
CTCaer 6e256d29c7 Utilize hekate's BDK for hekate main and Nyx 2020-06-14 16:45:45 +03:00
CTCaer 185526d134 Introducing Bootloader Development Kit (BDK)
BDK will allow developers to use the full collection of drivers,
with limited editing, if any, for making payloads for Nintendo Switch.

Using a single source for everything will also help decoupling
Switch specific code and easily port it to other Tegra X1/X1+ platforms.
And maybe even to lower targets.

Everything is now centrilized into bdk folder.
Every module or project can utilize it by simply including it.

This is just the start and it will continue to improve.
2020-06-14 15:25:21 +03:00
CTCaer ae7ef7d79a fuse: Add get odm keygen type 2020-06-14 14:10:29 +03:00
CTCaer 273f11cd59 sdram: Extend sdram id 2020-06-14 14:07:21 +03:00
CTCaer f5092bc981 heap: Add heap object copy 2020-06-14 14:02:13 +03:00
CTCaer 9489eca487 hos: Add secmon/warmboot base selection 2020-06-14 14:00:07 +03:00
CTCaer 3aa195943d hos: Add identification for hos 5.1.0 2020-06-14 13:58:03 +03:00
CTCaer 3c6c92aa9c exo: Add support for exo2 2020-06-14 13:57:11 +03:00
CTCaer c2160ae367 hos: Fix a long standing bug with kip1 patches
The kip1 patcher since its inception was checking for patches wrongly.
This would create an edge case scenario, where up to 1 patch could be skipped.
2020-06-14 13:55:41 +03:00
CTCaer d607a8830b hos: Support new sept/exo keyslots 2020-06-14 13:53:21 +03:00
CTCaer f7f99bddab hos: Remove emmc reinit for grabbing rsa modulus 2020-06-14 13:49:59 +03:00
CTCaer 4564db0b6d exo: Support new fw versioning 2020-06-14 13:49:03 +03:00
CTCaer 0a44a31f2c hos: Allow booting when kip1 patches failed
This can lead to a hanged boot if kip was corrupted or it can lead to unforeseen results if emummc or nogc patches fail and user chooses to continue.
2020-06-14 13:47:47 +03:00
CTCaer 0692e4de8d hos: Fix some keyslot bugs 2020-06-14 13:45:01 +03:00
CTCaer 92d013dd65 eks: Upgrade to new version and support BIS keys 2020-06-14 13:42:48 +03:00
CTCaer 28f2fb1468 emummc: Fix issue with emu_path corrupting bss 2020-06-14 13:32:04 +03:00
CTCaer ad5a50ecd9 emummc: Bail if emummc is not enabled 2020-06-14 13:31:16 +03:00
CTCaer 4d8dbe068d sept: Remove support for obsolete no _00/01 suffix 2020-06-14 13:25:08 +03:00
CTCaer 157e415636 uart: Decreases timeouts to reduce latency 2020-06-14 13:21:59 +03:00
CTCaer 48f84c5cf4 gpio: Remove dependency to irq driver 2020-06-14 13:20:56 +03:00
CTCaer 1d3d1c8454 clock: Prevent PLLC4 from glitching 2020-06-14 13:19:53 +03:00
CTCaer bb2b339b54 ianos: Remove sd (un)mount usage 2020-06-14 13:17:26 +03:00
CTCaer 90a759b98e Use reconfig workaround for power off and reboots 2020-06-14 13:05:51 +03:00
CTCaer 0096b91146 Add corrupted bmp protection 2020-06-14 13:04:13 +03:00
CTCaer 87ce09f4b1 Some fixes 2020-06-14 12:50:54 +03:00
CTCaer 31f90a0a47 se: Fix CBC encryption 2020-06-14 03:10:30 +03:00
CTCaer af30904624 se: Simplify oneshot execute calls 2020-06-14 03:10:04 +03:00
CTCaer f2f995af17 se: Allow sha256 continuation without saving the msg 2020-06-14 03:08:27 +03:00
CTCaer 1c213d73c9 hos: Remove some unneeded secmon patches 2020-06-14 02:24:18 +03:00
CTCaer 3dcd2ad15f hos: Header for pkg2 is now more proper 2020-06-14 02:23:02 +03:00
CTCaer accf226214 hos: Fix bct clear 2020-06-14 02:19:55 +03:00
CTCaer 71df1e2da1 hos: Initialize eMMC only once. Saves half second. 2020-06-14 02:13:18 +03:00
CTCaer d49a40b0da hekate: Better error prints for failed launching 2020-06-14 02:09:48 +03:00
CTCaer 75c6b01696 power: Always enable low battery protect 2020-06-14 02:05:57 +03:00
CTCaer eb2c8a032f power: Enable charger unconditionally 2020-06-14 02:04:50 +03:00
CTCaer 416db840ec power: Refactor max17050 driver 2020-06-14 02:03:43 +03:00
CTCaer b0c4cef077 power: Fix max77621 DVS voltage reg names 2020-06-14 02:02:26 +03:00
CTCaer 58d12e5754 power: Refactor bq24193 driver 2020-06-14 02:01:26 +03:00
CTCaer bcda64a5df tsec: Decouple hos header dependency 2020-06-14 01:32:54 +03:00
CTCaer ba77de3dc5 exo: Refactor exo_cfg context to exo_ctx 2020-06-14 01:29:41 +03:00
CTCaer 53325617bb hos: Small refactoring 2020-06-14 01:27:08 +03:00
CTCaer 8e836d958f Rename cluster to ccplex 2020-06-14 01:09:17 +03:00
CTCaer 780d17e61c tui: Remove menu logo and ifdefs 2020-06-13 18:35:07 +03:00
CTCaer c613acb31d tui: Localize status bar time keeping 2020-06-13 18:33:44 +03:00
CTCaer 21548545fc Equalize hekate main and Nyx sd based functions 2020-06-13 18:32:40 +03:00
CTCaer 7dd3178d48 Equalize hekate main and Nyx common functions 2020-06-13 18:16:29 +03:00
Dave Murphy cc54df87d7 fixes for compiling with gcc 10
gcc 10 no longer lets you get away with not externing global variables in header files. This adds the necessary extern and adds defines in appropriate c files
2020-05-08 23:32:44 +01:00
CTCaer f085cbc4a4 Bump hekate to v5.2.1 and Nyx to v0.9.1 2020-05-05 20:40:22 +03:00
CTCaer 7543234401 emummc: Fix emupath folder and add more checks
The checks are checking if the emuMMC was found. If it didn't  and error will be show.
2020-05-05 19:23:31 +03:00
CTCaer 5b91c54936 fatfs: Backport some fixes 2020-05-05 19:21:07 +03:00
CTCaer 5fe84a78ac rtc: Remove custom encoding 2020-05-05 19:16:16 +03:00
CTCaer 822e0dcd98 Various small fixes 2020-05-05 19:11:39 +03:00
CTCaer c7ab404fc1 exo: Fix prodinfo blanking overriding 2020-05-05 18:58:53 +03:00
CTCaer da8c040c08 hos: Fix exosphere.ini parsing 2020-05-01 20:30:17 +03:00
CTCaer ee8854fa14 So it has come to this. (hekate v5.2.0, Nyx v0.9.0) 2020-05-01 17:33:31 +03:00
CTCaer 3794c61ab2 Mitigate a L4T Joy-Cond driver issue 2020-05-01 17:28:24 +03:00
CTCaer 9850dc305c sept: Make parsing more readable 2020-04-30 16:34:24 +03:00
CTCaer 1a89246e7f Remove emmc tools from TUI. You will not be missed.
Now that Nyx has Joy-Con support as a fallback, the eMMC backup/restore tools can now be removed from TUI.
2020-04-30 16:25:35 +03:00
CTCaer 2094ac2bba exo: Add exosphere.ini support and cal0 blanking
exosphere.ini will always be loaded and the values set by it.

User can still choose to override them with the `cal0blank` and `cal0writesys` in a boot entry.

Override keys get a 0 or 1.
2020-04-30 16:21:38 +03:00
CTCaer f9b0ff70f7 hos: Disallow Auto NOGC for stock
If you still want to use it, you must use `kip1patch=nogc` in your boot entry to force it.
2020-04-30 16:15:49 +03:00
CTCaer a2bb576c03 fatfs: Add Ramdisk support 2020-04-30 15:03:25 +03:00
CTCaer abcb1dec46 boot cfg: Allow Launching UMS from boot.
By using `BOOT_CFG_AUTOBOOT_EN` in `boot_cfg` and `EXTRA_CFG_NYX_UMS` in `extra_cfg` you can launch UMS from boot.

The `ums` variable must be populated with one of the following:

```
NYX_UMS_SD_CARD      0
NYX_UMS_EMMC_BOOT0   1
NYX_UMS_EMMC_BOOT1   2
NYX_UMS_EMMC_GPP     3
NYX_UMS_EMUMMC_BOOT0 4
NYX_UMS_EMUMMC_BOOT1 5
NYX_UMS_EMUMMC_GPP   6
```
2020-04-30 14:44:27 +03:00
CTCaer 4dcbaa8c2b Update Clocks and Fuses for USB 2020-04-30 14:25:58 +03:00
CTCaer 6c1ce41900 display v2: Add Cursor Window 2020-04-30 13:57:43 +03:00
CTCaer 4a57901746 display v2: Always check if already initialized 2020-04-30 13:55:26 +03:00
CTCaer 474d531788 display v2: Add multiple panel support 2020-04-30 13:49:03 +03:00
CTCaer 3db55df0a6 display v2: Refactor everything 2020-04-30 13:45:28 +03:00
CTCaer 7e96a4dd3a nyx: Keep last close button to a var 2020-04-30 04:25:51 +03:00
CTCaer 279b67fa49 i2c: Update driver in hekate main also 2020-04-30 03:54:24 +03:00
CTCaer 11f1f65ed1 rtc: Fix hour parsing 2020-04-30 03:53:29 +03:00
CTCaer 91b4c86bbe minerva: Fix emc table corruption 2020-04-30 03:47:23 +03:00
CTCaer 2c4d6552e9 Fixes to battery charger and fuel gauge ICs 2020-04-30 03:45:19 +03:00
CTCaer c2e8d51115 hos: Add EKS 2020-04-30 03:43:29 +03:00
CTCaer 1d69809022 sdram: Allow killing ram clock source if desired 2020-04-30 03:39:18 +03:00
CTCaer 093f14923c sdram: Document cfg and use vendor patches 2020-04-30 03:37:40 +03:00
CTCaer 63768ccc99 uart: Add rounded clocking for 1 mbaud 2020-04-30 03:34:05 +03:00
CTCaer a00f25d2f9 l4t: Clear payload mode from scratch0 reg 2020-04-30 03:31:42 +03:00
CTCaer 54faa38920 utils: Add normal CRC32 2020-04-30 03:30:51 +03:00
CTCaer ae1bb909b6 se: Add prng128 generator and get aes keys 2020-04-30 03:29:05 +03:00
CTCaer ecb616e411 sdram: Add MR read request 2020-04-30 03:27:39 +03:00
CTCaer 8c762c52e2 Various fixes and whitespace removal 2020-04-30 03:25:22 +03:00
CTCaer ec53aa86dd emmc: Use gpt struct and only add valid entries
Additionally keep track of partition index
2020-04-30 01:29:58 +03:00
CTCaer 51985ed2ca sdmmc v2: Bus/IO clock refactoring and fixes
Use the exact same clocks with HOS and utilize low jitter clock parents.

Add back our compatibility mode and the missing timeout clock parent.

Hekate main will continue to use PLLP clock parent for all.
2020-04-30 01:26:55 +03:00
CTCaer 96654d9620 nyx: Throw a warning if SD Card in 1 bit mode 2020-04-30 01:05:22 +03:00
CTCaer ce97b97c8d sdmmc v2: Add full SD card fallback initialization
hekate main always runs in compatibility mode (SDR82).
This ensures speed on boot process.

Nyx will first try SDR104.
If the sd card is a sandisk U1 and fails, it will try the compatibility mode.
After that it fallbacks to lower bus speeds.

Both support 1bit mode for broken sd card readers.

Having the new error checking in the sdmmc driver, allows for all that to work.
It can now fail instead of continuing, like how HOS reacts.
2020-04-30 00:00:00 +03:00
CTCaer 034f680a8e sd fs: Move sd init/mount/helpers to their own object 2020-04-29 23:20:18 +03:00
CTCaer 7d17e34dee sdmmc v2: Add eMMC overclocking 2020-04-29 22:11:23 +03:00
CTCaer d0a16a49b6 sdmmc v2: Add error checking for all cases 2020-04-29 22:09:36 +03:00
CTCaer 5442547a59 sdmmc v2: Name eMMC physical partitions 2020-04-29 22:06:33 +03:00
CTCaer 10e7e06048 sdmmc v2: Move address alignment check in driver 2020-04-29 21:46:25 +03:00
CTCaer eac6426125 sdmmc v2: Driver fixes 2020-04-29 21:43:07 +03:00
CTCaer 88b01994bd sdmmc v2: HW driver fixes 2020-04-29 21:39:03 +03:00
CTCaer 66780bb4c2 sdmmc v2: Refactor and fix registers 2020-04-29 21:23:28 +03:00
CTCaer 7f26981fa1 sdmmc v2: Refactor function names and vars 2020-04-29 21:16:44 +03:00
CTCaer 5b0a0070c7 sdmmc v2: Refactor everything 2020-04-29 18:53:29 +03:00
CTCaer 0462f3b252 Add simple exception handling
This adds support for exception handling.
It should provide simple and fast reporting of crucial info and full restoration without powering off.
2020-04-27 09:56:19 +03:00
CTCaer 9a5cfdff4c gpio: Upgrade GPIO driver
Use macros to get bank addresses and add full configuration support.
2020-04-27 09:51:25 +03:00
CTCaer cb3b1bf6e1 irq: Add Legacy Interrupt Controller driver 2020-04-27 09:49:00 +03:00
CTCaer b4d2df8111 Name various t210 registers 2020-04-27 09:47:47 +03:00
CTCaer cadb95e3ce hos: Add emummcforce key
This disallows booting if emummc.ini is missing or emuMMC is disabled. Useful when sysmmc must be avoided at all cases.
2020-04-27 09:44:06 +03:00
CTCaer f148757110 hos: Disallow booting CFW if normal FS and exFAT sd
This will stop black screens when user boots CFW with an exFAT sd card and without having the exFAT microupdate.
2020-04-27 09:41:13 +03:00
CTCaer 6e538cd291 hos: Improve kip patching
Allows more kip names to be added. To use it on them you will need to dump the kips via the Dump pkg1/2 function and then sha256 to get the hash.
The name must be used as is, otherwise the name compare will fail.

Because of that, also allow unordered parsing and gluing.
2020-04-27 09:38:09 +03:00
CTCaer 62a73ee612 ini: Always clear the section allocations 2020-04-27 09:33:21 +03:00
CTCaer 4160037c81 emummc: Add boot entry emuMMC selection
Using the key `emupath` on a boot entry will load the selected emuMMC.
This can also be forced by using the correct boot cfg storage bit and writing the path at the emummc path offset. Check readme for these.

This can only be used if the emuMMC was created via Nyx. because of the raw_based and file_based files that have emuMMC info.
(emupath=emuMMC/RAW1, emupath=emuMMC/SD00, etc)
2020-04-27 09:30:53 +03:00
CTCaer ae656a0f81 types: User a proper struct for MBR partition table 2020-04-27 08:58:37 +03:00
CTCaer a4c90aeff3 Bump hekate to v5.1.4 and Nyx to v0.8.7 2020-04-14 21:34:59 +03:00
CTCaer bfe13981bc Disable some options from TUI to lessen codesize v2 2020-04-14 18:11:34 +03:00
CTCaer ef11dd883a Allow bypassing empty battery charging 2020-04-14 17:55:31 +03:00
CTCaer 9af4c717a8 util: Add btn_read_vol 2020-04-14 17:51:42 +03:00
CTCaer 281e5a138e sept: Create sept folder if missing 2020-04-14 17:45:34 +03:00
CTCaer e7f8b2c6c2 hos: Add HOS 10.0.0 support 2020-04-14 17:43:43 +03:00
CTCaer 3d9c64d548 hos: Use a new method to get kernel/ini1 offsets 2020-04-14 17:40:41 +03:00
CTCaer 5f142b4c86 main: Add empty battery screen
This disables low battery monitor shutdown (LBM shutdown) on boot and checks if battery is enough.

The logic is as follows:

If battery is not enough:
- If not charging and 15s pass, it will re enable LBM shutdown and power off.
- If charging, it will wait until it is charged above the limit.
 Screen will auto turn off to save power. A press on Power button or a change on charger, will enable it for another 15s.

If battery is enough:
- Enables LBM shutdown and continues with the boot process.
2020-04-06 05:54:45 +03:00
CTCaer 52c506af9a tools: Force sparse verification on TUI
Additionally, because the tool relies 100% on sd card, it will become a Nyx only. Remove the config also, as it will be moved to nyx configuration.
2020-04-06 05:36:09 +03:00
CTCaer 9c2202fa39 Bump hekate to v5.1.3 and Nyx to v0.8.6 2020-03-21 22:30:39 +02:00
CTCaer 9c6931a17c Bugfixes
The fan driver change ensures power off in any situation where a chainload software re-enables the 5V regulator.
2020-03-21 22:28:50 +02:00
CTCaer d50af46b03 chnldr: Support variable sizes of coreboot.rom 2020-03-21 22:18:40 +02:00
CTCaer 3405910f4c hwinit: Disable SD Card power on boot
Fixes issues with warmboot based reboots.
2020-03-21 22:13:18 +02:00
CTCaer 52874f9113 minerva: More protections 2020-03-21 22:10:06 +02:00
CTCaer a8db070755 fss: Fix launching CFW on sys for < 7.0.0 2020-03-21 13:15:24 +02:00
CTCaer f5040f1e41 Update and add missing copyrights
Probably more need to change.
2020-03-14 09:24:24 +02:00
CTCaer 144d6fd3f6 i2c: Update drivers
Adds support for 8 byte transfers needed by touch driver changes.
2020-03-13 10:25:27 +02:00
CTCaer 8b74c487eb exo: Add support for fatal version AFE2 2020-03-09 09:09:25 +02:00
CTCaer 8abda7f259 fss0: Support experimental content
Use key `fss0experimental=1` in a boot entry with `fss0=` defined to enable experimental content.

(Older versions of hekate will just skip any experimental content.)
2020-03-09 08:58:12 +02:00
CTCaer 3f10cc774b Bump hekate to v5.1.2 and Nyx to v0.8.5
Additionally disable archive bit fix tool in hekate main to shave binary size.
The archive bit fix in Nyx is the only maintained one and so the only one that should be used.
2020-03-03 04:42:01 +02:00
CTCaer f3802ec464 lists: Fix list member iteration with no entries 2020-03-03 04:24:38 +02:00
CTCaer 6a52d44da6 heap: Fix edge case of reusing first node
There is an edge case fixed where the whole would be freed and this would make use of a nullptr.

Additionally, remove usage of reserved names for vars and add comments on how it works.
2020-03-03 04:16:20 +02:00
CTCaer 03a8a11933 Small fixes and changes
- Allow printing of more log on HOS boot when LOGS are OFF.
- A small name refactoring
- Add battery warning symbol when battery < 3200mV
2020-03-03 04:11:13 +02:00
CTCaer c474e35732 hos: 9.2.0 support 2020-03-03 03:32:45 +02:00
CTCaer 4c1f67d022 Fix build errors 2020-01-19 15:22:59 +02:00
CTCaer 91759aba95 r2p/update: Fix check for the 'if not forced' case
This fixes the following case:
When force is 0 and the payload is not hekate, the function jumps to the 'is old' check.

This skips the is magic value check and only does the version check.

In case the foreign payload has a low value on that offset, it causes an overwrite which is unneeded.
2020-01-17 09:35:16 +02:00
CTCaer 5a9bbaf900 fss0: Fix parsing Sept from fusee-secondary 2020-01-17 09:27:53 +02:00
CTCaer 01a767cbfa fss0: Fix heap corruption when sept is loaded from fss 2020-01-17 09:26:13 +02:00
CTCaer 8552a7282c ini: Fix heap corruption caused by backlight option
Additionally, name all text size values so it doesn't happen again in the future.
2020-01-17 09:22:28 +02:00
CTCaer 2a161b572b sdmmc: Set power cycle wait to 0 at boot 2020-01-17 09:19:58 +02:00
CTCaer 422852795f ini: Remove \r stripping as is done by FatFS 2020-01-17 09:18:31 +02:00
CTCaer 4d53f21387 mtc: Clear init magic on chainload
Fixes a hang caused when rebooting 2 payload from L4T with old hekate in vendor partition.

L4T does not overwrite the nyx storage where the Minerva configuration is stored.
This makes new Minerva parse the wrong tables from old hekate and eventually hang the RAM, which causes an exception on BPMP.
2020-01-14 23:41:15 +02:00
CTCaer c99a87dd09 clock: Move PLLC config from bpmp.c to clock.c 2020-01-07 06:46:22 +02:00
CTCaer 009db77426 bpmp: Switch to PLLC for SCLK/BPMP clock source 2020-01-07 06:26:29 +02:00
CTCaer 2f43145131 uart: Add invert, get/set IIR and fifo empty functions 2019-12-16 22:16:40 +02:00
CTCaer e3fca2bce5 uart: Add timeout and len report to uart receive 2019-12-16 22:15:21 +02:00
CTCaer da112a0ae9 uart: Proper uart init 2019-12-16 22:12:09 +02:00
CTCaer 90060d1d83 mtc: Don't rely on clean BSS for Minerva lib 2019-12-16 22:06:13 +02:00
CTCaer 1ccce5f1a2 gfx: Fix off-by-one in right half of 16px rendering 2019-12-16 21:49:54 +02:00
CTCaer 8584493c7f sept: Add support for loading sept from fss0
If `fss0=` key is detected, sept will be loaded from fusee-secondary.bin instead of `sept/sept_*`.

This will negate missing sept and failed to decrypt pkg2 errors, when booting HOS, for users that forget to update sept folder.
2019-12-16 00:53:22 +02:00
CTCaer 9b2d906648 hos: Add message for possible cause of unk pkg1 2019-12-14 22:43:00 +02:00
CTCaer 2aaa0331ac rtc: Add epoch convertion functions
Thanks @shchmue for the HOS conversion
2019-12-14 22:27:07 +02:00
CTCaer 7604239237 bpmp: Update driver to latest 2019-12-14 22:21:42 +02:00
CTCaer 562a6fb61d Bump hekate to v5.1.1 and Nyx to v0.8.4 2019-12-12 00:24:13 +02:00
CTCaer 8ff01301cb btn: Fix bootwait=0 for real 2019-12-12 00:15:08 +02:00
CTCaer a664118fc7 r2p: Update r2p payload
2 modes:
- With updater2p; Forces the reboot to payload binary to be hekate
- Without; Checks if hekate and then if old
2019-12-12 00:13:32 +02:00
CTCaer 87d376654b util: Update update.bin if old 2019-12-12 00:07:18 +02:00
CTCaer c6e92311f9 Add error printing for issues with libraries
It will now show erros for the following:
- Missing or old libsys_minerva.bso (DRAM training).
- Missing libsys_lp0.bso (LP0 sleep mode).
- Missing or old Nyx version
2019-12-11 11:22:11 +02:00
CTCaer 24d30a40f9 hos: Add Atmosphere's system mem increase patches 2019-12-10 19:20:02 +02:00
CTCaer ae283aef59 util: Always return result if not a single press req
This also fixes issues with 0 time out.
2019-12-10 13:49:28 +02:00
CTCaer e4f7928513 minerva: Fix compatibility check for hekate main
Init now also returns status.
2019-12-09 22:27:01 +02:00
CTCaer bd8a5ece58 heap: Fix type for heap monitor memset size 2019-12-09 19:30:45 +02:00
CTCaer d0850516ab Bump hekate to v5.1.0 and Nyx to v0.8.3 2019-12-08 18:59:00 +02:00
CTCaer 4c5a78de6f hos: Fix pkg2 keygen with newer sept
This change also adds support for older sept binaries.
2019-12-08 18:32:09 +02:00
CTCaer 97d3b745d9 exo: Add support for user access to PMU flag 2019-12-08 03:02:17 +02:00
CTCaer c12c696e53 hos: Add 9.1.0 support 2019-12-08 03:01:21 +02:00
CTCaer f256bd5909 Move all I/DRAM addresses into a memory map
Many addresses were moved around to pack the memory usage!
2019-12-08 02:23:03 +02:00
CTCaer 6734513d47 Add missing dependencies for 2 previous commits
- hos/mtc: Add FSP WAR and boost HOS booting times
- autoboot: Support VOL-+ combo for fastboot
2019-12-08 01:15:35 +02:00
CTCaer dbe6ed4060 autoboot: Fix custom bootlogo for boot via id 2019-12-08 01:11:13 +02:00
CTCaer 943477fdde autoboot: Support VOL-+ combo for fastboot
This is conditional:
In order to not cancel booting while trying to enter fastboot in android, the combo MUST be initiated with `VOL+` (hold) -> `VOL-` (hold)
2019-12-07 23:37:07 +02:00
Kostas Missos edc2b12f0f chainloader: Only unmount if trying to update
This will speed up boot times for some sd cards up to 500ms when running update.bin is not needed (old or same version).
2019-12-07 02:40:56 +02:00
Kostas Missos 0b45a5a11a bpmp: Reduce freq to 589MHz
3 users had issues with 602MHz.
This will probably bring the SoC binning compatibility to 100%.

Additionally, make it easy to change default boost frequency.

The tiny loss in perf, will be mitigated in Nyx. (It's actually even faster)
2019-12-07 02:01:29 +02:00
Kostas Missos bc7dec2e61 bpmp: Add forcable maintenance
+ Fix build issues
2019-12-07 01:47:44 +02:00
CTCaer 9811ba53e0 pmic: Enable Low Battery Shutdown for 2.8V
There's an increasing ammount of users that kill their batteries when forgetting their devices into AutoRCM / RCM mode.

This will now force a shutdown the moment the battery reaches 2.8V. Even if device is inside RCM mode.

Notice: We might need to increase the limit.
2019-12-04 22:06:34 +02:00
CTCaer a16b1af698 pmic: Always ensure that values were written 2019-12-04 22:02:17 +02:00
CTCaer 641a57a4f6 hos/mtc: Add FSP WAR and boost HOS booting times
By implementing FSP WAR we can allow HOS to boot in 1600MHz and be able to switch frequency without hanging.
2019-12-04 21:59:58 +02:00
CTCaer 84328aa676 minerva: Make use of new minerva
- Training and switch is now faster
- Compatibility checks: New Minerva does not allow old binaries. New binaries do not allow old Minerva
- MTC table is now in a safe region
- Periodic training period increased to every 250ms
2019-12-04 21:56:45 +02:00
CTCaer dd8ec0d28b clock: Always wait 2us before deasserting reset 2019-12-04 21:32:51 +02:00
CTCaer 0b1eebefe1 Small refactor and bugfixes 2019-12-04 21:31:39 +02:00
CTCaer 168de9ddd8 sdmmc: Ensure aligned DMA buffers 2019-12-04 19:42:25 +02:00
CTCaer c24d943122 tui: Always print an error when Nyx is missing 2019-12-04 19:39:15 +02:00
CTCaer ec10b572d1 heap: Quality updates to heap management
- Allow reuse of unused sections that fit exactly to selected allocation size. Decreases fragmentation dramatically.
- Always allocate and align mapped memory to selected alignment. Avoids having fragmented unused maps that are not aligned.
- Use a static alignment based on BPMP and generally average cache line size. Boosts performance when MMU is used.
2019-12-04 19:02:28 +02:00
CTCaer d1e50c558e sdram: Refactor and fix some bugs in init 2019-12-04 18:53:36 +02:00
CTCaer 9476e0ab45 kip patches: Allow double defined patchset names
This fixes an issue when NOGC patch was defined 2 times when user wants it forced via `kip1patch=nogc` and AutoNOGC was also procced via fuses.
2019-12-04 18:48:00 +02:00
CTCaer ccf36fd2cb ext kip patches: Disallow empty patches
Allow the patch loop to end via empty source data as per original spec and error out on 0 length if source data is not null.

emuMMC force decompression patch safely avoids that.
2019-12-04 18:44:59 +02:00
CTCaer 9a082c1b18 hos: Improve errors more for HOS launch 2019-12-04 17:46:12 +02:00
CTCaer 2c1da3a97d se: Upgrade SE and allow SHA calc continue
- Allow SHA to calculate sizes > 16MB and refactor sha function
- Name various registers and magic numbers
- Fix various key access bugs

In a later commit this new design will boost verification times significantly and also allow full SHA256 hashes.
2019-12-04 17:18:16 +02:00
CTCaer 29a51124fd Simplify string ops with already compiled-in functions 2019-12-04 15:56:53 +02:00
Kostas Missos 598073e50c ext patches: Remove patches_template.ini load
Remove patches_template.ini load.
- It has useless patches, which some times, users confuse them for "bad" patches, even though they aren't.
- No one reads on how it works and it's constantly mishandled when there's no patches.ini (which completely overrides it).
- It was not supposed to be edited.

Also release will not include it anymore.
Template will still exist for demonstrating the syntax of `patches.ini`

This commit also corrects the patches.ini encoding note as ASCII.
2019-10-31 16:26:46 +02:00
shchmue 426c86182d heap: Prevent node chain collapse on free 2019-10-25 11:20:38 -06:00
CTCaer 65fbdfddbf kfuse: Ensure that kfuse is ready 100% for tsec 2019-10-22 18:57:51 +03:00
Kostas Missos 7c42f72b8a refactor: Remove all unwanted whitespace 2019-10-18 18:02:06 +03:00
CTCaer 9104b85143 hos: Improve boot error display 2019-10-09 00:42:13 +03:00
CTCaer 2857fcca52
pmic: Restore forced power off timeout back to 5s 2019-09-23 16:41:37 +03:00
CTCaer fe339120e2 Bump hekate to v5.0.2 and Nyx to v0.8.2
Also rip hekate main's menu logo.

(It will be back :P)
2019-09-12 23:55:48 +03:00
CTCaer 6a261e356f hos: Update NOGC for LAFW v3
And also add emuMMC reverse protection by disabling GC when 9.0.0 fuses are burnt and emuMMC is lower than this.

This avoids fatals on boot.
2019-09-12 23:53:46 +03:00