[U-Boot] [RFC PATCH v1 6/9] scaled down version of generic libraries for SPL

Simon Schwarz
2011-07-15T13:10:15Z

Hi Aneesh,

>> at the moment I'am playing a bit with your patch.
>>
>> I stumbled over this:
>>>
>>> diff --git a/arch/arm/lib/Makefile b/arch/arm/lib/Makefile
>>> index d31321a..300c8fa 100644
>>> --- a/arch/arm/lib/Makefile
>>> +++ b/arch/arm/lib/Makefile
>>> @@ -26,6 +26,7 @@ include $(TOPDIR)/config.mk
>>> =A0LIB =A0 =A0=3D $(obj)lib$(ARCH).o
>>> =A0LIBGCC =3D $(obj)libgcc.o
>>>
>>> +ifndef CONFIG_SPL_BUILD
>>> =A0GLSOBJS =A0 =A0 =A0 =A0+=3D _ashldi3.o
>>> =A0GLSOBJS =A0 =A0 =A0 =A0+=3D _ashrdi3.o
>>> =A0GLSOBJS =A0 =A0 =A0 =A0+=3D _divsi3.o
>>> @@ -45,6 +46,7 @@ COBJS-y =A0 =A0 =A0 +=3D interrupts.o
>>> =A0COBJS-y =A0 =A0 =A0 =A0+=3D reset.o
>>> =A0SOBJS-$(CONFIG_USE_ARCH_MEMSET) +=3D memset.o
>>> =A0SOBJS-$(CONFIG_USE_ARCH_MEMCPY) +=3D memcpy.o
>>> +endif
>>
>> Is it really your intention here to exclude board.c from the SPL? Or
>> do i misinterpret something? Also cache.c I would include to a
>> standard SPL.
>
> Yes, it's intentional. At the moment OMAP spl doesn't need anything
> from this directory other than the eabi_comapt.o. In the future if
> somebody needs contents from another file for SPL they may have to
> bring it out of the '#ifndef CONFIG_SPL_BUILD' block.
>
> In all likelihood board.c will always remain out of SPL because board.c
> defines board_init_f() and board_init_r() that are re-defined for SPL.
> In the event some SPL has to reuse some content from this file, we may
> have to make these functions weakly linked in this file. But I don't
> think that will be ever needed.

Then I think I didn't understand the concept correctly.

In this patch: http://patchwork.ozlabs.org/patch/104534/ you modify
board.c and add CONFIG_SPL_BUILD. Then this was just automatic search
and replace and isn't needed anymore for the new SPL?

So the new board_init_f then is created in the same dir as board.c but
e.g. named spl-board.c? Or is it preferred to write these functions -
like in the old system - totally board depended and place it in
./board/[BOARDDIR]/spl-[BOARD].c?

Thanks for answering these - probably dump - questions!

Regards
Simon