#
0707ae87 |
|
23-Feb-2017 |
amrzar <azarrabi@nicta.com.au> |
Move arch independent functions to generic files and HAVE_FPU config
|
#
ae8f2c99 |
|
23-Feb-2017 |
amrzar <azarrabi@nicta.com.au> |
x86: move current active FPU owner to node state
|
#
323e60a7 |
|
23-Feb-2017 |
amrzar <azarrabi@nicta.com.au> |
x86: define number of restore since switch as node state
|
#
2c00cdd7 |
|
09-Jan-2017 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
x86: Permit larger than required XSAVE regions Instead of failing when the configured XSAVE region size is larger than required this changes to print out a warning instead.
|
#
a529810e |
|
26-Nov-2016 |
amrzar <azarrabi@nicta.com.au> |
x86: Initialize store area when using XSAVE variant instructions When using, SSE (and other variants), mxcsr would assume similar role as control word in i387 FPU. When initializing the FPU, it should have valid value.
|
#
e7d0a886 |
|
24-Nov-2016 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
x86: Rewrite config_default as config_ternary for FPU config_default was intended to either evaluated to the passed configuration value, or the a default value if the config didn't exist. For integer values this does not actually work, and the default value always gets returned. This commit reimplements the desired functionality as config_ternary, which takes 3 arguments, a config to switch on and a desired true and false expansion
|
#
1c312610 |
|
23-Nov-2016 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
x86: Switch to NULL FPU state if suspect no one using it Adds a heuristic to switch to a NULL fpu state if we think the FPU is not presently in use. A NULL fpu state is more efficient as we do not have to enable/disable the FPU when switching threads
|
#
cc685301 |
|
23-Nov-2016 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
Remove unneeded usages of `VISIBLE` Using `VISIBLE` where it is not needed limits the ability for the compiler to optimize, especially when using whole program optimizations
|
#
44fc989c |
|
03-Nov-2016 |
amrzar <azarrabi@nicta.com.au> |
Store remote FPU state
|
#
a85472a9 |
|
02-Nov-2016 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
x86: Always consider FPU owernship of threads core When checking if a thread is using the FPU or not we now check on that threads core, under the assumption that if a thread migrates its FPU state is explicitly (and not lazily) migrated.
|
#
7fbde1bb |
|
14-Jun-2016 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
SELFOUR-287: 32-bit vt-x implementation This is an implementation of vt-x for x86 kernels running in ia32 mode.
|
#
3f9eb7c8 |
|
06-Oct-2016 |
amrzar <azarrabi@nicta.com.au> |
SELFOUR-632: implement cores non-architecture dependent structres
|
#
2cbc7123 |
|
28-Sep-2016 |
amrzar <azarrabi@nicta.com.au> |
SELFOUR-630:preliminary booting application processors - update core detection code and Kconfig file - update kernel stack managment so that BSP does not use boot stack before IPI APs - move arch dependant data to a single structure - add cache line size to Kconfig - add cpu indexing and apic id mapping - boot APs to halting state - add guard for kernel stack if there is only one core
|
#
4044e204 |
|
21-Sep-2016 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
Revert "Merge pull request #358 in SEL4/sel4 from ~AZARRABI/sel4:multicore to master" This reverts commit ce2f666bb811c5e4c779829fcb09d5a189ebcdbb, reversing changes made to dc183f96b81f2344d7d0d910fc430f924eaae940.
|
#
fbc071b4 |
|
12-Sep-2016 |
amrzar <azarrabi@nicta.com.au> |
SELFOUR-630:preliminary booting application processors - update core detection code and Kconfig file - update kernel stack managment so that BSP does not use boot stack before IPI APs - move arch dependant data to a single structure - add cache line size to Kconfig - add cpu indexing and apic id mapping - boot APs to halting state - add guard for kernel stack if there is only one core
|
#
ef00e986 |
|
21-Aug-2016 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
SELFOUR-615: arm entry point stubs
|
#
3c05b79a |
|
27-Jul-2016 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
Provide generic C entry/exit hook routines It can be deseriable to run code before/after user mode, but not have to write it in assembly. This commit adds such stubs that get called as the first/last C code when coming in and out of the kernel
|
#
d410e13b |
|
02-Jun-2016 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
trivial: style
|
#
93bca86e |
|
01-Jun-2016 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
x86: Introduce support for XSAVE feature set The XSAVE feature set is the future proof way for x86 CPUs to manage extended CPU state. Extended state is MMX, FPU, SSE, AVX etc registers. This is a replacement for the current FXSAVE and the 512 byte FPU region. XSAVE introduces a few problems that this commit has to address * The alignment of the XSAVE region is 64bytes, instead of the 16 bytes of the FXSAVE region * XSAVE region size is dependent on the desired features, which are detected at run time * There are multiple variants of the XSAVE instruction that have different potential optimizations, but are not always supported The solutions to these are * Re-order the FPU state and user registers in the user context struct so that the new XSAVE region is first, and is thus aligned to 64bytes without needing lots of padding * Provide config options for desired features (including XSAVE instruction variant) and required XSAVE region size. These are checked at boot time to ensure the CPU meets these requirements
|
#
d20ca20a |
|
13-Jan-2016 |
Adrian Danis <Adrian.Danis@nicta.com.au> |
x86: Rename ia32->x86 This is a stylistic commit to make names of variables/constants and functions in the kernel more consistent. That is, things that are not IA32 specific, but are generic x86, get renamed to having an x86 name
|
#
88d73db0 |
|
15-Oct-2015 |
Anna Lyons <Anna.Lyons@nicta.com.au> |
refactor tcb_t to remove duplication between x86 and arm header files
|
#
914741ea |
|
27-May-2015 |
Adrian Danis <Adrian.Danis@nicta.com.au> |
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
|