Add T-Force Delta RGB DDR5 support (8 LEDs)#80
Open
pedroezaya wants to merge 4 commits intoCalcProgrammer1:masterfrom
Open
Add T-Force Delta RGB DDR5 support (8 LEDs)#80pedroezaya wants to merge 4 commits intoCalcProgrammer1:masterfrom
pedroezaya wants to merge 4 commits intoCalcProgrammer1:masterfrom
Conversation
The T-Force Xtreem controller was DDR4-only and hardcoded 15 LEDs. The T-Force Delta RGB DDR5 uses the same ENE SMBus protocol but has 8 LEDs in a linear (non-folded) bar arrangement. Changes: - Make TForceXtreemController parameterizable: led_count and folded strip layout are now constructor parameters with defaults that preserve existing DDR4 Xtreem behaviour - Replace the XTREEM_LED_OFFSET macro with a GetLEDOffset() method that handles both folded (Xtreem) and linear (Delta) layouts - Make RGBController_TForceXtreem accept a device_name parameter - Use controller->GetLEDCount() in SetupZones() instead of hardcoded 15 - Fix latent bug: new_led.value was never set, causing UpdateZoneLEDs and UpdateSingleLED to always address LED 0 - Refactor shared remap logic into RemapENERamModules() helper - Add DetectTForceDeltaControllers() and register it for SPD_DDR5_SDRAM https://claude.ai/code/session_012VktdCkNKbhAyMyMH5127H
The Delta DDR5 uses the standard ENE SMBus DRAM protocol, not the Xtreem-specific ENE protocol. Testing confirmed the generic ENE DRAM controller already detects both DIMMs with all 8 LEDs correctly. https://claude.ai/code/session_012VktdCkNKbhAyMyMH5127H
The Delta DDR5 uses the ENE 0xExxx register range (same as Xtreem) but responds to the standard ENE test pattern (0xA0-0xAF incrementing 0x00-0x0F) rather than the Xtreem-specific pattern (0x90-0xA0). The generic "ENE SMBus DRAM" detector uses wrong registers (0x8xxx), resulting in only 2 of 8 LEDs being controllable. This adds a dedicated DDR5 detector using the correct test pattern and the TForceXtreem controller which writes to the correct 0xExxx registers. Also refactors RemapENERamModules to accept a test function parameter. https://claude.ai/code/session_012VktdCkNKbhAyMyMH5127H
The DIMM-based detector (REGISTER_I2C_DIMM_DETECTOR) relies on DDR5 SPD detection which doesn't work on all systems. Switch to a bus-based detector (REGISTER_I2C_DETECTOR) that scans DRAM SMBus interfaces directly, similar to how the generic ENE DRAM detector works. Users should disable "ENE SMBus DRAM" in Settings > Supported Devices to avoid duplicate detection, as that detector uses wrong registers (0x8xxx instead of 0xExxx) for the Delta DDR5. https://claude.ai/code/session_012VktdCkNKbhAyMyMH5127H
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The T-Force Xtreem controller was DDR4-only and hardcoded 15 LEDs. The T-Force Delta RGB DDR5 uses the same ENE SMBus protocol but has 8 LEDs in a linear (non-folded) bar arrangement.
Changes:
https://claude.ai/code/session_012VktdCkNKbhAyMyMH5127H