Commit Graph

326 Commits

Author SHA1 Message Date
Anas Nashif 1e3dca51bb build: set platform name without quotes and reuse everywhere
Avoid having to remove quotes wherever the platform name is used
by exporting the variable only once.

Change-Id: I4cb51901e4ac19d70d0310fe6bbacd157f586661
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:24:54 -05:00
Anas Nashif be07e3ffa3 Zephyr 0.7.0-rc1
Update version

Change-Id: I36ebc4b7ebba9c37f71d2ab4aea51bb93bb1bf0f
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:24:54 -05:00
Anas Nashif 81057e7596 build: show supported boards when running 'make help'
This lists all supported board by looking at configs/ and other
locations with defconfig files.

Change-Id: I48ed260543adfeacbc089f403f948010ea6f978e
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:24:53 -05:00
Anas Nashif df73d32147 build: use architecture definition from kconfig
Do not depend on host architecture and use architecture definition
from the defconfig file of the board.

Change-Id: Idb3dd42524f26bd167a34d6eb024d4d9816e9730
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:24:52 -05:00
Anas Nashif 1b702154b5 kbuild: add clang support
Clang support already existed in the Makefiles but was not complete
and some gcc options did not work with clang. Move those to be conditional
on the compiler used to make clang work.

To build with clang for x86:

make  CC=clang  -C samples/microkernel/apps/hello_world/

You still need the gcc cross environment for various tools.

For now, only x86 was tested.

Change-Id: Ic5aeab4f80d312e1d1312a4a9fc885a43f760270
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:24:47 -05:00
Anas Nashif 14cb8da750 Revert "kbuild: add clang support"
This reverts commit 58fd0778c6dcc6bd3148b5d07615cd7bd777f456.

Change-Id: Ibffe036d2e182652b3c966c10ed405c9386f823c
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:24:42 -05:00
Anas Nashif 0d0cb8e661 kbuild: add clang support
Clang support already existed in the Makefiles but was not complete
and some gcc options did not work with clang. Move those to be conditional
on the compiler used to make clang work.

To build with clang for x86:

make  CC=clang  -C samples/microkernel/apps/hello_world/

You still need the gcc cross environment for various tools.

For now, only x86 was tested.

Change-Id: I1a50c3a82d79ff3001beb4366961ca810eeb6006
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:24:41 -05:00
Anas Nashif b2147178b4 build: remove unsupported targets from Makefile
Remove goals that call scripts we do not have or support.

Change-Id: Ic6f1d2b620e20f7355e1dec0a2454239fad8f123
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:24:41 -05:00
Anas Nashif c0078cfb9b Remove linux features in build process that we do not support
Lots of code that is not being used by Zephyr but makes debugging and find
issues related to zephyr very difficult.

Change-Id: If8f6515d68f64b03cc881a9c3cde48c0451fe3b5
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:24:41 -05:00
Anas Nashif 0c39517251 makefile: put app files in seperate target
Application source code is not a core component of the kernel.
Remove from core-y and put the application tree in its own category.

Change-Id: I1d6f479829eb58b9a49baf90aaf9f74187660b86
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:24:41 -05:00
Anas Nashif 5401ded10b Zephyr 0.6.0
Bump release in makefile and documentation.

Change-Id: I395e3a1caa304f00be5343160b2a62829a66ad46
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:24:37 -05:00
Anas Nashif c587253e23 Zephyr 0.6.0-rc2
Change-Id: Ie894c0133674e0642bd0ce951ff63d6012a9d6bd
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:24:36 -05:00
Anas Nashif 8b45f4e50b sysgen: generate sysgen.h instead of zephyr.h
use zephyr.h as the main include in applications, no need to have nano/micro
includes in applications and samples.
Inclusion of the proper kernel headers is be handled in the zephyr.h based
on the configured and used kernel.

Change-Id: If5275cef5d2ad1f475dfb39102cb71cfe5630f6c
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:24:35 -05:00
Anas Nashif 454a60d4a8 Zephyr 0.6.0-rc1
Change-Id: Ib17449cc36d93fa4e56ce54d05d84a6ef68f308a
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:24:34 -05:00
Anas Nashif 20439b488e gcc: build with -fstack-usage
will generate an extra file that specifies the maximum amount
of stack used, on a per-function basis.

Using a static stack checker the data can be analysed, for example:
   http://dlbeer.co.nz/oss/avstack.html

Change-Id: I23bd8ce7c4516bd0c7ffb74504e6d379677f25f8
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:24:29 -05:00
Anas Nashif a401ddec57 remove linux configs and compile options not being used
The makefile has some options we do not have in Zephyr, so better
remove them to avoid any confusion and misconfiguration.

Change-Id: I35663261bceb741a28d35bdbe87df451aa298c86
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:24:28 -05:00
Anas Nashif 1cc1ac4b2f move cflags setting to arch/<arch>/Makefile
Move Zephyr specific CFLAGS that depend on config options to
the Makefile where they can better be managed among other cflag
options.

