Commit graph

176 commits

Author SHA1 Message Date
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