#
0d355519 |
|
18-Nov-2020 |
Curtis Millar <curtis.millar@data61.csiro.au> |
riscv: Implement benchmark log buffer Can now perform benchmarks on the kernel using the log buffer to trace kernel behavior. Signed-off-by: Curtis Millar <curtis.millar@data61.csiro.au>
|
#
e4b5099c |
|
09-Sep-2020 |
Curtis Millar <curtis.millar@data61.csiro.au> |
risc-v: Implement benchmark timestamp Implements timestamp function used by benchmark logging utilities. Signed-off-by: Curtis Millar <curtis.millar@data61.csiro.au> Signed-off-by: Curtis Millar <curtis@curtism.me>
|
#
6fbee8ba |
|
21-May-2020 |
Curtis Millar <curtis.millar@data61.csiro.au> |
Invert address mapping diagrams This makes all daigrams have their first address at the end of the diagram and their last address at the start of the diagram. Signed-off-by: Curtis Millar <curtis.millar@data61.csiro.au>
|
#
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>
|
#
512a0200 |
|
19-Mar-2020 |
Qian Ge <qian.ge@data61.csiro.au> |
replacing all ifndef with pargma once All the kernel header files now use pargma once rather than the ifndef, as the pre-processed C files do not change while header files are protected with pargma once. This will also solve any naming issues caused by ifndef.
|
#
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.
|
#
1c4b6424 |
|
16-Jul-2019 |
Curtis Millar <curtis.millar@data61.csiro.au> |
riscv: Fix rollover when reading time in 32-bit If the time is being read in 32-bit mode it is read in two operations between which the time can change. If the time causes the low bits to roll over to 0 and the high bits to increment between reading the low and high bits an incorrect time will be returned. A check is added to ensure that an accurate time is returned.
|
#
557f8d4f |
|
16-Jul-2019 |
Curtis Millar <curtis.millar@data61.csiro.au> |
riscv: Relocate read time to header Move the RISCV function to read the current time to the header file so that it can be inlined for MCS.
|
#
8b4ed994 |
|
23-Jun-2019 |
Siwei Zhuang <siwei.zhuang@data61.csiro.au> |
RISCV: Add Hifive unleashed platform This change adds support for Hifive unleashed board. It also removes the outdated hifive suport from the spike platform.
|
#
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.
|
#
b7d4bc16 |
|
10-Apr-2018 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
riscv: remove trailing whitespace line
|
#
f68779d7 |
|
10-Apr-2018 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
riscv: move LOAD to hardware.h in mode removes the #ifdef and uses the dir structure instead.
|
#
83ba0847 |
|
20-Feb-2018 |
Hesham Almatary <hesham.almatary@unsw.edu.au> |
[SELFOUR-1156] RISC-V Port Experimental release that supports both RV32 and RV64
|