Change-Id: Ia79a2f2def4f51857f6d661aa78e9fb7eb7a5e22
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:24:28 -05:00
Anas Nashif a56b1313cd Zephyr 0.5.0
Change-Id: Id62f50846c8d9d6cc6be8d6c9050704978d6aba9
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:24:22 -05:00
Juan Manuel Cruz a5a6ec341b build: help message update
This commit updates the help message adding pristine target
and removing reference to a non-existent README file.

Change-Id: I38f32e6d1e2fc0723894b5e5a71570bc4333e615
Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
2016-02-05 20:24:22 -05:00
Anas Nashif ee743c7d42 build: allow usage of a custom linker script
This change will allow the use of a custom linker script by
setting the config variable CUSTOM_LINKER_SCRIPT to a path outside
of Zephyr tree.

This is useful when an application needs to add sections into the
linker script and avoid having to change the script provided by
Zephyr.

Change-Id: Ibe31abcc8c0227e734f59bc26d3c8d5619951b29
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:24:22 -05:00
Anas Nashif d1342a8dd7 Zephyr v0.5.0-rc0
Change-Id: I50fca2a42cae44760db191ac711b1693e167a5a8
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:24:19 -05:00
Anas Nashif d9af71bcff build: fixed wrong logic for setting options during debug
From old build system -DPERF_OPT was set with no optimisation, that
was buggy and did not function as expected with new Makefiles.

Change-Id: I21ebbe0e9314d0a25cb53c6455ff244252e44af0
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:24:19 -05:00
Anas Nashif 6f6e95d325 build: remove obsolete variables from Makefile
Those variables are not being used anymore.

Change-Id: I6904aae1dfa01eedacdc86e61aead61619e3302d
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:24:19 -05:00
Szymon Janc dc1fd516a8 Fix TinyCrypto include path
TinyCrypto includes files are in 'include' subfolder.
Without this patch one is required to include eg
#include <include/aes.h>
instead of
#include <aes.h>

Change-Id: I4a761a107d819400ad39cc0e3fb918bed2df4ab4
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:15:58 -05:00
Constanza Heath 7d0e1d9218 Add initial import of TinyCrypt crypto library and tests
Change-Id: I89b8db6925385dd02e95e0401bc42f32543e0daf
Signed-off-by: Constanza Heath <constanza.m.heath@intel.com>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:15:36 -05:00
Anas Nashif cca4e97e01 Zephyr 0.4.0
Change-Id: If6473058c708c6833389ef5d1e6bd356d7c243ef
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:15:35 -05:00
Anas Nashif db5a6391bb Zephyr 0.4.0-rc2
Change-Id: Icd2e0201cb79f2af4a2d754a529eb6d11343b2f4
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:15:34 -05:00
Anas Nashif cec625afc4 Move sysgen hooks and file generation to top-level Kbuild
Change-Id: Icb06c0e041e08863947c7b31d843771c3f2c6a0c
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:15:33 -05:00
Anas Nashif e3ac0907df Move scripts/Makefile.<arch>preparch to arch/<arch>
Follow the model of the Linux kernel for adding arch
specific CFLAGS by using the Makefile and Kbuild combination
in the arch/<arch> directory.

This will also allow adding architecture specific targets and is
easy to maintain when alongside the architecture.

Change-Id: If51a78e8845baa71d9090c4a4f49fcd013354840
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:15:33 -05:00
Anas Nashif fde80d7ead cleanup makefiles and remove duplication
Makefile.inc duplicates many of the existing targets in Makefile.
Instead of duplication, pass all none local targets to Makefile
and implement only those needed locally.

Change-Id: I1e923dd398a138543fa676ab67570b630c75d7ea
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:15:32 -05:00
Anas Nashif 9c72cf542e portability: echo -n fails on the mac
Change-Id: If5973f80b6fa97e19e31e8a6b7c16b6aa78d2450
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:15:31 -05:00
Anas Nashif bd2274813d use gen_offset_header to generate offsets.h
Using nm and sed works fine on Linux, however when moving to other
platforms, nm and sed do not work the same way and might have
different behaviour. This reduces dependency on host tools and brings
back the code for generating the offsets.h directly using a built
utility that is portable.

Change-Id: I13db1c16cbed12e366fd41d151886bbcbf419548
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:15:31 -05:00
Anas Nashif 8f9377e631 Zephyr 0.4.0-rc1
Change-Id: Ib1aabc675a915b152d8719a493ba5fef45dbbce0
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:15:28 -05:00
Anas Nashif 3852c8c98a fix setting of CONFIG_COMPILER_OPT
CONFIG_COMPILER_OPT was set before it was initialised.


