Commit graph

611 commits

Author SHA1 Message Date
CTCaer d287d40208 hos: Add HOS 11.0.0 support 2020-12-02 02:41:32 +02:00
CTCaer 2aa1ce5390 nyx: Add eMMC and SD vendor id decoding into names 2020-12-02 02:11:22 +02:00
CTCaer cf175fc00d nyx: Add alternate power saving modes
T210:
By default max power savings is enabled.
By changing `newpowersave=` to 0, it reverts to the old behavior of smaller power savings.

This was added to mitigate some strange DRAM chips, hanging from constant frequency change of a 800 MHz - 1600 MHz back and forth.

T210B01:
Defaults to a simple loop with no power savings. That's because of untrained ram.
2020-12-02 02:07:31 +02:00
CTCaer 0954eb2b09 nyx: Use full shutdown based reboot on T210B01
That's because of how the system is exploited.
2020-12-02 01:45:12 +02:00
CTCaer a1188505e8 usb: Add XUSB support mainly for T210B01 2020-12-02 01:13:52 +02:00
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 495907b8a4 sept: Mark as ready for Mariko 2020-07-04 21:36:37 +03:00
CTCaer f9a1935762 nyx: Fix Dump pkg1/pkg2 and cal0 for Mariko 2020-07-04 21:36:04 +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 7acad84932 nyx: Disable TSEC keys status for T210B01 2020-07-04 21:04:57 +03:00
CTCaer 8d2230dc51 fuse: Correct fuse array size for T210B01 2020-07-04 21:04:20 +03:00
CTCaer e4c0756ded nyx: Add DRAM names info + Mariko new ram codes 2020-06-26 22:41:34 +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 cabaa6cfb8 Utilize BIT macro everywhere 2020-11-26 01:41:45 +02:00
CTCaer a84f1e5ee5 usb: Split descriptors to object and header 2020-11-15 14:10:00 +02:00
CTCaer e45ffab5d8 Remove stray hekate cfg set. It's handled by default. 2020-11-15 14:00:35 +02:00
CTCaer 55568b037f nyx: Properly calculate Ranks and Channels in hw info 2020-11-15 13:50:19 +02:00
CTCaer b5df428e43 nyx: Create bootloader folder on screenshots if missing 2020-11-15 13:47:47 +02:00
CTCaer 67a03bbd85 eks: Use LOT0 for identification 2020-11-15 13:43:22 +02:00
CTCaer 32955380c7 nyx: Fix icons for backup/restore swap 2020-11-15 13:40:53 +02:00
CTCaer 485edb4883 emc: Rename Device to Rank 2020-11-15 13:23:37 +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 94235dd005 bm92t30: Add proper info
The driver will now show more charger supported profiles and will also show selected profile.
2020-10-20 10:42:57 +03:00
CTCaer 27b1f0e843 Various small fixes 2020-10-20 10:32:32 +03:00
CTCaer dae7be8ec4 nyx: Allow disabling of Joycon
Setting `jcdisable=1` in nyx.ini disables the usage of Joycon completely.

