History log of /seL4-camkes-master/kernel/src/plat/imx31/machine/hardware.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.


# 2cd80a8c 29-May-2019 Kent McLeod <Kent.Mcleod@data61.csiro.au>

Document internal machine/interrupt.h interface

Every platform has to implement a standard set of interrupt interfaces
that the kernel uses to interract with a machine's interrupt controller.
Providing a single header file for each of these functions provides a
single location to document their behavior.


# 9dcb4706 16-Jun-2019 Anna Lyons <Anna.Lyons@data61.csiro.au>

arm: remove plat/machine/timer.h

plat/machine/timer.h is unused on arm, so remove it and fix up the
includes.


# a7728128 12-Jun-2019 Anna Lyons <Anna.Lyons@data61.csiro.au>

arm: move handleOverflowIRQ to benchmark.h

Consolidate to reduce include complexity and make benchmarking features
easier to find/comprehend.


# 7bf513b7 08-Apr-2019 Anna Lyons <Anna.Lyons@data61.csiro.au>

imx31: use declare_default_headers

- remove unused header files replaced by declare_default_headers
- move interrupt.h -> drivers/irq/imx31.h
- move hardware.bf -> drivers/timer/imx31-epit.bf
- move timer.h -> drivers/timer/imx31-epit.h
- move definitions from hardware.h to plat/imx31/machine/hardware.c


# 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


# 2fbdf188 06-Mar-2019 Oliver Scott <Oliver.Scott@data61.csiro.au>

timer-refactor: Move kernel timers and rename

This change moves all arm platform timers to drivers/timer
and renames them to the compatibility string specified in the dts.
Now the correct timer is included at build time based on the dts,
this follows the same pattern as the serial-refactor.
Have moved the arm generic_timer and priv_timer into the timer
folder and updated cmake configs appropriately.


# b88d7701 12-Feb-2019 Kent McLeod <Kent.Mcleod@data61.csiro.au>

arm: Rename plat_cleanInvalidateCache

Rename plat_cleanInvalidateCache to plat_cleanInvalidateL2Cache to
indicate that it is a L2 cache maintenance operation only.


# 0fac956e 28-Jan-2019 Simon Shields <simon.shields@data61.csiro.au>

ARM platforms: use auto-generated kernel_devices

Note that the auto-generated kernel_devices will differ slightly from
the ones present in the kernel until now. When devices have
registers that aren't page-aligned we now always set the appropriate
PPTR to be the start address of the device, while previously the PPTR
was sometimes page-aligned.

Specifically, this change to PPTRs affects:
- bcm2837 intc
- bcm2837 uart
- allwinnerA20 timer


# cddc4e6e 15-Nov-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

Inline resetTimer for all platforms

- for arm generic timer platforms, we remove resetTimer ->
resetGenericTimer indirection and simply include generic_timer.h
- this reduces boiler plate for platforms that share timer drivers, as
they simply include the one header
- there is far more timer code in the RT kernel, which motivates this
change


# c89b9828 15-Nov-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

Make TIMER_CLOCK_HZ available in timer.h for ARM

The RT kernel needs this value accessible to common functions.


# 91a82da3 15-Nov-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

Refactor arm timer ticks calculations

- remove a lot of redundancy
- define TIMER_CLOCK_HZ for each platform (rather than inconsistenly
named variables with inconsist units)
- use the common calculation of TIMER_RELOAD


# 6448524d 15-Nov-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

Refactor memory mapped arm timers

- make them consistent: struct, type and global vars
- typedef the struct definition as volatile
- separate struct, typedef and variable definition
- always cast the pointer as the timer type


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

Share linker.h between architectures


# cbe37757 17-Apr-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

kzm: fix timer reload overflow calculations


# b8f9dcac 27-Feb-2017 Hesham Almatary <hesham.almatary@data61.csiro.au>

ARM/IRQ: add a function to initialise local IRQ controller for CPUs

Similar to initIRQController(), cpu_initLocalIRQController() has to
be implemented for each platform. For those that are gonna support
SMP, it should be implemented proprely (if required), otherwise
it can be stubbed for single core implementations.


# f658276a 03-Aug-2016 Thomas Sewell <Thomas.Sewell@nicta.com.au>

Remove many DONT_TRANSLATE markers.

The vast majority of the DONT_TRANSLATE markers in the kernel are used
to hide __asm__ statements and builtin functions
(e.g. __builtin_unreachable ()) from the C-to-Isabelle parser.

The parser now supports underscore identifiers and many __asm__ statements,
and the builtin functions are prototyped, meaning the vast majority of the
DONT_TRANSLATE markers can be dropped. The remaining markers cover functions
that must be treated specially.


# 1f11cf70 27-Oct-2016 Bamboo <bamboo@keg.ertos.in.nicta.com.au>

[STYLE_FIX]


# 40383a98 27-Oct-2016 Anna Lyons <Anna.Lyons@data61.csiro.au>

Fix arm builds broken in 44ed6adb6


# 5a0bdb74 13-Sep-2016 Stephen Sherratt <Stephen.Sherratt@data61.csiro.au>

Store active irq in global variable on kzm

The first time the irq number is read from the controller, the interrupt
is acknowledged. Subsequent reads of the irq number result in an invalid
irq number being read.

This modifies the kzm interrupt controller driver to save the current irq
number when it's first read from the interrupt controller, preventing the
need for future reads from the controller until the next interrupt arrives.


# ce2c058f 06-Aug-2016 Anna Lyons <Anna.Lyons@data61.csiro.au>

SELFOUR-607: inline remaining irq path functions


# 4a486779 06-Aug-2016 Anna Lyons <Anna.Lyons@data61.csiro.au>

SELFOUR-519: remove map_kernel_devices duplication

* move devices to static array in hardware.h
* use one higher level function to map them in.


# 9456b3e6 05-Aug-2016 Anna Lyons <Anna.Lyons@data61.csiro.au>

SELFOUR-519: remove more duplication in hardware.c

* move p_reg functions up a level
* move p_reg definitions to hardware.h


# 935e8054 23-Jun-2016 Hesham Almatary <Hesham.Almatary@nicta.com.au>

SELFOUR-448 Benchmark: Add PMU IRQ support to ARM platforms

Currently supported boards are:
- imx6 (sabre)
- tk1 (Jeston)
- kzm


# c5b6a6a5 06-Jun-2016 Anna Lyons <Anna.Lyons@nicta.com.au>

Refactor duplicated code in hardware.h

One copy to rule them all.


# 9a7b1aec 06-Jun-2016 Anna Lyons <Anna.Lyons@nicta.com.au>

Trivial: move printfs in handleReservedIRQ up.

This wraps the printfs in CONFIG_IRQ_REPORTING
and reduces redundancy.


# 0ec5e937 06-Jun-2016 Anna Lyons <Anna.Lyons@nicta.com.au>

SELFOUR-402: remove isReservedIRQ

While provided by each hardware platform this function is never called.


# 541289a3 11-May-2016 Adrian Danis <Adrian.Danis@data61.csiro.au>

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.


# 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


# ec788900 24-Jul-2015 Anna Lyons <Anna.Lyons@nicta.com.au>

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


# 86751e48 25-Feb-2015 Matthew Fernandez <matthew.fernandez@nicta.com.au>

ARM: Set the XN bit on kernel mappings that do not need to be executable.

This covers the kernel stack, globals frame and device memory. We shouldn't be
executing in any of these pages, so functionality should be unaffected. This is
primarily a debugging aid.


# f896ffa0 27-Nov-2014 Gerwin Klein <gerwin.klein@nicta.com.au>

XN: fix order of vm_attributes in init code and update apq8064


# 644dff49 19-Nov-2014 Matthew Fernandez <matthew.fernandez@nicta.com.au>

further support for XN bit on ARM


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

Release snapshot