Change-Id: I398da7a9fde1ad64ff5a8df41ec50884f8844ce6
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:15:28 -05:00
Anas Nashif 7b9455b9e7 remove unused linux Documentation targets
Remove references and make targets still referring to Linux
Documentation directory.

Change-Id: I6544e0ea9ae6c6c48158c89ed9bd61d73b1684fd
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:15:27 -05:00
Fabien Chereau 6d1ee7e8bf build: avoids link error when CCACHE is not activated
Change-Id: I31d7578cc20b9b64c7c144935f93576b6349597e
Signed-off-by: Fabien Chereau <fabien.chereau@intel.com>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:15:26 -05:00
Anas Nashif 42fbd4afd2 cleanup libc kconfig and use choice
This will allow adding more libc implementations in the future.
Also use the location of the include directory from the toolchain
settings.

Change-Id: Idae5e4ffd9b1bcb5e924da156df56e81f10c8842
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:15:25 -05:00
Anas Nashif a8259afed8 allow linking of external application libraries
This will allow building of external components and linking
them at the end of the build process to the main kernel.

add a Makefile.app to the project directory with the required
targets, for example

Makefile.app:

KBUILD_ZEPHYR_APP := /tmp/libapp.a

/tmp/libapp.a:
	@touch /tmp/libapp.a

Change-Id: If2ba6b3ee59023acc5f85c5701b65c4d096d5059
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:15:21 -05:00
Andrew Boie 5bb06311a9 Kbuild: Don't warn on zero-length format strings
This warning isn't particularly useful and we intentionally do this
in our __assert.h macros.

Change-Id: I783398fd92dffe57e2e18d520db4e752c8c37a98
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2016-02-05 20:15:21 -05:00
Anas Nashif 64bd9c6df3 build: rename platform target to drivers
This is really not a platform target, rename it to match
what it really does, which is building drivers.

Change-Id: Ie36781fa0916371013de81b9fa542a9e790af7e6
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:45 -05:00
Anas Nashif 8d00ec5c4e build: build libc as object, not kbuild library (lib.a)
The way we build the libc files is not a real library that can be
used as a libc and makes managing the source files a bit
difficult, so lets revert back to building the c function files
like everything else in the system to avoid any confusion.

Change-Id: I4e998e37bc376522fe253c4aefefe7804597f0f2
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:45 -05:00
Anas Nashif 486a2a1034 doc: fix docs target
The top make file has a documentation target that does not work.
Change it to work with our documentation and scripts.

Change-Id: Id32643900d122f54778e3179930f2e8e34387aa1
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:45 -05:00
Anas Nashif eb1fdf5741 Add debug option to Kconfig to enable debugging
This only disables optimizations for now, we should
be able to select more debug options from here.

it changes KBUILD_CFLAGS from  -Os to -O0.

Change-Id: I84515356f8af006b724d706c0647a671db54a6b5
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:45 -05:00
Peter Mitsis 771c5998e9 kbuild: Replace 'bsp-y' with 'platform-y'
Replace obsolete BSP terminology with platform terminology.

Change-Id: I4c23cc0cc0c12f1402e9ea467b87d10e17e5ef71
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
2016-02-05 20:14:43 -05:00
Anas Nashif ef39858deb Zephyr 0.3.0
Change-Id: Iee74ac9a62d0866d0881a215ce74ad0ca555cd3d
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:42 -05:00
Andrew Boie 22c3fa3742 build: Don't disable the monitor when using QEMU_PIPE
Performance is about the same, it does not appear to cause issues,
and older versions of QEMU don't support this flag.

Change-Id: Ie45a2396c7b0d3098923244d92b15422491413a1
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2016-02-05 20:14:42 -05:00
Anas Nashif 28ad2e2856 Zephyr 0.3.0-rc2
Change-Id: Ie6d961795f5d1a1cce71cc15272d8560877fc69e
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:42 -05:00
Andrew Boie 285c054830 Kbuild: use ccache if USE_CCACHE=1 is set
Change-Id: Ic9f1843bd697af497b5feec77bdb470b194115d2
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2016-02-05 20:14:42 -05:00
Anas Nashif 03bec088ef Zypher 0.3.0-rc1
Change-Id: I0e31a1cf8a06e04bb0fc02fd5e76c8d79b5301f3
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:41 -05:00
Peter Mitsis 213db12fbf Move platforms to new arch/<arch>/platforms directory
Change-Id: I9ad5d51329d381c091aa47b482a8e38e7c194118
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
2016-02-05 20:14:39 -05:00
Anas Nashif 9aeb08213f toolchain: add support for iamcu toolchain
See
https://groups.google.com/forum/#!topic/ia32-abi/cn7TM6J_TIg

for more details.

• Support IA32 without FPU.
• Minimum ISA: Pentium ISA without x87 FPU instructions.
• Don't allow mixing i386 object files with Intel MCU object files.
• Support floating point with software emulation:
     a. Long double is the same as double.
     b. Use __float80 for 80-bit double.
