Commit Graph
100 Commits
Author SHA1 Message Date
CTCaer ca8717d4a7 bdk: bm92t: do not parse non fixed pdos 2026-02-12 21:56:39 +02:00
CTCaer e6984a149b bdk: sdmmc: remove dependency to ram for init 2026-02-12 21:53:59 +02:00
CTCaer 5cb44753fc nyx: adjust sdmmc dma buffer name 2026-02-12 21:41:21 +02:00
CTCaer 9171fa70c9 bdk: mem: rename sdmmc dma buffer 2026-02-12 21:38:56 +02:00
CTCaer 3052df722b hekate/nyx: adjust exception storage based on bdk 2026-02-12 21:35:32 +02:00
CTCaer d14a1fb7d6 bdk: move exception type base away from IRQ stack
Allow a more heavy stack usage by IRQ handlers.
2026-02-12 21:32:43 +02:00
CTCaer 6c820067a7 nyx: lvgl: complete black theme and add options
Since, this has the side-effect to make any theme color component from 0x0B to 0xC7
work, add theme background controls in Nyx Options.
Additionally, set shadow color to black and fix inactive buttons on transparent styles.
2026-02-12 05:59:16 +02:00
CTCaer 5cca9025b0 nyx: deduplicate window creation functions
Also rename mbox_action and fix a double lv obj deletion in partition manager.
2026-02-07 00:36:19 +02:00
CTCaer 380bbe77a5 bdk: lvgl: complete black theme
This has the side-effect to make any theme color component from 0x0B to 0xC7 work.
2026-02-07 00:04:44 +02:00
CTCaer b297e58bc8 bdk: add missing header guards 2026-01-29 09:07:22 +02:00
CTCaer 0b41f8129c modules: set page size to 256 bytes
Since this runs on BPMP a meaningful alignment is 32 bytes, so use a nicer 256.
Reduces size of libs of up to 64KB.

If libs are compiled for armv7/8, 4KB should be used if missing from compiler.
2026-01-29 09:02:56 +02:00
CTCaer 55bd217ad1 modules: adjust for ianos changes 2026-01-29 08:58:46 +02:00
CTCaer 5cee484534 hekate: adjust for ianos changes 2026-01-29 08:58:31 +02:00
CTCaer 2014a72774 bdk: ianos: restructure for future expansion 2026-01-29 08:58:19 +02:00
CTCaer 1edb18a217 modules: lp0: refactor t210b01 to use the macros
This actually makes it faster too.
Additionally, remove support for DDR in T210 function.
2026-01-29 08:38:16 +02:00
CTCaer 183cc2d569 l4t: use the updated pmc defines/struct 2026-01-29 08:33:40 +02:00
CTCaer 55330b1bf5 bdk: pmc: refactor register defines and structs 2026-01-29 08:33:01 +02:00
CTCaer 0da69efd07 bdk: pinmux: always detach I2C4 pins from I2C3 pm
Generally I2C3 communication can work via I2C3 or I2C4 pins.
Defaults are fine as long as one of the pin groups are floating or grounded or
both share I2C traces.

In NX boards I2C4 SDA is used for GC and connected to 1V8.
So if a GC is slotted, I2C3 works, if not, no communication is possible.

This config was done previously inside I2C3 consumer driver (touchscreen).
Now it's moved inside pinmux_config_i2c.
2026-01-21 23:49:59 +02:00
CTCaer 9c62a590f0 Bump hekate to v6.5.1 and Nyx to v1.9.1 2026-01-20 20:27:38 +02:00
CTCaer 74972a68df bdk: joycon: make init stricter but relax timings
Additionally, if both Joy-Con are found, try to send rumble simultaneously.
2026-01-20 20:03:38 +02:00
CTCaer 3134af6e92 bdk: display: reduce display off waiting time
And align oled panel inside vblank.
Assumes display deinit happens before the rest of deinit.
2026-01-20 06:13:02 +02:00
CTCaer 28ebdc213e nyx: handle exFAT truncation in stat/backup
It's possible for the overflow check to fail if exFAT and file size is big enough.
(4GB + total_size)

So check it properly.
This avoids unnecessary copying before RAM disk gets filled and copy errors out.

