Commit Graph
100 Commits
Author SHA1 Message Date
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
CTCaer e5566c0a46 hekate: add force 8GB ram config mode 2025-11-27 12:29:16 +02:00
CTCaer dcf8e76441 loader/hekate/nyx: utilize the new rsvd cfg 2025-11-27 12:28:19 +02:00
CTCaer 7cbefa3061 bdk: add reserved cfg to ipl meta and nyx storage 2025-11-27 12:17:33 +02:00
CTCaer 5176ce4394 bdk: sdmmc: correct drive ohms comment 2025-11-27 12:14:43 +02:00
CTCaer a6d4e5adaa bdk: clock: add i2c to the errata affected list 2025-11-27 12:12:13 +02:00
CTCaer 4a24956f3a bdk: fuse: allow overriding dram id fuses
This should be set before running sdram init.
fuse_read_dramid(true) will still return the real id.
2025-11-27 12:04:12 +02:00
CTCaer 364465399e hekate/nyx: use minerva storage and panel id 2025-11-27 11:28:26 +02:00
CTCaer 727d37c991 bdl: minerva: add deinit function
Removes dependency to Nyx storage for hw init too.
2025-11-27 11:25:08 +02:00
CTCaer 1fc92cfa33 bdk: nyx: rename disp_id to panel_id 2025-11-27 11:21:06 +02:00
CTCaer 62163f3255 bdk: minerva: remove dependency to Nyx storage
minerva_str_t must be used now and passed directly to minerva_init.
2025-11-27 11:20:19 +02:00
CTCaer fc71e405d2 bdk: display: remove dependency to Nyx storage
display_get_verbose_panel_id should now be used to get the full panel id.
2025-11-27 11:13:54 +02:00
CTCaer e7783f0bd7 bdk: bpmp: add write commits
And deduplicate bpmp_clk_rate_relaxed in bpmp_clk_rate_set.
2025-11-26 16:53:19 +02:00
CTCaer e50ad58d61 bdk: clock: add sdmmc1 to the errata affected list 2025-11-26 16:47:29 +02:00
CTCaer 0a63fa19a3 bdk: clock: allow pll lock wait to timeout
Also enable PLLC4 p/f lock and reduce time waiting before disabling.
2025-11-26 16:46:11 +02:00
CTCaer 19285745b5 bdk: clock: improve PLLC init
- Use 6 as divm and div1 for OUT1 to avoid having very high frequency on OUT0
 There seems to be an undocumented silicon errata where PLLC OUT0 produces EMI
 to input mux logic in modules, even when not using it.
- Always check if PLL is enabled and disable first in order to avoid a silicon
 errata with hybrid PLLs
- Fix PLLC_FLL_LD_MEM value
2025-11-26 14:48:47 +02:00
CTCaer 9c028cd94a bdk: clock: streamline sdmmc func naming
Additionally, restored the pclock variable because of _clock_sdmmc_config_clock_host store order.
2025-11-26 14:37:14 +02:00
CTCaer a2ea3fb08e bdk: clock: use SET/CLR registers for all modules
This is not mandatory but removes unnecessary load-mask/or-stores.

