[U-Boot] what's the minimal amount needed to define two *very* closely-related boards?

Robert P. J. Day rpjday at crashcourse.ca
Sun Apr 17 20:25:20 CEST 2016


  in the midst of current project wherein i've ported u-boot to two
fairly old (and extremely similar) powerpc systems, i duplicated a lot
of content just to get things up and running; now i want to go back
and condense as much as possible and remove every bit of duplication i
can, so a few questions about config files and so on.

  first (just out of curiosity), is there any relationship between the
*name* of a defconfig file and the target system it represents? i'm
well aware that all the defconfig files are normally given names that
represent the target system, but is that *necessary*? as in, is any
part of the defconfig file name extracted and used during the build
process? or could i, in an absurd example, call my two defconfig
files, say, "derp_defconfig" and "gorp_defconfig", as long as all the
content is correct?

  next, are there any circumstances where one could reasonably use a
single defconfig file to represent more than one target board? or is
every distinct target board expected to have its own defconfig file?
one example i see is the pair of defconfig files:

  * xilinx_zynqmp_zcu102_defconfig
  * xilinx_zynqmp_zcu102_revB_defconfig

whose *only* difference is:

  7c7
  < CONFIG_DEFAULT_DEVICE_TREE="zynqmp-zcu102"
  ---
  > CONFIG_DEFAULT_DEVICE_TREE="zynqmp-zcu102-revB"

in a corner case like this, i guess one *could* have a single
defconfig file, and pass "DEVICE_TREE=..." on the command line to
distinguish between them, but that's an unusual case. are there *any*
circumstances that would justify trying to pack more than one target
board into a single defconfig file? or is that (as i suspect) just
silly?

  now as for defconfig files, what is the absolute minimum info they
need contain? AFAICT, one needs at least three lines equivalent to:

CONFIG_ARM=y			(arch)
CONFIG_ARCH_MX6=y		(processor)
CONFIG_TARGET_XPRESS=y		(board)

i realize some defconfig files contain a lot more, but it appears that
any further content can go into the board definition file in
include/configs, yes? i see defconfig files that define prompts, and
commands, and so on, but can *all* of that go equally well into the
board defn file?

  next, if one pushes all the board info into the header file and two
boards have much the same content, i can see several cases where a
"common" header file is created, such as, say, "zynq-common.h", so
that again cuts down on duplication.

  finally, if i define a board vendor directory, say, board/rday/, i
can define a further "common" directory, board/rday/common/, for any
board common code.

  is that about it? am i missing any other tricks? thanks muchly.

rday

-- 

========================================================================
Robert P. J. Day                                 Ottawa, Ontario, CANADA
                        http://crashcourse.ca

Twitter:                                       http://twitter.com/rpjday
LinkedIn:                               http://ca.linkedin.com/in/rpjday
========================================================================



More information about the U-Boot mailing list