Commit graph

58 commits

Author SHA1 Message Date
Adrian Danis
9d356b1ac7 Remove .arch directive from intermediate build file
Due to limitations in certain compilers in reported architecture
support the kernel needs to be compiled (to assembler) with one
architecture and assembled with another architecture.
Unfortunately when generating the kernel_final.s file the
architecture passed for compilation gets inserted as a '.arch'
directive. This directive overrides the architecture later
passed to the assembler.

This commit is an ugly work around that just strips out any
.arch directives from the assembler file
2016-07-26 10:39:23 +10:00
Adrian Danis
abaf3dfcfb Merge pull request #245 in SEL4/sel4 from ~CRICHARDSON/sel4:configurable-python to master
* commit '9f9bbc5b89fac99c0d5e132ad5ca3dcfa494e4dc':
  SELFOUR-418: Allow overriding python executable used with PYTHON env var
2016-07-22 04:35:24 +00:00
Hesham Almatary
d97603bd84 SELFOUR-566: Decouble seL4_DebugNameThread from CONFIG_PRINTING 2016-07-15 12:30:17 +10:00
Adrian Danis
4d43172292 Makefile: Prevent macro redefinition warning
These defines were added to the Makefile so that standalone debug builds
would have printing/debug support. However, in the case of a non standalone
kernel build these are redefinitions, which is fine except for
CONFIG_USER_STACK_TRACE_LENGTH, which is possibly getting defined as
something different reuslting in a compilation warning.

This commit moves these definitions to open occur if a standalone
build is actually happening.
2016-07-07 16:27:58 +10:00
Adrian Danis
082882449f Merge branch 'master' of https://github.com/zhicheng/seL4 into master 2016-07-05 09:28:06 +10:00
Adrian Danis
7a2ede80f8 Merge pull request #272 in SEL4/sel4 from ~JALIM/sel4:master to master
* commit 'fa63ab738fe5cf00865807f0cb1dd1fc74b32863':
  Add -nostdinc to CPPFLAGS
2016-06-29 06:37:25 +00:00
Adrian Danis
3afa45a83a Makefile: Remove linker.lds_pp on clean
When changing platforms if this file is not removed make is unable
to realize that it should be rebuilt.
2016-06-27 09:41:45 +10:00
Japheth Lim
fa63ab738f Add -nostdinc to CPPFLAGS
CFLAGS already contains -nostdinc but this was forgotten for CPPFLAGS.
2016-06-24 16:22:56 +10:00
Anna Lyons
cffe5a5ce7 SELFOUR-511: remove -Wdeclaration-after-statement
And change a line of code for verification to
test if it works.
2016-06-20 10:45:50 +10:00
Adrian Danis
13709e5ac1 Makefile: Add scripts as dependencies of targets that use them
To ensure rebuilds happen correctly when scripts that generate code
change these scripts should be dependencies of any rule that uses them.
2016-06-17 14:24:33 +10:00
Corey Richardson
9f9bbc5b89
SELFOUR-418: Allow overriding python executable used with PYTHON env var 2016-06-10 16:08:26 +10:00
Zhicheng Wei
47e8700ef6 add CONFIG_PRINTING to DEBUG build
fix typo: src/plat/pc99/machine/acpi.c, ACIP should be ACPI
2016-06-03 14:06:30 +08:00
Amirreza Zarrabi
a1f7a824a5 Merge pull request #218 in SEL4/sel4 from ~AZARRABI/sel4:aarch32_armv8 to master
* commit '128768edac8e1ee22a63a7de4083147dea978af7':
  Add support for armV8 and Hikey 32bit
2016-06-01 05:07:00 +00:00
amrzar
128768edac Add support for armV8 and Hikey 32bit 2016-06-01 14:15:29 +10:00
Zhicheng Wei
ff723626e9 fix Makefile delete source from incase-sensitive filesystem
fix CONFIG_DEBUG_BUILD not defined when DEBUG=y