This also disables the BT pairing data dumping tool.
2020-10-20 10:21:48 +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 85d43147ee Bump hekate to v5.3.3 and Nyx to v0.9.4 2020-09-15 20:24:56 +03:00
CTCaer e3e5dab0fc nyx: Add USB Charger info 2020-09-15 20:14:56 +03:00
CTCaer e7900b11b4 nyx: Allow L4T last part to be unaligned 2020-09-02 13:11:03 +03:00
CTCaer 461d14c39a di: Correct panel id for AUO A062TAN02 2020-08-28 05:26:18 +03:00
CTCaer 3d05b58856 nyx: Add eMMC NAND cells life estimation 2020-08-15 12:33:11 +03:00
CTCaer 78c4e6510d hos: Add backup bootloader support 2020-08-15 12:30:18 +03:00
CTCaer cd76d5ac09 nyx: Fix hang on using B button after Launch window 2020-08-15 12:22:01 +03:00
CTCaer 9c2a064817 nyx: Allow SD removal without reloading Nyx 2020-08-15 12:21:25 +03:00
CTCaer db2da89f69 nyx: Remove delay on JC calibration
This does not help with drifting as the logged values are always changing drastically.
2020-08-15 12:19:43 +03:00
CTCaer 4fc420616d nyx: Control UART debug completely via makefile
Also enables LvGL log.
2020-08-13 10:21:00 +03:00
CTCaer 5140992a7b nyx: Add proper info about SD write protect 2020-07-19 20:56:08 +03:00
CTCaer b8ca88ee0a exo: Change fatal names and add stack overflow 2020-07-18 12:53:05 +03:00
CTCaer adfa7c0780 fuse: Use fuse count function for burnt fuses 2020-07-18 01:15:28 +03:00
CTCaer 11df6030f9 Various fixes 2020-07-18 00:54:35 +03:00
CTCaer 45ca2938f5 pmc: Move rail power function to its own object 2020-07-18 00:42:53 +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 3c2d86ef7b sdmmc: Add protected area info (Content Protection) 2020-07-17 17:01:40 +03:00
CTCaer f559017aeb di: Update display panels and info 2020-07-17 16:57:45 +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 1f67251331 nyx: Use strcat whenever possible 2020-07-14 22:26:40 +03:00
CTCaer 4eecdfa553 nyx: Add decrypted CAL0 dumping 2020-07-14 21:16:52 +03:00
CTCaer 80dd0f1580 joycon: Skip first 4 packets for calibration 2020-07-14 21:13:37 +03:00
CTCaer 4e0c70a402 nyx: Do not timeout joycon with screenshot
Additionally, screenshots are allowed only every 2s instead per second.
2020-07-14 21:12:09 +03:00
CTCaer ffd5a198f9 Beautify make size prints 2020-07-14 20:56:56 +03:00
CTCaer ddc89c9f49 hos: Reduce size of pkg1 id array 2020-06-22 12:04:49 +03:00
CTCaer 3214fc2f93 nyx: Fix validation check for emuMMC restore
When checking a partition for enough size for emuMMC restore, always check against the extra 16MB.
2020-06-18 01:23:06 +03:00
CTCaer 3b0925b912 touch: Check if init failed and stop parsing if yes 2020-06-17 00:41:37 +03:00
CTCaer c5f032fcb2 Fix building on msys2 2020-06-16 12:41:42 +03:00
CTCaer 564f36fc8b hos: Fix mkey validation on BIS derivation 2020-06-15 17:31:29 +03:00
CTCaer 6159284be6 nyx: Check for huge files in part manager backup 2020-06-15 15:05:47 +03:00
CTCaer 9afc6f0a4e joycon: Add bigger deadzone for virtual mouse 2020-06-15 15:04:46 +03:00
CTCaer f689bb253e nyx: Add simple CAL0 info 2020-06-15 15:03:14 +03:00
CTCaer 0738c96867 nyx: Fix pkg1/2 dumping with new changes 2020-06-15 15:01:18 +03:00
CTCaer edba8ca986 hos: Add BIS keys derivation 2020-06-15 14:59:45 +03:00
CTCaer 2aa9055fae Various fixes 2020-06-15 14:58:50 +03:00
CTCaer 029d66bd95 Fix build for lvgl UART log 2020-06-14 17:33:57 +03:00
CTCaer c73b4ad6ba nyx: Include Hoag as Mariko in fuses info 2020-06-14 16:51:06 +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 9b1c61fbcf storage: Add cal0 struct 2020-06-14 14:11:15 +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 d607a8830b hos: Support new sept/exo keyslots 2020-06-14 13:53:21 +03:00
CTCaer 92d013dd65 eks: Upgrade to new version and support BIS keys 2020-06-14 13:42:48 +03:00
CTCaer 242bbdada5 storage: Better BIS support
It now supports more than one crypto block and keys are expected to slot 0 and up to slot 5.
2020-06-14 13:36:36 +03:00
CTCaer d90f5b7e7c ccplex: Renable cluster object to ccplex in makefile 2020-06-14 13:34:13 +03:00
CTCaer d95449c22d usb: Fix some issues with usb descriptors 2020-06-14 13:33:13 +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 5790c585f5 nyx: Reduce idle power draw by 280mW 2020-06-14 13:14:32 +03:00
CTCaer a2655912d4 nyx: Auto center cursor based on its size 2020-06-14 13:13:27 +03:00
CTCaer e2c905e9b2 joycon: More robust spi dumping for bd addr/ltk 2020-06-14 13:13:04 +03:00
CTCaer 9619417b07 nyx: Allow arc bits tool to work on all compat folders 2020-06-14 13:09:10 +03:00
CTCaer b0bcdeafac nyx: Find best cluster size automatically 2020-06-14 13:07:42 +03:00
CTCaer 7b76015fd1 nyx: Fix an issue with hos partition initial size 2020-06-14 13:07:21 +03:00
CTCaer 465955c8f5 nyx: Use sd actual size for partition making 2020-06-14 13:06:43 +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 125f000894 nyx: Use date/time for screenshot names
Now that RTC clock can be offset in software it's good to have actual dates on screenshots.
2020-06-14 13:02:54 +03:00
CTCaer f9a0e6ce4f nyx: Show clock edit on boot if 0 offset 2020-06-14 13:00:55 +03:00
CTCaer 0d5a1416d0 nyx: Show SD card total blocks in info 2020-06-14 12:59:41 +03:00
CTCaer 43f3132069 nyx: Do not show SFD partitions as valid for emuMMC 2020-06-14 12:53:35 +03:00
CTCaer 3d00a1be21 nyx: Support multiple backup based emuMMC 2020-06-14 12:52:54 +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 3dcd2ad15f hos: Header for pkg2 is now more proper 2020-06-14 02:23:02 +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 8ce6bf82a9 Minimize make info noise during building 2020-06-13 18:39:17 +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 9698cbc9d7 nyx: Fix archive bits fixer and extention folders 2020-05-05 21:24:28 +03:00
CTCaer d8b6aa3831 nyx: Correct the error message for format 2020-05-05 19:28:34 +03:00
CTCaer 3e5ef39686 nyx: Fix emummc slider when there's not enough space 2020-05-05 19:28:15 +03:00
CTCaer bc7c65447d nyx: Add start clearing for ext4 partitions 2020-05-05 19:27:45 +03:00
CTCaer a91378b9c1 nyx: Allow always writeable emmc via config
The key is `umsemmcrw` and resides in nyx.ini
2020-05-05 19:26:10 +03:00
CTCaer 5b91c54936 fatfs: Backport some fixes 2020-05-05 19:21:07 +03:00
CTCaer 322280757f nyx: Fix time offset parsing 2020-05-05 19:20:04 +03:00
CTCaer b1636fbb96 nyx: Add unsaved config changes pop up 2020-05-05 19:19:12 +03:00
CTCaer cc18a7b146 nyx: Allow changing Date/Time via tickers 2020-05-05 19:17:29 +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 a6be3714a3 ums: Update Nyx status bar during UMS 2020-05-05 19:02:01 +03:00
CTCaer f56d1bad04 nyx: Allow hue icons from section names 2020-05-05 19:01:08 +03:00
CTCaer e8f41a03f3 res: Fix name of colorized lakka icon 2020-05-03 02:52:51 +03:00
CTCaer 8edc9971f9 nyx: Refactor launch icon colorization
The Switch and Payload icons will be colorized by default, because they are system icons.

