diff options
author | Gregory Nutt <gnutt@nuttx.org> | 2013-09-27 15:11:31 -0600 |
---|---|---|
committer | Gregory Nutt <gnutt@nuttx.org> | 2013-09-27 15:11:31 -0600 |
commit | be41ccbfda91141f499700763501af9300667fe3 (patch) | |
tree | 0833820c82530c9b3534eea16063705d906ca9bd | |
parent | 4686e08c8931ffe4f02137ec203000fbf339515d (diff) | |
download | nuttx-be41ccbfda91141f499700763501af9300667fe3.tar.gz nuttx-be41ccbfda91141f499700763501af9300667fe3.tar.bz2 nuttx-be41ccbfda91141f499700763501af9300667fe3.zip |
Add support for the Motorola C139 phone
-rw-r--r-- | nuttx/ChangeLog | 2 | ||||
-rw-r--r-- | nuttx/configs/compal_e86/Kconfig | 4 | ||||
-rw-r--r-- | nuttx/configs/compal_e86/README.txt | 51 | ||||
-rw-r--r-- | nuttx/configs/compal_e86/include/board.h | 6 | ||||
-rw-r--r-- | nuttx/configs/compal_e86/include/power.h | 6 | ||||
-rw-r--r-- | nuttx/configs/compal_e86/nsh_highram/Make.defs | 129 | ||||
-rw-r--r-- | nuttx/configs/compal_e86/nsh_highram/appconfig | 43 | ||||
-rw-r--r-- | nuttx/configs/compal_e86/nsh_highram/defconfig | 282 | ||||
-rw-r--r-- | nuttx/configs/compal_e86/nsh_highram/setenv.sh | 74 | ||||
-rw-r--r-- | nuttx/configs/compal_e86/scripts/ld.script | 142 | ||||
-rw-r--r-- | nuttx/configs/compal_e86/src/Makefile | 80 | ||||
-rw-r--r-- | nuttx/configs/compal_e86/src/dummy.c | 1 |
12 files changed, 820 insertions, 0 deletions
diff --git a/nuttx/ChangeLog b/nuttx/ChangeLog index 636751bb3..c809d48ae 100644 --- a/nuttx/ChangeLog +++ b/nuttx/ChangeLog @@ -5657,4 +5657,6 @@ are not file descriptors (and, hence, no file system) (2013-9-27). * arch/arm/src/sama5/sam_gmac.c: GMAC driver and GMII logic is code complete and readay for test (2013-9-27) + * configs/compal_e86: Basic board support for the Motorola C139 + (Compal E86) phone. From Craig Comstock (2013-9-27). diff --git a/nuttx/configs/compal_e86/Kconfig b/nuttx/configs/compal_e86/Kconfig new file mode 100644 index 000000000..ae2bf3130 --- /dev/null +++ b/nuttx/configs/compal_e86/Kconfig @@ -0,0 +1,4 @@ +# +# For a description of the syntax of this configuration file, +# see misc/tools/kconfig-language.txt. +# diff --git a/nuttx/configs/compal_e86/README.txt b/nuttx/configs/compal_e86/README.txt new file mode 100644 index 000000000..dd5a785b5 --- /dev/null +++ b/nuttx/configs/compal_e86/README.txt @@ -0,0 +1,51 @@ +compal_e86 +========== + +This directory contains the board support for compal e86 phones. + +This port is based on patches contributed by Denis Carikli for both the +compal e99 and e88. At the time of initial check-in, the following phones +were tested: + +* motorolla c155 (compal e99) with the compalram and highram configuration +* motorolla W220 (compal e88) +* The openmoko freerunner baseband(compal e88) + +The patches were made by Alan Carvalho de Assis and Denis Carikli using +the Stefan Richter's patches that can be found here: + +http://cgit.osmocom.org/cgit/nuttx-bb/log/?h=lputt%2Ftesting + +Osmocom-BB Dependencies and Sercomm +=================================== + +The build environment assumes that you have the osmocom-bb project +directory at same level as the nuttx project: + + |- nuttx + |- apps + `- osmocom-bb + +If you attempt to build this configuration without osmocom-bb, and that +you added support for sercomm in your configuration(CONFIG_SERCOMM_CONSOLE=y) +you will get compilation errors in drivers/sercomm due to header files that +are needed from the osmocom-bb directory. + +By default, NuttX will not use sercomm (HDLC protocol) to communicate with +the host system. Sercomm is the transport used by osmocom-bb that runs on top +of serial. See http://bb.osmocom.org/trac/wiki/nuttx-bb/run for detailed +the usage of nuttx with sercomm. + +Loading NuttX +============= + +The osmocom-bb wiki describes how to load NuttX. See +http://bb.osmocom.org/trac/wiki/nuttx-bb for detailed information. +The way that nuttx is loaded depends on the configuration (highram/compalram) +and phone: + +o compalram is for the ramloader(for phone having a bootloader on flash) +o highram is for phones having the romloader(if the phone has a bootrom) + or for loading in the ram trough a special loader(loaded first on ram + by talking to the ramloader) when having a ramloader(which can only + load 64k). diff --git a/nuttx/configs/compal_e86/include/board.h b/nuttx/configs/compal_e86/include/board.h new file mode 100644 index 000000000..da73df18e --- /dev/null +++ b/nuttx/configs/compal_e86/include/board.h @@ -0,0 +1,6 @@ +/************************************************************************ + * configs/nsh_highram/include/board.h + * + * Supposed to be empty + * + ************************************************************************/ diff --git a/nuttx/configs/compal_e86/include/power.h b/nuttx/configs/compal_e86/include/power.h new file mode 100644 index 000000000..1b5ee828f --- /dev/null +++ b/nuttx/configs/compal_e86/include/power.h @@ -0,0 +1,6 @@ +/************************************************************************ + * configs/nsh_highram/power.h + * + * Supposed to be empty + * + ************************************************************************/ diff --git a/nuttx/configs/compal_e86/nsh_highram/Make.defs b/nuttx/configs/compal_e86/nsh_highram/Make.defs new file mode 100644 index 000000000..31e729e31 --- /dev/null +++ b/nuttx/configs/compal_e86/nsh_highram/Make.defs @@ -0,0 +1,129 @@ +############################################################################ +# configs/compal_e86/nsh_highram/Make.defs +# +# Copyright (C) 2007, 2008, 2011, 2013 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt <spudmonkey@racsa.co.cr> +# +# 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. +# +############################################################################ + +include ${TOPDIR}/.config +include ${TOPDIR}/tools/Config.mk + +ifeq ("${CONFIG_SERCOMM_CONSOLE}","y") +OSMODIR = $(TOPDIR)/../../osmocom-bb +EXTRA_LIBS = $(OSMODIR)/src/target/firmware/comm/libcomm.a \ + $(OSMODIR)/src/shared/libosmocore/build-target/src/.libs/libosmocore.a \ + $(OSMODIR)/src/target/firmware/calypso/libcalypso.a \ + $(OSMODIR)/src/target/firmware/comm/libcomm.a + # ^^^ Stupid hack! Why do I have to put it twice??? +endif + +CROSSDEV = arm-elf- +CC = $(CROSSDEV)gcc +CPP = $(CROSSDEV)gcc -E +LD = $(CROSSDEV)ld +AR = $(CROSSDEV)ar rcs +NM = $(CROSSDEV)nm +OBJCOPY = $(CROSSDEV)objcopy +OBJDUMP = $(CROSSDEV)objdump + +ARCHCCVERSION = ${shell $(CC) -v 2>&1 | sed -n '/^gcc version/p' | sed -e 's/^gcc version \([0-9\.]\)/\1/g' -e 's/[-\ ].*//g' -e '1q'} +ARCHCCMAJOR = ${shell echo $(ARCHCCVERSION) | cut -d'.' -f1} + +ifeq ("${CONFIG_DEBUG_SYMBOLS}","y") + ARCHOPTIMIZATION = -g +else + ARCHOPTIMIZATION = -Os -fno-strict-aliasing -fno-strength-reduce \ + -fomit-frame-pointer +endif + +ifeq ($(ARCHCCMAJOR),4) + ARCHCPUFLAGS = -mcpu=arm7tdmi -mfloat-abi=soft -fno-builtin +else + ARCHCPUFLAGS = -mapcs-32 -mcpu=arm7tdmi -msoft-float -fno-builtin +endif +ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10 +ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow +ARCHDEFINES = +ARCHINCLUDES = -I. -I$(OSMODIR)/src/shared/libosmocore/include -isystem $(TOPDIR)/include +ARCHSCRIPT = -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/ld.script + +CFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) \ + $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe +CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS) +CPPFLAGS = $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) +AFLAGS = $(CFLAGS) -D__ASSEMBLY__ + +NXFLATLDFLAGS1 = -r -d -warn-common +NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) \ + -T$(TOPDIR)/binfmt/libnxflat/gnu-nxflat.ld \ + -no-check-sections +LDNXFLATFLAGS = -e main -s 2048 + +OBJEXT = .o +LIBEXT = .a +EXEEXT = + +ifeq ("${CONFIG_DEBUG_SYMBOLS}","y") + LDFLAGS += -g +endif + +define PREPROCESS + @echo "CPP: $1->$2" + @$(CPP) $(CPPFLAGS) $1 -o $2 +endef + +define COMPILE + @echo "CC: $1" + @$(CC) -c $(CFLAGS) $1 -o $2 +endef + +define ASSEMBLE + @echo "AS: $1" + @$(CC) -c $(AFLAGS) $1 -o $2 +endef + +define ARCHIVE + echo "AR: $2"; \ + $(AR) $1 $2 || { echo "$(AR) $1 $2 FAILED!" ; exit 1 ; } +endef + +define CLEAN + @rm -f *.o *.a +endef + +MKDEP = $(TOPDIR)/tools/mkdeps.sh + +HOSTCC = gcc +HOSTINCLUDES = -I. +HOSTCFLAGS = -Wall -wstrict-prototypes -Wshadow -g -pipe +HOSTLDFLAGS = + + diff --git a/nuttx/configs/compal_e86/nsh_highram/appconfig b/nuttx/configs/compal_e86/nsh_highram/appconfig new file mode 100644 index 000000000..dd189fa1f --- /dev/null +++ b/nuttx/configs/compal_e86/nsh_highram/appconfig @@ -0,0 +1,43 @@ +############################################################################ +# configs/compal_e88/nsh_highram/appconfig +# +# Copyright (C) 2011 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt <spudmonkey@racsa.co.cr> +# +# 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. +# +############################################################################ + +# NSH shell +CONFIGURED_APPS += examples/nsh +CONFIGURED_APPS += system/readline +CONFIGURED_APPS += nshlib + +# Path to example in apps/examples +CONFIGURED_APPS += examples/hello +CONFIGURED_APPS += vsn/poweroff diff --git a/nuttx/configs/compal_e86/nsh_highram/defconfig b/nuttx/configs/compal_e86/nsh_highram/defconfig new file mode 100644 index 000000000..edd0bb6fc --- /dev/null +++ b/nuttx/configs/compal_e86/nsh_highram/defconfig @@ -0,0 +1,282 @@ +############################################################################ +# configs/c5471evm/nsh/defconfig +# +# Copyright (C) 2007-2012 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt <gnutt@nuttx.org> +# +# 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. +# +############################################################################ +# +# Architecture Selection +# +CONFIG_ARCH="arm" +CONFIG_ARCH_ARM=y +CONFIG_ARCH_ARM7TDMI=y +CONFIG_ARCH_CHIP="calypso" +CONFIG_ARCH_CHIP_CALYPSO=y +CONFIG_ARCH_BOARD="compal_e86" +CONFIG_ARCH_BOARD_COMPALE88=y +CONFIG_BOARD_LOOPSPERMSEC=1250 +CONFIG_ROM_VECTORS=n +CONFIG_ARCH_LEDS=n +CONFIG_ARCH_INTERRUPTSTACK=1024 +CONFIG_ARCH_STACKDUMP=y + +CONFIG_DRAM_START=0 +CONFIG_DRAM_SIZE=8650752 + +# +# C5471 specific device driver settings +# +CONFIG_SERCOMM_CONSOLE=y +CONFIG_SERIAL_IRDA_CONSOLE=n +CONFIG_UART_IRDA_HWFLOWCONTROL=n +CONFIG_UART_MODEM_HWFLOWCONTROL=n +CONFIG_UART_IRDA_RXBUFSIZE=256 +CONFIG_UART_MODEM_RXBUFSIZE=256 +CONFIG_UART_IRDA_TXBUFSIZE=256 +CONFIG_UART_MODEM_TXBUFSIZE=256 +CONFIG_UART_IRDA_BAUD=115200 +CONFIG_UART_MODEM_BAUD=115200 +CONFIG_UART_IRDA_BITS=8 +CONFIG_UART_MODEM_BITS=8 +CONFIG_UART_IRDA_PARITY=0 +CONFIG_UART_MODEM_PARITY=0 +CONFIG_UART_IRDA_2STOP=0 +CONFIG_UART_MODEM_2STOP=0 +CONFIG_STDIO_LINE_BUFFER=y + +# +# C5471 Ethernet Driver settings +CONFIG_C5471_NET_STATS=n +ETHERNET_PHY_LU3X31T_T64=1 +ETHERNET_PHY_AC101L=2 +CONFIG_C5471_ETHERNET_PHY=ETHERNET_PHY_LU3X31T_T64 +CONFIG_NET_C5471_AUTONEGOTIATION=y +CONFIG_NET_C5471_BASET100=n +CONFIG_NET_C5471_BASET10=n + +# +# General build options +# +CONFIG_RRLOAD_BINARY=n +CONFIG_INTELHEX_BINARY=n +CONFIG_RAW_BINARY=y +CONFIG_HAVE_LIBM=n + +# +# General OS setup +# +CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_DEBUG=n +CONFIG_DEBUG_VERBOSE=n +CONFIG_DEBUG_SYMBOLS=n +CONFIG_MM_REGIONS=1 +CONFIG_ARCH_LOWPUTC=y +CONFIG_RR_INTERVAL=200 +CONFIG_SCHED_INSTRUMENTATION=n +CONFIG_TASK_NAME_SIZE=0 +CONFIG_START_YEAR=2007 +CONFIG_START_MONTH=2 +CONFIG_START_DAY=13 +CONFIG_JULIAN_TIME=n +CONFIG_DEV_CONSOLE=y +CONFIG_DEV_LOWCONSOLE=n +CONFIG_MUTEX_TYPES=n +CONFIG_PRIORITY_INHERITANCE=n +CONFIG_SEM_PREALLOCHOLDERS=0 +CONFIG_SEM_NNESTPRIO=0 +CONFIG_FDCLONE_DISABLE=n +CONFIG_FDCLONE_STDIO=n +CONFIG_SDCLONE_DISABLE=y +CONFIG_NXFLAT=n + +# +# The following can be used to disable categories of +# APIs supported by the OS. If the compiler supports +# weak functions, then it should not be necessary to +# disable functions unless you want to restrict usage +# of those APIs. +# +# There are certain dependency relationships in these +# features. +# +# o mq_notify logic depends on signals to awaken tasks +# waiting for queues to become full or empty. +# o pthread_condtimedwait() depends on signals to wake +# up waiting tasks. +# +CONFIG_DISABLE_CLOCK=n +CONFIG_DISABLE_POSIX_TIMERS=n +CONFIG_DISABLE_PTHREAD=n +CONFIG_DISABLE_SIGNALS=n +CONFIG_DISABLE_MQUEUE=y +CONFIG_DISABLE_MOUNTPOINT=n +CONFIG_DISABLE_ENVIRON=n +CONFIG_DISABLE_POLL=y + +# +# FAT filesystem configuration +# +CONFIG_FS_FAT=n +CONFIG_FS_ROMFS=n + +# +# Misc libc settings +# +CONFIG_NOPRINTF_FIELDWIDTH=n + +# +# Allow for architecture optimized implementations +# +# The architecture can provide optimized versions of the +# following to improve sysem performance +# +CONFIG_ARCH_MEMCPY=n +CONFIG_ARCH_MEMCMP=n +CONFIG_ARCH_MEMMOVE=n +CONFIG_ARCH_MEMSET=n +CONFIG_ARCH_STRCMP=n +CONFIG_ARCH_STRCPY=n +CONFIG_ARCH_STRNCPY=n +CONFIG_ARCH_STRLEN=n +CONFIG_ARCH_STRNLEN=n +CONFIG_ARCH_BZERO=n + +# +# Sizes of configurable things (0 disables) +# +CONFIG_MAX_TASKS=16 +CONFIG_MAX_TASK_ARGS=4 +CONFIG_NPTHREAD_KEYS=4 +CONFIG_NFILE_DESCRIPTORS=8 +CONFIG_NFILE_STREAMS=8 +CONFIG_NAME_MAX=32 +CONFIG_STDIO_BUFFER_SIZE=1024 +CONFIG_NUNGET_CHARS=2 +CONFIG_PREALLOC_MQ_MSGS=0 +CONFIG_MQ_MAXMSGSIZE=32 +CONFIG_MAX_WDOGPARMS=4 +CONFIG_PREALLOC_WDOGS=8 +CONFIG_PREALLOC_TIMERS=8 + +# SPI driver +# +CONFIG_SPI_OWNBUS=y +CONFIG_SPI_EXCHANGE=y + +# +# TCP/IP and UDP support via uIP +# +CONFIG_NET=n +CONFIG_NET_IPv6=n +CONFIG_NSOCKET_DESCRIPTORS=8 +CONFIG_NET_SOCKOPTS=y +CONFIG_NET_BUFSIZE=420 +CONFIG_NET_TCP=y +CONFIG_NET_TCP_CONNS=8 +CONFIG_NET_NTCP_READAHEAD_BUFFERS=32 +CONFIG_NET_TCPBACKLOG=n +CONFIG_NET_MAX_LISTENPORTS=8 +CONFIG_NET_UDP=y +CONFIG_NET_UDP_CHECKSUMS=y +#CONFIG_NET_UDP_CONNS=4 +CONFIG_NET_ICMP=y +CONFIG_NET_ICMP_PING=n +#CONFIG_NET_PINGADDRCONF=0 +CONFIG_NET_STATISTICS=y +#CONFIG_NET_RECEIVE_WINDOW= +#CONFIG_NET_ARPTAB_SIZE=8 +CONFIG_NET_BROADCAST=n +#CONFIG_NET_FWCACHE_SIZE=2 + +# +# UIP Network Utilities +# +CONFIG_NET_DHCP_LIGHT=n +CONFIG_NET_RESOLV_ENTRIES=4 + +# +# Settings for examples/uip +CONFIG_EXAMPLE_UIP_NOMAC=y +CONFIG_EXAMPLE_UIP_IPADDR=0x0a000002 +CONFIG_EXAMPLE_UIP_DRIPADDR=0x0a000001 +CONFIG_EXAMPLE_UIP_NETMASK=0xffffff00 +CONFIG_EXAMPLE_UIP_DHCPC=n + +# +# Settings for examples/nettest +CONFIG_EXAMPLE_NETTEST_SERVER=n +CONFIG_EXAMPLE_NETTEST_PERFORMANCE=n +CONFIG_EXAMPLE_NETTEST_NOMAC=y +CONFIG_EXAMPLE_NETTEST_IPADDR=0x0a000002 +CONFIG_EXAMPLE_NETTEST_DRIPADDR=0x0a000001 +CONFIG_EXAMPLE_NETTEST_NETMASK=0xffffff00 +CONFIG_EXAMPLE_NETTEST_CLIENTIP=0x0a000001 + +# +# Settings for examples/nsh +CONFIG_NSH_CONSOLE=y +CONFIG_NSH_TELNET=n +CONFIG_NSH_IOBUFFER_SIZE=512 +CONFIG_NSH_CMD_SIZE=40 +CONFIG_NSH_STACKSIZE=4096 +CONFIG_NSH_DHCPC=n +CONFIG_NSH_NOMAC=y +CONFIG_NSH_IPADDR=0x0a000002 +CONFIG_NSH_DRIPADDR=0x0a000001 +CONFIG_NSH_NETMASK=0xffffff00 +CONFIG_NSH_BUILTIN_APPS=y + +# +# Settings for examples/hello +CONFIG_EXAMPLES_HELLO_BUILTIN=y + +# +# Settings for examples/wget +# +CONFIG_EXAMPLE_WGET_URL="http://www.nuttx.org/index.html" +CONFIG_EXAMPLE_WGET_NOMAC=y +CONFIG_EXAMPLE_WGET_IPADDR=0x0a000002 +CONFIG_EXAMPLE_WGET_DRIPADDR=0x0a000001 +CONFIG_EXAMPLE_WGET_NETMASK=0xffffff00 + +# +# Stack and heap information +# +CONFIG_BOOT_RUNFROMFLASH=n +CONFIG_BOOT_COPYTORAM=n +CONFIG_CUSTOM_STACK=n +#CONFIG_STACK_POINTER +CONFIG_IDLETHREAD_STACKSIZE=4096 +CONFIG_USERMAIN_STACKSIZE=4096 +CONFIG_PTHREAD_STACK_MIN=256 +CONFIG_PTHREAD_STACK_DEFAULT=4096 +CONFIG_HEAP_BASE= +CONFIG_HEAP_SIZE= diff --git a/nuttx/configs/compal_e86/nsh_highram/setenv.sh b/nuttx/configs/compal_e86/nsh_highram/setenv.sh new file mode 100644 index 000000000..69ace4c73 --- /dev/null +++ b/nuttx/configs/compal_e86/nsh_highram/setenv.sh @@ -0,0 +1,74 @@ +#!/bin/bash +# compal_e86/nsh_highram/setenv.sh +# +# Copyright (C) 2007, 2008, 2011 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt <spudmonkey@racsa.co.cr> +# +# 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. +# + +if [ "$_" = "$0" ] ; then + echo "You must source this script, not run it!" 1>&2 + exit 1 +fi + +WD=`pwd` +if [ ! -x "setenv.sh" ]; then + echo "This script must be executed from the top-level NuttX build directory" + exit 1 +fi + +if [ -z "${PATH_ORIG}" ]; then + export PATH_ORIG="${PATH}" +fi + +# This is the Cygwin path to the location where I installed the Atmel GCC +# toolchain under Windows. You will also have to edit this if you install +# this toolchain in any other location +#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/Atmel/Atmel Toolchain/ARM GCC/Native/4.7.3.99/arm-gnu-toolchain/bin" + +# This is the Cygwin path to the location where I installed the CodeSourcery +# toolchain under windows. You will also have to edit this if you install +# the CodeSourcery toolchain in any other location +#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery G++ Lite/bin" + +# These are the Cygwin paths to the locations where I installed the Atollic +# toolchain under windows. You will also have to edit this if you install +# the Atollic toolchain in any other location. /usr/bin is added before +# the Atollic bin path because there is are binaries named gcc.exe and g++.exe +# at those locations as well. +#export TOOLCHAIN_BIN="/usr/bin:/cygdrive/c/Program Files (x86)/Atollic/TrueSTUDIO for ARM Pro 2.3.0/ARMTools/bin" + +# This is the Cygwin path to the location where I build the buildroot +# toolchain. +export TOOLCHAIN_BIN="${WD}/../misc/buildroot/build_arm_nofpu/staging_dir/bin" + +# Add the path to the toolchain to the PATH varialble +export PATH="${TOOLCHAIN_BIN}:/sbin:/usr/sbin:${PATH_ORIG}" + +echo "PATH : ${PATH}" diff --git a/nuttx/configs/compal_e86/scripts/ld.script b/nuttx/configs/compal_e86/scripts/ld.script new file mode 100644 index 000000000..4bc0fdd3a --- /dev/null +++ b/nuttx/configs/compal_e86/scripts/ld.script @@ -0,0 +1,142 @@ +/* + * Linker script for running from internal SRAM on Compal phones + * + * This script is tailored specifically to the requirements imposed + * on us by the Compal bootloader. + * + */ + +OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") +OUTPUT_ARCH(arm) +ENTRY(__start) +MEMORY +{ + +/* E86 stacked flash 32mbit flash, 4mbit sram, DBB internal 256kb SRAM */ + /* 0x800000-0x87ffff */ /* bump up because we have 32mbit instead of 16mbit */ + /* compal-loaded binary: our text, initialized data */ + LRAM (rw) : ORIGIN = 0x00800000, LENGTH = 0x00040000 + TRAM (rw) : ORIGIN = 0x00840000, LENGTH = 0x00020000 + /* compal-loaded binary: our unitialized data, stacks, heap */ + IRAM (rw) : ORIGIN = 0x00860000, LENGTH = 0x00020000 + +/* E88 NOR flash 16mbits, SRAM 256 kb, DBB has 256kb internal SRAM */ + /* 0x800000-0x83ffff */ + /* compal-loaded binary: our text, initialized data */ +/* + LRAM (rw) : ORIGIN = 0x00800000, LENGTH = 0x00020000 + TRAM (rw) : ORIGIN = 0x00820000, LENGTH = 0x00010000 +*/ + /* compal-loaded binary: our unitialized data, stacks, heap */ +/* + IRAM (rw) : ORIGIN = 0x00830000, LENGTH = 0x00010000 +*/ +} +SECTIONS +{ + . = 0x800000; + + /* romloader data section, contains passthru interrupt vectors */ + .compal.loader (NOLOAD) : { . = 0x100; } > LRAM + + /* image signature (prepended by osmocon according to phone type) */ + .compal.header (NOLOAD) : { . = 4; } > LRAM + + /* initialization code */ + . = ALIGN(4); + .text.start : { + PROVIDE(__start = .); + KEEP(*(.text.start)) + *(.text.start) + } > TRAM + + /* exception vectors from 0x80001c to 0x800034 */ + .text.exceptions 0x80001c : AT (LOADADDR(.text.start) + SIZEOF(.text.start)) { + KEEP(*(.text.exceptions)) + * (.text.exceptions) + . = ALIGN(4); + } > LRAM + PROVIDE(_exceptions = LOADADDR(.text.exceptions)); + + /* code */ + . = ALIGN(4); + .text (LOADADDR(.text.exceptions) + SIZEOF(.text.exceptions)) : + AT (LOADADDR(.text.exceptions) + SIZEOF(.text.exceptions)) { + /* regular code */ + *(.text*) + /* always-in-ram code */ + *(.ramtext*) + /* gcc voodoo */ + *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) + . = ALIGN(4); + } > TRAM + PROVIDE(_text_start = LOADADDR(.text)); + PROVIDE(_text_end = LOADADDR(.text) + SIZEOF(.text)); + + /* constructor pointers */ + .ctors : { + /* ctor count */ + LONG(SIZEOF(.ctors) / 4 - 2) + /* ctor pointers */ + KEEP(*(SORT(.ctors))) + /* end of list */ + LONG(0) + } > TRAM + PROVIDE(_ctor_start = LOADADDR(.ctors)); + PROVIDE(_ctor_end = LOADADDR(.ctors) + SIZEOF(.ctors)); + + /* destructor pointers */ + .dtors : { + /* dtor count */ + LONG(SIZEOF(.dtors) / 4 - 2) + /* dtor pointers */ + KEEP(*(SORT(.dtors))) + /* end of list */ + LONG(0) + } > TRAM + PROVIDE(_dtor_start = LOADADDR(.dtors)); + PROVIDE(_dtor_end = LOADADDR(.dtors) + SIZEOF(.dtors)); + + /* read-only data */ + . = ALIGN(4); + .rodata : { + *(.rodata*) + } > TRAM + PROVIDE(_rodata_start = LOADADDR(.rodata)); + PROVIDE(_rodata_end = LOADADDR(.rodata) + SIZEOF(.rodata)); + + /* initialized data */ + . = ALIGN(4); + .data : { + *(.data) + } > TRAM + PROVIDE(_data_start = LOADADDR(.data)); + PROVIDE(_data_end = LOADADDR(.data) + SIZEOF(.data)); + + /* pic offset tables */ + . = ALIGN(4); + .got : { + *(.got) + *(.got.plt) *(.igot.plt) *(.got) *(.igot) + } > TRAM + PROVIDE(_got_start = LOADADDR(.got)); + PROVIDE(_got_end = LOADADDR(.got) + SIZEOF(.got)); + + /* uninitialized data */ + .bss (NOLOAD) : { + . = ALIGN(4); + __bss_start = .; + _sbss = ABSOLUTE(.); + *(.bss) + _ebss = ABSOLUTE(.); + } > IRAM + . = ALIGN(4); + __bss_end = .; + PROVIDE(_bss_start = __bss_start); + PROVIDE(_bss_end = __bss_end); + + /* end of image */ + . = ALIGN(4); + _end = .; + PROVIDE(end = .); +} diff --git a/nuttx/configs/compal_e86/src/Makefile b/nuttx/configs/compal_e86/src/Makefile new file mode 100644 index 000000000..0e1e2f43f --- /dev/null +++ b/nuttx/configs/compal_e86/src/Makefile @@ -0,0 +1,80 @@ +############################################################################ +# configs/compal_e86/src/Makefile +# +# Copyright (C) 2007, 2008, 2013 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt <spudmonkey@racsa.co.cr> +# +# Copyright (C) 2011 Stefan Richter. All rights reserved. +# Author: Stefan Richter <ichgeh@l--putt.de> +# +# 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. +# +############################################################################ + +-include $(TOPDIR)/Make.defs + +CFLAGS += -I$(TOPDIR)/sched + +ASRCS = +AOBJS = $(ASRCS:.S=$(OBJEXT)) +CSRCS = dummy.c +COBJS = $(CSRCS:.c=$(OBJEXT)) + +SRCS = $(ASRCS) $(CSRCS) +OBJS = $(AOBJS) $(COBJS) + +ARCH_SRCDIR = $(TOPDIR)/arch/$(CONFIG_ARCH)/src +CFLAGS += -I$(ARCH_SRCDIR)/chip -I$(ARCH_SRCDIR)/common -I$(ARCH_SRCDIR)/arm + +all: libboard$(LIBEXT) + +$(AOBJS): %$(OBJEXT): %.S + $(call ASSEMBLE, $<, $@) + +$(COBJS) $(LINKOBJS): %$(OBJEXT): %.c + $(call COMPILE, $<, $@) + +libboard$(LIBEXT): $(OBJS) + @( for obj in $(OBJS) ; do \ + $(call ARCHIVE, $@, $${obj}); \ + done ; ) + +.depend: Makefile $(SRCS) + @$(MKDEP) $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep + @touch $@ + +depend: .depend + +clean: + @rm -f libboard$(LIBEXT) *~ .*.swp + $(call CLEAN) + +distclean: clean + @rm -f Make.dep .depend + +-include Make.dep diff --git a/nuttx/configs/compal_e86/src/dummy.c b/nuttx/configs/compal_e86/src/dummy.c new file mode 100644 index 000000000..69853a130 --- /dev/null +++ b/nuttx/configs/compal_e86/src/dummy.c @@ -0,0 +1 @@ +/* no libboard.a otherwise */ |