Commit graph

330 commits

Author SHA1 Message Date
Andrew Boie e79c960dd8 HACK: qemu: change e_machine for IAMCU binaries
For some strange reason IAMCU sets e_machine to 0x06 which causes
QEMU to freak out. This is just x86 code with a different C
calling convention, hack it back to 0x03 (EM_386) before running
under the emulator.

Change-Id: Ia5d51b771cad41f3013eb3d6a17912c8909c9bac
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2016-03-12 02:24:46 +00:00
Anas Nashif 11e268de9a Zephyr 1.1.0
Change-Id: Ib29996cadfaeb977c16a30ae828732f316791e1f
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-03-05 06:57:40 -05:00
Anas Nashif 8569839666 Zephyr 1.1.0-rc1
Change-Id: Iafe6fbee5a3ba603963fb7bcbf2b28f1875b1242
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-03-02 12:56:17 +00:00
Anas Nashif a77c7d819a improve 'make help' and remove config targets
- Put kconfig targets in a new target 'kconfig-help' instead of showing
  it by default.
- Show how the the different boards can be used with make BOARD=<board>

Change-Id: I481d4acaf72b1f05925c6f56e510329681da8e11
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-17 13:42:08 +00:00
Benjamin Walsh 76c76a1977 kbuild: support arbitrary dir for Makefile.app
The location of Makefile.app can now be specified via MAKEFILE_APP_DIR
instead of implicitly being searched for in the project directory.

Change-Id: Ib86bf25e210d9c3749c5811b6e36376f59e3cd32
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
2016-02-11 14:20:03 +00:00
Anas Nashif 027b69e0d5 Zephyr v1.0.0
Change-Id: I977bd0705a901440221010b577beec784f16a566
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-08 21:32:24 -05:00
Anas Nashif 492d67a95d Zephyr v0.9.0
Change-Id: I1b734c929a0d16d5cc1949b22731d0730141d065
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:33 -05:00
Anas Nashif fe9eae95e8 link in external application library
When building an application and external build process of an
application specific library can be started by the application which
generates a .a file that will be linked at the final stage with the
Zephyr kernel.

Change-Id: I06fa1a10605ab032801ead8f5ee8d0c85c0bea5c
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:31 -05:00
Anas Nashif 20fe678782 link binary with extra options provided by app
A custom linker script might have references to files and defines
provided directly by the application, the EXTRA_LINKER_CMD_OPT
variable can be exported by the application with the needed
includes to satisfy the linking process.

Change-Id: Ic0b3dffa9a6c31fe8ef28f4f45c30266e7327e06
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:31 -05:00
Anas Nashif 105d8c68a2 Zephyr 0.9.0-rc2
Change-Id: Ie9a039141841ee62a596117aa857c63c1a00e323
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:30 -05:00
Anas Nashif 872676c735 build: fix parallel builds of applications
When building with more than 1 job, we were getting:

make[1]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.

Trying to fix this in the Makefile resulted in dependency issues and unsatisfied
dependencies in the compilation and build chain.

Change-Id: Ic73d089cf6a0a0d7b6fd83908b8144c34af25582
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:30 -05:00
Anas Nashif 78e1b0efe1 print message when flashing/debugging not supported
Change-Id: I5ba5e08d534a4e94999fa192a3e5addc039df1ed
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:30 -05:00
Anas Nashif a49762ccce add debug/debugserver support
Change-Id: I114994cb092870cd57b8e43b197d56ab8ca7db20
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:30 -05:00
Anas Nashif c0c155618e build: set GDB to the right GDB binary from the SDK
Change-Id: I6d0bb5f74600b89aabfb7cf1f21351e64a9b45a7
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:30 -05:00
Anas Nashif 3cf1d29d34 disable try-run on windows
Do not try to check for compiler options during build. This fails
miserably on windows.

Change-Id: I8c84f197ca78897755f67e35fd3a75c30c1d3b7c
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:30 -05:00
Anas Nashif 7d348b0e71 expand 'make help'
Add information about additional make targets

