[U-Boot] [PATCH] integrator: convert to new build system

This deletes the integrator split_by_variant.sh script and defines a number of unique board types for the core modules that are meaningful to support for the Integrator AP/CP, i.e. the ones that did not just say "unsupported core module" in split_by_variant.sh. If more core modules need to be supported they are easy to add.
We delete all the old cruft in Makefile and MAKEALL that was working around the old way of building boards. We create a unique config file per board to satisfy the build system, but they are just oneliners that include the existing integratorap.h and integratorcp.h configs.
Signed-off-by: Linus Walleij linus.walleij@linaro.org --- This patch goes on top of the previous git pull request and fix the final request from Wolfgang to convert the Integrator boards over to the new build system. --- MAKEALL | 22 --- Makefile | 27 ---- arch/arm/cpu/arm720t/cpu.c | 5 - board/armltd/integrator/split_by_variant.sh | 220 --------------------------- boards.cfg | 8 + include/configs/integratorap.h | 3 + include/configs/integratorap_cm720t.h | 1 + include/configs/integratorap_cm920t.h | 1 + include/configs/integratorap_cm926ejs.h | 1 + include/configs/integratorap_cm946es.h | 1 + include/configs/integratorcp.h | 2 + include/configs/integratorcp_cm1136.h | 1 + include/configs/integratorcp_cm920t.h | 1 + include/configs/integratorcp_cm926ejs.h | 1 + include/configs/integratorcp_cm946es.h | 1 + 15 files changed, 21 insertions(+), 274 deletions(-) delete mode 100755 board/armltd/integrator/split_by_variant.sh create mode 100644 include/configs/integratorap_cm720t.h create mode 100644 include/configs/integratorap_cm920t.h create mode 100644 include/configs/integratorap_cm926ejs.h create mode 100644 include/configs/integratorap_cm946es.h create mode 100644 include/configs/integratorcp_cm1136.h create mode 100644 include/configs/integratorcp_cm920t.h create mode 100644 include/configs/integratorcp_cm926ejs.h create mode 100644 include/configs/integratorcp_cm946es.h
diff --git a/MAKEALL b/MAKEALL index 4adaeb8..0292809 100755 --- a/MAKEALL +++ b/MAKEALL @@ -303,14 +303,11 @@ LIST_SA="$(boards_by_cpu sa1100)" #########################################################################
LIST_ARM7=" \ - ap7 \ - ap720t \ armadillo \ B2 \ ep7312 \ evb4510 \ impa7 \ - integratorap \ lpc2292sodimm \ modnet50 \ SMN42 \ @@ -322,17 +319,7 @@ LIST_ARM7=" \
LIST_ARM9=" \ a320evb \ - ap920t \ - ap922_XA10 \ - ap926ejs \ - ap946es \ - ap966 \ aspenite \ - cp920t \ - cp922_XA10 \ - cp926ejs \ - cp946es \ - cp966 \ da830evm \ da850evm \ edb9301 \ @@ -391,18 +378,9 @@ LIST_ARM9=" \ "
######################################################################### -## ARM10 Systems -######################################################################### -LIST_ARM10=" \ - integratorcp \ - cp1026 \ -" - -######################################################################### ## ARM11 Systems ######################################################################### LIST_ARM11=" \ - cp1136 \ omap2420h4 \ apollon \ imx31_litekit \ diff --git a/Makefile b/Makefile index e56fa02..7dc0cf7 100644 --- a/Makefile +++ b/Makefile @@ -892,32 +892,6 @@ TNY_A9260_config : unconfig @echo "#define CONFIG_$(@:_config=) 1" >$(obj)include/config.h @$(MKCONFIG) -n $@ -a tny_a9260 arm arm926ejs tny_a9260 calao at91
-######################################################################## -## ARM Integrator boards - see doc/README-integrator for more info. -integratorap_config \ -ap_config \ -ap966_config \ -ap922_config \ -ap922_XA10_config \ -ap7_config \ -ap720t_config \ -ap920t_config \ -ap926ejs_config \ -ap946es_config: unconfig - @board/armltd/integrator/split_by_variant.sh ap $@ - -integratorcp_config \ -cp_config \ -cp920t_config \ -cp926ejs_config \ -cp946es_config \ -cp1136_config \ -cp966_config \ -cp922_config \ -cp922_XA10_config \ -cp1026_config: unconfig - @board/armltd/integrator/split_by_variant.sh cp $@ - xtract_omap1610xxx = $(subst _cs0boot,,$(subst _cs3boot,,$(subst _cs_autoboot,,$(subst _config,,$1))))
omap1610inn_config \ @@ -1073,7 +1047,6 @@ clean: $(obj)board/matrix_vision/*/bootscript.img \ $(obj)board/netstar/{eeprom,crcek,crcit,*.srec,*.bin} \ $(obj)board/voiceblue/eeprom \ - $(obj)board/armltd/{integratorap,integratorcp}/u-boot.lds \ $(obj)u-boot.lds \ $(obj)arch/blackfin/cpu/bootrom-asm-offsets.[chs] @rm -f $(obj)include/bmp_logo.h diff --git a/arch/arm/cpu/arm720t/cpu.c b/arch/arm/cpu/arm720t/cpu.c index 88c71bf..ff992aa 100644 --- a/arch/arm/cpu/arm720t/cpu.c +++ b/arch/arm/cpu/arm720t/cpu.c @@ -82,9 +82,4 @@ static void cache_flush (void)
asm ("mcr p15, 0, %0, c7, c5, 0": :"r" (i)); } -#elif defined(CONFIG_INTEGRATOR) && defined(CONFIG_ARCH_INTEGRATOR) - /* No specific cache setup for IntegratorAP/CM720T as yet */ - void icache_enable (void) - { - } #endif diff --git a/board/armltd/integrator/split_by_variant.sh b/board/armltd/integrator/split_by_variant.sh deleted file mode 100755 index 19fc832..0000000 --- a/board/armltd/integrator/split_by_variant.sh +++ /dev/null @@ -1,220 +0,0 @@ -#!/bin/sh - -mkdir -p ${obj}include -mkdir -p ${obj}board/armltd/integrator - -config_file=${obj}include/config.h - -if [ "$1" = "ap" ] -then -# --------------------------------------------------------- -# Set the platform defines -# --------------------------------------------------------- -cat > ${config_file} << _EOF -/* Integrator configuration implied by Makefile target */ -#define CONFIG_INTEGRATOR /* Integrator board */ -#define CONFIG_ARCH_INTEGRATOR 1 /* Integrator/AP */ -_EOF - -# --------------------------------------------------------- -# Set the core module defines according to Core Module -# --------------------------------------------------------- -cpu="arm_intcm" -variant="unknown core module" - -if [ "$2" = "" ] -then - echo "$0:: No parameters - using arm_intcm" -else - case "$2" in - ap7_config) - cpu="arm_intcm" - variant="unported core module CM7TDMI" - ;; - - ap966) - cpu="arm_intcm" - variant="unported core module CM966E-S" - ;; - - ap922_config) - cpu="arm_intcm" - variant="unported core module CM922T" - ;; - - integratorap_config | \ - ap_config) - cpu="arm_intcm" - variant="unspecified core module" - ;; - - ap720t_config) - cpu="arm720t" - echo "#define CONFIG_CM720T 1 /* CPU core is ARM720T */" \ - >> ${config_file} - variant="Core module CM720T" - ;; - - ap922_XA10_config) - cpu="arm_intcm" - variant="unported core module CM922T_XA10" - echo "#define CONFIG_CM922T_XA10 1 /* CPU core is ARM922T_XA10 */" \ - >> ${config_file} - ;; - - ap920t_config) - cpu="arm920t" - variant="Core module CM920T" - echo "#define CONFIG_CM920T 1 /* CPU core is ARM920T */" \ - >> ${config_file} - ;; - - ap926ejs_config) - cpu="arm926ejs" - variant="Core module CM926EJ-S" - echo "#define CONFIG_CM926EJ_S 1 /* CPU core is ARM926EJ-S */" \ - >> ${config_file} - ;; - - ap946es_config) - cpu="arm946es" - variant="Core module CM946E-S" - echo "#define CONFIG_CM946E_S 1 /* CPU core is ARM946E-S */" \ - >> ${config_file} - ;; - - *) - echo "$0:: Unknown core module" - variant="unknown core module" - cpu="arm_intcm" - ;; - - esac -fi - -case "$cpu" in - arm_intcm) - cat >> ${config_file} << _EOF -/* Core module undefined/not ported */ -#define CONFIG_ARM_INTCM 1 -#undef CONFIG_CM_MULTIPLE_SSRAM /* CM may not have multiple SSRAM mapping */ -#undef CONFIG_CM_SPD_DETECT /* CM may not support SPD query */ -#undef CONFIG_CM_REMAP /* CM may not support remapping */ -#undef CONFIG_CM_INIT /* CM may not have initialization reg */ -#undef CONFIG_CM_TCRAM /* CM may not have TCRAM */ -/* May not be processor without cache support */ -#define CONFIG_SYS_ICACHE_OFF 1 -#define CONFIG_SYS_DCACHE_OFF 1 -_EOF - ;; - - arm720t) - cat >> ${config_file} << _EOF -/* May not be processor without cache support */ -#define CONFIG_SYS_ICACHE_OFF 1 -#define CONFIG_SYS_DCACHE_OFF 1 -_EOF - ;; -esac - -else - -# --------------------------------------------------------- -# Set the platform defines -# --------------------------------------------------------- -cat >> ${config_file} << _EOF -/* Integrator configuration implied by Makefile target */ -#define CONFIG_INTEGRATOR /* Integrator board */ -#define CONFIG_ARCH_CINTEGRATOR 1 /* Integrator/CP */ -_EOF - -cpu="arm_intcm" -variant="unknown core module" - -if [ "$2" = "" ] -then - echo "$0:: No parameters - using arm_intcm" -else - case "$2" in - ap966) - cpu="arm_intcm" - variant="unported core module CM966E-S" - ;; - - ap922_config) - cpu="arm_intcm" - variant="unported core module CM922T" - ;; - - integratorcp_config | \ - cp_config) - cpu="arm_intcm" - variant="unspecified core module" - ;; - - cp922_XA10_config) - cpu="arm_intcm" - variant="unported core module CM922T_XA10" - echo "#define CONFIG_CM922T_XA10 1 /* CPU core is ARM922T_XA10 */" \ - >> ${config_file} - ;; - - cp920t_config) - cpu="arm920t" - variant="Core module CM920T" - echo "#define CONFIG_CM920T 1 /* CPU core is ARM920T */" \ - >> ${config_file} - ;; - - cp926ejs_config) - cpu="arm926ejs" - variant="Core module CM926EJ-S" - echo "#define CONFIG_CM926EJ_S 1 /* CPU core is ARM926EJ-S */" \ - >> ${config_file} - ;; - - - cp946es_config) - cpu="arm946es" - variant="Core module CM946E-S" - echo "#define CONFIG_CM946E_S 1 /* CPU core is ARM946E-S */" \ - >> ${config_file} - ;; - - cp1136_config) - cpu="arm1136" - variant="Core module CM1136EJF-S" - echo "#define CONFIG_CM1136EJF_S 1 /* CPU core is ARM1136JF-S */" \ - >> ${config_file} - ;; - - *) - echo "$0:: Unknown core module" - variant="unknown core module" - cpu="arm_intcm" - ;; - - esac - -fi - -if [ "$cpu" = "arm_intcm" ] -then - cat >> ${config_file} << _EOF -/* Core module undefined/not ported */ -#define CONFIG_ARM_INTCM 1 -#undef CONFIG_CM_MULTIPLE_SSRAM /* CM may not have multiple SSRAM mapping */ -#undef CONFIG_CM_SPD_DETECT /* CM may not support SPD query */ -#undef CONFIG_CM_REMAP /* CM may not support remapping */ -#undef CONFIG_CM_INIT /* CM may not have initialization reg */ -#undef CONFIG_CM_TCRAM /* CM may not have TCRAM */ -_EOF -fi - -fi # ap - -# --------------------------------------------------------- -# Complete the configuration -# --------------------------------------------------------- -$MKCONFIG -a -n "${2%%_config}" integrator$1 arm $cpu integrator armltd -echo "Variant: $variant with core $cpu" diff --git a/boards.cfg b/boards.cfg index 4522ea7..81a69ad 100644 --- a/boards.cfg +++ b/boards.cfg @@ -35,6 +35,7 @@ # Target ARCH CPU Board name Vendor SoC Options ###########################################################################################################
+integratorcp_cm1136 arm arm1136 integrator armltd qong arm arm1136 - davedenx mx31 mx31ads arm arm1136 - freescale mx31 imx31_litekit arm arm1136 - logicpd mx31 @@ -45,9 +46,12 @@ armadillo arm arm720t ep7312 arm arm720t impa7 arm arm720t modnet50 arm arm720t +integratorap_cm720t arm arm720t integrator armltd lpc2292sodimm arm arm720t - - lpc2292 SMN42 arm arm720t - siemens lpc2292 evb4510 arm arm720t - - s3c4510b +integratorap_cm920t arm arm920t integrator armltd +integratorcp_cm920t arm arm920t integrator armltd a320evb arm arm920t - faraday a320 at91rm9200ek arm arm920t at91rm9200ek atmel at91 at91rm9200ek at91rm9200ek_ram arm arm920t at91rm9200ek atmel at91 at91rm9200ek:RAMBOOT @@ -71,6 +75,8 @@ smdk2410 arm arm920t - samsung netstar arm arm925t voiceblue arm arm925t omap1510inn arm arm925t - ti +integratorap_cm926ejs arm arm926ejs integrator armltd +integratorcp_cm926ejs arm arm926ejs integrator armltd aspenite arm arm926ejs - Marvell armada100 afeb9260 arm arm926ejs - - at91 at91cap9adk arm arm926ejs - atmel at91 @@ -138,6 +144,8 @@ nhk8815_onenand arm arm926ejs nhk8815 st omap5912osk arm arm926ejs - ti omap edminiv2 arm arm926ejs - LaCie orion5x dkb arm arm926ejs - Marvell pantheon +integratorap_cm946es arm arm946es integrator armltd +integratorcp_cm946es arm arm946es integrator armltd ca9x4_ct_vxp arm armv7 vexpress armltd efikamx arm armv7 efikamx - mx5 mx51evk:IMX_CONFIG=board/efikamx/imximage.cfg mx51evk arm armv7 mx51evk freescale mx5 mx51evk:IMX_CONFIG=board/freescale/mx51evk/imximage.cfg diff --git a/include/configs/integratorap.h b/include/configs/integratorap.h index 7b8aea6..e89772d 100644 --- a/include/configs/integratorap.h +++ b/include/configs/integratorap.h @@ -30,6 +30,9 @@
#ifndef __CONFIG_H #define __CONFIG_H + +#define CONFIG_INTEGRATOR +#define CONFIG_ARCH_INTEGRATOR /* * High Level Configuration Options * (easy to change) diff --git a/include/configs/integratorap_cm720t.h b/include/configs/integratorap_cm720t.h new file mode 100644 index 0000000..523ebbe --- /dev/null +++ b/include/configs/integratorap_cm720t.h @@ -0,0 +1 @@ +#include "integratorap.h" diff --git a/include/configs/integratorap_cm920t.h b/include/configs/integratorap_cm920t.h new file mode 100644 index 0000000..523ebbe --- /dev/null +++ b/include/configs/integratorap_cm920t.h @@ -0,0 +1 @@ +#include "integratorap.h" diff --git a/include/configs/integratorap_cm926ejs.h b/include/configs/integratorap_cm926ejs.h new file mode 100644 index 0000000..523ebbe --- /dev/null +++ b/include/configs/integratorap_cm926ejs.h @@ -0,0 +1 @@ +#include "integratorap.h" diff --git a/include/configs/integratorap_cm946es.h b/include/configs/integratorap_cm946es.h new file mode 100644 index 0000000..523ebbe --- /dev/null +++ b/include/configs/integratorap_cm946es.h @@ -0,0 +1 @@ +#include "integratorap.h" diff --git a/include/configs/integratorcp.h b/include/configs/integratorcp.h index 2c8ca2d..210bc9d 100644 --- a/include/configs/integratorcp.h +++ b/include/configs/integratorcp.h @@ -31,6 +31,8 @@ #ifndef __CONFIG_H #define __CONFIG_H
+#define CONFIG_INTEGRATOR +#define CONFIG_ARCH_INTEGRATOR /* * High Level Configuration Options * (easy to change) diff --git a/include/configs/integratorcp_cm1136.h b/include/configs/integratorcp_cm1136.h new file mode 100644 index 0000000..523ebbe --- /dev/null +++ b/include/configs/integratorcp_cm1136.h @@ -0,0 +1 @@ +#include "integratorap.h" diff --git a/include/configs/integratorcp_cm920t.h b/include/configs/integratorcp_cm920t.h new file mode 100644 index 0000000..523ebbe --- /dev/null +++ b/include/configs/integratorcp_cm920t.h @@ -0,0 +1 @@ +#include "integratorap.h" diff --git a/include/configs/integratorcp_cm926ejs.h b/include/configs/integratorcp_cm926ejs.h new file mode 100644 index 0000000..523ebbe --- /dev/null +++ b/include/configs/integratorcp_cm926ejs.h @@ -0,0 +1 @@ +#include "integratorap.h" diff --git a/include/configs/integratorcp_cm946es.h b/include/configs/integratorcp_cm946es.h new file mode 100644 index 0000000..523ebbe --- /dev/null +++ b/include/configs/integratorcp_cm946es.h @@ -0,0 +1 @@ +#include "integratorap.h"

Dear Linus Walleij,
In message 1311086967-21406-1-git-send-email-linus.walleij@linaro.org you wrote:
This deletes the integrator split_by_variant.sh script and defines a number of unique board types for the core modules that are meaningful to support for the Integrator AP/CP, i.e. the ones that did not just say "unsupported core module" in split_by_variant.sh. If more core modules need to be supported they are easy to add.
We delete all the old cruft in Makefile and MAKEALL that was working around the old way of building boards. We create a unique config file per board to satisfy the build system, but they are just oneliners that include the existing integratorap.h and integratorcp.h configs.
Signed-off-by: Linus Walleij linus.walleij@linaro.org
This patch goes on top of the previous git pull request and fix the final request from Wolfgang to convert the Integrator boards over to the new build system.
Thanks a lot. I have one question, though:
include/configs/integratorap.h | 3 + include/configs/integratorap_cm720t.h | 1 + include/configs/integratorap_cm920t.h | 1 + include/configs/integratorap_cm926ejs.h | 1 + include/configs/integratorap_cm946es.h | 1 + include/configs/integratorcp.h | 2 + include/configs/integratorcp_cm1136.h | 1 + include/configs/integratorcp_cm920t.h | 1 + include/configs/integratorcp_cm926ejs.h | 1 + include/configs/integratorcp_cm946es.h | 1 +
It appears that all the new board config files just include integrator[ac]p.h, without any additional stuff. Would it not make sense to omit these file alltogether then, and let the entries in boards.cfg point to the generic files integratorap.h resp. integratorcp.h instead?
Best regards,
Wolfgang Denk

