[U-Boot-Users] [PATCH] Fix SPI read/write length issue
Aubrey Li
aubrey.adi at gmail.com
Thu Mar 22 10:40:50 CET 2007
When the functions "eeprom_read" and "eeprom_write" works for the SPI
flash, the data length is limited to I2C_RXTX_LEN. See the following
piece of code.
-----------------------------
#if !defined(CFG_I2C_FRAM)
maxlen = 0x100 - blk_off;
if (maxlen > I2C_RXTX_LEN)
maxlen = I2C_RXTX_LEN;
if (len > maxlen)
len = maxlen;
#endif
-----------------------------
The following patch fixes this issue.
>From 2451cc87059acc456597a28f802ab3acb2d61ad4 Mon Sep 17 00:00:00 2001
From: Aubrey Li <aubrey.adi at gmail.com>
Date: Thu, 22 Mar 2007 17:26:27 +0800
Subject: [PATCH] Fix spi read/write length issue
Signed-off-by: Aubrey Li <aubrey.adi at gmail.com>
---
common/cmd_eeprom.c | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/common/cmd_eeprom.c b/common/cmd_eeprom.c
index d15a412..71d9792 100644
--- a/common/cmd_eeprom.c
+++ b/common/cmd_eeprom.c
@@ -177,10 +177,14 @@ int eeprom_read (unsigned dev_addr, unsi
maxlen = 0x100 - blk_off;
if (maxlen > I2C_RXTX_LEN)
maxlen = I2C_RXTX_LEN;
+
+#ifndef CONFIG_SPI
if (len > maxlen)
len = maxlen;
#endif
+#endif
+
#ifdef CONFIG_SPI
spi_read (addr, alen, buffer, len);
#else
@@ -273,10 +277,13 @@ int eeprom_write (unsigned dev_addr, uns
if (maxlen > I2C_RXTX_LEN)
maxlen = I2C_RXTX_LEN;
+#ifndef CONFIG_SPI
if (len > maxlen)
len = maxlen;
#endif
+#endif
+
#ifdef CONFIG_SPI
spi_write (addr, alen, buffer, len);
#else
--
1.4.4
Best Regards,
-Aubrey
More information about the U-Boot
mailing list