Users can still replace them with icons named `icon_switch_custom.bmp` and `icon_payload_custom.bmp` that do not get colorized.
2020-05-03 01:57:15 +03:00
Nichole Mattera afb820202d Small fix to make sure icon_path is long enough. 2020-05-02 16:34:06 -04:00
Nichole Mattera 0ce973966f Add support for launch icons changing color with theme. 2020-05-02 16:16:38 -04:00
CTCaer 11ca71cbc7 joycon: Wait for disconnect cmd reply 2020-05-01 17:29:05 +03:00
CTCaer 3794c61ab2 Mitigate a L4T Joy-Cond driver issue 2020-05-01 17:28:24 +03:00
CTCaer dde3ca2d73 sdmmc: Properly disable parent clock 2020-05-01 03:41:00 +03:00
CTCaer 4d1b59c05b Update Readme 2020-04-30 16:33:14 +03:00
CTCaer a0c3323b7c nyx: Allow emuMMC backup now that is working 2020-04-30 16:29:03 +03:00
CTCaer c9e53d4b1d nyx: Decrease idle power drain 2020-04-30 16:27:40 +03:00
CTCaer 4b62b1f69f nyx: Introducing Partition Manager for SD Card
Allow you to select up to 2 emuMMC + Linux + Android.
Any combo is allowed, even if you just want to repartition it back to one FAT partition.

The procedure is automatic on selecting sizes and offsets.

The tool is also able to backup your SD Card into Ramdisk and then get restored, if the total used size is less than 1GB.
If you have more files than that, you will be asked to copy your files to your PC via UMS.