On the other hand, due to an undocumented T210 silicon errata,
these are mandatory for SDMMC modules.
This is because a fraction of T210 chips can glitch out and cause SoC hang.
T210B01 is not affected.
2025-11-26 14:33:56 +02:00
CTCaer 50ac32fd40 Bump hekate to v6.4.1 and Nyx to v1.8.1 2025-11-16 22:11:31 +02:00
CTCaer 43dec3021f nyx: info: add hos version for 22 fuses burnt 2025-11-16 21:54:03 +02:00
CTCaer c72f97eef3 hos: fix 21.0.0 nogc FS patch and refactor patches
The NOGC sdmmc memio patch was incorrectly changing the register that keeps the value for HOS 21.0.0.
Refactored all patches to stop patching the whole op and just change the value from 0x200 to 0x400.
2025-11-16 21:53:26 +02:00
CTCaer 8e813ae8b6 Bump hekate to v6.4.0 and Nyx to v1.8.0 2025-11-15 22:37:09 +02:00
CTCaer 3eab7889bf nyx: parted: do not allow FULL on upgraded eMMC
It's not allowed on creation anyway because of unknown HOS USER size factors
2025-11-14 18:49:41 +02:00
CTCaer 69ac0292f0 hos: add 21.0.0 support 2025-11-11 14:17:04 +02:00
CTCaer 119fcdf9e8 nyx: extend bpmpclock
Add 2 more slower modes.
2025-11-11 13:54:33 +02:00
CTCaer 813346f796 bdk: bpmp: add binX clock defines 2025-11-11 13:52:00 +02:00
CTCaer 260e28e628 bdk: fuse: add sense function 2025-11-11 13:28:44 +02:00
CTCaer 602945d918 bdk: fuse: add extra info on regs 2025-11-11 13:27:36 +02:00
CTCaer 7e01438ed3 bdk: fuse: correct masking on array read cmd 2025-11-11 13:27:13 +02:00
CTCaer 2c66b17f42 bdk: t210: add mc channel macros 2025-11-11 13:24:06 +02:00
CTCaer e2f043a58a bdk: emc/mc: don't use [io]_rsvd naming for unused regs 2025-11-11 13:23:07 +02:00
CTCaer 0737f27ba0 bdk: lvgl: make sure task has a task to call 2025-11-11 13:17:34 +02:00
CTCaer 453ec18048 nyx: part: extend Fix Hybrid MBR/GPT functionality
- Allow invalid/out-of-bounds and empty partitions to be removed from GPT
- Add fix for wrong emuMMC offset because of older bugged Android Dynamic scheme
2025-11-10 15:28:41 +02:00
CTCaer b461bfc846 nyx: info: update SD errors after a bench session 2025-11-10 13:53:43 +02:00
CTCaer e38cff815b nyx: info: say when sbk fuses can't be read
Additionally, swap the IDDQ real with raw values.
2025-11-10 13:52:43 +02:00
CTCaer 5d75b01491 nyx: fix a mem leak on closing emummc change win 2025-11-10 13:50:07 +02:00
CTCaer 50d56c7b4b nyx: part: add support for max 24GB resized emuMMC
If a partition is added manually, 28GB is the max allowed to be created.
2025-11-07 13:33:34 +02:00
CTCaer 0aa35d16da Update template with ;/# and newline info 2025-08-27 16:02:42 +03:00
CTCaer 91e2f6d9db nyx: backup/restore UX improvements
- Fix the verification % and bar if restored backup is smaller than partition
- Use orange bar for restoring when writing to eMMC/emuMMC.
- Fix bar color on restoring after verification
- Allow verification to be aborted for all parts in partial mode (FAT32 or small card)
2025-08-27 15:56:04 +03:00
CTCaer 3896b7cb8f nyx: part mgr: remove gpt 126 entries check
It's done before to validate GPT anyway
2025-08-27 15:48:24 +03:00
CTCaer dad9abe93d minerva: update to v1.5
- "Perf" hack removal (match L4T mini Minerva)
 It's not a performance hack, it just kills low power modes.
 If wanted in L4T, use HP Mode in `ram_oc_opt`.
