Commit Graph
100 Commits
Author SHA1 Message Date
CTCaer 9d0ed664cb sdmmc: modernize SD/eMMC cmds
Add up to SDA 8.0.0 and eMMC 5.1 and correct some
2026-06-17 06:29:50 +02:00
CTCaer 8e6667ed72 nyx: info: add sda version and sde info 2026-06-17 06:27:45 +02:00
CTCaer e69ef9ee0d sdmmc: identify SD Express cards 2026-06-17 06:27:44 +02:00
CTCaer de7cf0cf83 sdmmc: add get sda spec version function
Returned number is major version.
2026-06-17 06:25:34 +02:00
CTCaer 4626816d40 sdmmc: refactor ICR/OCR defines
And others.
Also add some debug prints and move ocr argument to get op cond.
2026-06-17 06:25:29 +02:00
CTCaer 5cab679a07 nyx: parted: correct gpt validation check
This fixes an issue when second sector has garbage data that would cause a spinloop.
2026-06-17 06:15:10 +02:00
CTCaer 38c74c961b nyx: info: adjust 20nm wafer max X 2026-06-17 06:15:10 +02:00
CTCaer ddbc8e0d76 nyx: info: add warnings for wrong pmic rev
Revision must match, so show a warning icon if not.
2026-06-17 06:15:10 +02:00
CTCaer a60510f7de bdk: mc: add offset to arc aperture
And increase it back to 4KB for TSEC only, since the firmware actually checks for it.
2026-03-27 20:44:29 +01:00
CTCaer 6b8f857021 Bump hekate to v6.5.2 and Nyx to v1.9.2 2026-03-27 20:44:29 +01:00
CTCaer d086da50d7 hos: pull missed se adjusted return values
And fix nogc patches.
2026-03-27 20:44:29 +01:00
CTCaer fee45ff62d hos: add bc based mem mode support 2026-03-27 20:44:29 +01:00
CTCaer 1d4b835060 nyx: info: improve emmc info
And also add maintenance (bkops) info.
2026-03-27 20:44:15 +01:00
CTCaer 1561af252f bdk: sdmmc: parse bkops info 2026-03-27 20:44:15 +01:00
CTCaer 5b1f9d25e7 nyx: info: seems that 16nm wafer has 28 max Y 2026-03-27 20:44:15 +01:00
CTCaer 14d9d3e9bf nyx: add info about 7" LCD OEM clone
And its touch panel.

