Fix for slow I2C boot on C6678/C6670 EVM's
[keystone-rtos/ibl.git] / src / main / ibliniti2c.c
index ab299b6902f64383f4c2e515f39f160cbfcf9a13..0a3db3a7a06998b15771a2816c2cb39aaf6673f7 100644 (file)
@@ -61,7 +61,7 @@ void i2cReadBlock (void)
     uint32 v;
 
     for (;;) {
-        while (hwI2cMasterRead (i2cReadAddress & 0xffff,    /* The address on the eeprom of the table */
+        while (hwI2cMasterRead (i2cReadAddress,             /* The address on the eeprom of the table */
                                 4,                          /* The number of bytes to read */
                                 iData,                      /* Where to store the bytes */
                                 i2cBusAddress,              /* The bus address of the eeprom */
@@ -80,7 +80,7 @@ void i2cReadBlock (void)
             continue;
 
 
-        while (hwI2cMasterRead (i2cReadAddress & 0xffff,    /* The address on the eeprom of the table */
+        while (hwI2cMasterRead (i2cReadAddress,             /* The address on the eeprom of the table */
                                 len,                        /* The number of bytes to read */
                                 iData,                      /* Where to store the bytes */
                                 i2cBusAddress,              /* The bus address of the eeprom */
@@ -107,6 +107,7 @@ void i2cReadBlock (void)
 
 
     i2cReadAddress += len;
+    i2cBusAddress = i2cReadAddress >>16;
     
     iFifoIn  = len;
     iFifoOut = 4;    /* The i2c header is effectively removed */