Commit graph

618 commits

Author SHA1 Message Date
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
CTCaer
e24bb44adf hos: Add full 9.0.0 support 2019-09-12 23:41:08 +03:00
CTCaer
40afcfd686 hos: Support pkg2 encrypted with newer mkeys 2019-09-12 23:39:47 +03:00