TODO: Find markings on it and use them.
2026-03-27 20:44:15 +01:00
CTCaer 70262c8695 minerva: fix off-by-one in shifting 2026-03-27 20:44:15 +01:00
CTCaer d8487e529b l4t: refactor return values 2026-03-27 20:44:15 +01:00
CTCaer f6cecdc783 bdk: memory map: define max use from sdram params 2026-03-27 20:44:15 +01:00
CTCaer 387b5b07ed bdk: sdmmc: rename bkops define
And remove dead code.
2026-03-27 20:44:15 +01:00
CTCaer e7deafd6a1 bdk: smmu: reset heap on disable
And rename domain init/deinit
2026-03-27 20:42:31 +01:00
CTCaer 3e6df2459d bdk: sdram: add missing T210 1GB density timings 2026-03-27 20:42:31 +01:00
CTCaer 902246984b nyx: add creme accent support
Also change reset to default grey instead of current.
2026-03-27 20:42:31 +01:00
CTCaer 7ca071a67c bdk: lvgl: add creme accent support 2026-03-27 20:42:31 +01:00
CTCaer 07408305f5 bdk: lvgl: correct slider knob signal coordinates
It should always point to the middle of the knob and not be variable with offset.
2026-03-27 20:42:31 +01:00
CTCaer 64a5d48ab5 touch: increase max allowed touched area 2026-03-27 20:42:31 +01:00
CTCaer fb6fb75448 hos: add 22.0.0 support 2026-03-27 20:42:31 +01:00
CTCaer a02624cd39 bdk: mc: reduce ahb aperture by 4KB
The state machine automatically uses TOM + 4KB as real top address.
This can cause issues with HW that accesses that low RAM range,
since once the request enters ARC can't be redirected to MC and can hang.
2026-03-27 20:42:31 +01:00
CTCaer a4765e2839 hekate/nyx: remove obsolete compile flag
BDK_MC_ENABLE_AHB_REDIRECT
2026-03-27 20:42:31 +01:00
CTCaer 88ba35b73f bdk: mc: always enable ahb redirection 2026-03-27 20:42:31 +01:00
CTCaer 860e1b12ac nyx: show forced 8GB with an asterisk 2026-03-27 20:42:31 +01:00
CTCaer 95639d9bf1 nyx: fix off-by-one bug in emmc part manager
Last step after finish do not have a UMS option, so adjust accordingly.
2026-03-27 20:42:31 +01:00
CTCaer eb8f46fd74 hos: fix building 2026-03-27 20:42:31 +01:00
CTCaer f975364a8e bdk: touch: add clone support
From LCD on OLED sku.
2026-03-27 20:42:31 +01:00
CTCaer 096e544332 nyx: emummc: remove unneeded stuff, it's 2026. 2026-03-27 20:42:31 +01:00
CTCaer c5eefcb609 hos: homogenize return values 2026-03-27 20:19:37 +01:00
CTCaer 89b71d9e81 hekate/nyx: adjust handling of ini return values 2026-03-27 20:17:35 +01:00
CTCaer 72623d5a80 bdk: ini: homogenize return values 2026-03-27 20:16:31 +01:00
CTCaer 12d970fa64 bdk: pmc: homogenize return values 2026-03-27 20:16:31 +01:00
CTCaer 0a0e8697bc nyx: adjust handling of kfuse return values 2026-03-27 20:16:31 +01:00
CTCaer 9bca3c0253 bdk: kfuse: homogenize return values 2026-03-27 20:16:31 +01:00
CTCaer fcbae9d581 bdk: clock: homogenize return values 2026-03-27 20:16:31 +01:00
CTCaer a8325f4ec4 bdk: tsec: homogenize return values 2026-03-27 20:16:31 +01:00
CTCaer 2ce8a57b89 nyx: adjust handling of se return values 2026-03-27 20:16:31 +01:00
CTCaer 0e49d62bed bdk: se: homogenize return values 2026-03-27 20:16:31 +01:00
CTCaer 1101db8f19 bdk: power: homogenize return values 2026-03-27 20:16:31 +01:00
CTCaer 45446486f2 bdk: dram: homogenize return values 2026-03-27 20:16:31 +01:00
CTCaer 267f4bff93 nyx: adjust handling of touch return values 2026-03-27 20:16:31 +01:00
CTCaer 10fceea4be bdk: touch: homogenize return values 2026-03-27 20:16:31 +01:00
CTCaer f26e9f0504 bdk: i2c: homogenize return values 2026-03-27 20:16:31 +01:00
CTCaer 5ecc2a8202 nyx: wait for the first frame to render
Needed for lcd oem clones on oled sku because of no fade in support.
2026-03-27 20:08:45 +01:00
CTCaer 58064bda34 bdk: vic: expose idle wait 2026-03-27 20:08:45 +01:00
CTCaer 1319984285 bdk: touch: check event count for wait event
And increase checks during autotune execution.
2026-03-27 20:08:45 +01:00
CTCaer f45cb1c536 nyx: update for new touch driver changes 2026-03-27 20:08:45 +01:00
CTCaer 8881faa91b bdk: touch: simplify input reporting
Additionally, touch polling now returns 1 for no event result.
2026-03-27 20:08:45 +01:00
CTCaer 0e64b9384f bdk: touch: switch to custom chip info cmd
And also check if chip id is correct on init.
2026-03-27 20:08:45 +01:00
CTCaer e3fba92e00 bdk: touch: use packet i2c for all transfers
The repeating byte doesn't exist in i2c packet mode.
Additionally, adjust split transfers to one.
2026-03-27 20:08:45 +01:00
CTCaer 2a7e148011 bdk: touch: refactor
And also use packet mode for big tx/rx combo i2c trasnfers.
2026-03-27 20:08:45 +01:00
CTCaer 476c070cf4 bdk: i2c: optimize packet mode functions
- Allow xfer packet to send up to 20 bytes before receiving
- Remove interrupt use since it's only polling
- Check proper status for TX finish.
2026-03-27 20:08:45 +01:00
CTCaer 8f6dce1368 bdk: i2c: refactor 2026-03-27 20:08:45 +01:00
CTCaer 10c2d3d379 bdk: clk: add missing macro 2026-03-27 20:08:45 +01:00
CTCaer 84234948cd nyx: parted: remove android 10 references
Additionally, swap Legacy and Dynamic button sides and state dynamic is preferred.
2026-03-27 20:08:45 +01:00
CTCaer 67b002348e nyx: tools: swap result check for touch ito test 2026-03-27 20:08:45 +01:00
CTCaer e2ff75291b bdk: touch: refactor/improve
- Remove useless poll wait
- Use more defines
- Deduplicate code
- Add more checks
- Add switch sense mode
2026-03-27 20:08:45 +01:00
CTCaer 45a08c058f bdk: clk: reduce i2c freq input to save power 2026-03-27 20:08:45 +01:00
CTCaer e4c226f101 readme: add which are ini only and adjust defaults 2026-03-27 20:08:45 +01:00
CTCaer 7a37ddc45e bdk: vic: add hw version that this driver aims for
Also TRM lies about best cache width, like always.
The higher the faster. The lower the simpler alignment.
A balanced one is used by default.
2026-03-27 20:08:45 +01:00
CTCaer 2939f69928 nyx: fix launch rolling boot entry names
Somehow this broke half a decade ago and it went unnoticed... which is good.
Fix it and make measurements fully proper.
2026-03-27 20:08:45 +01:00
CTCaer 2c071eb878 nyx: use renamed bm92t function 2026-03-27 20:08:45 +01:00
CTCaer de3a74d351 bdk: bm92t: do not parse non fixed pdos 2026-03-27 20:08:45 +01:00
CTCaer eb62a31a1a bdk: sdmmc: remove dependency to ram for init 2026-03-27 20:08:45 +01:00
CTCaer 29c64c5458 nyx: adjust sdmmc dma buffer name 2026-03-27 20:08:45 +01:00
CTCaer bf5372628a bdk: mem: rename sdmmc dma buffer 2026-03-27 20:05:57 +01:00
CTCaer f16602c0cf hekate/nyx: adjust exception storage based on bdk 2026-03-27 20:05:57 +01:00
CTCaer aba56fd173 bdk: move exception type base away from IRQ stack
Allow a more heavy stack usage by IRQ handlers.
2026-03-27 20:05:57 +01:00
CTCaer 27bc159831 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-03-27 20:05:57 +01:00
CTCaer 618e3007b5 bdk: lvgl: complete black theme
This has the side-effect to make any theme color component from 0x0B to 0xC7 work.
2026-03-27 19:38:45 +01:00
CTCaer 378d38b850 bdk: add missing header guards 2026-03-27 19:38:45 +01:00
CTCaer 6a43aa8c33 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-03-27 19:38:45 +01:00
CTCaer 801c31f613 modules: adjust for ianos changes 2026-03-27 19:38:45 +01:00
CTCaer b8dcd5a05b hekate: adjust for ianos changes 2026-03-27 19:38:45 +01:00
CTCaer f155346238 bdk: ianos: restructure for future expansion 2026-03-27 19:38:08 +01:00
CTCaer f08557fb8f modules: lp0: refactor t210b01 to use the macros
This actually makes it faster too.
Additionally, remove support for DDR in T210 function.
2026-03-27 19:36:58 +01:00
CTCaer c69cdacf30 l4t: use the updated pmc defines/struct 2026-03-27 19:36:58 +01:00
CTCaer b3c95990ed bdk: pmc: refactor register defines and structs 2026-03-27 19:36:58 +01:00
CTCaer b86701823c 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-03-27 19:36:58 +01:00
CTCaer 9fe3ac7589 Bump hekate to v6.5.1 and Nyx to v1.9.1 2026-03-27 10:02:21 +01:00
CTCaer 315457651c bdk: joycon: make init stricter but relax timings
Additionally, if both Joy-Con are found, try to send rumble simultaneously.
2026-03-27 10:02:21 +01:00
CTCaer aecd657358 bdk: display: reduce display off waiting time
And align oled panel inside vblank.
Assumes display deinit happens before the rest of deinit.
2026-03-27 10:02:21 +01:00
CTCaer ef84b9804c 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-03-27 10:02:21 +01:00
CTCaer 16b14b74c2 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-03-27 10:02:21 +01:00
CTCaer 925b6e22bb 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-03-27 10:02:21 +01:00
CTCaer 5a35a61753 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-03-27 10:02:21 +01:00
CTCaer e649d1df8e bdk: se: correct result for < block size aes 2026-03-27 10:02:21 +01:00
CTCaer 154d8b114c hos: store wb anyway even if unused
Partially reverts 73d96b7ca8bd4360b288e53d95295fd98d1655e5.
This should be completely removed at some point.
2026-03-27 10:02:21 +01:00
CTCaer a8d3018e83 hos: refactor ctr/hash vars in pkg2 header 2026-03-27 10:01:38 +01:00
CTCaer ef2247a3f0 Bump hekate to v6.5.0 and Nyx to v1.9.0 2026-03-27 10:01:21 +01:00
CTCaer 0f4636546c hos: add 21.2.0 support 2026-03-27 10:01:20 +01:00
CTCaer 22dd1a42c7 hekate/nyx: remove coreboot support
Everything external is finally updated and beyond parity with old things that needed it.
2026-03-27 10:01:20 +01:00
CTCaer 4daa02fe85 bdk: hwinit: remove coreboot support
Everything external is finally updated and beyond parity with old things that needed it.
2026-03-27 10:00:26 +01:00