Change-Id: I82a0df2ab2814e72a52304dfd88c04c0feee70ad
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:30 -05:00
Anas Nashif b8ef593878 Zephyr 0.9.0-rc1
Change-Id: Id3a66d89627808d2189c9cd7d93e836d2435809f
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:29 -05:00
Anas Nashif 51be9a50a4 Add flash support for boards using latest SDK
Using the latest SDK (0.7.2) you can flash directly using make
by specifying the board, for example

make BOARD=arduino_101 flash

This will build and flash the generated binary to the board.

Change-Id: I90254abd69874efbb449ef318079958980c23074
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:29 -05:00
Andrew Boie 2ee9aca31a irq: size _irq_to_interrupt_vector_table
Most systems have far less than 256 IRQ lines available, so
save some bytes in ROM by making this a config option.

On systems with MVIC, omit the table entirely as the mapping
is fixed.

The build cmd_gen_idt is slightly easier to read and will fail
immediately if any of the commands in the sequence error out.

Change-Id: I411f114557591e5cd96b618e6f79f97e8bedadf0
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2016-02-05 20:25:25 -05:00
Andrew Boie 630280c464 build: fix issue with static interrupts on ARC/ARM
Static interrupts rely on a trick where the _sw_isr_table array
is declared with each element in a different .gnu.linkonce
section, initially pointing to the spurious IRQ handler.

When drivers or apps declare their own interrupts, they override
the element with their own containing the real ISR and parameter.

However, this only works if the initial declaration of the
_sw_isr_table array with the spurious handlers is linked last.
App-specific code was being linked later than the core code,
causing static interrupts declared in apps not to be installed
correctly.

If the _sw_isr_table is moved from SOC-specific code to core arch
code, interrupts configured under soc/ should still also work.

Change-Id: Iec7df47386dfbbf2956a807da27dc8aa6e01b268
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2016-02-05 20:25:25 -05:00
Peter Mitsis 8e35cc8eb4 build: Add C++ support
Adds C++ support to the build system.

Change-Id: Ice1e57a13598e7a48b0bf3298fc318f4ce012ee6
Signed-off-by: Dmitriy Korovkin <dmitriy.korovkin@windriver.com>
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
2016-02-05 20:25:23 -05:00
Anas Nashif 23be7fd1cd build: rebuild binary if dependencies have changed
We had an issue of final binary not being built when sources
are changed. This adds the required dependencies.

Change-Id: I1676fc63e6857ef604576905a5ae1ee02b0b648a
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:23 -05:00
Andre Guedes eda4d59404 kbuild: Remove check from non-existing options
This patch removes the checks related to CONFIG_CC_STACKPROTECTOR_
REGULAR and CONFIG_CC_STACKPROTECTOR_STRONG options since these
options don't exist in Zephyr. According to 186ab6552, they were
copied from Linux but further clean up was missing.

Change-Id: I1d8b4f47319a54b68b6f0b5aec1feb0a247e72e9
Signed-off-by: Andre Guedes <andre.guedes@intel.com>
2016-02-05 20:25:22 -05:00
Anas Nashif fe039db04a override architecture from command line
When ARCH is specificed on the command line the parsing process
is messed up and non-x86 platforms fail.

Change-Id: If63f243bce3cd305ce291de83bbd90c15b4c861e
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:21 -05:00
Anas Nashif 9be80e3ed6 kbuild: remove linux modules related code
Change-Id: Iddcb74355dc1d6ba0b64a4658bebd4fbb28a6838
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:17 -05:00
Louise Mendoza 947fb40ef3 Removing directory link to the source tree.
Removes the symbolic link to the source tree directory that is created
inside the outdir directory.
This link is not being used and is created as a complete copy of the
source tree on windows.

Change-Id: Icd430f3423175151589c15559d57b5ecfc0a0853
Signed-off-by: Louise Mendoza <yonattan.a.louise.mendoza@intel.com>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:17 -05:00
Louise Mendoza 0c3f05bcd7 mingw: Use built-in pwd with -W option for mingw builds
The pwd for mingw has a different output to the pwd shell's built-in pwd.
This change uses the built-in pwd for keep compatibilty with the path
in mingw.

Change-Id: I43d605157e19f661480e68ecbbd024c5f077e461
Signed-off-by: Louise Mendoza <yonattan.a.louise.mendoza@intel.com>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:16 -05:00
Ido Yariv a8c48ea7b7 Workaround QEMU's multiboot loading issue
When QEMU loads a multiboot image based on the ELF headers, it
calculates the total memory size subtracting the minimum address from
the maximum address in the program header.