It also allows you to flash L4T Linux images and Android Twrp images.
The Flash Android can be also used to reboot into Twrp if a file to flash is not found.
2020-04-30 16:12:55 +03:00
CTCaer 91c2c891fd nyx: Fix verification bar/percent not updating 2020-04-30 15:13:12 +03:00
CTCaer 1ba0a7d264 nyx: Allow restoring eMMC backup of different size
You will get a warn. If you choose to skip without reading it, then you are toasted.
2020-04-30 15:12:34 +03:00
CTCaer 5f6bf332d3 nyx: Add emuMMC partition backup
For now it will automatically dump the first found and the size will be based on its GPT.
2020-04-30 15:11:18 +03:00
CTCaer 448cc49cff hwinit: Add proper deinit for new components 2020-04-30 15:09:25 +03:00
CTCaer 81f0c0a0dc touch: Add FB SRAM read function 2020-04-30 15:06:31 +03:00
CTCaer 95c1046765 nyx: Add eMMC and SD read benchmarks 2020-04-30 15:05:41 +03:00
CTCaer 2a8c27115c fatfs: Use RTC clock for date/time 2020-04-30 15:04:52 +03:00
CTCaer b6933013be storage: Add primitive BIS support 2020-04-30 15:04:20 +03:00
CTCaer a2bb576c03 fatfs: Add Ramdisk support 2020-04-30 15:03:25 +03:00
CTCaer c8d6da5a23 storage: Add Ramdisk driver 2020-04-30 14:58:53 +03:00
CTCaer f09263d3be nyx: Add Update r2p option 2020-04-30 14:56:44 +03:00
CTCaer fdfd383c34 nyx: Add Joy-Con Bluetooth pair info dump 2020-04-30 14:55:51 +03:00
CTCaer 39a32fc83d nyx: Add Nyx Options (Theme, Homescreen, Time) 2020-04-30 14:55:15 +03:00
CTCaer c072041039 nyx: Add time offset
The epoch is based on HOS format.