• Minimize memory footprint:
     a. Code size
     b. Data size
     c. Stack size

Here is the draft of Intel MCU psABI.   The differences from IA32
 psABI are

1. The minimum instruction set is Intel Pentium ISA minus instructions
for x87 floating point unit.
2. There are no x87 floating point registers.
3. There are no vector registers.
4. Segment registers are optional.
5. Support for TLS relocations are optional.
6. Scalar types larger than 4 bytes are aligned to 4 bytes.
7. There are no vector types.
8. _Decimal32, _Decimal64, and _Decimal128 types are optional.
9. long double type is the same as double.
10. float, double and long double types are passed and returned in
 general purpose registers.
11. _Decimal32 and _Decimal64 types are passed in general purpose
registers.
12. Aggregate types no larger than 8 bytes are passed and returned
in general purpose registers.
13. Stack is 4-byte aligned.
14. The auxiliary vector support is optional.
15. Register %edx has undefined value at process entry.
16. New ELF machine code: EM_IAMCU.
17. New predefined C/C++ pre-processor symbols: __iamcu and __iamcu__

Change-Id: I6a0c45ad22d8f710b6f37a041aaa2fc1bf0b1c39
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:38 -05:00
Andrew Boie 84fed36539 Kbuild: Introduce QEMU_PIPE option
If set, 'make qemu' will direct its console output to a named pipe and
disable the interactive monitor. Intended for use with the new sanity
check system which will parallelize test execution.

Change-Id: I902f77c02ed3f210891ff13147afea890e64d9c1
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2016-02-05 20:14:38 -05:00
Anas Nashif 72cb707f20 kconfig: Let the application decide the name of the kernel bin
This introduces a new option

	CONFIG_KERNEL_BIN_NAME

that can be used in the kernel configuration (kconfig) to set
the final binary name, for example you can set:

CONFIG_KERNEL_BIN_NAME="test_app"

in the project.conf and this will result in

test_app.{elf,bin} in outdir.

The default is still using the type of the kernel being used, i.e.

microkernel.elf or nanokernel.elf

Change-Id: Id6c437af2ce4c02cb52d4e1e41b29e64d83f9aab
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:37 -05:00
Anas Nashif d9c0bc65ee Zephyr 0.2.0
Change-Id: Ie094e711b96d90dd4bb5c1dfb543e9e4819bf1ff
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:28 -05:00
Anas Nashif f3add9bd9b Zephyr 0.2.0-rc2
Change-Id: Iec055acc4cebc1e18add3760e7c9419e1ce2d8f0
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:28 -05:00
Peter Mitsis 1ffabeaf3d Rename BSP_DIR to PLATFORM
Updates references to CONFIG_BSP_DIR to CONFIG_PLATFORM as part of the
BSP -> platform clean up.

Note that despite the renaming, the usage of the config option remains
unchanged.

Change-Id: I2846c3f761cf09871019c0855bf1824ae03e6b3c
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
2016-02-05 20:14:27 -05:00
Anas Nashif 32bff69629 Zephyr Kernel 0.2.0-rc1
Change-Id: I40dcfad5af44406b70b21552fe5ba2346127e518
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:27 -05:00
Anas Nashif 4cf6c31fa3 version: add version macro
Use macro for checking in the code for a specific version,
for example:

 if ZEPHYR_VERSION_CODE >= ZEPHYR_VERSION(0,6,2)
...
 endf

Change-Id: I21f152ca3444630a0273e4a8115b56a2a4179924
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:27 -05:00
Anas Nashif 71bed1720c version: use printf for hex conversion
Use printf to convert from decimal to hex and set the version.

Change-Id: Icdcfcd92f9b6ac1c2d0669d490b0122747ac7f4e
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:27 -05:00
Anas Nashif 92a5cd83a7 version: reset version to 0.1.0
Reset the version from what we had in viper.

Change-Id: Ia7e4ebb94f9029ffb87968336f2cb7029f714081
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:27 -05:00
Anas Nashif c61820bdf8 version: Update version handling and code
The kernel version has been converted from a string to a four-byte
quantity that is divided into two parts.
Part 1: The three most significant bytes represent the kernel's
numeric version, x.y.z. These fields denote:
      x -- major release
      y -- minor release
      z -- patchlevel release
Each of these elements must therefore be in the range 0 to 256, inclusive.

Part 2: The least significant byte is reserved for future use.

EXTRAVERSION is used for intermediate releases and customised
builds on top of an existing/released version.

Change-Id: Ibb7dd5654c36daeaa3a53499857d254aaef25bdf
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:27 -05:00
Anas Nashif 8ad4878e52 Fix kernel version generation
The generated version number in hex was incorrect and macros
were failing.
We also did not convert decimals to hex before we created the hex
version number.