While the IDT section is removed from the ELF, an empty segment in the
program header is still kept at IDT_LIST base address. Since the IDT
segment isn't contiguous with the loadable code segment, QEMU is tricked
into thinking the total memory size is larger than it really is.

To workaround this, change the address of the IDT section to the address
of the text section. This will make objcopy remove the extra segment
entirely when the IDT section is removed.

This could have been fixed in QEMU since this isn't a bug in Zephyr
per-se, but it will be easier to avoid specific QEMU versions
requirements.

Change-Id: I062b7d0fb8fccfe4d0d0b4cb0afc4667bbb7f7dd
Signed-off-by: Ido Yariv <idox.yariv@intel.com>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Signed-off-by: Ido Yariv <ido@wizery.com>
2016-02-05 20:25:16 -05:00
Anas Nashif 06e78de681 build: do not use link-zephyr
Use makefile targets to build and link final binary. This removes
dependency on a shell script which is not portable and imporves
dependency tracking when building.

Change-Id: Ib75f162cdb1dde35ccaf980658bfe70daaf581b6
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:15 -05:00
Anas Nashif 204b66d150 build: reused declared LDFLAGS
Change-Id: Ia421fc3e796a889f3083b00ddcb058ccefb35291
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:15 -05:00
Anas Nashif ace0e227c7 remove unused variables and defines
Many variables being declared in the Makefiles are Linux specific
and never used by Zephyr.
This is an attempt to cleanup the Makefiles and just keep the code
we use.

Change-Id: Ib97d3d7e3a55077d6f9ec2b4170b3763424a1c99
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:15 -05:00
Anas Nashif cc2801c08d remove stray core-y redifinition
Adding emptiness into core-y does not add any value.

Change-Id: I695f9a8682eb35bcdb80eff9716338f88d84ab09
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:15 -05:00
Anas Nashif ce5dc6a3b7 build: remove unused init-y handling
This is not used in Zephyr

Change-Id: I27507fc72686d2a54d4565cd36414bd7ffbd0399
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:15 -05:00
Anas Nashif 3bdae61cac build: remove unused linux related code
- Modules are not a feature of the Zephyr kernel.
- genksyms removed, not used by zephyr
- bin2c remove, not used in zephyr

Change-Id: Ic8f0e786530dcf410b07d6c5cc47f1087000d528
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:15 -05:00
Anas Nashif 3315b1f89b KLIBC_DIR and LDLIBS_TOOLCHAIN are obsolete
This variables are not being used in the code any more.

Change-Id: I3d4b513ed61d98020f27e5968835090946fe0c8b
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:15 -05:00
Andre Guedes 635351bcdd drivers: Add infrastructure for QMSI drivers
This patch introduces the infrastructure required to enable QMSI drivers.
QMSI drivers are shim drivers based on drivers provided by QMSI BSP. The
BSP provides a static library (libqmsi) which implements several drivers
for peripherals from Intel MCUs.

Next patch will introduce the first QMSI driver (watchdog driver) which
will rely on the infrastructure introduced by this patch.

Change-Id: Ic7da5d0249af0629eef8c91d124a153f84d4a76e
Signed-off-by: Andre Guedes <andre.guedes@intel.com>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:15 -05:00
Andre Guedes 1622e4f4b5 kbuild: Move CONFIG_STACK_CANARIES check
This patch moves the CONFIG_STACK_CANARIES check from architecture's
Makefile to the root Makefile since this option is kernel-related,
not architecture-related. This way we avoid replicating the same
CONFIG_STACK_CANARIES check in several Makefiles.

This patch also removes some blank lines from the Makefiles it touches.

Change-Id: I458f92fa6799526c608369d1e56579936bcb196e
Signed-off-by: Andre Guedes <andre.guedes@intel.com>
2016-02-05 20:25:15 -05:00
Anas Nashif e7e125a7b9 Zephyr 0.8.0
Bump version to 0.8.0