On Tue, Jul 19, 2011 at 10:04 PM, Wolfgang Denk wd@denx.de wrote:
[Me]
include/configs/integratorap.h | 3 + include/configs/integratorap_cm720t.h | 1 + include/configs/integratorap_cm920t.h | 1 + include/configs/integratorap_cm926ejs.h | 1 + include/configs/integratorap_cm946es.h | 1 + include/configs/integratorcp.h | 2 + include/configs/integratorcp_cm1136.h | 1 + include/configs/integratorcp_cm920t.h | 1 + include/configs/integratorcp_cm926ejs.h | 1 + include/configs/integratorcp_cm946es.h | 1 +
It appears that all the new board config files just include integrator[ac]p.h, without any additional stuff.
Yes, that's how it works...
Would it not make sense to omit these file alltogether then, and let the entries in boards.cfg point to the generic files integratorap.h resp. integratorcp.h instead?
This row in the global Makefile is the reason:
sinclude $(obj).boards.depend $(obj).boards.depend: boards.cfg awk '(NF && $$1 !~ /^#/) { print $$1 ": " $$1 "_config; $$(MAKE)" }' $< > $@
It requires one *_config per board variant.
The boards are just two variants, but the CPU column differs for all of them, depending on what CPU Module (CM) you plug into the board.
So I define these different boards just to get the right value of CPU into $(obj)/include/config.mk
I haven't quite figured out how that file is generated, but to avoid any more configure options being passed in it seemed like the only way forward without revamping the build system.
Hacking Makefile to support several boards using the same *_config seems pretty daunting, but if this is what you want I can try.
Any hints?
Yours, Linus Walleij

Dear Linus Walleij,
In message CACRpkdYR5+bMBpdF0F5NmQZZGnRS3=NUYq1R_FCezoj2Fp2D5w@mail.gmail.com you wrote:
Would it not make sense to omit these file alltogether then, and let the entries in boards.cfg point to the generic files integratorap.h resp. integratorcp.h instead?
This row in the global Makefile is the reason:
sinclude $(obj).boards.depend $(obj).boards.depend: boards.cfg awk '(NF && $$1 !~ /^#/) { print $$1 ": " $$1 "_config; $$(MAKE)" }' $< > $@
It requires one *_config per board variant.
Right. But it does NOT require that each board has it's own file in include/configs/<name>.h
Any hints?
Well, for example, the following different boards and board configurations all shar the same board config file (include/configs/TQM823L.h) : TQM823L, TQM823L_LCD, TTTech and wtk
The same should be done for the integrator boards, too.
Best regards,
Wolfgang Denk

On Wed, Jul 20, 2011 at 2:16 PM, Wolfgang Denk wd@denx.de wrote:
[Me]
It requires one *_config per board variant.
Right. But it does NOT require that each board has it's own file in include/configs/<name>.h
Aha I see, the last column in boards.cfg points to the name of an a config file, else it uses the board name, new patch in a few minutes.
Thanks, Linus Walleij
participants (2)
-
Linus Walleij
-
Wolfgang Denk