[U-Boot] [PATCH 1/3] arm: make .vectors section allocatable

Albert ARIBAUD
2014-09-24T07:34:52Z

Hi Georges,

On Sun, 21 Sep 2014 23:33:48 +0200, Georges Savoundararadj
<savoundg@gmail.com> wrote:

> Before the commit 41623c91, the exception vector was in a .text
> section which is allocatable. After this, the .vectors section was
> introduced to contain the exception vector without specifying it as a
> .text section but only as a executable section ("x").
> This fix marks the section .vectors as allocatable as well ("ax") allowing
> symbols to be relocated.

Could you explain (on the list, not in the commit message, although I
might ask you to do it there too later on) the exact effects of adding
the "a" flag, i.e., what symbol exactly was broken by commit 41623c91,
how it is broken, and how "a" changes this?

On a deeper level, note that many ARM targets around do not have free
rein on where they can put vectors, e.g., they are limited to base
addresses of 0x00000000 or 0xFFFF0000. Thus, in many cases, vector are
relocated along with the rest of the image, but in fact, their base
address will not be their relocated address, and they will require
copying into whatever fixed location the target supports.

If you're going to fix general exception handling files (which I am
quite fine with), I would prefer that you solve the general problem,
i.e. either relocate vectors along with the code and fix VBAR on
plaforms that can use it, or relocate them to the fixed location wher
e the target expects them.

> Signed-off-by: Georges Savoundararadj <savoundg@gmail.com>
> ---
> arch/arm/lib/vectors.S | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/arm/lib/vectors.S b/arch/arm/lib/vectors.S
> index 0cb87ce..49238ed 100644
> --- a/arch/arm/lib/vectors.S
> +++ b/arch/arm/lib/vectors.S
> @@ -33,7 +33,7 @@
> *************************************************************************
> */
>
> - .section ".vectors", "x"
> + .section ".vectors", "ax"
>
> /*
> *************************************************************************

Amicalement,
--
Albert.