[U-Boot] [PATCH v2] mx25: Fix boot hang by avoiding vector relocation

Bill Pringlemeir bpringlemeir at nbsps.com
Thu Jan 8 16:10:45 CET 2015


> On Tue, Jan 06, 2015 at 01:06:48PM -0200, Fabio Estevam wrote:

>> From: Fabio Estevam <fabio.estevam at freescale.com>
>>
>> Since commit 3ff46cc42b9d73d0 ("arm: relocate the exception vectors")
>> mx25pdk hangs like this:
>>
>> CPU:   Freescale i.MX25 rev1.2 at 399 MHz
>> Reset cause: WDOG
>> Board: MX25PDK
>> I2C:   ready
>> DRAM:  64 MiB
>> (hangs)
>>
>> Add a specific relocate_vectors macro that skips the vector
>> relocation, as the i.MX25 SoC does not provide RAM at the high
>> vectors address (0xFFFF0000), and (0x00000000) maps to ROM.
>>
>> This allows mx25 to boot again.
>>
>> Signed-off-by: Fabio Estevam <fabio.estevam at freescale.com>

On  8 Jan 2015, trini at ti.com wrote:

> I'd like to pull this in for the release.  I'd also really like
> someone else to ack or otherwise comment on this (and why this is more
> right than not just relocating the vectors as v1 did, I see both boot
> to a U-Boot prompt but shouldn't we do a bit more testing to confirm
> that we don't need to relocate these exception vectors or have we now
> introduced some subtle breakage (or perhaps not so subtle once you hit
> it) in these cases?  Thanks!

Acked-By: Bill Pringlemeir <bpringlemeir at nbsps.com>

The addresses in v1 of the patch are for the imx27.  The will do nothing
for the imx25.  On the imx25, the address 0x0 is ROM and will BUS error
on a write (default without any patch).  The address 0xffff0000 is
mapped to a WEIM peripheral (external Addr+Data w chip select) and
writes there will not BUS error (so v1 patch works).  However, it is
misleading as the real 'hook' vectors are located in IRAM (0x78xxxxxx);
it is very similar in concept to imx27.  It is better just to provide a
stub that does nothing than misleading people to think they are hooked.

The HAB code on the iMX25 ROM has some vectors installed so that any
errors will reset or go to serial boot mode.  This is what this platform
has done all along.  The most correct way would be to hook the vectors,
but the hook addresses are only in an NDA doc and would require some
testing, etc. because even that document is not 100% clear.

Fwiw,
Bill Pringlemeir.


More information about the U-Boot mailing list