Antwort: Re: v2013.02.0 phyCORE-OMAP4 MLO to big

Sascha Hauer s.hauer at
Thu Mar 7 03:18:59 EST 2013

Hi Jürgen,

On Tue, Mar 05, 2013 at 02:30:22PM +0100, Jürgen wrote:
> On 11.02.2013 Sascha Hauer wrote:
> >On Fri, Feb 08, 2013 at 04:22:09PM +0100, Jan Weitzel wrote:
> >>Hi,
> >>with the release v2013.02.0 the MLO gets so bit, that it eats the boot
> >>information in the SRAM.
> >>
> >>nm --size-sort
> >>
> >>...
> >>00000630 D nand_flash_ids
> >>000008c0 t mci_probe
> >>00000c00 b gpio_desc
> >>00001400 b files
> >>
> >>If I remove  GPIOLIB from MLO it work again. Maybe setting MAX_FILES
> >>down or find a dynamic way for the big arrays is a better solution.
> >>Any Ideas?
> >Could you link the MLO to SDRAM instead?
> Hi Sascha, we have tried as you suggested and it doesn't work
> without changes...
> We found two things:
> 1.) There is early code which is not relocatable.
> We solved this by adding -fPIC to the CPPFLAGS.
> But I think, this is also solved with your patch

This won't help you directly. What you could do with this is:
- generate a compressed image using PBL support
- The PBL is loaded to SRAM by the ROM, relocated to the current
  address in SRAM
- extracts the binary to SDRAM
- continues executing in SDRAM.

Thinking about it it should work.

The other thing you could do is making the bss segment smaller.

For ARM we initialize the malloc space before the initcalls are
starting which means that malloc can be used in every initcall.
This in turn means that we can allocate the files array and the
gpio_desc array dynamically.
You would have to move the malloc initialization from initcalls
to early init for the other architectures though to make this


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

More information about the barebox mailing list