Change-Id: Ic5b8d4a40d907f09cf4184e84f0ce89a4532a9b5
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:27 -05:00
Anas Nashif 47f8088e26 cflags: disable -Werror=date-time
This has been causing issues with developers using older
compilers. Until we are on the same version and have a
better way to deal with this, lets disable it.

Change-Id: I25c895c72a7a1a888332320d78bd47246dbafaff
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:27 -05:00
Anas Nashif ac47c45ca0 Rename Zephyr OS into Zephyr Kernel
We are a kernel, not an OS.

Change-Id: Ib987e3e511e1bdbed6293ab5e15e598bff00b09b
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:26 -05:00
Dmitriy Korovkin f41ffb4c43 Change the modules link order
In order to support IRQ_CONNECT_STATIC implementation for ARM,
the platform code needs to be linked after drivers.

Change-Id: Ifcba89283e4b9dc18a9cb774d591a689b38c9254
Signed-off-by: Dmitriy Korovkin <dmitriy.korovkin@windriver.com>
2016-02-05 20:14:25 -05:00
Juan Manuel Cruz 99b340e2ef Kbuild: CFLAGS Review.
This commit removes original linux CFLAGS that needed review.

Change-Id: Ieeb13dcd3fc4d8c76bf48b6efbb3d6fa7767dfe2
Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
2016-02-05 20:14:25 -05:00
Anas Nashif 83d4ea9caa warn about unset ZEPHYR_GCC_VARIANT variable
Change-Id: I217cdf546710622b992cf8a0edd4444bc2321a04
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:25 -05:00
Anas Nashif 27603f4801 Revert "Kbuild: Tools build at TIMO_BASE directory."
This reverts commit 23da104f0dc8c6c4a768a727b564272c084aa79b.

Conflicts:
	Makefile
	Makefile.inc

Change-Id: Ia8f2efe3cd37e82c04c304f04c46d787d2265dde

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:24 -05:00
Juan Manuel Cruz 308f1586d6 Kbuild: Assembly code extension.
This commit set back .S as the assembly code extension for Kbuild.

Change-Id: Ib0119876bd0bed6617bbfbad2ca6a44e172ab042
Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
2016-02-05 20:14:20 -05:00
Anas Nashif aaa84454d0 Rename Tiny Mountain -> Zephyr OS
Change-Id: I44c71d7e8270627f48cfb047312eb70dc3215ce8
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:20 -05:00
Anas Nashif 652309470c Rename tinymountain -> zephyr
Remove excessive use of zephyr and use a more generic
terminology where possible.

Change-Id: Ida8916765dbe824f63d7a4cedba60b35d14aee55
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:16 -05:00
Anas Nashif b8823770d2 Rename TIMO -> ZEPHYR
Change-Id: Id44a129e275fb0cfe1fce6ec2a03c2d86ffe3995
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:16 -05:00
Peter Mitsis 61eff496e0 kbuild: link using ${LD} instead of ${CC}
Not all GCC toolchains generate a fully linked image (non-relocatable) when
using ${CC} for linking.

Change-Id: Id99501b6510cd6eeb87f245a6273fcebd6d36cde
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
2016-02-05 20:14:16 -05:00
Anas Nashif f05ee8f3b0 Remove more kernel module related references
Change-Id: Ic8eb2b062bdc0376aa5a463654da32d6ddb7b151
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:16 -05:00
Anas Nashif e06da7bd65 Remove packaging dependencies
Change-Id: Ife53df325c1ddad26299c6c6075338d2225f49b0
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:16 -05:00
Anas Nashif 79635e002a Remove depmod and dependencies
Change-Id: I70325e049fbde1a965b9d845683cb7799fa54382
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:16 -05:00
Allan Stephens 74b98c1cc4 Rename VXMICRO_GCC_VARIANT to ZEPHYR_GCC_VARIANT
Updates this environment variable to reflect the new OS name.

Change-Id: Iba9230466fbfda786be7d1265927b4ecc4c7dd93
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:14:15 -05:00
Allan Stephens 815c6406bc Rename VPF files to use MDEF file extension
The file extension indicates a "Microkernel DEFinitions" file,
and no longer reflects the obsolete VxMicro/Viper branding.

Change-Id: Ib95b271404a4a4737e851d603c371244fa609e4d
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:14:15 -05:00
Allan Stephens 5b291d3567 Eliminate VxMicro branding in main application include file
File is renamed to zephyr.h.

Change-Id: Ice7ab9318c525630572023614b5bed67ae0400c1
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:14:15 -05:00
Juan Manuel Cruz 0167ee4279 Kbuild: Simplify prepare targets.
This commit organizes the prepare sequence targets removing
some unused targets left behind as a relique from the linux build.

