#
ab3d8c44 |
|
18-Nov-2020 |
Curtis Millar <curtis.millar@data61.csiro.au> |
riscv: Map devices with large pages on 32 & 64-bit For 64-bit, this adds a 2nd-level page table for mapping devices using 2MiB frames instead of 1GiB frames. The boot mapping and hardware header generator have also been fixed to correctly report the number of large frames needed for devices rather than only reporting the first. The frame size is also specified correctly (rather than assuming mapping with 4KiB frames). This likely fixes an issue whereby only the first 4KiB frame of a device was reserved but the remaining region of that kernel device could be mapped at user level. Signed-off-by: Curtis Millar <curtis.millar@data61.csiro.au>
|
#
73b0773d |
|
05-Nov-2020 |
Oliver Scott <Oliver.Scott@data61.csiro.au> |
tk1-smmu: corrections Fix tk1 smmu cmake config variables. Fix platforn_gen for tk1. Add separate hardware.yml for tk1. Signed-off-by: Oliver Scott <Oliver.Scott@data61.csiro.au>
|
#
1a9756f6 |
|
09-Sep-2019 |
Qian Ge <qian.ge@data61.csiro.au> |
SMMU: basic driver for init and probing Introducing the driver in kernel for detecting SMMU features and initialise the hardware. Signed-off-by: Oliver Scott <Oliver.Scott@data61.csiro.au>
|
#
b77c9b20 |
|
02-Sep-2020 |
Jesse Millwood <jesse.millwood@dornerworks.com> |
PolarFire SoC: Initial support for platform Signed-off-by: Jesse Millwood <jesse.millwood@dornerworks.com>
|
#
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.
|
#
71d636f8 |
|
20-Jun-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
arm_hyp: Save and restore vtimer state on switches Added support for reading and writing additional virtual timer registers for vcpu hw read and write accesses. These include the compare value register (CNTV_CVAL) and offset register (CNTV_OFF), each represented as two 32 bit (high and low) registers on aarch32 and as single 64 bit registers on aarch64. Added support for explicitly saving and restoring the virtual timer registers when the vcpu is enabled and disabled. This ensures when the vcpu is switched in and out, the virtual timer registers are restored to a state that is consistent to when it was last run. By default the CNTVOFF register will be updated by the kernel to accumulate the time the VCPU is not running. From the guest this will result in the VCNT register not increasing when the VCPU is suspended. This behavior can be turned off by disabling the KernelArmVtimerUpdateVOffset config option.
|
#
0f619780 |
|
11-Dec-2019 |
Simon Shields <simon.shields@data61.csiro.au> |
hardware_gen: add elfloader CPUs output outputs all CPUs described in the DT to the elfloader header and also includes any devices in the seL4,elfoader-devices property.
|
#
75ee55a8 |
|
16-Sep-2019 |
Simon Shields <simon.shields@data61.csiro.au> |
hardware: expose rpi3 intc region to userspace the intc region contains a timer that userspace uses on the MCS kernel.
|
#
294b592b |
|
04-Sep-2019 |
Simon Shields <simon.shields@data61.csiro.au> |
trivial: hardware.yml: clean up indentation
|
#
82084ad9 |
|
04-Sep-2019 |
Simon Shields <simon.shields@data61.csiro.au> |
hardware_schema: simplify and clarify schema The two interrupt-related 'macros' are rather confusingly different. Explain them, rename them and simplify interrupt specification while we're at it.
|
#
cdb6a093 |
|
29-Aug-2019 |
Simon Shields <simon.shields@data61.csiro.au> |
hardware: remove executeNever this is now implicitly true. MMIO regions should always be executeNever.
|
#
7a26d271 |
|
29-Aug-2019 |
Simon Shields <simon.shields@data61.csiro.au> |
hardware: change region logic in hardware yaml - we're going to switch to mapping the whole address space, excluding parts used by the kernel, to userspace. We trust the root server anyway, so giving it extra (possibly invalid) MMIO space just simplifies stuff on the kernel end. - drop the hacky true/false/null 'user' flag in favour of a saner true/false one. - remove support for 'default' regions. By default we will pass unused regions through to userspace.
|
#
4db4a3b8 |
|
13-Dec-2017 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
kzm: implement MCS timer driver - use gpt, so we can have overflow and compare interrupts at the same time (epit only allows compare) - set the gpt to use the ipg_highfreq timer, as the standard ipg is too low and breaks the timer calculations
|
#
a7fb6b56 |
|
20-Nov-2017 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
cortex-a9: tickless global timer driver - use in sabre (imx6) and zynq7000, the two platforms that were using the private timer.
|
#
cf997974 |
|
12-Aug-2019 |
Kent McLeod <Kent.Mcleod@data61.csiro.au> |
hardware_gen: Always specify kernel devices The kernel device IRQs and Frame mappings generated by this script will only come from nodes specified in the seL4,kernel-devices property of the chosen node. Previously these devices were inferred by the script but this led to false matching and didn't support easily overriding which devices to match under different configurations or across different platforms. Explicitly specifying which devices from the device tree will be used in the kernel makes it easier to check which devices the kernel is actually using and makes it easier to change on a per platform or per configuration basis.
|
#
55ad2c4d |
|
02-Jul-2019 |
Simon Shields <simon.shields@data61.csiro.au> |
GICv2: map VCPU region as execute never This matches the other GIC regions.
|
#
0d60f6f2 |
|
26-Mar-2019 |
Kent McLeod <Kent.Mcleod@data61.csiro.au> |
arm: Rename gic_pl390 to gic_v2 This is to reflect that this driver provides support for features that are newer than gic_pl390 such as virtualisation.
|
#
375a98c8 |
|
19-Jun-2019 |
Siwei Zhuang <siwei.zhuang@data61.csiro.au> |
CMake: Generate device headers from DTS for spike The DTS compilation was arm platforms only. Moving it to the top level config file, making it available to RISCV platforms. The generated files are almost identical with minor differences. A new argument(--arch) is added to the hardware_gen.py for the differences.
|
#
a16cc57e |
|
28-Mar-2019 |
James Ye <james.ye@data61.csiro.au> |
Add Odroid-C2 support Add support for the Hardkernel Odroid-C2 board. Co-Authored-By: Anna Lyons <Anna.Lyons@data61.csiro.au>
|
#
34ce52e2 |
|
18-Feb-2019 |
Oliver Scott <Oliver.Scott@data61.csiro.au> |
serial-refactor: Refactor kernel serial drivers Have added a drivers/serial folder to kernel, where all serial drivers will be kept. The point is to have the the dts parsed and generate cmake to include the right uart.c file prefixed with the compatibility. Have removed all io.c from plat and includes from plat/config.cmake and updated CHANGES file.
|
#
8f433d7d |
|
12-Feb-2019 |
Yanyan Shen <yanyan.shen@data61.csiro.au> |
hardware_gen: Add GICv3 support.
|
#
21993d8b |
|
28-Jan-2019 |
Simon Shields <simon.shields@data61.csiro.au> |
hardware_gen: generate kernel_devices This change fixes support for instances where we have multiple kernel devices in the same page, or kernel devices which aren't at page-aligned addresses. Also use seL4_UserTop to pick the right address to start putting the kernel device pages.
|
#
b45de785 |
|
04-Feb-2019 |
Simon Shields <simon.shields@data61.csiro.au> |
hardware_gen: use "ranges" property for cpu-addressable buses This removes the need for the buses array in the hardware YAML
|
#
8440f033 |
|
09-Jan-2019 |
Simon Shields <simon.shields@data61.csiro.au> |
hardware_gen: pull interrupts from DTS This adds support for extracting interrupt numbers from DTS to the hardware header file generator, so that the majority of the per-platform interrupt listings can be removed.
|
#
0ac07923 |
|
09-Dec-2018 |
Simon Shields <simon.shields@data61.csiro.au> |
arm: generate memory region tables from dts This change adds infrastructure to automatically generate the physBase macro, the avail_p_regs array, and the dev_p_regs array based on a device tree. Platforms can opt-in to using this by adding DTS files to the KernelDTSList variable. The Python script uses the hardware.yml file to determine which devices in the device tree are of interest to the kernel and should be hidden from userspace and instead mapped into the kernel. Note that currently the kernel mappings are not (yet) generated, however most of the infrastructure needed to make that happen is present.
|