Commit graph

41 commits

Author SHA1 Message Date
Anna Lyons
9ae867cbf2 SELFOUR-435: change kernel timer from GPT11 to 9
GPT1-9 are configured by uboot to run at 13Mhz,
while GPT10-11 are not and run with a much slower clock.
2016-03-17 09:54:40 +11:00
Adrian Danis
602f536940 x86: Change some PHYS_CODE to BOOT_CODE
The functions pit_init and pit_wait_wraparound were previously marked as
PHYS_CODE, despite being called from BOOT_CODE elsewhere. This bug has
been present for some time but can be masked by the compiler inlining
all the involved functions, which is what typically happens.
2016-03-02 11:11:48 +11:00
Yanyan Shen
81fe0a7fa6 arm/imx7: add support for iMX7-based Sabre board 2016-02-25 15:07:53 +11:00
Adrian Danis
1ca0fa1fc2 imx6: Update autconf.h for standalone kernel compile 2016-02-12 14:08:08 +11:00
Robert Kaiser
c0bc7d8fc1 Added changes for Wandboard 2016-02-12 11:54:36 +11:00
Adrian Danis
3c9f304a40 x86: Update autoconf.h for standalone kernel builds 2016-02-04 15:00:49 +11:00
Adrian Danis
bddd804a6e x86: IOAPIC/MSI syscalls
Restructure the x86 interrupt handling to allow for a more flexible
method of using IOAPIC and MSI interrupts. The essence of this change
is to allow for the user to pick, for both IOAPIC and MSIs, which
CPU vector to use. Additionally there is future support, in the API,
for seL4 to eventually protect MSI interrupts with the vt-d interrupt
routing tables.

API behaviour for legacy systems using the PIC is preserved

Part of SELFOUR-281
2016-02-02 15:58:18 +11:00
Adrian Danis
933bd8b00a x86: add kpptr_to_paddr
This commit introduces the idea of a 'kpptr', which is simply an
address that is a kernel symbol. This allows for, in the future, to
have two different translations (between pointers and physical addresses)
one for kernel symbols, and one for other memory
2016-01-12 10:04:31 +11:00
Adrian Danis
f4cb2f6e9f Merge pull request #33 in SEL4/sel4 from ~MFERNANDEZ/sel4:737990ae-9ee8-4acd-8720-26da70a7602d to master
* commit '878874fb2115da90eca754050ec01ba018a2fc07':
  x86: Use PHYS_CODE abstraction instead of explicit section names.
2016-01-11 03:29:04 +00: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
Matthew Fernandez
878874fb21 x86: Use PHYS_CODE abstraction instead of explicit section names. 2015-12-18 13:58:42 +11:00
Adrian Danis
646638efee x86: Do not conditionally compile IOMMU code, use build/run time checks
Guarding code with #ifdef's makes even cursor testing of 'does this code compile'
difficult due to code being hidden by the pre-processor. Using config_set in
regular C if statements is performant as the compiler can trivially detect
dead code at compile time, and at -O1 and above will not even link in symbols
referenced by dead code in these blocks, so this will not bloat image size
2015-12-17 14:37:08 +11:00
Adrian Danis
5d42d0143e x86: Do not conditionally compile IRQ controller code, use build/run time checks
Guarding code with #ifdef's makes even cursor testing of 'does this code compile'
difficult due to code being hidden by the pre-processor. Using config_set in
regular C if statements is performant as the compiler can trivially detect
dead code at compile time, and at -O1 and above will not even link in symbols
referenced by dead code in these blocks, so this will not bloat image size
2015-12-17 14:37:08 +11:00
Adrian Danis
71a45e6b44 x86: Strip multi kernel support from the x86 kernel. This is not used and is conflicting with planned future features 2015-12-17 11:56:47 +11:00
Adrian Danis
d9ff68e40a Merge pull request #14 in SEL4/sel4 from ~ADANIS/sel4:x86_common to master
* commit 'fc27f47f0cbaa72734f820160db768cbaac3a898':
  x86: Move general x86 functions to common header
  x86: Rename constants and functions to have X86 prefix instead of IA32 prefix
  x86: Make parts of what have become 32-bit specific headers common
