diff --git a/configs/sim/nsh/defconfig b/configs/sim/nsh/defconfig index 4583edc5485..be3e6a6e4dd 100644 --- a/configs/sim/nsh/defconfig +++ b/configs/sim/nsh/defconfig @@ -17,6 +17,7 @@ CONFIG_HOST_LINUX=y # Build Configuration # # CONFIG_APPS_DIR="../apps" +CONFIG_BUILD_FLAT=y # CONFIG_BUILD_2PASS is not set # @@ -80,11 +81,13 @@ CONFIG_HOST_X86_64=y # CONFIG_ARCH_DMA is not set # CONFIG_ARCH_HAVE_IRQPRIO is not set # CONFIG_ARCH_L2CACHE is not set +# CONFIG_ARCH_HAVE_COHERENT_DCACHE is not set # CONFIG_CUSTOM_STACK is not set # CONFIG_ARCH_HAVE_ADDRENV is not set # CONFIG_ARCH_NEED_ADDRENV_MAPPING is not set # CONFIG_ARCH_HAVE_VFORK is not set # CONFIG_ARCH_HAVE_MMU is not set +# CONFIG_ARCH_HAVE_MPU is not set # CONFIG_ARCH_NAND_HWECC is not set # CONFIG_ARCH_HAVE_EXTCLK is not set # CONFIG_ARCH_STACKDUMP is not set @@ -231,6 +234,7 @@ CONFIG_IDLETHREAD_STACKSIZE=4096 CONFIG_USERMAIN_STACKSIZE=4096 CONFIG_PTHREAD_STACK_MIN=256 CONFIG_PTHREAD_STACK_DEFAULT=8192 +# CONFIG_LIB_SYSCALL is not set # # Device Drivers diff --git a/tools/refresh.sh b/tools/refresh.sh new file mode 100755 index 00000000000..54ec12724e0 --- /dev/null +++ b/tools/refresh.sh @@ -0,0 +1,185 @@ +#!/bin/sh +# refresh.sh +# +# Copyright (C) 2014 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name NuttX nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + +USAGE="USAGE: $0 [--dry-run|--debug|--help] /" +ADVICE="Try '$0 --help' for more information" + +unset CONFIG +DRYRUN=n + +while [ ! -z "$1" ]; do + case $1 in + --dry-run ) + DRYRUN=y + ;; + --debug ) + set -x + ;; + --help ) + echo "$0 is a tool for refreshing board configurations" + echo "" + echo $USAGE + echo "" + echo "Where:" + echo " --dry-run" + echo " Do no change the defconfig file" + echo " --debug" + echo " Enable script debug" + echo " --help" + echo " Show this help message and exit" + echo " " + echo " The board directory under nuttx/configs" + echo " " + echo " The board configuration directory under nuttx/configs/" + exit 0 + ;; + * ) + CONFIG=$1 + break + ;; + esac + shift +done + +# Get the board configuration + +if [ -z "$1" ]; then + echo "ERROR: No configuration provided" + echo $USAGE + echo $ADVICE + exit 1 +fi + +BOARDSUBDIR=`echo $1 | cut -d'/' -f1` +CONFIGSUBDIR=`echo $1 | cut -d'/' -f2` + +# Where are we + +MYNAME=`basename $0` + +if [ -x ./${MYNAME} ] ; then + cd .. || { echo "ERROR: cd .. failed" ; exit 1 ; } +fi + +if [ ! -x tools/${MYNAME} ] ; then + echo "ERROR: This file must be executed from the top-level NuttX directory: $PWD" + exit 1 +fi + +# Set up the environment + +WD=${PWD} + +BOARDDIR=configs/$BOARDSUBDIR +CONFIGDIR=$BOARDDIR/$CONFIGSUBDIR +DEFCONFIG=$CONFIGDIR/defconfig + +CMPCONFIG_TARGET=cmpconfig +CMPCONFIG1=tools/cmpconfig +CMPCONFIG2=tools/cmpconfig.exe +CMPCONFIGMAKEFILE=Makefile.host +CMPCONFIGMAKEDIR=tools + +# Check the board configuration directory + +if [ ! -d "$BOARDDIR" ]; then + echo "No board directory found at $BOARDDIR" + exit 1 +fi + +if [ ! -d "$CONFIGDIR" ]; then + echo "No configuration directory found at $CONFIGDIR" + exit 1 +fi + +if [ ! -r "$DEFCONFIG" ]; then + echo "No readable defconfig file in $DEFCONFIG" + exit 1 +fi + +# If the cmpconfig executable does not exist, then build it + +if [ -x ${CMPCONFIG1} ]; then + CMPCONFIG=${CMPCONFIG1} +else + if [ -x ${CMPCONFIG2} ]; then + CMPCONFIG=${CMPCONFIG2} + else + make -C ${CMPCONFIGMAKEDIR} -f ${CMPCONFIGMAKEFILE} ${CMPCONFIG_TARGET} || \ + { echo "ERROR: make ${CMPCONFIG1} failed" ; exit 1 ; } + fi +fi + +if [ -x ${CMPCONFIG1} ]; then + CMPCONFIG=${CMPCONFIG1} +else + if [ -x ${CMPCONFIG2} ]; then + CMPCONFIG=${CMPCONFIG2} + else + echo "ERROR: Failed to create ${CMPCONFIG1}" + exit 1 + fi +fi + +# Copy the .config to the toplevel directory + +rm -f SAVEconfig +if [ -e .config ]; then + mv .config SAVEconfig || \ + { echo "ERROR: Failed to move .config to SAVEconfig"; exit 1; } +fi + +cp -a $DEFCONFIG .config || \ + { echo "ERROR: Failed to copy $DEFCONFIG to .config"; exit 1; } + +# Then run oldconfig + +make oldconfig + +# Show differences + +$CMPCONFIG $DEFCONFIG .config + +if [ "X$DRYRUN" = "Xn" ]; then + echo "Saving the new configuration file" + sed -i -e "s/^CONFIG_APPS_DIR/# CONFIG_APPS_DIR/g" .config + mv .config $DEFCONFIG || \ + { echo "ERROR: Failed to move .config to $DEFCONFIG"; exit 1; } + chmod 644 $DEFCONFIG +fi + +if [ -e SAVEconfig ]; then + mv SAVEconfig .config || \ + { echo "ERROR: Failed to move SAVEconfig to .config"; exit 1; } +fi