An automatic time set will be implemented in a later version.
2020-04-30 14:51:48 +03:00
CTCaer 6d75f96ed5 nyx: Add Home Screen selection
You can now choose between Main menu and Launch/More Cfg as home screens.
2020-04-30 14:49:28 +03:00
CTCaer ab304c9178 nyx: Small fixes in init 2020-04-30 14:45:59 +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 ac4bf9cf2c nyx: Add tab separator for Tools tabs 2020-04-30 14:32:52 +03:00
CTCaer 72a51f9506 nyx: Add Touch Panel Calibration tool 2020-04-30 14:31:32 +03:00
CTCaer d50a77f861 nyx: Fix Archive bits tool v3 2020-04-30 14:30:37 +03:00
CTCaer 0ecd6b16b0 nyx: USB Gamepad emulation (Joy-Con)
This allows you to use your joycon as a free gamepad for your PC. Often paired with tools like x360ce.
2020-04-30 14:28:16 +03:00
CTCaer 4dcbaa8c2b Update Clocks and Fuses for USB 2020-04-30 14:25:58 +03:00
CTCaer 2261dbce83 nyx: USB Mass Storage support (SD/eMMC/emuMMC) 2020-04-30 14:25:43 +03:00
CTCaer 53ff1102df usbd: Add device descriptors 2020-04-30 14:15:50 +03:00
CTCaer b01b49aff4 usbd: Add USB Gadget HID driver 2020-04-30 14:15:26 +03:00
CTCaer c9a7659d93 usbd: Add USB Gadget UMS driver 2020-04-30 14:14:58 +03:00
CTCaer 4f75cd62e5 usb: Add USB Device driver 2020-04-30 14:14:16 +03:00
CTCaer 2a74715c3c Update some copyrights 2020-04-30 14:10:08 +03:00
CTCaer 1210c3e689 nyx: Add log window screenshots for debugging 2020-04-30 14:09:11 +03:00
CTCaer a3f430c224 nyx: Add capture effect on screenshots 2020-04-30 14:08:25 +03:00
CTCaer 2f7be43ccb nyx: Allow screenshots only every 2s 2020-04-30 14:08:06 +03:00
CTCaer f5432c734c nyx: Utilize Log Window
- or + on Joy-Con displays the log screen.
If there are errors somewhere, they are normally also logged in there.
2020-04-30 14:07:26 +03:00
CTCaer 5ca35aa4fc memory map: Repartition RAM based on new needs 2020-04-30 14:03:57 +03:00
CTCaer 2dd474ad26 gfx: Switch Nyx gfx prints to landscape 2020-04-30 14:01:10 +03:00
CTCaer 97e45346ea display v2: Utilize Window D as log window 2020-04-30 13:58:41 +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 c32636b8cb nyx: Fuses info is now HW and Fuses info
Additionally add chip revision info
2020-04-30 13:54:11 +03:00
CTCaer 190ffdaa5a nyx: Add DRAM modules info 2020-04-30 13:51:46 +03:00
CTCaer bdd2b40c96 nyx: Add Touch panel info 2020-04-30 13:51:25 +03:00
CTCaer 53f54cf23b nyx: Add display panel info 2020-04-30 13:50:58 +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 1483a61f11 nyx: Add joycon fallback support as a virtual mouse
Cursor Movement: Left Stick
Click: A / ZL / ZR
Back: B
2020-04-30 13:16:30 +03:00
CTCaer 7b715f7be9 input: Add Joy-Con UART driver 2020-04-30 13:02:14 +03:00
CTCaer 56034f9aac nyx: Ensure that close button var always gets nulled 2020-04-30 04:32:55 +03:00
CTCaer 7e96a4dd3a nyx: Keep last close button to a var 2020-04-30 04:25:51 +03:00
CTCaer 523c81f797 nyx: Add theme colors for highlight text 2020-04-30 04:04:24 +03:00
CTCaer f540c8250b nyx: Disallow eMMC ops with low battery 2020-04-30 03:59:16 +03:00
CTCaer e89b7f12dd nyx: Update hekate theme 2020-04-30 03:57:10 +03:00
CTCaer 11f1f65ed1 rtc: Fix hour parsing 2020-04-30 03:53:29 +03:00
CTCaer 071dfa9792 lvgl: Enable keyboard and add HEX mode 2020-04-30 03:53:04 +03:00
CTCaer 3cecb03dac nyx: Fix a long standing heap corruption issue 2020-04-30 03:51:13 +03:00
CTCaer a7c64f8ba2 lvgl: Better heap alignment 2020-04-30 03:49:40 +03:00
CTCaer 6749dad1a4 lvgl: Fix HSV to RGB calculation 2020-04-30 03:49:10 +03:00
CTCaer aadb88eeea regulators: Enable 5V to missing GPIO AO IO rails 2020-04-30 03:46:21 +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 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 e14a7d1d4d nyx: Clear partition start when creating emuMMC 2020-04-30 02:05:24 +03:00
CTCaer 08c81fe1f8 Move verification config to nyx config 2020-04-30 02:00:33 +03:00
CTCaer 63be93be64 nyx: Use a static color for verifying bar indicator 2020-04-30 01:35:18 +03:00
CTCaer de4891e133 nyx: Correct label styles set 2020-04-30 01:33:14 +03:00
CTCaer 8fd398f213 nyx: Fix heap corruption while parsing emmc gpt 2020-04-30 01:31:01 +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 67ae7b9dcb nyx: Add SD Card error report in Console Info 2020-04-30 01:09:48 +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 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 3fa537e54a nyx: Move emummc cfg load function 2020-04-27 09:18:31 +03:00
CTCaer f35c18a0c2 nyx: Refresh emuMMC status after a creation 2020-04-27 09:13:22 +03:00
CTCaer aff137ac34 nyx: Allow partition selection for emuMMC raw 2020-04-27 09:09:52 +03:00
CTCaer 6236b0ab00 nyx: Use mbr context for emuMMC partition 2020-04-27 09:06:53 +03:00
CTCaer ae656a0f81 types: User a proper struct for MBR partition table 2020-04-27 08:58:37 +03:00
CTCaer 6a6648d3b3 nyx: Change many lvgl static labels to dynamic 2020-04-27 08:47:00 +03:00
CTCaer da149c296f touch: Reinitialize up to 3 times if failed 2020-04-14 17:52:22 +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 dc9c7fd95c touch: Do a panel HW test before calibration
In case the panel or the panel connection has issues, abort the calibration.
2020-03-25 01:38:16 +02:00
CTCaer 4ec7befe82 touch: Small refactor 2020-03-25 01:31:58 +02:00
CTCaer a39ba2cd71 lvgl: Fix edge case in lv_label_set_text
This fixes an edge case where the original label set was done with set_static_text, the next one with set_text and the text is at the same address.

The incomplete check would think that the text resides on heap and it would reallocate it as such, effectively corrupting .data on the next sets.
2020-03-22 04:48:50 +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 976925c697 nyx: Allow cancellation of emuMMC creation 2020-03-21 22:27:17 +02:00
CTCaer d50af46b03 chnldr: Support variable sizes of coreboot.rom 2020-03-21 22:18:40 +02:00
CTCaer 52874f9113 minerva: More protections 2020-03-21 22:10:06 +02:00
CTCaer 91a241dafa touch: Add Tuning Calibration
This, for now, can be done at Nyx boot by holding VOL- and VOL+.