- Simplify of burst regs config
- Refactor of several bit defines and variables
2025-08-27 15:45:58 +03:00
CTCaer aa4d0678d3 l4t: add some missing carveout configs
Mostly relevant for CARVEOUT_NVDEC_TSEC_ENABLE.
2025-08-27 15:30:47 +03:00
CTCaer ded26332c6 bdk: ini: switch back to ASCII ordering
For combining multiple inis.
2025-08-27 15:22:54 +03:00
CTCaer 21c9e3f81f hekate: use the new dirlist 2025-08-27 15:21:46 +03:00
CTCaer 9309b53054 bdk: dirlist: use flags instead of arguments
A new flag was also added that forces an ASCII ordering instead of Alphabetical one.
2025-08-27 15:18:41 +03:00
CTCaer 9368a780cd bdk: minerva: allow sdmmc la to be skipped on L4T 2025-08-27 15:16:42 +03:00
CTCaer 20fa8382e6 bdk: hwinit: refactor MBIST WAR & add description
The biggest take here is that the split approach of having it in Bootrom and
Bootloader is that it's only for boot. Any later powerdown must rerun the WAR
for that particular power domain.
2025-08-27 15:13:56 +03:00
CTCaer 3cde8b7d58 bdk: hwinit: fix RAM_SVOP_PDP try no 2
Previously the correct reg name was used but register address was not fixed.
So finally fix it.
2025-08-27 15:10:47 +03:00
CTCaer bdf556fd36 bdk: storage: small mmc refactoring
- Correct some Response Type names
- And use _def for mmc defines similarly to sd_def
2025-08-27 15:08:11 +03:00
CTCaer b8e246248f hos: use the renamed mc carveout function 2025-08-27 15:03:09 +03:00
CTCaer fee7571135 bdk: mc: carveouts are not set by cfg so fix them
For HOS <= 3.0.2 the carveouts are set by bootloader and sdram config actually does not set them.
So add which need different value from reset and also make sure that data is flushed for WPR config.
2025-08-27 15:02:27 +03:00
CTCaer 459fe8c19c bdk: make use of new MC/EMC defines 2025-08-27 14:57:12 +03:00
CTCaer a1e4549c29 bdk: rework MC/EMC register defines from scratch
And add register structs also.
2025-08-27 14:52:36 +03:00
CTCaer f354f0e5bd bdk: add some t210 and fuses defines
PGUP tag register can be used to identify which cpu we are running on.
2025-08-27 14:48:35 +03:00
CTCaer ea3a60f516 bdk: clock: simplify logic
Simplify logic for clock enable and sdmmc clock management
2025-08-27 14:44:41 +03:00
CTCaer b4b3133570 bdk: clock: remove non existent module ids
And add comments to special handling ones
2025-08-27 14:41:27 +03:00
CTCaer c63ccd0cdc bdk: pmc: rename pmc_enable_partition 2025-08-27 14:39:44 +03:00
CTCaer 34a6cf3936 Update readme with timeoffset and timedst 2025-08-08 16:00:01 +03:00
CTCaer 8be2c5506e bdk: clock: wait for PLLD to lock when set 2025-08-08 15:58:32 +03:00
CTCaer b8655a2f60 hekate: reorder some checks & add load nyx in TUI 2025-08-08 15:57:07 +03:00
CTCaer 87b1eef598 hos: simplify warmboot pa id calculation 2025-08-08 15:55:01 +03:00
CTCaer 3a9689b46e hos: add NX BIT/BC structures and utilize them
These are used to communicate between bootloader stages and pass config.
The NX Boot Config is now passed as is from PKG2 partition.
2025-08-08 15:49:47 +03:00
CTCaer 216f579527 nyx: tools: correct the backup tool description 2025-08-08 15:37:58 +03:00
CTCaer de91ab507e hos: simple refactor of defines 2025-08-08 15:36:59 +03:00
CTCaer b33ab240f2 nyx: boost dump pkg1/2 functionality
The tool can now dump main and safe pkg1/2.
Additionally, it can identify if FS is exfat or not and set the proper filename.
(FAT32 only FS will still use FS.kip1)
Lastly, this will also dump and decrypt the main/safe BCT structures.
2025-08-08 15:34:17 +03:00
CTCaer 885cc195c0 hos: refactor keyblob to eks and kb to mkey
Use the official name for keyblob which is EKS.
For that reason the keyblob version enum is renamed to master key version.
2025-08-08 15:29:02 +03:00
CTCaer f083dcd280 bdk: add tegra BCT/BIT headers for T210/T210B01 2025-08-08 15:12:30 +03:00
CTCaer db5cc323f2 nyx: do communication checks in battery info
If communication with an IC fails, an error will show up.
2025-08-08 15:11:32 +03:00
CTCaer f013c54a23 nyx: show warning colors if sd vendor is fake 2025-08-08 15:10:01 +03:00