This is needed for newer u-boot-sam460ex versions to pass the DRAM
setup.
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
---
hw/i2c/smbus_eeprom.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/hw/i2c/smbus_eeprom.c b/hw/i2c/smbus_eeprom.c
index 0a1088fbb0..26e211b31a 100644
--- a/hw/i2c/smbus_eeprom.c
+++ b/hw/i2c/smbus_eeprom.c
@@ -288,6 +288,7 @@ uint8_t *spd_data_generate(enum sdram_type type, ram_addr_t ram_size)
spd[33] = 8; /* addr/cmd hold time */
spd[34] = 20; /* data input setup time */
spd[35] = 8; /* data input hold time */
+ spd[36] = (type == DDR2 ? 13 << 2 : 0); /* min. write recovery time */
/* checksum */
for (i = 0; i < 63; i++) {
--
2.41.3
On 8/10/25 14:25, BALATON Zoltan wrote: > This is needed for newer u-boot-sam460ex versions to pass the DRAM > setup. > > Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu> > --- > hw/i2c/smbus_eeprom.c | 1 + > 1 file changed, 1 insertion(+) Patch queued, thanks.
On 8/10/25 14:25, BALATON Zoltan wrote: > This is needed for newer u-boot-sam460ex versions to pass the DRAM > setup. > > Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu> > --- > hw/i2c/smbus_eeprom.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/hw/i2c/smbus_eeprom.c b/hw/i2c/smbus_eeprom.c > index 0a1088fbb0..26e211b31a 100644 > --- a/hw/i2c/smbus_eeprom.c > +++ b/hw/i2c/smbus_eeprom.c > @@ -288,6 +288,7 @@ uint8_t *spd_data_generate(enum sdram_type type, ram_addr_t ram_size) > spd[33] = 8; /* addr/cmd hold time */ > spd[34] = 20; /* data input setup time */ > spd[35] = 8; /* data input hold time */ > + spd[36] = (type == DDR2 ? 13 << 2 : 0); /* min. write recovery time */ We are adapting DDR2 values on a method written for SDR/DDR[1]. Better would be to split and correctly document each format, using proper values. Anyhow, for this patch: Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
On Mon, 20 Oct 2025, Philippe Mathieu-Daudé wrote: > On 8/10/25 14:25, BALATON Zoltan wrote: >> This is needed for newer u-boot-sam460ex versions to pass the DRAM >> setup. >> >> Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu> >> --- >> hw/i2c/smbus_eeprom.c | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/hw/i2c/smbus_eeprom.c b/hw/i2c/smbus_eeprom.c >> index 0a1088fbb0..26e211b31a 100644 >> --- a/hw/i2c/smbus_eeprom.c >> +++ b/hw/i2c/smbus_eeprom.c >> @@ -288,6 +288,7 @@ uint8_t *spd_data_generate(enum sdram_type type, >> ram_addr_t ram_size) >> spd[33] = 8; /* addr/cmd hold time */ >> spd[34] = 20; /* data input setup time */ >> spd[35] = 8; /* data input hold time */ >> + spd[36] = (type == DDR2 ? 13 << 2 : 0); /* min. write recovery time */ > > We are adapting DDR2 values on a method written for SDR/DDR[1]. > Better would be to split and correctly document each format, > using proper values. I plan to add separate function for DDR3 which is different from these (Bernhard had a patch for that which we can adopt but I haven't got to that yet). Maybe a split could be considered then but these formats up to DDR2 are quite similar with a lot of common values and only a few differences to have them in a single function. As a documentation better consult something else, e.g. wikipedia has a good summary. > Anyhow, for this patch: > Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Thank you, BALATON Zoltan
On Wed, 8 Oct 2025, BALATON Zoltan wrote:
> This is needed for newer u-boot-sam460ex versions to pass the DRAM
> setup.
>
> Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Ping? Will somebody review and merge this?
Regards,
BALATON Zoltan
> ---
> hw/i2c/smbus_eeprom.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/hw/i2c/smbus_eeprom.c b/hw/i2c/smbus_eeprom.c
> index 0a1088fbb0..26e211b31a 100644
> --- a/hw/i2c/smbus_eeprom.c
> +++ b/hw/i2c/smbus_eeprom.c
> @@ -288,6 +288,7 @@ uint8_t *spd_data_generate(enum sdram_type type, ram_addr_t ram_size)
> spd[33] = 8; /* addr/cmd hold time */
> spd[34] = 20; /* data input setup time */
> spd[35] = 8; /* data input hold time */
> + spd[36] = (type == DDR2 ? 13 << 2 : 0); /* min. write recovery time */
>
> /* checksum */
> for (i = 0; i < 63; i++) {
>
© 2016 - 2025 Red Hat, Inc.