Make sure that you don't touch the touchscreen.
2020-03-21 22:03:51 +02:00
CTCaer 76676f3a2e nyx: Allow for big filepaths for archive bit fixer
It also fixes corruptions/hangs when path is bigger than 255 chars
2020-03-18 06:30:11 +02:00
CTCaer f5040f1e41 Update and add missing copyrights
Probably more need to change.
2020-03-14 09:24:24 +02:00
CTCaer c9c3c8f716 touch: Add context based ready checks on init 2020-03-13 17:36:44 +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 9697067466 touch: Add fw info 2020-03-13 08:48:20 +02:00
CTCaer 8539095bdb touch: Proper init
This patch applies the simpler init from HOS driver.

The most important change is enabling a feature that the fw supports:
Automatic tuning and calibration based on saved tuning values (running HOS only once saves these).
2020-03-13 08:39:38 +02:00
CTCaer 95e3159fe9 touch: Correct pressure calculation
Fingertip S for Nintendo Switch uses a custom spatial calculation. It now allows to identify area of touch.
2020-03-13 08:34:16 +02:00
CTCaer 8d5c52f087 lvgl heap: Fix critical issue with node header size
This fixes a critical issue where the node header was 28 bytes instead of 32, causing misalignment and heap corruption.
2020-03-09 08:39:31 +02:00
CTCaer e6c1d9bf66 nyx: Simplify label sets
- Use only lv_label_set_text to simplify label sets
- Fix an issue with a label cut
- Add more maintenance functions for DRAM training
2020-03-09 08:37:41 +02:00
CTCaer a52af1bf41 Fix building on make 4.3 2020-03-04 01:34:35 +02:00
CTCaer ac92ca220f fan: Better thermal logic based on HOS patterns 2020-03-03 04:37:59 +02:00
CTCaer ab8801d0de touch: Add edge compensation
Switch touch panels have a 10-15px offset around the edges.
(10-1269, 10-709) / (15-1264, 15-704)
This allows touch driver to report a max of 0-1279, 0-719.
2020-03-03 04:28:12 +02:00
CTCaer f3802ec464 lists: Fix list member iteration with no entries 2020-03-03 04:24:38 +02:00
CTCaer bc7a7bcfa0 info: Allow dumping of battery characterization table 2020-03-03 04:22:59 +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 4c1f67d022 Fix build errors 2020-01-19 15:22:59 +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 9263e2192f nyx: Fix low battery voltage color 2020-01-07 06:50:33 +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 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 1e4d63731b nyx: Fix about screen 2nd pane left margin 2019-12-12 00:20:14 +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 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 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 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 0290892b23 nyx hw reconfig: Add fan and 5V regulators deinit
Additionally re-arrange minerva and mmu after these.
2019-12-08 01:41:57 +02:00
CTCaer 643a8ea8f9 fan: Update driver
Make use of 5V regulator driver and fixe some bugs
2019-12-08 01:38:12 +02:00
CTCaer a6d8854499 power: Add 5V regulator driver 2019-12-08 01:36:35 +02:00
CTCaer 96bafd8bd7 nyx: Use color when battery voltage < 3200mV
For status bar and Battery Info.
2019-12-08 01:32:26 +02:00
CTCaer 65ee728939 nyx: Enable fan when temps are high 2019-12-08 01:26:26 +02:00
CTCaer e1748a0727 nyx: Boost eMMC backup/restore verification times
This change allows SE to start verifying the first buffer while the 2nd is populated. Effectively cutting verification down to almost half.
2019-12-08 01:20:05 +02:00
CTCaer 35e853fd03 touch: Change I2C4 pinmuxing as per HOS 2019-12-07 23:23:01 +02:00
CTCaer 7e26be6587 lvgl: Optimize color blending
The manual optimization done dramatically increases performance in software color blending.
Isolated gains reach 20-30%.

Color blending calculates 2 +1 color channels instead of the expensive 1+1+1 calculations.

This is as best as it gets without going in asm optimizations.
2019-12-07 20:47:19 +02:00
CTCaer 733da0f4d5 nyx: Remove compiler flags to gain extra perf
- Removing no-inline produces 30-50% performance gains on specific real time sensitive functions used for rendering.
On overall, this will give 5-10% observed performance gains.

- Strict aliasing produces some extra small gains.
2019-12-07 20:35:17 +02:00