From 92988a21ad4c4c9504295ccb580c9f806134471b Mon Sep 17 00:00:00 2001 From: "H. Nikolaus Schaller" Date: Mon, 26 Mar 2012 20:55:28 +0200 Subject: added boot script files to repository --- u-boot/MAKEALL | 680 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 680 insertions(+) create mode 100755 u-boot/MAKEALL (limited to 'u-boot/MAKEALL') diff --git a/u-boot/MAKEALL b/u-boot/MAKEALL new file mode 100755 index 0000000..a732e6a --- /dev/null +++ b/u-boot/MAKEALL @@ -0,0 +1,680 @@ +#!/bin/bash + +# Tool mainly for U-Boot Quality Assurance: build one or more board +# configurations with minimal verbosity, showing only warnings and +# errors. +# +# There are several ways to select which boards to build. +# +# Traditionally, architecture names (like "powerpc"), CPU family names +# (like "mpc83xx") or board names can be specified on the command +# line; without any arguments, MAKEALL defaults to building all Power +# Architecture systems (i. e. same as for "MAKEALL powerpc"). +# +# With the introduction of the board.cfg file, it has become possible +# to provide additional selections. We use standard command line +# options for this: +# +# -a or --arch : Select architecture +# -c or --cpu : Select CPU family +# -s or --soc : Select SoC type +# -v or --vendor: Select board vendor +# +# Selections by these options are logically ANDed; if the same option +# is used repeatedly, such selections are ORed. So "-v FOO -v BAR" +# will select all configurations where the vendor is either FOO or +# BAR. Any additional arguments specified on the command line are +# always build additionally. +# +# Examples: +# +# - build all Power Architecture boards: +# +# MAKEALL -a powerpc +# or +# MAKEALL --arch powerpc +# or +# MAKEALL powerpc +# +# - build all PowerPC boards manufactured by vendor "esd": +# +# MAKEALL -a powerpc -v esd +# +# - build all PowerPC boards manufactured either by "keymile" or +# "siemens": +# +# MAKEALL -a powerpc -v keymile -v siemens +# +# - build all Freescale boards with MPC83xx CPUs, plus all 4xx boards: +# +# MAKEALL -c mpc83xx -v freescale 4xx +# +######################################################################### + +SHORT_OPTS="a:c:v:s:" +LONG_OPTS="arch:,cpu:,vendor:,soc:" + +# Option processing based on util-linux-2.13/getopt-parse.bash + +# Note that we use `"$@"' to let each command-line parameter expand to a +# separate word. The quotes around `$@' are essential! +# We need TEMP as the `eval set --' would nuke the return value of +# getopt. +TEMP=`getopt -o ${SHORT_OPTS} --long ${LONG_OPTS} \ + -n 'MAKEALL' -- "$@"` + +if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi + +# Note the quotes around `$TEMP': they are essential! +eval set -- "$TEMP" + +SELECTED='' + +while true ; do + case "$1" in + -a|--arch) + # echo "Option ARCH: argument \`$2'" + if [ "$opt_a" ] ; then + opt_a="${opt_a%)} || \$2 == \"$2\")" + else + opt_a="(\$2 == \"$2\")" + fi + SELECTED='y' + shift 2 ;; + -c|--cpu) + # echo "Option CPU: argument \`$2'" + if [ "$opt_c" ] ; then + opt_c="${opt_c%)} || \$3 == \"$2\")" + else + opt_c="(\$3 == \"$2\")" + fi + SELECTED='y' + shift 2 ;; + -s|--soc) + # echo "Option SoC: argument \`$2'" + if [ "$opt_s" ] ; then + opt_s="${opt_s%)} || \$6 == \"$2\")" + else + opt_s="(\$6 == \"$2\")" + fi + SELECTED='y' + shift 2 ;; + -v|--vendor) + # echo "Option VENDOR: argument \`$2'" + if [ "$opt_v" ] ; then + opt_v="${opt_v%)} || \$5 == \"$2\")" + else + opt_v="(\$5 == \"$2\")" + fi + SELECTED='y' + shift 2 ;; + --) + shift ; break ;; + *) + echo "Internal error!" >&2 ; exit 1 ;; + esac +done +# echo "Remaining arguments:" +# for arg do echo '--> '"\`$arg'" ; done + +FILTER="\$1 !~ /^#/" +[ "$opt_a" ] && FILTER="${FILTER} && $opt_a" +[ "$opt_c" ] && FILTER="${FILTER} && $opt_c" +[ "$opt_s" ] && FILTER="${FILTER} && $opt_s" +[ "$opt_v" ] && FILTER="${FILTER} && $opt_v" + +if [ "$SELECTED" ] ; then + SELECTED=$(awk '('"$FILTER"') { print $1 }' boards.cfg) + + # Make sure some boards from boards.cfg are actually found + if [ -z "$SELECTED" ] ; then + echo "Error: No boards selected, invalid arguments" + exit 1 + fi +fi + +######################################################################### + +# Print statistics when we exit +trap exit 1 2 3 15 +trap print_stats 0 + +# Determine number of CPU cores if no default was set +: ${BUILD_NCPUS:="`getconf _NPROCESSORS_ONLN`"} + +if [ "$BUILD_NCPUS" -gt 1 ] +then + JOBS="-j $((BUILD_NCPUS + 1))" +else + JOBS="" +fi + + +if [ "${CROSS_COMPILE}" ] ; then + MAKE="make CROSS_COMPILE=${CROSS_COMPILE}" +else + MAKE=make +fi + +if [ "${MAKEALL_LOGDIR}" ] ; then + LOG_DIR=${MAKEALL_LOGDIR} +else + LOG_DIR="LOG" +fi + +if [ ! "${BUILD_DIR}" ] ; then + BUILD_DIR="." +fi + +[ -d ${LOG_DIR} ] || mkdir ${LOG_DIR} || exit 1 + +LIST="" + +# Keep track of the number of builds and errors +ERR_CNT=0 +ERR_LIST="" +TOTAL_CNT=0 +RC=0 + +# Helper funcs for parsing boards.cfg +boards_by_field() +{ + awk \ + -v field="$1" \ + -v select="$2" \ + '($1 !~ /^#/ && $field == select) { print $1 }' \ + boards.cfg +} +boards_by_arch() { boards_by_field 2 "$@" ; } +boards_by_cpu() { boards_by_field 3 "$@" ; } +boards_by_soc() { boards_by_field 6 "$@" ; } + +######################################################################### +## MPC5xx Systems +######################################################################### + +LIST_5xx="$(boards_by_cpu mpc5xx)" + +######################################################################### +## MPC5xxx Systems +######################################################################### + +LIST_5xxx="$(boards_by_cpu mpc5xxx)" + +######################################################################### +## MPC512x Systems +######################################################################### + +LIST_512x="$(boards_by_cpu mpc512x)" + +######################################################################### +## MPC8xx Systems +######################################################################### + +LIST_8xx="$(boards_by_cpu mpc8xx)" + +######################################################################### +## PPC4xx Systems +######################################################################### + +LIST_4xx="$(boards_by_cpu ppc4xx)" + +######################################################################### +## MPC8220 Systems +######################################################################### + +LIST_8220="$(boards_by_cpu mpc8220)" + +######################################################################### +## MPC824x Systems +######################################################################### + +LIST_824x="$(boards_by_cpu mpc824x)" + +######################################################################### +## MPC8260 Systems (includes 8250, 8255 etc.) +######################################################################### + +LIST_8260="$(boards_by_cpu mpc8260)" + +######################################################################### +## MPC83xx Systems (includes 8349, etc.) +######################################################################### + +LIST_83xx="$(boards_by_cpu mpc83xx)" + +######################################################################### +## MPC85xx Systems (includes 8540, 8560 etc.) +######################################################################### + +LIST_85xx="$(boards_by_cpu mpc85xx)" + +######################################################################### +## MPC86xx Systems +######################################################################### + +LIST_86xx="$(boards_by_cpu mpc86xx)" + +######################################################################### +## 74xx/7xx Systems +######################################################################### + +LIST_74xx_7xx="$(boards_by_cpu 74xx_7xx)" + +######################################################################### +## PowerPC groups +######################################################################### + +LIST_TSEC=" \ + ${LIST_83xx} \ + ${LIST_85xx} \ + ${LIST_86xx} \ +" + +LIST_powerpc=" \ + ${LIST_5xx} \ + ${LIST_512x} \ + ${LIST_5xxx} \ + ${LIST_8xx} \ + ${LIST_8220} \ + ${LIST_824x} \ + ${LIST_8260} \ + ${LIST_83xx} \ + ${LIST_85xx} \ + ${LIST_86xx} \ + ${LIST_4xx} \ + ${LIST_74xx_7xx}\ +" + +# Alias "ppc" -> "powerpc" to not break compatibility with older scripts +# still using "ppc" instead of "powerpc" +LIST_ppc=" \ + ${LIST_powerpc} \ +" + +######################################################################### +## StrongARM Systems +######################################################################### + +LIST_SA="$(boards_by_cpu sa1100)" + +######################################################################### +## ARM7 Systems +######################################################################### + +LIST_ARM7=" \ + ap7 \ + ap720t \ + armadillo \ + B2 \ + ep7312 \ + evb4510 \ + impa7 \ + integratorap \ + lpc2292sodimm \ + modnet50 \ + SMN42 \ +" + +######################################################################### +## ARM9 Systems +######################################################################### + +LIST_ARM9=" \ + a320evb \ + ap920t \ + ap922_XA10 \ + ap926ejs \ + ap946es \ + ap966 \ + aspenite \ + cp920t \ + cp922_XA10 \ + cp926ejs \ + cp946es \ + cp966 \ + da830evm \ + da850evm \ + edb9301 \ + edb9302 \ + edb9302a \ + edb9307 \ + edb9307a \ + edb9312 \ + edb9315 \ + edb9315a \ + edminiv2 \ + guruplug \ + imx27lite \ + jadecpu \ + lpd7a400 \ + magnesium \ + mv88f6281gtw_ge \ + mx1ads \ + mx1fs2 \ + netstar \ + nhk8815 \ + nhk8815_onenand \ + omap1510inn \ + omap1610h2 \ + omap1610inn \ + omap5912osk \ + omap730p2 \ + openrd_base \ + rd6281a \ + sbc2410x \ + scb9328 \ + sheevaplug \ + smdk2400 \ + smdk2410 \ + spear300 \ + spear310 \ + spear320 \ + spear600 \ + suen3 \ + trab \ + VCMA9 \ + versatile \ + versatileab \ + versatilepb \ + voiceblue \ + davinci_dvevm \ + davinci_schmoogie \ + davinci_sffsdr \ + davinci_sonata \ + davinci_dm355evm \ + davinci_dm355leopard \ + davinci_dm365evm \ + davinci_dm6467evm \ +" + +######################################################################### +## ARM10 Systems +######################################################################### +LIST_ARM10=" \ + integratorcp \ + cp1026 \ +" + +######################################################################### +## ARM11 Systems +######################################################################### +LIST_ARM11=" \ + cp1136 \ + omap2420h4 \ + apollon \ + imx31_litekit \ + imx31_phycore \ + imx31_phycore_eet \ + mx31ads \ + mx31pdk \ + mx31pdk_nand \ + qong \ + smdk6400 \ + tnetv107x_evm \ +" + +######################################################################### +## ARMV7 Systems +######################################################################### +LIST_ARMV7=" \ + am3517_evm \ + ca9x4_ct_vxp \ + devkit8000 \ + igep0020 \ + igep0030 \ + mx51evk \ + omap3_beagle \ + omap3_overo \ + omap3_evm \ + omap3_pandora \ + omap3_sdp3430 \ + omap3_zoom1 \ + omap3_zoom2 \ + omap4_panda \ + omap4_sdp4430 \ + s5p_goni \ + smdkc100 \ +" + +######################################################################### +## AT91 Systems +######################################################################### + +LIST_at91="$(boards_by_soc at91)\ + $(boards_by_soc at91rm9200)\ + at91sam9260ek \ + at91sam9261ek \ + at91sam9263ek \ + at91sam9g10ek \ + at91sam9g20ek \ + at91sam9m10g45ek \ + at91sam9rlek \ + CPUAT91 \ + CPU9260 \ + CPU9G20 \ + pm9g45 \ + SBC35_A9G20 \ + TNY_A9260 \ + TNY_A9G20 \ +" + +######################################################################### +## Xscale Systems +######################################################################### + +LIST_pxa="$(boards_by_cpu pxa)" + +LIST_ixp="$(boards_by_cpu ixp) + pdnb3 \ + scpu \ +" + +######################################################################### +## ARM groups +######################################################################### + +LIST_arm=" \ + ${LIST_SA} \ + ${LIST_ARM7} \ + ${LIST_ARM9} \ + ${LIST_ARM10} \ + ${LIST_ARM11} \ + ${LIST_ARMV7} \ + ${LIST_at91} \ + ${LIST_pxa} \ + ${LIST_ixp} \ +" + +######################################################################### +## MIPS Systems (default = big endian) +######################################################################### + +LIST_mips4kc=" \ + incaip \ + qemu_mips \ + vct_platinum \ + vct_platinum_small \ + vct_platinum_onenand \ + vct_platinum_onenand_small \ + vct_platinumavc \ + vct_platinumavc_small \ + vct_platinumavc_onenand \ + vct_platinumavc_onenand_small \ + vct_premium \ + vct_premium_small \ + vct_premium_onenand \ + vct_premium_onenand_small \ +" + +LIST_mips5kc=" \ + purple \ +" + +LIST_au1xx0=" \ + dbau1000 \ + dbau1100 \ + dbau1500 \ + dbau1550 \ + dbau1550_el \ + gth2 \ +" + +LIST_mips=" \ + ${LIST_mips4kc} \ + ${LIST_mips5kc} \ + ${LIST_au1xx0} \ +" + +######################################################################### +## MIPS Systems (little endian) +######################################################################### + +LIST_mips4kc_el="" + +LIST_mips5kc_el="" + +LIST_au1xx0_el=" \ + dbau1550_el \ + pb1000 \ +" + +LIST_mips_el=" \ + ${LIST_mips4kc_el} \ + ${LIST_mips5kc_el} \ + ${LIST_au1xx0_el} \ +" + +######################################################################### +## i386 Systems +######################################################################### + +LIST_x86="$(boards_by_arch i386)" + +######################################################################### +## Nios-II Systems +######################################################################### + +LIST_nios2="$(boards_by_arch nios2) + nios2-generic \ +" + +######################################################################### +## MicroBlaze Systems +######################################################################### + +LIST_microblaze="$(boards_by_arch microblaze)" + +######################################################################### +## ColdFire Systems +######################################################################### + +LIST_coldfire="$(boards_by_arch m68k) + astro_mcf5373l \ + cobra5272 \ + EB+MCF-EV123 \ + EB+MCF-EV123_internal \ + M52277EVB \ + M5235EVB \ + M5329AFEE \ + M5373EVB \ + M54451EVB \ + M54455EVB \ + M5475AFE \ + M5485AFE \ +" + +######################################################################### +## AVR32 Systems +######################################################################### + +LIST_avr32="$(boards_by_arch avr32)" + +######################################################################### +## Blackfin Systems +######################################################################### + +LIST_blackfin="$(boards_by_arch blackfin)" + +######################################################################### +## SH Systems +######################################################################### + +LIST_sh2="$(boards_by_cpu sh2)" +LIST_sh3="$(boards_by_cpu sh3)" +LIST_sh4="$(boards_by_cpu sh4)" + +LIST_sh="$(boards_by_arch sh)" + +######################################################################### +## SPARC Systems +######################################################################### + +LIST_sparc="$(boards_by_arch sparc)" + +#----------------------------------------------------------------------- + +build_target() { + target=$1 + + ${MAKE} distclean >/dev/null + ${MAKE} -s ${target}_config + + ${MAKE} ${JOBS} all 2>&1 >${LOG_DIR}/$target.MAKELOG \ + | tee ${LOG_DIR}/$target.ERR + + # Check for 'make' errors + if [ ${PIPESTATUS[0]} -ne 0 ] ; then + RC=1 + fi + + if [ -s ${LOG_DIR}/$target.ERR ] ; then + ERR_CNT=$((ERR_CNT + 1)) + ERR_LIST="${ERR_LIST} $target" + else + rm ${LOG_DIR}/$target.ERR + fi + + TOTAL_CNT=$((TOTAL_CNT + 1)) + + ${CROSS_COMPILE}size ${BUILD_DIR}/u-boot \ + | tee -a ${LOG_DIR}/$target.MAKELOG +} +build_targets() { + for t in "$@" ; do + # If a LIST_xxx var exists, use it. But avoid variable + # expansion in the eval when a board name contains certain + # characters that the shell interprets. + case ${t} in + *[-+=]*) list= ;; + *) list=$(eval echo '${LIST_'$t'}') ;; + esac + if [ -n "${list}" ] ; then + build_targets ${list} + else + build_target ${t} + fi + done +} + +#----------------------------------------------------------------------- + +print_stats() { + echo "" + echo "--------------------- SUMMARY ----------------------------" + echo "Boards compiled: ${TOTAL_CNT}" + if [ ${ERR_CNT} -gt 0 ] ; then + echo "Boards with warnings or errors: ${ERR_CNT} (${ERR_LIST} )" + fi + echo "----------------------------------------------------------" + + exit $RC +} + +#----------------------------------------------------------------------- + +# Build target groups selected by options, plus any command line args +set -- ${SELECTED} "$@" +# run PowerPC by default +[ $# = 0 ] && set -- powerpc +build_targets "$@" -- cgit v1.1