2015-12-16 23:50:31 +00:00
Adrian Danis
1b34ed08c8 x86: Define a KERNEL_BASE_OFFSET for translating the kernel image region
This definition is different to BASE_OFFSET in that it is only meant to
apply to the kernel image portion of the kernel window, and doesn't
assume that the entire window can be translated by a single offset
2015-12-15 17:16:43 +11:00
Adrian Danis
ef85f94a99 x86: Rename constants and functions to have X86 prefix instead of IA32 prefix 2015-12-15 17:08:28 +11:00
Adrian Danis
6729ce7823 x86: Make parts of what have become 32-bit specific headers common
The reason these were not made common to begin with is so that there
was a commit that was just a rename of these files to make any merges
with other branches that might exist easier
2015-12-15 17:08:28 +11:00
Adrian Danis
022287c38b x86: Minimal changes to fix previous commit that renamed headers 2015-12-14 12:55:46 +11:00
Adrian Danis
c597c72fdf Move files that contain 32-bit specific code into specific 'mode'
directories

This commit is 'broken' as it leaves the repository in an unbuildable state.
The purpose of having this commit is so that there is a commit where the
modifications to these files is *just* a rename, making it easier to merge
these changes into other branches.
2015-12-14 12:48:12 +11:00
Adrian Danis
171824f7b7 Change additional int->word_t due to interraction with the C parser to ease verification 2015-12-10 10:45:22 +11:00
Adrian Danis
2d61910e0f Rename uint32_t -> word_t in any relevant places 2015-12-10 10:45:20 +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
Stephen Sherratt
e82953a194 Removed CONFIG_BENCHMARK config option. All checks for '#ifdef CONFIG_BENCHMARK' replaced with '#if CONFIG_MAX_NUM_TRACE_POINTS > 0'. 2015-09-03 11:39:31 +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
f7a902198e ia32: Explicitly pack ACPI structs
Use explicit struct packing instead of using compiler asserts
to check that packing happened as expected
2015-05-28 12:09:13 +10:00
Adrian Danis
ca1191c7dc ia32: Use explicitly sized types for ACPI tables
The ACPI standard says these fields are 32bits, not the size
of a machine word or pointer
2015-05-28 12:09:12 +10:00
Adrian Danis
fc1e413e5b ia32: Move many assembly operations from .S file into inline assembly 2015-05-13 17:00:26 +10:00
Tim Newsham
7bd0da5533 am335x: setup clock and enable dmtimer3 2015-05-04 11:46:06 +10:00
Adrian Danis
a5e442a70e Merge branch master into pae 2015-02-17 10:37:33 +11:00
Tim Newsham
80308386e7 - fix am335x interrupt handling and disable watchdog 2015-02-17 10:15:12 +11:00
Adrian Danis
01ba49802c trivial: style 2015-02-16 10:20:06 +11:00
Robbie VanVossen
f28eb2c586 Added support for the Allwinner A20 platform (specifically the CubieTruck board) 2015-02-13 10:24:42 -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
d796aa0a22 zynq: Increase kernel window size (start at 0xe0000000) now that the elfloader does not attempt to access the serial port at 0xe0001000 after PD switch 2015-01-07 16:58:33 +11:00
akroh
bcdb09d93b Merge exynos debug serial drivers 2015-01-06 17:49:07 +11:00
akroh
98ac528fc7 Zynq7000: split coresite and trustzone device memory blocks 2014-12-18 13:59:23 +11:00
akroh
d46a234a3f Add support for Zynq-7000 2014-12-18 12:29:25 +11:00
Peter Chubb
54b5cb6920 Add support for Odroid XU3
The XU3 uses a 5422 which for seL4's purposes is almost the same as
the Odroid XU's 5410.  Define a new PLAT_EXYNOS54XX to cover both.

Keep PLAT_EXYNOS5410 and ...5422 for the few places (not in the
kernel) where the difference matters.
2014-10-16 09:41:46 +11:00
Adrian Danis
c0e9c63804 Support IOAPIC on ia32 and modify interrupt handling to support user level setting of modes 2014-09-02 16:22:40 +10:00
TrusthworthySystems
91b7da8625 Release snapshot 2014-07-18 05:03:59 +10:00