From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stephen Warren Date: Wed, 07 Aug 2013 10:20:01 -0600 Subject: [U-Boot] [PATCH] RFC: tegra: Avoid using I2C prior to relocation In-Reply-To: <1375854747-3621-1-git-send-email-sjg@chromium.org> References: <1375854747-3621-1-git-send-email-sjg@chromium.org> Message-ID: <520273B1.30200@wwwdotorg.org> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 08/06/2013 11:52 PM, Simon Glass wrote: > Tegra recently moved to the new I2C framework, which sets up I2C prior to > relocation, and prior to calling i2c_init_board(). This causes a crash on > Tegra boards. > > note: > > There are many ways to fix this. I believe this is one. It disables i2c_init() > until relocation is complete. I have been unable to test it so far due to > problems getting my Seaboard to work. I will try another Tegra board, but > send this for comment in the meantime. Tested-by: Stephen Warren (On Beaver and Dalmore, tested booting to U-Boot command prompt followed by "i2c dev 0; i2c probe") Note: I believe this is an enormous hack that hacks around the problem of dynamic device initialization just not being well thought out relative to the restrictions of U-Boot's various boot stages. I'd still prefer an outright revert of the broken code. In other words, tegra_i2c_init() simply shouldn't be called at the wrong time; it shouldn't have to handle being called at the wrong time and null itself out when that happens. However, if this is what it takes to get U-Boot working again, then let's apply it ASAP.