Change-Id: Ia9390bb659fcad640300e262b8a354fcd9edd88c
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:14 -05:00
Anas Nashif 6c5509f34f linker: prefer board specific linker file
First look for a custom linker file defined by a config variable, if
not defined, look in the board directory. Finally look in the SoC
directory.

This adds flexibility and enhances modularity allowing a board to define
the linker the script instead of the SoC specific one.

Change-Id: Id44aa7d0e93d97234163ec858e2cfefe09768a08
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:13 -05:00
Anas Nashif 16266f5cd5 Zephyr 0.8.0-rc2
Change-Id: I79f294623ca9bae1a5f9f88492ecbc5da9907cbb
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:13 -05:00
Anas Nashif 799c590f88 Zephyr 0.8.0-rc1
Set new version for 0.8.0-rc1.

Change-Id: I1172bc013571acee4c95e2537fbb962804d8c64f
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:12 -05:00
Anas Nashif 10bb38c186 Use SoC instead of platform.
Change terminology and use SoC instead of platform. An SoC provides
features and default configurations available with an SoC. A board
implements the SoC and adds more features and IP block specific to the
board to extend the SoC functionality such as sensors and debugging
features.

Change-Id: I15e8d78a6d4ecd5cfb3bc25ced9ba77e5ea1122f
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:11 -05:00
Anas Nashif 1cfc5b3f6f Move defconfig files to the board directory
This commit also renames boards and makes naming consistent between
board name and defconfig files.

quark_d2000_reference -> quark_d2000_crb
quark_se_test_sss -> quark_se_sss_ctb
quark_se_test -> quark_se_ctb

Change-Id: Ibe6a5102edb987fe1d6ce32c8c392a87d45d6951
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:11 -05:00
Anas Nashif 013e6167a8 build: switch to board based configurations
Define boards based on platforms/SoCs and define them under boards/.
Also unify the naming of all platform, SoC and board files and use
platform.h for platforms and board.h for boards.

Change-Id: Icfeb96479ab5800aca98c80a79bdc3cecd645314
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:11 -05:00
Anas Nashif 220c54818c globally include headers for boards and platforms
Change-Id: I1f259cccc73dfb3d35019d6ebf3d3bdc6aec2b23
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:11 -05:00
Anas Nashif 2d762243fd kconfig: add BOARD Kconfig variable for defining boards
This variable (CONFIG_BOARD) will store the textual form of the
platform name and will be used for locating files related to the
board in the source tree.

Change-Id: I3c8a05ed428451a6785799a5492f0dd14682f208
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:10 -05:00
Anas Nashif f6f81868f8 build: Remove PROJECTINCLUDE from application makefiles
PROJECTINCLUDE is not required in app makefiles.

Change-Id: I3751b7c51c453dfe47d207bb11d171138668c4e7
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:04 -05:00
Anas Nashif 3a87dae54d sanitize use of ARCH/SRCARCH
We now only use ARCH and avoid duplication of the same definition.

Change-Id: Ia61059b906a2ebc31e703412bead948997975d58
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:04 -05:00
Anas Nashif 801874d71f build: remove more unused linux code
Change-Id: Iac7472e6cdf002c850947375db7072f9a0d29e58
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:04 -05:00
Anas Nashif 9fe306bc2a Generate stack usage information only when enabled
This will only generate the .su files when CONFIG_STACK_USAGE
is specified, otherwise the tree will be full of .su files.

Change-Id: I3ffc7a7f5ab09aaae49ff65e8ad5de0832370777
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:25:04 -05:00
Anas Nashif 7283fe0dd3 Zephyr 0.7.0
Changed version to 0.7.0

Change-Id: Iaa629e415492c37bb32e45ff8bfc0164210afbf6
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:24:58 -05:00
Anas Nashif 678ebbcd24 Zephyr v0.7.0-rc3
Change-Id: Ib565982ca76f9e6dc160b933a0240da1a9ba889b
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:24:57 -05:00
Anas Nashif 3b2f85ba5e Zephyr v0.7.0-rc2
Change-Id: I2e5f11642094f15dc2fef810d6f4e5314b1c3e72
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:24:57 -05:00
Anas Nashif 5a495d5626 build: export SoC and architecture names
For usage in Makefiles.

Change-Id: I10dc3810ae3170cf667b60e84809f476c7d6f9dd
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:24:55 -05:00
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