The problem occurs when there are three IICs on the bus. The IIC, once enabled, must always monitor the I2C bus. The device that is not being addressed asserts a transmit throttle condition by driving the Clock Low, even though the state machine is in the "idle" state. With two IICs on the bus, it appears that the throttle condition is behaving correctly. However, with three IICs on the bus it hangs the system.
A fix has been implemented in Rev D of the core (opb_iic_v1_01_d). Basically, the fix prevents a transmit throttle condition when in the "idle" state.
This problem is fixed in the latest 6.3 EDK Service Pack, available at:
The first service pack containing the fix is EDK 6.3 Service Pack 2.