[U-Boot-Users] [PATCH] fsl-i2c: fix writes to data segment before relocation

David Hawkins dwh at ovro.caltech.edu
Mon Jul 21 22:29:20 CEST 2008


Hi Timur,

> -	i2c_bus_speed[0] = set_i2c_bus_speed(dev, gd->i2c1_clk, speed);
> +	temp = set_i2c_bus_speed(dev, gd->i2c1_clk, speed);
> +	if (gd->flags & GD_FLG_RELOC)
> +		i2c_bus_speed[0] = temp;

Does i2c_init() get called again after relocation?

If the I2C code is only ever used during flash startup,
then this is dead code.

The I2C controller needs to get initialized to read the
I2C SPD EEPROM, so that it can then setup DDR.

I guess in some cases a board with fixed DDR would not
need to initialize the I2C controller until after
relocation.

If you need I2C speed tracking code, why not just re-read
the I2C controller registers, and determine the speed from
there? That is independent of relocation.

Cheers,
Dave




More information about the U-Boot mailing list