Hi,

You are right! Sry, about that.
I checked both values for regions overlapping with iomem. Both doesn't
overlapped(because align) but etext = .; is right.
Otherwise (for example in arm) "barebox" region is placed a little bit
in "barebox-data" region.

I draw a little graphics(some time ago) to demonstrate which variable from
which managment structure calc with 'inclusive' or 'exclusive' byte for
end-address. I attach them to this mail.


2013/1/14 Sascha Hauer <s.hauer@pengutronix.de>
On Sun, Jan 13, 2013 at 06:42:21PM +0100, Alexander Aring wrote:
> Add barebox-data section in arm branch to get complete
> barebox regions in sdram regions tree.
>
> Signed-off-by: Alexander Aring <alex.aring@gmail.com>
> ---
>  arch/arm/lib/barebox.lds.S                       | 6 +++++-
>  arch/blackfin/boards/ipe337/barebox.lds.S        | 6 +++++-
>  arch/mips/lib/barebox.lds.S                      | 5 ++++-
>  arch/nios2/cpu/barebox.lds.S                     | 5 +++--
>  arch/ppc/boards/freescale-p2020rdb/barebox.lds.S | 6 ++++--
>  arch/ppc/boards/pcm030/barebox.lds.S             | 5 +++--
>  arch/x86/lib/barebox.lds.S                       | 5 ++++-
>  common/memory.c                                  | 4 ++++
>  include/asm-generic/sections.h                   | 1 +
>  9 files changed, 33 insertions(+), 10 deletions(-)
>
> diff --git a/arch/arm/lib/barebox.lds.S b/arch/arm/lib/barebox.lds.S
> index bac1a04..6cad804 100644
> --- a/arch/arm/lib/barebox.lds.S
> +++ b/arch/arm/lib/barebox.lds.S
> @@ -65,7 +65,9 @@ SECTIONS
>               __stop_unwind_tab = .;
>       }
>  #endif
> -     _etext = .;                     /* End of text and rodata section */
> +     _etext = . - 1;                 /* End of text and rodata section */

Is this correct? In 2/9 you explained that etext points to the next free
memory location rather than to the last byte in the text segment. 2/9
fixes the request_sdram_region call accordingly. Now it is changed to be
the last byte of the text segment?

> +
> +     _sdata = .;
>
>       . = ALIGN(4);
>       .data : { *(.data*) }
> @@ -87,6 +89,8 @@ SECTIONS
>       __usymtab : { BAREBOX_SYMS }
>       __usymtab_end = .;
>
> +     _edata = . - 1;

Should probably also be _edata = .;

Sascha


--
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |