#
fba7c896 |
|
06-May-2020 |
Curtis Millar <curtis.millar@data61.csiro.au> |
Consolidate kernel virtual memory regions Each architecture now only needs to describe the bounds of the three memory regions: the 1:1 mapped physical memory region, the kernel ELF region (which may or may not overlap the physical memory region) and the device / kernel page table region. The physical base address of the 1:1 mapped physcial memory region and the kernel ELF region must also be specified. The top of user addressable memory (where in the same virtual address space as the kernel) is defined by USER_TOP. The physic memory virtual mapping is described by PPTR_BASE and PPTR_TOP. The base physical memory address is PADDR_BASE and is the physical address used to map PPTR_BASE. Don't use kernelBase when referring to the base of the 1:1 mapped physical memory window. The kernel ELF virtual address region is described by KERNEL_ELF_BASE and extends until the virtual address of the symbol `ki_end` which is created by the linker. KERNEL_ELF_PADDR_BASE is the base address of the physical memory region used to map the kernel and is the address to which KERNEL_ELF_BASE maps. KERNEL_ELF_BASE and KERNEL_ELF_PADDR_BASE do not need to be aligned to a page size boundary as they are approriately truncated during boot by the `map_kernel_window` function. KDEV_BASE describes the base virtual address of the kernel device region and the region is assumed to extend to the end of virtual memory. Note: The offset between PPTR_BASE and PADDR_BASE is used to translate the virtual address of all untyped objects to physical addresses. This includes device untyped objects or frame objects where the virtual address does not fall within the 1:1 mapped physical memory region. Signed-off-by: Curtis Millar <curtis.millar@data61.csiro.au>
|
#
79da0792 |
|
01-Mar-2020 |
Gerwin Klein <gerwin.klein@data61.csiro.au> |
Convert license tags to SPDX identifiers This commit also converts our own copyright headers to directly use SPDX, but leaves all other copyright header intact, only adding the SPDX ident. As far as possible this commit also merges multiple Data61 copyright statements/headers into one for consistency.
|
#
66bc2b17 |
|
05-Nov-2019 |
Victor Phan <Victor.Phan@data61.csiro.au> |
rename KDEV_PPTR/PPTR_KDEV to KDEV_BASE This is the virtual address for the start of the kernel device mapping region.
|
#
6b8c09a6 |
|
18-Dec-2018 |
Alexander Boettcher <alexander.boettcher@genode-labs.com> |
x86: always invalidate TLB during unmapPage On SMP configurations, the VSpace may be in use on other cores and so a TLB shoot down has to be performed unconditionally.
|
#
b5c56244 |
|
07-Oct-2019 |
Simon Shields <simon.shields@data61.csiro.au> |
Create device untypeds at boot for all arches Currently on x86 device untypeds are generated by passing the entire address space minus any parts that are reserved by the kernel or that are "real" memory (e.g. kernel image, physical RAM). On ARM and RISC-V, device untypeds were generated at compile-time from a device tree. This patch moves ARM and RISC-V to use the same approach as x86, and moves the code from x86 into a common location that's shared between the three architectures. Co-Authored-By: Anna Lyons <anna@gh.st>
|
#
a4d6bf85 |
|
28-Feb-2016 |
amrzar <Amirreza.Zarrabi@data61.csiro.au> |
SELFOUR-161: Merge Page_Remap with Page_Map - Remove Remap function from seL4 API for arm, x86, riscv and the respective invocation implementation. - Update Map as replacement for Remap - Update manual This allows a change of rights if the frame being mapped is already mapped in at the given vaddr. To map a page to a different address, unmap it first. Co-authored-by: Hesham Almatary <hesham.almatary@data61.csiro.au> Co-authored-by: Anna Lyons <Anna.Lyons@data61.csiro.au> Co-authored-by: Victor Phan <Victor.Phan@data61.csiro.au> Co-authored-by: Kent McLeod <Kent.Mcleod@data61.csiro.au>
|
#
3e83f899 |
|
16-Sep-2019 |
Simon Shields <simon.shields@data61.csiro.au> |
x86: avoid -Waddress-of-packed-member It's safe to take the address of this member, since it's the first thing in a cacheline-aligned struct.
|
#
7fc45c4e |
|
18-Mar-2019 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
style: set code width to 120
|
#
306453e3 |
|
18-Mar-2019 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
style: set min-conditional-indent to 0 Given we use braces all the time conditional indents do not make code cleaner.
|
#
d0930f67 |
|
18-Mar-2019 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
style: consistently attach return type Add attach-return-type to astyle
|
#
761006e0 |
|
18-Mar-2019 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
style: consistently align pointer with name Run astyle with align-pointer=name
|
#
3d10ef0c |
|
18-Mar-2019 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
style: correct parenthesis padding Use astyle's unpad-paren to unpad all parentheses that are not included by pad-header, pad-oper, and pad-comma.
|
#
524c8964 |
|
01-Jul-2018 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
x86: Explicit check against PPTR_USER_TOP instead of mask The previous mask approach relied on the user region being a power of 2 size, which is not true on ia32. This change supports arbitrary PPTR_USER_TOP.
|
#
b9eff432 |
|
19-Jun-2018 |
Joel Beeren <joel.beeren@data61.csiro.au> |
x86: extract createSafeMappingEntries_* into separate functions for ease of verification
|
#
1051e550 |
|
18-Jun-2018 |
Joel Beeren <joel.beeren@data61.csiro.au> |
x86: Unify page map/remap logic with existing verified ARM behaviour
|
#
a8d3c549 |
|
12-Jun-2018 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
x86: All page unmap paths perform an invocation This takes the current logic in the decode function for unmap that decides which perform function to call and considers that logic to be part of the perform step, and places it in a wrapping perform function. As a result the case where we do not call any detailed perform function will still result in calling a perform step from decode, instead of doing nothing.
|
#
9f94a6ed |
|
12-Jun-2018 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
x86: Consistently order remap invocation errors This reordering brings this invocation inline with other invocations where we first check the message length, and then the capability.
|
#
7b8f6106 |
|
08-May-2018 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
x86: Consistently compare against PPTR_USER_TOP PPTR_USER_TOP is the last valid user address and so any address greater than it should not be used. Due to pages being at least 4K aligned it is also correct to do a >= comparison, but it is clearer and more consistent with verification to perform just >.
|
#
757c3ac9 |
|
03-May-2018 |
Joel Beeren <joel.beeren@data61.csiro.au> |
x86: Move hwASIDInvalidate inside condition in deleteASID We shouldn't be invalidating the ASID unless we know that the ASID is actually mapped to a corresponding VSpace.
|
#
f656fb85 |
|
21-Mar-2018 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
x86: Check ASID instead of mapping type This is a simpler check for verification
|
#
95a300fe |
|
19-Mar-2018 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
x86: Guard call to unmapPage This `if` is not strictly necessary as unmapPage will immediately return after failing to look up the asid but this makes verification easier.
|
#
30738188 |
|
13-Mar-2018 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
x86: modeUnmapPage returns whether or not tlb needs invalidation Whilst it is always correct to invalidate the TLB even if no page was unampped this provides a small optimization and makes the modeUnmapPage behaviour mirror the general arch behaviour
|
#
3a7fdde8 |
|
05-Jan-2018 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
x86: Define per node arch global state Global state in this context is state/datastructures that need to be available at all times, both in user and kernel mode, by the hardware for correct operation. The purpose of creating a separate per-node structure for it is so that there is the option of treating it specially in the future from other per node state
|
#
e0d76080 |
|
10-Jan-2018 |
Joel Beeren <joel.beeren@data61.csiro.au> |
x86: declare pageBits to be word_t in lookupIPCBuffer This avoids an implicit cast from word_t (the return value of pageBitsForSize) to the original unsigned int, for ease of verification.
|
#
1ed63eeb |
|
09-Jan-2018 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
x86: Re-validate ipc buffer is not device frame This should be redundant, but is required for verification to go through
|
#
d2644e8a |
|
26-Oct-2017 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
Declare and check IPC buffer size Adds a named constant of the IPC buffer size bits that can be used when checking the size/alignment of an IPC buffer. This constant has a compile time assertion to ensure it corresponds to the actual IPC buffer
|
#
9c6fb53c |
|
11-Oct-2017 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
x86: Have single makeUserPDEInvalid function makeUserPDEPageTableInvalid and makeUserPDELargePageInvalid were both just creating the same kind of thing, an invalid mapping, which really should be thought of as the third type of PDE entry type.
|
#
c2572e6e |
|
05-Oct-2017 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
x86: Use full word_t for fault addresses Addresses are not always a uint32_t, and this was resulting in fault addresses being truncated on x86_64.
|
#
7594ffa8 |
|
08-Oct-2017 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
x86: Explict enum for fault types This creates a similar structure as ARM, where an `enum` is created with the `#define` values from libsel4. Having these values as enum types provides a 'real' C symbol for verification.
|
#
128829a9 |
|
11-Sep-2017 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
x86: Rationalize names of paging structures Changes the name of paging structure entries to more clearly indicate the kind of object they map to. Generally this is changing a `pde_small` to `pde_pt` to indicate that this mapping refers to a page table, removing an inconsistency where `pde_large` indicated that the mapping was for a large page. For the same reason the `ept_pde_4k` type is changed to `ept_pde_pt` type to reflect what is present in the actual entry. `pde_large` is left as 'large' and not explicitly given a size as code common between ia32 and x86-64 manipulates these entities and 'large' is already a used abstraction over the two potential page sizes so there is need to introduce a formal abstraction layer and make the names in the structures more specific.
|
#
a9e1f517 |
|
21-Aug-2017 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
SELFOUR-1062: Hide all IOMMU related code behind #ifdef guards The IOMMU implementation is not going to be verified at the moment, and so the code for it needs to be hidden from verification, which we do by #ifdef'ing it out if the IOMMU is not enabled. As a result the IOMMU configuration depends on a non verification target
|
#
b0c744b2 |
|
09-May-2017 |
Matthew Brecknell <Matthew.Brecknell@data61.csiro.au> |
SELFOUR-881: add ghost state updates for x86-64
|
#
126ff306 |
|
16-May-2017 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
x86: Avoid taking reference to local variable in init_pat_msr
|
#
0ef7c693 |
|
14-Feb-2017 |
Hesham Almatary <hesham.almatary@data61.csiro.au> |
x86: define L1_CACHE_LINE_SIZE_BITS as with ARM
|
#
18335e23 |
|
30-Jan-2017 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
x86: Invalidating HW ASIDs when deleting ASID pool
|
#
47255e80 |
|
24-Jan-2017 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
x86: Remap frames from correct vspace Changes the check on a frames ASID to ensure that it is from the virtual address space that is going to be modified. Without this the frame could stay mapped into a different vspace, yet have the kernel book keeping only think it is now mapped into the new one.
|
#
2fea9a0f |
|
18-Jul-2016 |
Anna Lyons <Anna.Lyons@nicta.com.au> |
SELFOUR-567: use seL4_CapRights_t from libsel4 This change * changes seL4_CapRights from the kernel to be seL4_CapRights_t in libsel4 * deprecates the duplicated seL4_CapRights in libsel4, which is now the bitfield generated type seL4_CapRights_t. * fixes all usages in kernel and libsel4 Impact: for verification, this will require the type to change name from cap_rights to seL4_CapRights_t. This is a breaking libsel4 API change, although most code uses seL4_AllRights or similar constants, which will not break at a source level as these constants have been updated.
|
#
b827ad37 |
|
15-Jul-2016 |
Anna Lyons <Anna.Lyons@nicta.com.au> |
SELFOUR-413: refactor libsel4 fault API This is a *breaking API change* This commit: * makes seL4_Fault_tag_t common between the kernel and libsel4 * deprecates the existing functions from sel4/messages.h includes * introduces a new fault API in sel4/faults.h and * sel4/sel4_arch/faults.h * deprecates seL4_GetTag(), as the function did not work without the user calling seL4_SetTag() first (seL4_MessageInfo is passed in registers and not set in the IPC buffer) * removes previously deprecated functions (deprecated prior to 3.0.0) * updates the seL4 manual to reflect the changes
|
#
d14a973a |
|
21-Nov-2016 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
x86: Pass address space when invalidating ASID For efficient TLB coherency on x86-64 it will be useful to know the address space that the ASID being invalidated was last assigned to
|
#
2c49729d |
|
08-Nov-2016 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
x86: Refactor tlb_bitmap to be mode generic Refactors the TLB bitmap code to be generic across ia32 and x86-64.
|
#
9c91fc8f |
|
08-Nov-2016 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
x86: Refactor generic x86 pte/pde manipulation Previously generic functions for manipulating page table and page directory entries were placed in mode/structures.h. These are moved to a mode/vspace.h instead so that they can use existing functions defined in arch/vspace.h. The x86_make_pde_mapping function is dropped in this move as it is not used. Instead it is replaced with a function for creating an empty mapping for whatever is the vspace root.
|
#
056dbf81 |
|
02-Nov-2016 |
amrzar <azarrabi@nicta.com.au> |
SELFOUR-634: support for TLB and cache management
|
#
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.
|
#
7f9970e5 |
|
20-Dec-2015 |
Adrian Danis <Adrian.Danis@nicta.com.au> |
x64: Add x86_64 support
|
#
3f9eb7c8 |
|
06-Oct-2016 |
amrzar <azarrabi@nicta.com.au> |
SELFOUR-632: implement cores non-architecture dependent structres
|
#
2320d909 |
|
29-Sep-2016 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
x86: Fixup IOMMU implementation Adds a mapping type to frame caps that tracks what kind of hierarchy the cap is mapped into; an MMU, IOMMU and in the future an EPT structure. Additionally the IOMMU code is updated to have correct functionality and be verification friendly.
|
#
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
|
#
d507b2d3 |
|
09-Feb-2016 |
Adrian Danis <Adrian.Danis@nicta.com.au> |
SELFOUR-421 Introduce explicit device frames and untypeds Kernel objects cannot be created from device untypeds, with the exception of frames, which do not get zeroed and cannot be used as an IPC buffer. Device untypeds additionally cannot be used in the construction of ASID pools. This then changes the API to the rootserver (i.e. bootinfo) to send device untypeds instead of device frames. On ARM these device untypeds are the same as the previously exported device frame regions. On x86 PCI scanning is removed and all physical memory addresses (that are not important for kernel integrity) are released to the user. In order to have bits in the frame and untyped caps on ARM the number of software ASIDs had to be reduced from 2^18 to 2^17, and the maximum untyped size reduced from 2^31 to 2^30
|
#
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.
|
#
8ffc3531 |
|
21-Sep-2016 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
Revert "[STYLE_FIX]" This reverts commit d29f743bbcc3acff2f61b40dedb4fe0839db38b8.
|
#
d29f743b |
|
21-Sep-2016 |
Bamboo <bamboo@keg.ertos.in.nicta.com.au> |
[STYLE_FIX]
|
#
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
|
#
f251953f |
|
29-Aug-2016 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
SELFOUR-556: Rationalize BITS vs INDEX_BITS s/PT_BITS/PT_INDEX_BITS Current convention is to say that X_BITS is the log base 2 size of an object, not the log base 2 number of indices
|
#
f34f354a |
|
16-Aug-2016 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
SELFOUR-617: one source of memory object sizes Adds the following constants to libsel4 and uses them in the kernel. seL4_SectionSize (arm) seL4_SuperSectionSize (arm) seL4_HugePageSize (x86 - pae) seL4_LargePageSize (arm) seL4_DataFault seL4_InstructionFault
|
#
2f163e27 |
|
11-Jul-2016 |
Hesham Almatary <hesham.almatary@data61.csiro.au> |
astyle: Make comments compatible with both 2.03 and 2.04 astyle versions
|
#
5ca374b3 |
|
08-Jul-2016 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
SELFOUR-558: Consistently name Unmap instead of UnMap
|
#
75299d05 |
|
08-Jul-2016 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
SELFOUR-557: s/isIOSpaceFrame/isIOSpaceFrameCap/
|
#
1c1e976d |
|
17-May-2016 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
x86: Improve translation invalidation x86_64 (with PCIDs enabled) supports a more fine grained invalidation approach for the TLB and Page Structure Cache. This change expands the number and kinds of information passed for certain invalidations, and provides an implementation of this for ia32.
|
#
69b7e077 |
|
25-Feb-2016 |
Yanyan Shen <yanyan.shen@nicta.com.au> |
trivial: make style with astyle 2.03
|
#
9d12a096 |
|
25-Feb-2016 |
Yanyan Shen <yanyan.shen@nicta.com.au> |
trivial: make style commit
|
#
9e35b398 |
|
20-Dec-2015 |
Adrian Danis <Adrian.Danis@nicta.com.au> |
x86: Refactor vspace code to have verification friendly invocations
|
#
dd593539 |
|
06-Dec-2015 |
Adrian Danis <Adrian.Danis@nicta.com.au> |
x86: More portable user mode IO port restriction For x86-64, to disable IO instructions in user mode requires a IO permission map being set up properly in TSS. Setting the IO map base field of TSS larger than the TSS works for 32-bit, but not 64-bit. This commit sets up a IO permission map usable for both 32-bit and 64-bit kernel and changes the TSS to use the mapping. The IO permission bitmap is appened to the bitfield generated tss_t, resulting the tss_io_t structure.
|
#
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
|
#
53492824 |
|
06-Jan-2016 |
Adrian Danis <Adrian.Danis@nicta.com.au> |
x86/libsel4: Rename ia32->x86 Rename all functions, constants and types in libsel4 that are in the general x86 architecture to have an X86 name instead of an IA32 name. As libsel4 and the kernel share names this requires changing those in the kernel as well. All the original IA32 names can still be used for the moment, but are marked as deprecated.
|
#
cfcaf49c |
|
31-Jan-2016 |
Adrian Danis <Adrian.Danis@nicta.com.au> |
SELFOUR-399: object sizes and globals frame addr should come from the same source
|
#
87bb72c6 |
|
13-Jan-2016 |
Adrian Danis <Adrian.Danis@nicta.com.au> |
trivial: style
|
#
0b88c562 |
|
06-Dec-2015 |
Adrian Danis <Adrian.Danis@nicta.com.au> |
x86: Add missing checks when mapping and unmapping paging objects
|
#
ff2d5918 |
|
26-Nov-2015 |
Adrian Danis <Adrian.Danis@nicta.com.au> |
x86: When creating an ASID pool mark the untyped object as used
|
#
8b280a07 |
|
24-Nov-2015 |
Adrian Danis <Adrian.Danis@nicta.com.au> |
x86: Introduce mode specific unmap and remap operations
|
#
cf6e5c8e |
|
17-Nov-2015 |
Adrian Danis <Adrian.Danis@nicta.com.au> |
x86: Use typedef for vspace roots instead of void*
|
#
6d573e17 |
|
18-Nov-2015 |
Adrian Danis <Adrian.Danis@nicta.com.au> |
x86: Move invalidateTLBEntry in unmapPage invalidateTLBEntry is currently called twice in unmapPage Once behind a guard that only performs the invalidate if the active vspace is the same as the one that contains the mapping, and then a second time at the end of unmapPage without any guard at all. This commit removes the unguarded version and replaces it with the guarded one from earlier in the function.
|
#
486a80fe |
|
22-Nov-2015 |
Adrian Danis <Adrian.Danis@nicta.com.au> |
x86: Mark map_kernel_window as boot_code
|
#
e2f7cf46 |
|
24-Nov-2015 |
Adrian Danis <Adrian.Danis@nicta.com.au> |
x86: Do not implicitly mask virtual address when mapping frames This mask made the checkVPAlignment call completely redundant. By removing this mask and relying on the check we bring the x86 in line with the ARM behaviour
|
#
d93699c9 |
|
04-Jan-2016 |
Anna Lyons <Anna.Lyons@nicta.com.au> |
SELFOUR-114: remove duplication of seL4_MessageInfo_t, adjust naming to avoid cparser mangling
|
#
4e81ed05 |
|
05-Nov-2015 |
Adrian Danis <Adrian.Danis@nicta.com.au> |
x86: Extract 32-bit specific vspace functions in mode/vspace.c
|
#
b03c6dbf |
|
09-Nov-2015 |
Adrian Danis <Adrian.Danis@nicta.com.au> |
x86: With multi-kernel support removed make the kernel PDs etc global instead of passing them around
|
#
646638ef |
|
09-Nov-2015 |
Adrian Danis <Adrian.Danis@nicta.com.au> |
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
|
#
5d42d014 |
|
09-Nov-2015 |
Adrian Danis <Adrian.Danis@nicta.com.au> |
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
|
#
4413fd1b |
|
16-Dec-2015 |
Adrian Danis <Adrian.Danis@nicta.com.au> |
x86: Make some vspace code and definitions non-static that get used by the PAE vspace code
|
#
71a45e6b |
|
05-Nov-2015 |
Adrian Danis <Adrian.Danis@nicta.com.au> |
x86: Strip multi kernel support from the x86 kernel. This is not used and is conflicting with planned future features
|
#
ef85f94a |
|
05-Nov-2015 |
Adrian Danis <Adrian.Danis@nicta.com.au> |
x86: Rename constants and functions to have X86 prefix instead of IA32 prefix
|
#
6729ce78 |
|
05-Nov-2015 |
Adrian Danis <Adrian.Danis@nicta.com.au> |
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
|
#
171824f7 |
|
07-Dec-2015 |
Adrian Danis <Adrian.Danis@nicta.com.au> |
Change additional int->word_t due to interraction with the C parser to ease verification
|
#
0ecff9f3 |
|
09-Nov-2015 |
Adrian Danis <Adrian.Danis@nicta.com.au> |
unsigned int -> word_t
|
#
32d112a6 |
|
07-Sep-2015 |
Stephen Sherratt <stephen.sherratt@nicta.com.au> |
Trivial: style (again)
|
#
0a2340c3 |
|
07-Sep-2015 |
Stephen Sherratt <Stephen.Sherratt@nicta.com.au> |
Trivial: style
|
#
e82953a1 |
|
01-Sep-2015 |
Stephen Sherratt <Stephen.Sherratt@nicta.com.au> |
Removed CONFIG_BENCHMARK config option. All checks for '#ifdef CONFIG_BENCHMARK' replaced with '#if CONFIG_MAX_NUM_TRACE_POINTS > 0'.
|
#
4c2554dc |
|
26-Aug-2015 |
Stephen Sherratt <Stephen.Sherratt@nicta.com.au> |
Added support for using multiple tracepoints at the same time.
|
#
82cd34da |
|
24-Aug-2015 |
Adrian Danis <Adrian.Danis@nicta.com.au> |
ia32: Disable the I/O permission map in the TSS The I/O bitmap base address needs to be set higher than the TSS segment limit in order to disable the bitmap completely. We want the bitmap disabled as this prevents any user I/O port access. Currently the few ports from 0 to sizeof(tss_t) are usable.
|
#
9001e413 |
|
14-Jul-2015 |
Adrian Danis <Adrian.Danis@nicta.com.au> |
trivial: fix style
|
#
c3dec902 |
|
13-Jul-2015 |
Thomas Sewell <thomas.sewell@nicta.com.au> |
Fix style and unused variable warnings.
|
#
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
|