No other check is needed since max capacity is RAM disk size.
2026-01-18 21:01:54 +02:00
CTCaer af0f957ddd nyx: constrain reboot to OFW a bit
Disable if T210 and real dram id is 7 since this will fatal nx bootloader.
If T210B01 and fake id is dual rank and higher density than real id, show a warning.
Booting HOS like that can cause performance degradation and sometimes crashes.
How worse it is, depends on ram chips and selected unmatched config.
2026-01-15 20:14:30 +02:00
CTCaer 5936d9bad4 bdk: se: add T210 SHA256 silicon errata WAR
Apparently, some T210 silicon have an undocumented errata where the MSG_LEFT2/3
registers are not ignored as they should.
When they have random data in POR they cause a hang as long as the message and
SHA calculation speed. So always clear them.
Additionally, clear MSG_LENGTH2/3 registers too even though they do not matter.
2026-01-15 19:09:34 +02:00
CTCaer 68281d3051 bdk: se: adjust T210 silicon errata coherency WAR
Add a 15us worst case scenario delay after OP done for T210.
Practically, because of 1600 MHz RAM, less than 1us delay is needed.
(204 MHz: 15us, 408 MHz: 5us, etc).
2026-01-15 19:02:36 +02:00
CTCaer e3267d1db7 bdk: se: correct result for < block size aes 2026-01-15 17:40:52 +02:00
CTCaer accc9aa7b0 hos: store wb anyway even if unused
Partially reverts 73d96b7ca8.
This should be completely removed at some point.
2026-01-15 17:39:05 +02:00
CTCaer 116d4042c2 hos: refactor ctr/hash vars in pkg2 header 2026-01-15 17:32:00 +02:00
CTCaer 3af777f839 Bump hekate to v6.5.0 and Nyx to v1.9.0 2026-01-14 05:10:05 +02:00
CTCaer 8b8c9e8dd8 hos: add 21.2.0 support 2026-01-14 04:58:34 +02:00
CTCaer f0dde780f4 hekate/nyx: remove coreboot support
Everything external is finally updated and beyond parity with old things that needed it.
2026-01-12 04:04:08 +02:00
CTCaer 8ab6f04243 bdk: hwinit: remove coreboot support
Everything external is finally updated and beyond parity with old things that needed it.
2026-01-12 03:57:39 +02:00
CTCaer bf5a7b1a12 bdk: joycon: more refactoring 2026-01-12 03:08:20 +02:00
CTCaer d94f356bf5 bdk: joycon: generalize _jc_packet_add_uart_hdr
Correct its header construction in case it's used in the future.
Plus some unhardcoding of lengths.
2026-01-11 17:24:18 +02:00
CTCaer 876d6adbe7 bdk: joycon: increase connection timeout to 1.8s 2026-01-11 17:06:48 +02:00
CTCaer b4fcc72b6b bdk: joycon: refactor some fields
And add better comments.
2026-01-11 17:05:37 +02:00
CTCaer 928985ced1 bdk: joycon: use packed structs and bitfields 2026-01-10 13:39:06 +02:00
CTCaer 8123de714a bdk: joycon: correct crc8 offsets
By luck the current offset and length of the calculation always worked.
Correct it though because the function might be used fully in the future.
2026-01-10 13:36:34 +02:00
CTCaer f05759e0f2 bdk: joycon: maintain consistent naming styles 2026-01-10 13:32:46 +02:00
CTCaer 02484ae3b7 nyx: always show console stats
When main Joy-Con or all are disconnected, always show Joy-Con debug info.
Additionally, always allow opening/closing console window with the secondary one,
in the same conditions.
2026-01-07 00:20:10 +02:00
CTCaer 01ffbeecd6 nyx: make sure ram is set to 1600 MHz
No matter how Nyx was launched.
2026-01-06 23:22:04 +02:00
CTCaer e558d0c2c4 nyx: options: make sure var has a value in all -O# 2026-01-06 23:20:45 +02:00
CTCaer 76cb5422e3 bdk: joycon: optimize rumble enable 2026-01-06 23:14:11 +02:00
CTCaer 316650dda6 bdk: display: add OLED status pin
Code is commented out for now until it gets used.
Status is set when RST is enabled.
2026-01-06 23:10:42 +02:00
CTCaer 1d2a7631d9 nyx: update rng calls based on new bdk 2026-01-06 23:04:26 +02:00
CTCaer afa9715cf4 bdk: se: support multiple/partial blocks for RNG 2026-01-06 23:02:33 +02:00
CTCaer 73f7d53572 hekate/nyx: update ctx keys calls based on new bdk 2026-01-06 23:01:54 +02:00
CTCaer 1696dd8ebf bdk: se: use proper naming for ctx keys 2026-01-06 23:00:46 +02:00
CTCaer bb1087006a hekate/nyx: update sha calls based on new bdk 2026-01-06 22:59:53 +02:00
CTCaer c9208593af bdk: se: refactor and optimize SHA256
- Simplify config and fix partial hashing
- Add partial function calls
- All partial state is handled internally
- All functions now use the classic naming convention.
2026-01-06 22:59:20 +02:00
CTCaer 607b19067a bdk: se: use classic naming convention for XTS 2026-01-06 22:52:21 +02:00
CTCaer b7f1641bce bdk: se: add AES OFB encryption/decryption support 2026-01-06 22:49:57 +02:00
CTCaer ee1b0db130 hekate/nyx: update aes calls based on new bdk 2026-01-06 22:49:09 +02:00
CTCaer 2fa1a6a4af bdk: se: remove dst/src size argument requirement
All operations expect the destination buffer to fit the selected size.
And for simplicity STATE_WAIT is not supported.

