| 02129bfe | 28-Jun-2019 |
Mitchell Horne <[email protected]> |
MFC 348835-348836: Fix global pointer relaxations in the RISC-V kernel
The gp register is intended to used by the linker as another means of performing relaxations, and should point to the small dat
MFC 348835-348836: Fix global pointer relaxations in the RISC-V kernel
The gp register is intended to used by the linker as another means of performing relaxations, and should point to the small data section (.sdata).
Currently gp is being used as the pcpu pointer within the kernel, but the more appropriate choice for this is the tp register, which is unused.
Swap existing usage of gp with tp within the kernel, and set up gp properly at boot with the value of __global_pointer$ for all harts.
Approved by: markj (mentor, implicit)
show more ...
|
| 18fad347 | 04-Jun-2019 |
Ruslan Bukin <[email protected]> |
MFC r347514:
Add support for HiFive Unleashed -- the board with a multi-core RISC-V SoC from SiFive, Inc.
The first core on this SoC (hart 0) is a 64-bit microcontroller.
o Pick a hart to run boot
MFC r347514:
Add support for HiFive Unleashed -- the board with a multi-core RISC-V SoC from SiFive, Inc.
The first core on this SoC (hart 0) is a 64-bit microcontroller.
o Pick a hart to run boot process using hart lottery. This allows to exclude hart 0 from running the boot process. (BBL releases hart 0 after the main harts, so it never wins the lottery). o Renumber CPUs early on boot. Exclude non-MMU cores. Store the original hart ID in struct pcpu. This allows to find out the correct destination for IPIs and remote sfence calls.
Thanks to SiFive, Inc for the board provided.
Sponsored by: DARPA, AFRL
show more ...
|
| b977d819 | 18-Oct-2018 |
Ruslan Bukin <[email protected]> |
Support RISC-V implementations that do not manage the A and D bits (e.g. RocketChip, lowRISC and derivatives).
RISC-V page table entries support A (accessed) and D (dirty) bits. The spec makes hardw
Support RISC-V implementations that do not manage the A and D bits (e.g. RocketChip, lowRISC and derivatives).
RISC-V page table entries support A (accessed) and D (dirty) bits. The spec makes hardware support for these bits optional. Implementations that do not manage these bits in hardware raise page faults for accesses to a valid page without A set and writes to a writable page without D set. Check for these types of faults when handling a page fault and fixup the PTE without calling vm_fault if they occur.
Reviewed by: jhb, markj Approved by: re (gjb) Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D17424
show more ...
|