Signed-off-by: Zhicheng Wei zhicheng@opensourceforge.net
2016-05-30 11:37:04 +08:00
Adrian Danis
541289a326 Further separate 'release' and 'verification' builds
Originally building the kernel was largely considered to be done in
one of two ways
1. Release build with no assertions, no debug symbols and no printing.
   This was generally considered to be a 'verified' build
2. Debug build with assertions, debug symbols and printing

Since then various options were added, such as the 'code injection'
option, which we wanted on builds that did not have assertions or
other options that affected performance. As such it did not depend
upon a debug build and had large warning signs saying that enabling
this in a release build would not give you a verified or trusted
kernel.

Most recently the ability to print from the kernel in release mode
was added. For the same reason that tying the ability to print with
the performance reduction of various debugging was not always desireable.

This change attempts to unify the current state and have a single top
level option to enable a 'verification friendly' build. All other
options (assertions, printing, code injection) then depend upon
this configuration not being set.
2016-05-17 10:51:55 +10:00
Yanyan Shen
b9410822c1 arm/tk1: add support for Nvidia Tegra K1 board 2016-03-22 16:23:37 +11:00
Adrian Danis
bc457614f5 x86: Explicitly disable sse
Previously the external build system was relied upon for disablingdisabling sse.
This is not desirable as it has the affect of disabling sse for the entire user
level build. Instead, since we only want to disable it for the kernel, we will
disable it here in the kernel Makefile
2016-02-29 20:51:43 +11:00
Yanyan Shen
81fe0a7fa6 arm/imx7: add support for iMX7-based Sabre board 2016-02-25 15:07:53 +11:00
amrzar
86942825bb Rearranging sources for aarch32 to 32/* 2016-02-01 15:43:50 +11:00
amrzar
1a1110a094 Modify Kconfig and Makefile for aach32 as sel4_arch
libsel4: updates to include aarch32 as sel4_arch
2016-01-19 15:37:52 +11:00
Adrian Danis
c7410d2357 Make standalone kernel builds backwards compatible on ARM for the addition of SEL4_ARCH 2016-01-08 10:35:07 +11:00
Adrian Danis
44a522dce2 libsel4: Generate libsel4 definitions from the current ARCH as well as the SEL4_ARCH 2016-01-08 10:16:30 +11:00
Anna Lyons
7758899844 SELFOUR-244: symlink duplicated files from libsel4 into kernel rather than duplicating them, remove sanity target as a result 2016-01-05 08:33:39 +11:00
Adrian Danis
8e15c42921 x86: Port some of the IOMMU changes on the experimental branch
This changes the IOMMU from using passthrough devices and instead
directly mapping in the reserved regions that are needed for each
device.
2015-12-18 15:06:39 +11:00
Adrian Danis
1c9d595439 x86: Add a 'mode' include directory to ia32 builds
This include directory will be used to split 32 and 64bit headers,
allowing common x86 code to '#include <mode/blah.h>'
2015-12-14 12:48:12 +11:00
Adrian Danis
de9a8be7fd Rearrange makefile so that exports can be set for different architectures before the sub Makefiles are included and processed 2015-12-14 11:07:29 +11:00
Adrian Danis
1bb2e6024b Generalize 32-bit builds 2015-12-10 17:28:07 +11:00
Anna Lyons
9f19b8668a Add a sanity check to make sure constants shared between kernel and user are the same 2015-12-02 15:37:42 +11:00
Adrian Danis
d89678f271 x86: Use generic X86 switches where possible
Add ARCH_X86 define when performing standalone kernel builds and
use ARCH_X86 in place of ARCH_IA32 in places that are not actually
ia32 specific
2015-12-02 11:45:45 +11:00
Matthew Fernandez
458a06a905 Makefile: Echo all file removal.
Prior to this commit only the removal of some files was echoed during
`make clean`. This can be quite confusing, especially when some of the hidden
removed files have the same names as the echoed ones (e.g. syscall.h). This
commit now hides nothing during removal
2015-11-13 12:16:46 +11:00
Anna Lyons
54603123e6 SELFOUR-317: rename async endpoint to notification object, and other
fallout.
2015-11-09 17:18:43 +11:00
Adrian Danis
5d64d156f4 Correct Makefile from commit f6ae69f0f0
The Makefile proior to f6ae69f0f0 was
incorrectly commented. This commit fixes the commenting the resulting
incorrect comment
2015-11-09 15:02:26 +11:00
Adrian Danis
f6ae69f0f0 Use autoconf generated header for standalone kernel builds
Configuring standalone kernel builds (such as those used by verification)
has been done in a completely different way to how the kernel is
configured for project builds. As the kernel gains additional options
it becomes difficult to maintain standalone kernel builds without
tediously exporting these additional options, such tedious work is
what autoconf.h is meant to address

The new configuration strategy requires a include/plat/PLAT/autoconf.h
file to exist for any platform that wants to hae standalone builds
performed on it. This configuration also becomes the *verified*
configuration, and makes it clear for projects to build the kernel
in the verified configuration.
2015-11-09 14:41:18 +11:00
Anna Lyons
f0117db55e add PLAT constants for standalone kernel build to fix arm standalone builds 2015-10-14 14:15:15 +11:00
Anna Lyons
cf74a860e4 add missing -Wl 2015-10-13 17:37:00 +11:00
Anna Lyons
9e41b2c351 Update LDFLAGS for ia32 such that the kernel builds with the latest ld 2015-10-13 17:34:21 +11:00
Adrian Danis
42bdacb26a ia32: Add ARCH_IA32 define when performing standalone kernel builds 2015-08-25 12:10:13 +10:00
Adrian Danis
aec0466e92 Add a define for ARCH_ARM when building standalone 2015-08-21 08:34:08 +10:00
Anna Lyons
ec78890001 xIntroduce RELEASE_PRINTF, which allows a renamed printf (release_printf) to be used in a release build of the kernel - userful for debugging tests that only fail on a release build of the kernel 2015-08-03 10:26:41 +10:00
Adrian Danis
839c442813 x86: Correct build flags when building kernel standalone 2015-06-01 13:52:54 +10:00
Adrian Danis
914741ea33 x86: Make x86 the name of the architecture instead of IA32
IA32 is 32bit version of the x86 architecture. Whilst only IA32
is supported, much of the code is generic x86. Using a generic
x86 architecture will aid in future 64bit support
2015-05-28 15:15:23 +10:00
Joel Beeren
4ccf65ef74 Forced bitfield proofs to use preprocessed bf files 2015-05-27 13:05:27 +10:00
Gerwin Klein
1a568e764a remove generated adglobs type
It's become obsolete after correspongin Isabelle C parser change.
2015-05-09 06:46:31 +10:00
Adrian Danis
a5e442a70e Merge branch master into pae 2015-02-17 10:37:33 +11:00
Robbie VanVossen
f28eb2c586 Added support for the Allwinner A20 platform (specifically the CubieTruck board) 2015-02-13 10:24:42 -05:00
Robbie VanVossen
a13f8053ac Fixed the ifeq that checks the cpu and defines it for the code by adding cortex-a15 check. 2015-02-13 10:22:44 -05:00
Adrian Danis
af0f3b361f ia32: Large commit that implements PAE paging for x86
This commit involves the PAE paging itself, refactoring the
vspace code to extra what is common between PAE and 32bit paging,
as well as some renaming to not call the root paging structure
a PD
2015-01-28 12:11:51 +11:00
akroh
d46a234a3f Add support for Zynq-7000 2014-12-18 12:29:25 +11:00
Matthew Fernandez
1ee573f9a1 Makefile: Add a V=3 verbosity setting.
Prior to this commit there was an unfortunate disagreement between the seL4
project build system and the kernel's Makefile. V=3 was interpreted as maximum
verbosity by the project build system and minimum verbosity by the kernel's
Makefile. This commit makes V=3 the maximum verbosity for both.

JIRA: VER-159
2014-10-03 16:05:18 +10:00