Change-Id: I7b215865e2c06f9c0138806bce9fce9191d07d8b
Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
2016-02-05 20:14:14 -05:00
Juan Manuel Cruz ef07b962d8 Kbuild removes kernel.release generation.
This commit removes the generation of the kernel.release file.
THe kernel.release file is redundant with the kernel version file.

Change-Id: I55f75597a760b3a9c672b7409ad93533a4f2c6ab
Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
2016-02-05 20:14:14 -05:00
Dirk Brandewie bc9c8846f7 kbuild: Avoid unconditional relinking of default target
Change-Id: I8814b6057a055f4342b3015574860c894b160131
Signed-off-by: Dirk Brandewie <dirk.j.brandewie@intel.com>
2016-02-05 20:14:12 -05:00
Dirk Brandewie 991e9d34bf kbuild: remove asm-generic from dependency chain
Change-Id: I857218221a5f9ca80d331247146cd5a54d15b956
Signed-off-by: Dirk Brandewie <dirk.j.brandewie@intel.com>
2016-02-05 20:14:12 -05:00
Dirk Brandewie 087603923b kbuild: remove error from clean target
Change-Id: I0f091c69099a505a9fa7680b77592fdf6fae4fc0
Signed-off-by: Dirk Brandewie <dirk.j.brandewie@intel.com>
2016-02-05 20:14:12 -05:00
Anas Nashif f1c7c178cf Use qemu from toolchain if available
Use patches qemu binary provided by the Yocto SDK.

Change-Id: I5edc2338f45fdd0d953d8d34bea648d0d18d8bf8
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:12 -05:00
Anas Nashif 8e9d8ebfd2 Remove nodes naming when using sysgen
Change-Id: I8914c25ad18d3c294f398f98efca04c3ac371f44
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:12 -05:00
Anas Nashif 6082c0989d Remove Makefile.modpost and .ko building
Change-Id: Iac29d5cac1efbc894cbe036fab8bff865d1cec96
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:12 -05:00
Anas Nashif 04f2bdc0c4 Remove directives for compressing modules/initrds
We do not need those in tiny-mountain.

Change-Id: I6e3ab5b5f5e17b301a66d57dceccb25d9a82c9d0
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:12 -05:00
Anas Nashif 81c657139e remove module related targets
Change-Id: I57526276c466e965745bd0e56aa90a9591ccdc7a
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:12 -05:00
Anas Nashif d6ebd1839d Remove kernel module related code
This reduces the clutter and let us focus on what really
counts.

Change-Id: I30a245697684a036c6a908e52d77005b35b53d81
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:11 -05:00
Juan Manuel Cruz 4d7f954896 Kbuild: Tools build at TIMO_BASE directory.
This commit allows the tools build to be executed at TIMO_BASE
directory insted of being executed at the PROJECT_BASE.
This allows the sanity checks to run faster because there is no
need to recompile the tools with every test.

Change-Id: I9e9ac78695db884b44e2693029e9ea6ed96b21c8
Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
2016-02-05 20:14:10 -05:00
Anas Nashif cdf88a7848 Kbuild: Do not generate modules.order
Change-Id: Ie7609bb4917d6f80ac19ddbe286a06cd85c91ca1
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:10 -05:00
Juan Manuel Cruz 8b16a17052 Kbuild: Removing unused target from preparing.
This commit removes targets dragged from linux system that are not
used in the current kernel build system.

Change-Id: Ie423a5478b2c86c2fa02a66096934f01b898f1f5
Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
2016-02-05 20:14:10 -05:00
Juan Manuel Cruz c6ebdf4b15 Kbuild: Help text update.
This commit updates the help text content to cover
the targets that are currently supported.
The deleted help text will be added as functions are enabled.

Change-Id: Ia7c539a44427d740f23cdf12e5d3a18d3dd7cf24
Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
2016-02-05 20:14:10 -05:00
Anas Nashif e439f510f8 Kbuild: link against libc only for newlib
Right now we are building minimal libc as an archive (lib.a)
and do not need to link against -lc -lm in that case.
Link against libc/libm only when using an external libc.

Change-Id: I1af0eaf5c059bd5f0c8c16cda28114c6dc10b156
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:09 -05:00
Anas Nashif 19f0ff2756 Kbuild: enable toolchain newlib library instead of minimal libc
This options allows us to link against newlib instead of the
integrated minimal c library.

Change-Id: I20990354d74c08f2f6348f0aeea452b8f0f4c8e9
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:09 -05:00
Anas Nashif 3b9199d5d4 Kbuild: optionally build minimal c library
Change-Id: Ib949ec199ba0dec3c5a1a1a6c9fbf355efcc8104
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:09 -05:00
Anas Nashif 369cf08e29 Kbuild: Support toolchain auxiliary libraries per variant
This allows a toolchain to define the auxiliary libraries in
scripts/Makefile.toolchain.{variant} with more flexibility.

