History log of /seL4-camkes-master/kernel/src/plat/pc99/machine/acpi.c
Revision Date Author Comments
# 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.


# 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


# 30910875 23-Nov-2017 Alexander Boettcher <alexander.boettcher@genode-labs.com>

pc99: Check for V2 ACPI RSDP


# a4a52c5d 20-Nov-2017 Alexander Boettcher <alexander.boettcher@genode-labs.com>

pc99: Explicitly declare sizes for different versions of ACPI RSDP


# e8625c6d 04-Oct-2017 Adrian Danis <Adrian.Danis@data61.csiro.au>

pc99: Provide public function for validating an RSDP

RSDP validation was previously done directly in acpi_init. This splits the validation
into a seperate, publicly useable, function. The intention is for this to be used in
boot scenarios where an RSDP is given and does not need to be searched for.


# ee380609 04-Oct-2017 Adrian Danis <Adrian.Danis@data61.csiro.au>

x86: Copy RSDP table in acpi_init instead of returning physical address of rsdt

The full RSDP is useful beyond just extracting the RSDT address out of it. In particular
this prepares us for being able to pass a copy of the RSDP to the rootserver.

The previous function signature might lead a user to believe that they were getting a
pointer to a useable acpi_rsdt_t structure. This was in fact not the case and was
actually returning the physical address, that may or may not be mapped in, of the rsdt
table. All of the other acpi *_scan functions would therefore immediately map in the physical
rsdt pointer they were given.

This commit changes acpi_init to return a boolean indicating whether it found a valid
rsdp, and then fills in a copy of the rsdp data. The copy is necessary as the rsdp
data may be at a temporary mapping.

As a result of changing acpi_init the boot code and state is changed to have a acpi_rsdt_t
instance that can be filled out.


# a9c6ac49 04-Oct-2017 Adrian Danis <Adrian.Danis@data61.csiro.au>

pc99: Make acpi_table_init static

This function is only used internally by the acpi code, and having it static prevents
the need for a redundant local prototype


# 57fa0e0f 07-Aug-2017 Hesham Almatary <hesham.almatary@data61.csiro.au>

Share linker.h between architectures


# 8ce9513d 03-May-2017 Bamboo <bamboo@keg.ertos.in.nicta.com.au>

[STYLE_FIX]


# 3866b060 03-May-2017 Adrian Danis <Adrian.Danis@data61.csiro.au>

pc99: Make names in compile_assert unique


# 85234069 03-May-2017 Adrian Danis <Adrian.Danis@data61.csiro.au>

Use unverified_compile_assert in cases where OFFSETOF is used

OFFSETOF is not supported by the C parser, and so regular compile_assert may not be used


# 27afc1bd 20-Nov-2016 amrzar <azarrabi@nicta.com.au>

x86: add logical id mapping for x2APIC IPI boradcasting


# d746cc9c 15-Nov-2016 amrzar <azarrabi@nicta.com.au>

x86: enable support for x2APIC


# 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.


# 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


# 47e8700e 02-Jun-2016 Zhicheng Wei <zhicheng@opensourceforge.net>

add CONFIG_PRINTING to DEBUG build
fix typo: src/plat/pc99/machine/acpi.c, ACIP should be ACPI


# f3db33ec 10-Nov-2015 Adrian Danis <Adrian.Danis@nicta.com.au>

x86: Do not use string literals as they violate the CParser


# 8e15c429 03-Nov-2015 Adrian Danis <Adrian.Danis@nicta.com.au>

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.


# 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


# 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


# 41afdff7 12-Jun-2015 Adrian Danis <Adrian.Danis@nicta.com.au>

x86: Make ACPI MADT parsing 64-bit compatible


# 6ba40634 03-Jun-2015 Adrian Danis <Adrian.Danis@nicta.com.au>

x86: Cast, where appropriate, to word_t type to support 32 and 64 bit


# fee26a88 02-Jun-2015 Adrian Danis <Adrian.Danis@nicta.com.au>

Change casting from int->long to be compatible with both 32 and 64 bit compilations


# 617df4a7 03-Nov-2015 Adrian Danis <Adrian.Danis@nicta.com.au>

Rationalize standard types

This commit aims to rationalize how we represent different types
for compatiblity between ARM and x86, as well as between 32 and
64 bit code. The choices being made here is to declare that a
uint32_t has a type of 'int', this allows uint32_t to be declared
consistently across 32 and 64 bit (at least in GCC).
The word_t type is declared using a 'long' (not a uint32_t or uint64_t) to
allow for a word_t to be backed by the same type on both 32 and 64 bit
All other types that want to be declared as the size of a native word
get declared in terms of a word_t


# 72826dba 01-Oct-2015 Anna Lyons <Anna.Lyons@nicta.com.au>

Fix IOMMU part of x86 build


# 40f27ac9 01-Oct-2015 Anna Lyons <Anna.Lyons@nicta.com.au>

fix format strings for x86


# fac1d667 03-Aug-2015 Adrian Danis <Adrian.Danis@nicta.com.au>

pc99: Use remapped rsdt header when parsing the dmar


# af0f3b36 15-Jan-2015 Adrian Danis <Adrian.Danis@nicta.com.au>

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


# c0e9c638 11-Aug-2014 Adrian Danis <Adrian.Danis@nicta.com.au>

Support IOAPIC on ia32 and modify interrupt handling to support user level setting of modes


# 91b7da86 17-Jul-2014 TrusthworthySystems <gatekeeper@sel4.systems>

Release snapshot