Additionally, remove single block ECB and just use the normal function.
2026-01-06 22:47:54 +02:00
CTCaer 3463623126 bdk: se: optimize and update aes cmac hashing
`se_aes_cmac_128` was also renamed to `se_aes_hash_cmac`.
By following the convention of 128bit functions not having size in their name.
2026-01-06 22:32:26 +02:00
CTCaer b4ca6cae21 bdk: se: handle original and updated IV in one go
IV set now requires a size where the second block is updated IV
IV clear now clears both.
2026-01-06 22:28:18 +02:00
CTCaer d442390e9b bdk: se: support partial blocks for all aes modes 2026-01-06 22:23:25 +02:00
CTCaer ca307e78c8 bdk: se: do a trivial refactor pass 2026-01-06 22:18:45 +02:00
CTCaer 13c91d2848 bdk: heap: use ultra fast defragmentation
The defragmentation runs on every free and it only merges subsequent nodes.
So there's no point of looping all nodes.
So, just check if previous and next nodes are mergeable.
This makes free performant and achieves the same exact functionality.
2026-01-05 12:33:31 +02:00
CTCaer 1de3206e79 Restructure and refactor makefiles
- Allow rebuilds without rebuilding everything
 By detecting changes everywhere that matters (flags, objects and headers).
- Add progress bar
- Fully clean everything when clean goal is used
2025-12-31 14:19:56 +02:00
CTCaer 800bec2ec2 bdk: max17050: simplify calculations
And make current readings a tiny bit (±0.16%) more accurate.
2025-12-31 03:44:44 +02:00
CTCaer 520bce08cf nyx: add joycon charging debug info 2025-12-27 06:30:36 +02:00
CTCaer ee22d660dc minerva: update rate_from if clock the same 2025-12-27 06:16:59 +02:00
CTCaer 067c12655b bdk: max17050: remove unused cached batt voltage 2025-12-27 06:06:56 +02:00
CTCaer c03757e73d bdk: joycon: improve charger config
Utilize charger config set command which allows for supplement mode.
Additionally, remove ping config when SIO and parse buttons/sticks on subcmd reports.
2025-12-27 06:06:17 +02:00
CTCaer acb50dad7b fatfs: set default date to 1/1/2026 2025-12-25 12:58:32 +02:00
CTCaer 9bc878e85d l4t: make mselect config common for t210/t210b01
It's already handled in soc powerdown exit in ATF but it doesn't hurt to have it generally.
2025-12-25 12:55:04 +02:00
CTCaer 0cab56293d bdk: ccplex: do not disable mselect on cpu pwrgate 2025-12-25 12:51:37 +02:00
CTCaer 69ab954119 hekate/nyx: remove last calloc references 2025-12-25 12:50:24 +02:00
CTCaer ae7c5fdfdb bdk: heap: add more safe guards
- Use magic for used regions
- Deduplicate calloc
Enable a print/abort in _heap_free() for debugging.
2025-12-25 12:33:41 +02:00
CTCaer a7ad3d4984 bdk: display: improve and deduplicate more
- Add delay after a DSI soft reset
- Remove more duplicated configs
- Improve code to save code size
- Improve comments
- Do not allow display_backlight to be used with OLED
2025-12-25 11:36:06 +02:00
CTCaer 67140d026c bdk: util: use volatile base for reg_write_array 2025-12-18 11:50:00 +02:00
CTCaer 998053f8db bdk: display: use a scratch reg for backlight
Spare registers normally have hidden hw config usage, so avoid them just in case.
2025-12-18 11:48:53 +02:00
CTCaer b5a6c8eb64 bdk: display: simplify macros
Expand register index in parent macro and remove _DI/_DSIREG macros.
2025-12-18 11:17:43 +02:00
CTCaer 8faa1a6690 bdk: display: use spare reg to store dcs bl duty
And also remove backlight pwm restoring from coreboot hw deinit path.
2025-12-18 09:54:26 +02:00
CTCaer ba95bb7494 bdk: fatfs: improve fat read/write
- Convert access from min cluster size to block size
  Also allow read/writes to less than cluster size
- In case of intercluster access throw an error
- Do not error on zero size

On reads buffer still needs to be block (instead of cluster) aligned.
On writes, buffer still needs to be readable out of bounds.
2025-12-17 07:11:51 +02:00
CTCaer b90935ac16 nyx: info: update 20nm wafer bounds 2025-12-17 06:54:57 +02:00
CTCaer c78b94b0ac nyx: info: unlocked T210B01 fuses dumping support 2025-12-17 06:51:04 +02:00
CTCaer 20a50988c5 bdk: fuse: return array size with fuse_read_array 2025-12-17 06:41:52 +02:00
CTCaer ac60695b24 nyx: parted: remove invisible btns in eMMC mode 2025-12-17 06:34:42 +02:00
CTCaer 468544ce1e nyx: add a small stall in lvgl loop
EMC CC should not run in less than 20us.
2025-12-17 06:33:05 +02:00
CTCaer 73d96b7ca8 hos/l4t: deduplicate sc7exit-b01 load
And remove obsolete MWS (L4T one deprecated it 3 years ago).
2025-12-17 06:28:36 +02:00
CTCaer 4af4692710 hos: reflect minerva changes 2025-12-17 06:07:58 +02:00
CTCaer 4229a43818 lp0 cfg: use a more appropriate entry name 2025-12-17 06:00:02 +02:00
CTCaer b6ec6a8f6e minerva: update tov1.6_T210/v0.1_T21X
T21X v0.1:
- Add IRB/no table support
T210 v1.6/Common:
- Add a proper table for 8GB T210 config instead of editing a 4GB one
- Increase timeout to 2ms
- Generally improve checks and guard against unknown SoCs/SKUs
- Remove the long ago obsolete OVERCLOCK_FREQ/OVERCLOCK_VOLTAGE ifdefs
2025-12-17 05:58:09 +02:00
CTCaer 0db758592a bdk: minerva: add IRB support
Aka no table support.
2025-12-17 05:24:16 +02:00
CTCaer 8b4d5507f6 hekate: gfx: correct a very very very old typo 2025-12-17 04:48:37 +02:00
CTCaer c584242873 hekate: exo: simplify fatal screen to save space
And remove an obsolete message.
2025-12-17 04:45:20 +02:00
CTCaer 3f75917c8b hekate: remove precise free clusters calc in TUI 2025-12-17 04:37:36 +02:00
CTCaer 8d6bb5f427 bdk: clock: update some defines 2025-12-17 04:33:40 +02:00
CTCaer 4797b42e76 bdk: sdmmc: add defines for max block number 2025-12-17 04:30:12 +02:00
CTCaer 6207a783d7 Bump hekate to v6.4.2 and Nyx to v1.8.2 2025-12-02 12:59:51 +02:00
CTCaer 768824df33 nyx: options: add month/date checks for roller
Now the roller will return back automatically if day can't be set for selected month.
Additionally, fix the check when saving.
2025-12-01 14:19:03 +02:00
CTCaer 03a9c2d75c nyx: info: add wafer graph with die x/y placement 2025-12-01 14:16:26 +02:00
CTCaer 84bf634e33 nyx: info: streamline hw info from fuses
- Compact and group relevant values together
- Use actual value name instead of register name where possible
- Fix LOT code masking
- Fully parse and show LOT code (it's the same marking on die)
- Correct X coordinate parsing (9bit 2s complement)
- Add product code
2025-12-01 14:15:18 +02:00
CTCaer 86871bea7d hekate: write rsvd cfg to update.bin if different 2025-12-01 13:53:34 +02:00
CTCaer 98960a72d8 nyx: do init always with lowest clock boost 2025-11-27 12:38:52 +02:00
CTCaer 6cf7c645df nyx: fix bt pairing dumping 2025-11-27 12:37:36 +02:00
CTCaer 5775b3c47e nyx: info: add forced 8GB ram info 2025-11-27 12:36:20 +02:00
CTCaer 7c212358ed hekate: show errors before parsing R2C 2025-11-27 12:30:51 +02:00