Change-Id: Iaae9c7613ddcbcc8376b7e756aa4b675db680737
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:09 -05:00
Juan Manuel Cruz 0c47e4fbe7 Kbuild: LDLIBS_TOOLCHAIN adds toolchain static libraries.
This commit adds the variable LDLIBS_TOOLCHAIN that, by default,
add the gcc static library to the link command.
This variable can be overriden as an environmental variable or as a make
parameter to allow the use of different toolchains different from gcc.

Change-Id: Id9d6c8621a7dc8feebdf377c115564701fb7652b
Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
2016-02-05 20:14:09 -05:00
Anas Nashif aca245d96f Kbuild: Add support for multiple toolchains
To use this, export the following:

export VXMICRO_GCC_VARIANT=yocto # for yocto
export VXMICRO_GCC_VARIANT=xtools # for crosstool-ng

export YOCTO_SDK_INSTALL_DIR=/opt/poky-tm/1.8
or
export XTOOLS_TOOLCHAIN_PATH=/opt/crosstool-ng

Change-Id: I9cd6062ecc32047d1582aad46209f4232e0e31f6
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:08 -05:00
Juan Manuel Cruz de1cec29d6 Kbuild: Build minimal libc as a static library.
This commit changes the way libc is built.
Instead of building a hierarchy of objects linked into the
microkernel, libc minimal is built as a static library and
linked against the microkernel binary.
The location of the libc is configurable with the variable
KLIBC_DIR. This gives the flexibility to build against a
different libc other than minimal.

Change-Id: I9c0b6a684a9f3b407861aa387727c45eceb269c4
Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
2016-02-05 20:14:08 -05:00
Juan Manuel Cruz 638fb2c181 Kbuild: Bluetooth driver support.
This commit adds the Makefile and Kconfig files
to support the bluetooth driver in the Kbuild system.

Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
Change-Id: I1f72b13aca8fb098eece04c4f0e1b680639b520f
2016-02-05 20:14:08 -05:00
Anas Nashif 848c5c83a3 Kbuild: Support qemu pid
Change-Id: I9824d2971f4eaa8798f444432ff033548ec71e04

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:08 -05:00
Juan Manuel Cruz 52836ec3a8 Kbuild: GenIdt auto build.
This commit includes the genIdt tool as part of the kconfig
basic tools. Now the genIdt tool is built automatically as
part of the whole kernel project.

Change-Id: I45110a7c564c59d7a6684d868ccc377cbd6ef1c4
Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
2016-02-05 20:14:07 -05:00
Anas Nashif 5c8ff0fe26 Kbuild: support sources in different directory
In some cases you might want to compile sources in a
customer location, for example share code for samples
that runs in nano and micro kernels.

Set SOURCE_DIR  in the project Makefile to achieve this.

Change-Id: Iaa4d0fe701b30499b903b64ddf816a678074a176
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:07 -05:00
Anas Nashif 3a4073dc96 LDFLAGS: be compatible with legacy build system
Change-Id: I447afbe63a9a2e5210768ece5ef8ef750956e66a

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:06 -05:00
Anas Nashif 42f0970b0a remove linux firmware targets
Change-Id: I2bc4ab7220e7b6b200801e440a2490822c2481c6
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:06 -05:00
Anas Nashif de26d969f8 remove linux firmware target documentation
Change-Id: I145cdbe0ba24b95887c4eaa08b3dbad36d0db861
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:06 -05:00
Anas Nashif b7255f7fd1 remove linux firmware hooks
Change-Id: I847a0aea915b960b2ec9e993267cc9a4c64e5f4e
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:06 -05:00
Juan Manuel Cruz 068ebc0529 Kbuild: Root Makefile issue.
KBUILD_CFLAGS line was broken because a breakline was missing.

Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
Change-Id: I47a36f89d7cd589c71ce0bfb9a6d346a12202f43
2016-02-05 20:14:06 -05:00
Juan Manuel Cruz fbc5956ade Kbuild: ISA_FLAG Fix
This commit fixes the issue that ISA_FLAG was not being
added during the build process.

Change-Id: I780c8dbae8912ee8e159827cb24a5700432898d2
Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
2016-02-05 20:14:05 -05:00
Juan Manuel Cruz f8fedaa134 Kbuild: Eliminate CFLAGs that are not needed.
This commit removes several CFLAGS inherited from Linux Kconfig
that are not used in the current build system.

 - The option fno-delete-null-pointer-checks is not used.
 - O2 is not a default option and the symbol
   CONFIG_CC_OPTIMIZE_FOR_SIZE is not supported.
 - The option allow-store-data-races=0 is not used.
 - The fno-stack-protector was being added twice and is not
   a default parameter.

Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
Change-Id: I3791d995638dea50796f041e558a39d5aa7e88f6
2016-02-05 20:14:05 -05:00
Juan Manuel Cruz 4d8c725ebd Kbuild: External CFLAGS.
This commit add the following changes to the internal CFLAGS:

 - DEFAULTFLAGS is adjusted to only hold the Os option by default.
 - CONFIG_COMPILER_OPT is a Kbuild symbols that is included
   in the CFLAGS.

Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
Change-Id: Ie78fe00c8d9b05f5d0361357267f08d978006427
2016-02-05 20:14:05 -05:00
Anas Nashif 39cb1ae28c Run qemu with right kernel
We use the microkernel/nanokernel naming convention,
so run qemu with the right file.

