On Thursday 16 June 2011 05:45 PM, Wolfgang Denk wrote: > Dear Aneesh V, > > In message<4df9ee03.8010...@ti.com> you wrote: >> >>> we are also duplicating the structure across different boot media. I >>> think we should re-organize this as follows: >>> >>> spl/ >>> spl/common/ >>> spl/mmc/ >>> spl/nand/ >>> spl/onenand/ >> >> Can you please extend this to show the SoC/board directories etc. I >> guess they will go under spl/ and not under each media. > > Correct, i. e. please add for example: > > spl/board/freescale/mx31pdk/ > spl/board/freescale/mx31pdk/Makefile > ...
I thought we were going to have cpu directory SoC directory etc in this directory structure. > >>> ...this changes to: "spl/Makefile, spl/common/Makefile and >>> spl/<bootdevice>/Makefile build libraries with the generic object >>> files at their respective level (assuming these exist). >> >> What's the distinction between spl/Makefile and spl/common/Makefile? >> I guess we won't have any source files at spl/ level? > > I think we can implement the logic to decide which directories need to > be entered and built into spl/Makefile, so we can keep this out of the > top level Makefile. > > spl/common/Makefile is responsible for building the common code in the > spl/common/ directory. > > Correct, I do not see need for any sources in spl/ > >>> We should try to get rid of the need to create symbolic links. If we >>> use the same source files as for the "normal", then we should also >>> use the normal object files. >> >> You mean you will re-use *.o files with normal u-boot? If so, do you >> want to create symbolic links to them in the SPL directories or use >> them in-place? > > We should use them in-place. Using --gc-sections and > -ffunction-sections we have enough granularity to select only what we > really need. > >> Whether you reuse the source code or the object files we still need >> directories for all the levels for the respective Makefiles, right? > > Can we not use the objects that get normally built, with the existing > Makefiles? But where do you add the reference to SoC level and CPU level object files? Which library do you make them part of? I thought the board level Makefile was meant only to build the board specific library. For example, let's say we have board 'a' and 'b' of same SoC(soc). Unless we have a SoC directory we may have to do something like this. spl/board/<vendor>/a/Makefile: OBJS := soc_1.o OBJS += soc_2.o OBJS += a.o spl/board/<vendor>/b/Makefile: OBJS := soc_1.o OBJS += soc_2.o OBJS += b.o Please note that soc_1.o and soc_2.o are duplicated in the two Makefiles. We are back to square one, right? Or did you have something else in mind? > >> Also, at least some files will have to be built separately for SPL >> because they have conditional compilation with CONFIG_PRELOADER kind of >> flags. > > Please let's check where this is needed, and how we can handle this. > I'd really like to get rid of this symlinking. One case is start.S. We need a simplified start.S for SPL(no relocation, no interrupt handling etc). There are places where CONFIG_PRELOADER is used today. But maybe, these could be avoided it we try. best regards, Aneesh _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot