[U-Boot] [PATCH] Fix: nommu I2C adapter relocation error

Jens Scharsig (BuS Elektronik) esw at bus-elektronik.de
Mon Oct 14 10:27:38 CEST 2013


From: "Jens Scharsig (BuS Elektronik)" <esw at bus-elektronik.de>

NoMMU systems have a access violation problem with i2c_reloc_fixup.
Blame for it is a double relocation of the adapter itself. The
i2c_adap_p is already relocated, if i2c_reloc_fixup is called.
This patch removes the relocation of i2c_adap_p from i2c_reloc_fixup
to fix this.

Signed-off-by: Jens Scharsig (BuS Elektronik) <esw at bus-elektronik.de>
---
 drivers/i2c/i2c_core.c | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/drivers/i2c/i2c_core.c b/drivers/i2c/i2c_core.c
index d1072e8..bb5d4db 100644
--- a/drivers/i2c/i2c_core.c
+++ b/drivers/i2c/i2c_core.c
@@ -53,10 +53,6 @@ void i2c_reloc_fixup(void)
 		return;
 
 	for (i = 0; i < max; i++) {
-		/* adapter itself */
-		addr = (unsigned long)i2c_adap_p;
-		addr += gd->reloc_off;
-		i2c_adap_p = (struct i2c_adapter *)addr;
 		/* i2c_init() */
 		addr = (unsigned long)i2c_adap_p->init;
 		addr += gd->reloc_off;
-- 
1.8.1.4



More information about the U-Boot mailing list