Change-Id: I6cedf34f85693d6026c450904e1ce72c435baa06
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:05 -05:00
Juan Manuel Cruz e7de0f65b4 Kbuild: QEMU target.
This commit adds support for the qemu target.
This target will generate the kernel binary and will
launch a qemu instance running the binary.
Currently, only the x86 generic pc and the arm tilm3s6965
BSPs are supported with emulation.

Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
Change-Id: I9e71d3ce2fba98572830475a2e15e3fceb0216b4
2016-02-05 20:14:05 -05:00
Juan Manuel Cruz 1c8f5a75e7 Kbuild: Standard output file names.
This commit changes the name of the output files.
The output names tinymountain.* have been changed to
microkernel.* and nanokernel.*.

Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
Change-Id: Ia73daa35bb8e44972065af3a217bf87335169dac
2016-02-05 20:14:05 -05:00
Anas Nashif 1e8dc5ad88 no need for old_version!
Change-Id: I2fdc4281a5663e1f48fd3b45f5226a2cedf66878
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:05 -05:00
Anas Nashif 6afc4851bf empty CHECKFLAGS
Change-Id: I97787e176fda9f3e118eec4a110408789570f8b1
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:05 -05:00
Anas Nashif 67fc206887 Remove ia64 references
Change-Id: I9ae4e32f8f85aa261943acb0c00c7bd0c4d3217a
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:05 -05:00
Juan Manuel Cruz 7ac851afef Kbuild. Remove linux name references.
This commit substitutes references to the linux string in variable
names.

It changes the LINUX prefix and uses the TIMO prefix (short for
tiny mountain)

It changes the vmlinux prefix for tinymountain prefix.

It preserves linux references found in licenses, comments giving
credits and from scripts that are not supported by the current build
system yet, like rpm generation.

Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
Change-Id: Id17d8d12161f00e2a2ff38f218cdb6c5afd169c0
2016-02-05 20:14:05 -05:00
Juan Manuel Cruz 0d01f5bedc Adding Kbuild linking process.
This commit is adding the linking process.
  -Creates linker command files.
  -Creates IDT tables.
  -Creates final ELF file.

Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
Change-Id: I3ce92868b00957fdc24a361cc419e3548f475cc3
2016-02-05 20:14:05 -05:00
Juan Manuel Cruz a0b5466540 Adding Kbuild CFLAGS.
This commit adds all Kbuild CFLAGS to build the kernel binary.

Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
Change-Id: Ia4ca1b71b4e68c4515c428147a8814ca983bb541
2016-02-05 20:14:05 -05:00
Juan Manuel Cruz ce3533a476 Kbuild fix for clean and mrproper targets.
This commit fixes the target clean functionality.
Originally, the clean and mrproper targets search for the
Documentation and samples directories and their respective
Makefiles.

Our current directory structure is not including Documentation
directory yet. Also, there is not support for a global Makefiles
at samples directory.

This commit deletes references to Documentation directories for
clean and mrproper targets as well.

Also, This commit deletes the reference to sample directory for
clean target.

Finally, this commit temporary fixes the references to assembly
files .s extensions. This has been marked as a BUG until all .s
files can be renamed to .S files.

Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
Change-Id: I4c95c2eed4b5756843ecb9021d03401289522586
2016-02-05 20:14:05 -05:00
Juan Manuel Cruz ba741fedd7 Root Makefile adaptation.
This commit organizes the different directories listed in the
root Makefile. Each directory hold a root Makefile describing
libraries and object bundles that will be linked together as
the kernel binary.

Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
Change-Id: I4af16114598ad985dfb4faac68e82dc73b1b6cc5
2016-02-05 20:14:05 -05:00
Juan Manuel Cruz 6de34008ab Creation of version.h header file.
This commit adapts the root Makefile to generate the version.h
header with the format expected by embedded os.

Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
Change-Id: Ib394ad6b3fab4f02f6953d83d04f13404df87832
2016-02-05 20:14:05 -05:00
Juan Manuel Cruz a9b1c74ee3 Adding Kbuild root Makefile.
Adding the root Makefile from linux 3.19-rc7 Kbuild as is.

This Makefile will be modified and adapted to the current build
system in following commits.

This is done with the intention to help the revision of changes
that were done to the original Kbuild Makefile.

Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
Change-Id: Ib897553d4d073dc3e3dab702b87b92a6f82cd804
2016-02-05 20:14:04 -05:00