diff mbox series

i2c: smbus: Add (LP)DDR5 types to `i2c_register_spd()`

Message ID 20240327083356.74246-1-pmenzel@molgen.mpg.de
State Under Review
Delegated to: Wolfram Sang
Headers show
Series i2c: smbus: Add (LP)DDR5 types to `i2c_register_spd()` | expand

Commit Message

Paul Menzel March 27, 2024, 8:33 a.m. UTC
On several systems Linux logs:

     i2c i2c-0: Memory type 0x22 not supported yet, not instantiating SPD

1.  Supermicro Super Server/X13SAE, BIOS 2.0 10/17/2022
2.  Dell Inc. Precision 3660/0PRR48, BIOS 2.9.3 11/22/2023
3.  Dell Inc. OptiPlex SFF Plus 7010/0YGWFV, BIOS 1.7.1 08/11/2023
4.  Run `git grep 'emory type.*supported yet, not instantiating SPD'` in
    the repository of dmesg reports for various computers collected by
    Linux users at https://linux-hardware.org. [1]

Add 0x22 and 0x23 for DDR5 according to section 7.18.2 (Memory Device —
Type), table 78 in *System Management BIOS (SMBIOS) Reference
Specification*, version 3.6.0 [2].

I use the same name as for DDR4 out of ignorance.

[1]: https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_3.6.0.pdf
[2]: https://github.com/linuxhw/Dmesg
---
 drivers/i2c/i2c-smbus.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Wolfram Sang April 26, 2024, 7:10 a.m. UTC | #1
Hi Paul,

(adding Jean)

On Wed, Mar 27, 2024 at 09:33:55AM +0100, Paul Menzel wrote:
> On several systems Linux logs:
> 
>      i2c i2c-0: Memory type 0x22 not supported yet, not instantiating SPD
> 
> 1.  Supermicro Super Server/X13SAE, BIOS 2.0 10/17/2022
> 2.  Dell Inc. Precision 3660/0PRR48, BIOS 2.9.3 11/22/2023
> 3.  Dell Inc. OptiPlex SFF Plus 7010/0YGWFV, BIOS 1.7.1 08/11/2023
> 4.  Run `git grep 'emory type.*supported yet, not instantiating SPD'` in
>     the repository of dmesg reports for various computers collected by
>     Linux users at https://linux-hardware.org. [1]
> 
> Add 0x22 and 0x23 for DDR5 according to section 7.18.2 (Memory Device —
> Type), table 78 in *System Management BIOS (SMBIOS) Reference
> Specification*, version 3.6.0 [2].
> 
> I use the same name as for DDR4 out of ignorance.

So, you didn't test it on DDR5 on your own? I'd like to have it tested.
The document you referenced does only mention I2C but the wikipedia
article [3]  mentions I3C. It will probably support I2C fallback, but
I'd like to be sure.

[3] https://en.wikipedia.org/wiki/Serial_presence_detect

> [1]: https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_3.6.0.pdf
> [2]: https://github.com/linuxhw/Dmesg

[1] and [2] are mixed up.

Thanks for the patch!

   Wolfram
diff mbox series

Patch

diff --git a/drivers/i2c/i2c-smbus.c b/drivers/i2c/i2c-smbus.c
index 97f338b123b1..0d67a95c0599 100644
--- a/drivers/i2c/i2c-smbus.c
+++ b/drivers/i2c/i2c-smbus.c
@@ -308,7 +308,7 @@  EXPORT_SYMBOL_GPL(i2c_free_slave_host_notify_device);
  * target systems are the same.
  * Restrictions to automatic SPD instantiation:
  *  - Only works if all filled slots have the same memory type
- *  - Only works for DDR, DDR2, DDR3 and DDR4 for now
+ *  - Only works for DDR, DDR2, DDR3, DDR4 and DDR5 for now
  *  - Only works on systems with 1 to 8 memory slots
  */
 #if IS_ENABLED(CONFIG_DMI)
@@ -380,6 +380,8 @@  void i2c_register_spd(struct i2c_adapter *adap)
 		break;
 	case 0x1A:	/* DDR4 */
 	case 0x1E:	/* LPDDR4 */
+	case 0x22:	/* DDR5 */
+	case 0x23:	/* LPDDR5 */
 		name = "ee1004";
 		break;
 	default: