Skip to content

KingstonFuryDRAMControllerDetect: Additional logging information and refinements #49

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

nigels-com
Copy link

@nigels-com nigels-com commented May 17, 2025

I have a brand new computer including Kingston Fury RAM with LED lighting: KF560C36-32
I was digging into OpenRGB to see why it's detecting one stick of RAM, but not the other.
I can set both to a specified colour with the attached script, included here mainly for my reference.

I did not root-cause why OpenRGB is unhappy with my setup.
But along the way I did make some changes to the logging for TestForFurySignature that might be acceptable.

The output on my machine is:

[Kingston Fury DDR4 DRAM] Detector 1 Jedec ID: 0x0117
[Kingston Fury DDR5 DRAM] Detector 2 Jedec ID: 0x0117
[Kingston Fury DDR5 DRAM] is enabled
[ResourceManager] Calling detection progress callbacks.
[Kingston Fury DDR4/5 DRAM] looking at bus 0 address 0x61
[Kingston Fury DDR4/5 DRAM] 0x61 beginning transaction; res=0x00
[Kingston Fury DDR4/5 DRAM] Testing address 0x61 register 0x01, res=0x0708
[Kingston Fury DDR4/5 DRAM] Matching 0x07 to 0x46: F
[Kingston Fury DDR4/5 DRAM] 0x61 ending transaction; res=0x00
[Kingston Fury DDR4/5 DRAM] not detected at slot index 0x01
[Kingston Fury DDR4/5 DRAM] looking at bus 0 address 0x63
[Kingston Fury DDR4/5 DRAM] 0x63 beginning transaction; res=0x00
[Kingston Fury DDR4/5 DRAM] Testing address 0x63 register 0x01, res=0xFFFF
[Kingston Fury DDR4/5 DRAM] Testing address 0x63 register 0x01, res=0x465A
[Kingston Fury DDR4/5 DRAM] Matching 0x46 to 0x46: F
[Kingston Fury DDR4/5 DRAM] Testing address 0x63 register 0x02, res=0x555A
[Kingston Fury DDR4/5 DRAM] Matching 0x55 to 0x55: U
[Kingston Fury DDR4/5 DRAM] Testing address 0x63 register 0x03, res=0x525A
[Kingston Fury DDR4/5 DRAM] Matching 0x52 to 0x52: R
[Kingston Fury DDR4/5 DRAM] Testing address 0x63 register 0x04, res=0x595A
[Kingston Fury DDR4/5 DRAM] Matching 0x59 to 0x59: Y
[Kingston Fury DDR4/5 DRAM] Reading model code at address 0x63 register 0x06, res=0x105A
[Kingston Fury DDR4/5 DRAM] Recognized FURY_MODEL_BEAST_DDR5 at address 0x63
[Kingston Fury DDR4/5 DRAM] 0x63 ending transaction; res=0x00
[Kingston Fury DDR4/5 DRAM] detected at slot index 0x03
[Kingston Fury DDR5 RGB] Registering RGB controller

My best guess is that 0x61 needs some sort of poke to respond with FURY.

Additional information:

Handle 0x0018, DMI type 17, 92 bytes
Memory Device
        Array Handle: 0x0013
        Error Information Handle: 0x0017
        Total Width: 64 bits
        Data Width: 64 bits
        Size: 32 GB
        Form Factor: DIMM
        Set: None
        Locator: DIMM 1
        Bank Locator: P0 CHANNEL A
        Type: DDR5
        Type Detail: Synchronous Unbuffered (Unregistered)
        Speed: 4800 MT/s
        Manufacturer: Kingston
        Serial Number: 38032A59
        Asset Tag: Not Specified
        Part Number: KF560C36-32                   
        Rank: 2
        Configured Memory Speed: 4800 MT/s
        Minimum Voltage: 1.1 V
        Maximum Voltage: 1.1 V
        Configured Voltage: 1.1 V
        Memory Technology: DRAM
        Memory Operating Mode Capability: Volatile memory
        Firmware Version: Unknown
        Module Manufacturer ID: Bank 2, Hex 0x98
        Module Product ID: Unknown
        Memory Subsystem Controller Manufacturer ID: Unknown
        Memory Subsystem Controller Product ID: Unknown
        Non-Volatile Size: None
        Volatile Size: 32 GB
        Cache Size: None
        Logical Size: None
$ i2cdetect -l
i2c-0	smbus     	SMBus PIIX4 adapter port 0 at 0b00	SMBus adapter
i2c-1	smbus     	SMBus PIIX4 adapter port 2 at 0b00	SMBus adapter
i2c-2	smbus     	SMBus PIIX4 adapter port 1 at 0b20	SMBus adapter
i2c-3	i2c       	AMDGPU DM i2c hw bus 0          	I2C adapter
i2c-4	i2c       	AMDGPU DM i2c hw bus 1          	I2C adapter
i2c-5	i2c       	AMDGPU DM i2c hw bus 2          	I2C adapter
i2c-6	i2c       	NVIDIA i2c adapter 1 at 1:00.0  	I2C adapter
i2c-7	i2c       	NVIDIA i2c adapter 3 at 1:00.0  	I2C adapter
i2c-8	i2c       	NVIDIA i2c adapter 4 at 1:00.0  	I2C adapter
i2c-9	i2c       	NVIDIA i2c adapter 5 at 1:00.0  	I2C adapter
i2c-10	i2c       	NVIDIA i2c adapter 6 at 1:00.0  	I2C adapter
i2c-11	i2c       	AMDGPU DM aux hw bus 1          	I2C adapter
i2c-12	i2c       	AMDGPU DM aux hw bus 2          	I2C adapter
#!/bin/bash

bus=0
ram1addr=0x61
ram2addr=0x63

if ! [[ $1 =~ ^0x[0-9a-fA-F]{2}$ ]]; then
    echo "$1 is not a valid octet hex value"
    exit 1
fi
red=$1

if ! [[ $2 =~ ^0x[0-9a-fA-F]{2}$ ]]; then
    echo "$2 is not a valid octet hex value"
    exit 1
fi
green=$2

if ! [[ $3 =~ ^0x[0-9a-fA-F]{2}$ ]]; then
    echo "$3 is not a valid octet hex value"
    exit 1
fi
blue=$3

echo "Setting static R=$red G=$green B=$blue"

i2cset -y $bus $ram1addr 0x08 0x53
sleep 0.020
i2cset -y $bus  $ram1addr 0x09 0x00
sleep 0.020
i2cset -y $bus  $ram1addr 0x31 $red
sleep 0.020
i2cset -y $bus  $ram1addr 0x32 $green
sleep 0.020
i2cset -y $bus  $ram1addr 0x33 $blue
sleep 0.020
i2cset -y $bus  $ram1addr 0x20 0x1e
sleep 0.020
i2cset -y $bus  $ram1addr 0x08 0x44

sleep 0.020
i2cset -y $bus  $ram2addr 0x08 0x53
sleep 0.020
i2cset -y $bus  $ram2addr 0x09 0x00
sleep 0.020
i2cset -y $bus  $ram2addr 0x31 $red
sleep 0.020
i2cset -y $bus  $ram2addr 0x32 $green
sleep 0.020
i2cset -y $bus  $ram2addr 0x33 $blue
sleep 0.020
i2cset -y $bus  $ram2addr 0x20 0x1e
sleep 0.020
i2cset -y $bus  $ram2addr 0x08 0x44

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant