On 05/10/2012 22:03, Eric Nelson wrote: > On 10/05/2012 12:00 PM, Tom Rini wrote: >> On Fri, Oct 05, 2012 at 11:42:19AM -0700, Eric Nelson wrote: >>> On 10/05/2012 10:24 AM, Albert ARIBAUD wrote: >>>> Hi Eric, >>>> >>>> On Thu, 4 Oct 2012 12:49:07 -0700, Eric Nelson >>>> <eric.nel...@boundarydevices.com> wrote: >>>> >>>>> Signed-off-by: Eric Nelson<eric.nel...@boundarydevices.com> >>>>> --- >>>>> board/boundary/nitrogen6x/Makefile | 41 ++ >>>>> board/boundary/nitrogen6x/README | 77 +++ >>>>> board/boundary/nitrogen6x/nitrogen6x.c | 840 >>>>> ++++++++++++++++++++++++++++++++ >>>>> boards.cfg | 1 + >>>>> include/configs/nitrogen6x.h | 242 +++++++++ >>>>> 5 files changed, 1201 insertions(+), 0 deletions(-) >>>>> create mode 100644 board/boundary/nitrogen6x/Makefile >>>>> create mode 100644 board/boundary/nitrogen6x/README >>>>> create mode 100644 board/boundary/nitrogen6x/nitrogen6x.c >>>>> create mode 100644 include/configs/nitrogen6x.h >>>> >>>> If this is essentially a copy of sabrelite, I am surprised that git >>>> does not report any copies. Did you use -C with git format-patch ? >>>> >>> >>> Hi Albert, >>> >>> I didn't use '-C' (didn't know about it: thanks for the tip!). >>> >>> It wouldn't have detected copies though, because I made slight >>> changes in each of these files, replacing the board names and >>> file names in board/boundary/ and altering the default environment >>> (policy bits) in nitrogen6x.h. >> >> And we can't deal with this by factoring the code differently? >> > Hi Tom, > > There are two bits to this question: > - Can we represent the policy differences outside of a > board structure? These differences are all inside of > include/configs/nitrogen6x. >
What we have already done is to set a common config header that is included by both include/configs/nitrogen6x and include/configs/sabrelite. See for example mx6qsabre_common.h, with the boards mx6qsabresd and mx6qsabreauto. > - Can we represent the board differences without a > board structure? This is a bit harder, since the > boards are slightly different. The Nitrogen6X has > a different ethernet PHY reset pin and an optional > SDIO Wi-Fi module. Ona major point is *how* you want to represent your board into U-boot, even if it is derived from a Freescale's evaluation board. In many case a vendor directory is desired (freescale vs boundary). > > We could add code to SABRE Lite to accommodate these, > but it seems that sets a bad precedent. Would this > be done for every vendor that bases a design on > SABRE Lite? I am afraid that it is easy to reach the case when changes for a vendor will break other boards, and getting all in sync can be problematic. > > The precise diffs for the configs and sources is attached for > reference. > > I've also been pondering how to simply re-use the code within > the board setup file (mx6qsabrelite.c), but I haven't figured > anything out. Clearly a lot of the code is duplicated, but at > the same time it's board-specific. > > For example, we could create a common module that sets up > the SD card pads "like SABRE Lite", and a similar one to > configure ethernet pads. Since SABRE Lite is a reference design, > perhaps that makes sense. I think that another example in u-boot doing this is for davinci (8xx) boards, At least three boards share the same board structure, see board/davinci/da8xxevm/Makefile. Very board related functions are compiled using CONFIG_MACH: COBJS-$(CONFIG_MACH_DAVINCI_DA830_EVM) += da830evm.o COBJS-$(CONFIG_MACH_DAVINCI_DA850_EVM) += da850evm.o COBJS-$(CONFIG_MACH_DAVINCI_HAWK) += hawkboard.o Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sba...@denx.de ===================================================================== _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot