[U-Boot] enbw_cmc, da850evm_direct_nor, and calimain vectors table misaligned (was: [PATCH] arm: fix a build error with CONFIG_USE_IRQ)

Albert ARIBAUD albert.u.boot at aribaud.net
Wed Jun 11 09:14:49 CEST 2014


Hi Masahiro,

(to: the board maintainers for enbw_cmc, da850evm_direct_nor, and
calimain)

On Mon, 09 Jun 2014 18:29:26 +0900, Masahiro Yamada
<yamada.m at jp.panasonic.com> wrote:

> Hi Albert,

> You changed the behaviour of three boards,
> "enbw_cmc", "da850evm_direct_nor", "calimain"!
> Probably they are broken.
> 
> These boards expects "0x00000011" (=CONFIG_SYS_DV_NOR_BOOT_CFG)
> at the beginning of the image.
> But since commit 41623c91, that is missing.
> 
> If you still don't understand,  you should checkout   41623c91^ and
> 41623c91 and compare u-boot.dis.

Your description of the effects of my change is correct. However, this
raises another question which I would like to see discussed before
doing anything about these boards.

Taking the last commit where the prefix word was actually emitted (that
is, 41623c91^, which is actually 60a4f39f, "arm: remove unused _end_vect
and _vectors_end symbols"), and reading arch/arm/cpu/arm926ejs/start.S,
I see that the start of the image looks like this:

offset   Content
+0x0000  prefix word CONFIG_SYS_DV_NOR_BOOT_CFG
+0x0004  reset vector
+0x0008  undefined instruction vector
+0x000c  software interrupt vector
+0x0010  prefetch abort vector
+0x0014  data abort vector
+0x0018  unused
+0x001c  irq vector
+0x0020  fiq vector
+0x0024  (end of vectors table)

And that is /wrong/: the vectors table is misaligned by 4 bytes.

Obviously, the boards have been working fine for a long time, because
no exception vector was used apparently (or because when exceptions did
happen, the error was debugged without the need to analyze the
exception).

I suspect we could just remove the '.word CONFIG_SYS_DV_NOR_BOOT_CFG'
line from the vectors.S file and prepend the word to the image /after/
linking.

This, of course, requires confirmation from maintainers.

Manfred, Christian, Sudhakar, Heiko: can any one of you let us know the
reason for this signature word exactly, and how exactly it is used by
the board? Ideally, can you also:

- test a current build (which does not have the signature word) and
  confirm it fails to load);

- test the same build with the 4-byte signature manually prepended
  (this may possibly require padding the image);

> Best Regards
> Masahiro Yamada

Amicalement,
-- 
Albert.


More information about the U-Boot mailing list