Message ID | 1338931225-12246-4-git-send-email-amartin@nvidia.com |
---|---|
State | Superseded |
Headers | show |
On 06/05/2012 03:20 PM, Allen Martin wrote: > Add support for specifying a differnt CPU for main u-boot and SPL typo ^^ > u-boot builds. This is done by adding an optional SPL CPU after the > main CPU in boards.cfg as follows: > > normal_cpu:spl_cpu > > This this case CPU will be set to "normal_cpu" during the main u-boot > build and "spl_cpu" during the SPL build. > diff --git a/mkconfig b/mkconfig > +tmp="${cpu#*:}" > +if [ "$tmp" != "$cpu" ] ; then > + spl_cpu=$tmp > + cpu="${cpu%:*}" > +fi Neat - I wasn't aware of those variable expansion techniques. However, this script runs under /bin/sh - are they standard sh constructs, or are they bash-isms? I wonder if shelling out to awk or cut here would be more portable?
On Wed, Jun 06, 2012 at 09:20:22AM -0700, Stephen Warren wrote: > On 06/05/2012 03:20 PM, Allen Martin wrote: > > Add support for specifying a differnt CPU for main u-boot and SPL > > typo ^^ Got it, thanks. > > u-boot builds. This is done by adding an optional SPL CPU after the > > main CPU in boards.cfg as follows: > > > > normal_cpu:spl_cpu > > > > This this case CPU will be set to "normal_cpu" during the main u-boot > > build and "spl_cpu" during the SPL build. > > > diff --git a/mkconfig b/mkconfig > > > +tmp="${cpu#*:}" > > +if [ "$tmp" != "$cpu" ] ; then > > + spl_cpu=$tmp > > + cpu="${cpu%:*}" > > +fi > > Neat - I wasn't aware of those variable expansion techniques. > > However, this script runs under /bin/sh - are they standard sh > constructs, or are they bash-isms? I wonder if shelling out to awk or > cut here would be more portable? It's bash, I'll rewrite it with awk. -Allen
diff --git a/boards.cfg b/boards.cfg index 8e46d08..0e571aa 100644 --- a/boards.cfg +++ b/boards.cfg @@ -11,6 +11,11 @@ # Lines starting with '#' are comments. # Blank lines are ignored. # +# The CPU field takes the form: +# cpu[:spl_cpu] +# If spl_cpu is specified the make variable CPU will be set to this +# during the SPL build. +# # The options field takes the form: # <board config name>[:comma separated config options] # Each config option has the form (value defaults to "1"): diff --git a/doc/README.SPL b/doc/README.SPL index 0276953..e4a5ac3 100644 --- a/doc/README.SPL +++ b/doc/README.SPL @@ -66,3 +66,15 @@ CONFIG_SPL_DMA_SUPPORT (drivers/dma/libdma.o) CONFIG_SPL_POST_MEM_SUPPORT (post/drivers/memory.o) CONFIG_SPL_NAND_LOAD (drivers/mtd/nand/nand_spl_load.o) CONFIG_SPL_SPI_LOAD (drivers/mtd/spi/spi_spl_load.o) + + +Normally CPU is assumed to be the same between the SPL and normal +u-boot build. However it is possible to specify a different CPU for +the SPL build for cases where the SPL is expected to run on a +different CPU model from the main u-boot. This is done by specifying +an SPL CPU in boards.cfg as follows: + + normal_cpu:spl_cpu + +This this case CPU will be set to "normal_cpu" during the main u-boot +build and "spl_cpu" during the SPL build. diff --git a/mkconfig b/mkconfig index 438530b..82660a6 100755 --- a/mkconfig +++ b/mkconfig @@ -60,6 +60,11 @@ CONFIG_NAME="${1%_config}" arch="$2" cpu="$3" +tmp="${cpu#*:}" +if [ "$tmp" != "$cpu" ] ; then + spl_cpu=$tmp + cpu="${cpu%:*}" +fi if [ "$4" = "-" ] ; then board=${BOARD_NAME} else @@ -131,7 +136,15 @@ fi # Create include file for Make # echo "ARCH = ${arch}" > config.mk -echo "CPU = ${cpu}" >> config.mk +if [ ! -z "$spl_cpu" ] ; then + echo 'ifeq ($(CONFIG_SPL_BUILD),y)' >> config.mk + echo "CPU = ${spl_cpu}" >> config.mk + echo "else" >> config.mk + echo "CPU = ${cpu}" >> config.mk + echo "endif" >> config.mk +else + echo "CPU = ${cpu}" >> config.mk +fi echo "BOARD = ${board}" >> config.mk [ "${vendor}" ] && echo "VENDOR = ${vendor}" >> config.mk
Add support for specifying a differnt CPU for main u-boot and SPL u-boot builds. This is done by adding an optional SPL CPU after the main CPU in boards.cfg as follows: normal_cpu:spl_cpu This this case CPU will be set to "normal_cpu" during the main u-boot build and "spl_cpu" during the SPL build. Signed-off-by: Allen Martin <amartin@nvidia.com> --- boards.cfg | 5 +++++ doc/README.SPL | 12 ++++++++++++ mkconfig | 15 ++++++++++++++- 3 files changed, 31 insertions(+), 1 deletion(-)