| #
def7999c
|
| 08-Oct-2024 |
Mitchell Horne <mhorne@FreeBSD.org> |
riscv: enable cpufreq_dt driver
Implement the small amount of MD code required; copied from arm/arm64.
One tweak is made to cpufreq_dt itself: if the opp-shared property is missing, but there is on
riscv: enable cpufreq_dt driver
Implement the small amount of MD code required; copied from arm/arm64.
One tweak is made to cpufreq_dt itself: if the opp-shared property is missing, but there is only one CPU, then we can still attach. This is relevant for the single-core Allwinner D1.
Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D48124
show more ...
|
| #
2ff63af9
|
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line .h pattern
Remove /^\s*\*+\s*\$FreeBSD\$.*$\n/
|
| #
1083a8cd
|
| 24-Jul-2023 |
Mark Johnston <markj@FreeBSD.org> |
pcpu: Remove unused definitions of ALT_STACK_SIZE
This was added originally for the sparc64 port and apparently copied to other platforms. No functional change intended.
MFC after: 1 week
|
| #
4fffc56c
|
| 04-Oct-2021 |
Mitchell Horne <mhorne@FreeBSD.org> |
riscv: implement db_show_mdpcpu()
This prints the machine-dependent members of struct pcpu when executing the 'show pcpu' or 'show all pcpu' ddb(4) commands.
MFC after: 3 days
|
| #
d22883d7
|
| 10-Mar-2021 |
Jason A. Harmening <jah@FreeBSD.org> |
Remove PCPU_INC
e4b8deb22227 removed the last in-tree uses of PCPU_INC(). Its potential benefit is also practically nonexistent. Non-x86 platforms already implement it as PCPU_ADD(..., 1), and acc
Remove PCPU_INC
e4b8deb22227 removed the last in-tree uses of PCPU_INC(). Its potential benefit is also practically nonexistent. Non-x86 platforms already implement it as PCPU_ADD(..., 1), and according to [0] there are no recent x86 processors for which the 'inc' instruction provides a performance benefit over the equivalent memory-operand form of the 'add' instruction. The only remaining benefit of 'inc' is smaller instruction size, which in this case is inconsequential given the limited number of per-CPU data consumers.
[0]: https://www.agner.org/optimize/instruction_tables.pdf
Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D29308
show more ...
|
| #
e2515283
|
| 27-Aug-2020 |
Glen Barber <gjb@FreeBSD.org> |
MFH
Sponsored by: Rubicon Communications, LLC (netgate.com)
|
| #
de6fc2e3
|
| 15-Aug-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r364082 through r364250.
|
| #
90699f2a
|
| 12-Aug-2020 |
John Baldwin <jhb@FreeBSD.org> |
Correct padding length for RISC-V PCPU data.
There was an additional 7 bytes of compiler-inserted padding at the end of the structure visible via 'ptype /o' in gdb.
Reviewed by: mhorne Obtained fro
Correct padding length for RISC-V PCPU data.
There was an additional 7 bytes of compiler-inserted padding at the end of the structure visible via 'ptype /o' in gdb.
Reviewed by: mhorne Obtained from: CheriBSD Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D25867
show more ...
|
| #
44e86fbd
|
| 13-Feb-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r357662 through r357854.
|
| #
3acb6572
|
| 12-Feb-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
Store offset into zpcpu allocations in the per-cpu area.
This shorten zpcpu_get and allows more optimizations.
Reviewed by: jeff Differential Revision: https://reviews.freebsd.org/D23570
|
| #
e532a999
|
| 20-Jun-2019 |
Alan Somers <asomers@FreeBSD.org> |
MFHead @349234
Sponsored by: The FreeBSD Foundation
|
| #
6ae48dd8
|
| 09-Jun-2019 |
Mitchell Horne <mhorne@FreeBSD.org> |
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).
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.
Additionally, remove some cases of accessing tp from the PCB, as it is not part of the per-thread state. The user's tp and gp should be tracked only through the trapframe.
Reviewed by: markj, jhb Approved by: markj (mentor) MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D19893
show more ...
|
| #
7648bc9f
|
| 13-May-2019 |
Alan Somers <asomers@FreeBSD.org> |
MFHead @347527
Sponsored by: The FreeBSD Foundation
|
| #
b803d0b7
|
| 12-May-2019 |
Ruslan Bukin <br@FreeBSD.org> |
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
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.
Reviewed by: markj Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D20225
show more ...
|
| #
e196d237
|
| 07-Apr-2019 |
Mitchell Horne <mhorne@FreeBSD.org> |
RISC-V: initialize pcpu slightly earlier
In certain scenarios, it is possible for PCPU data to be accessed before it has been initialized (e.g. during printf if the kernel was built with the TSLOG o
RISC-V: initialize pcpu slightly earlier
In certain scenarios, it is possible for PCPU data to be accessed before it has been initialized (e.g. during printf if the kernel was built with the TSLOG option).
Initialize the PCPU pointer for hart 0 at the beginning of initriscv() rather than near the end.
Reviewed by: markj Approved by: markj (mentor) Differential Revision: https://reviews.freebsd.org/D19726
show more ...
|
| #
30e009fc
|
| 19-Feb-2019 |
Enji Cooper <ngie@FreeBSD.org> |
MFhead@r344270
|
| #
c981cbbd
|
| 15-Feb-2019 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r343956 through r344177.
|
| #
35c91b0c
|
| 13-Feb-2019 |
Mark Johnston <markj@FreeBSD.org> |
Implement per-CPU pmap activation tracking for RISC-V.
This reduces the overhead of TLB invalidations by ensuring that we only interrupt CPUs which are using the given pmap. Tracking is performed i
Implement per-CPU pmap activation tracking for RISC-V.
This reduces the overhead of TLB invalidations by ensuring that we only interrupt CPUs which are using the given pmap. Tracking is performed in pmap_activate(), which gets called during context switches: from cpu_throw(), if a thread is exiting or an AP is starting, or cpu_switch() for a regular context switch.
For now, pmap_sync_icache() still must interrupt all CPUs.
Reviewed by: kib (earlier version), jhb Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D18874
show more ...
|
| #
def7999c
|
| 08-Oct-2024 |
Mitchell Horne <mhorne@FreeBSD.org> |
riscv: enable cpufreq_dt driver
Implement the small amount of MD code required; copied from arm/arm64.
One tweak is made to cpufreq_dt itself: if the opp-shared property is missing, but there is on
riscv: enable cpufreq_dt driver
Implement the small amount of MD code required; copied from arm/arm64.
One tweak is made to cpufreq_dt itself: if the opp-shared property is missing, but there is only one CPU, then we can still attach. This is relevant for the single-core Allwinner D1.
Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D48124
show more ...
|
| #
2ff63af9
|
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line .h pattern
Remove /^\s*\*+\s*\$FreeBSD\$.*$\n/
|
| #
1083a8cd
|
| 24-Jul-2023 |
Mark Johnston <markj@FreeBSD.org> |
pcpu: Remove unused definitions of ALT_STACK_SIZE
This was added originally for the sparc64 port and apparently copied to other platforms. No functional change intended.
MFC after: 1 week
|
| #
4fffc56c
|
| 04-Oct-2021 |
Mitchell Horne <mhorne@FreeBSD.org> |
riscv: implement db_show_mdpcpu()
This prints the machine-dependent members of struct pcpu when executing the 'show pcpu' or 'show all pcpu' ddb(4) commands.
MFC after: 3 days
|
| #
d22883d7
|
| 10-Mar-2021 |
Jason A. Harmening <jah@FreeBSD.org> |
Remove PCPU_INC
e4b8deb22227 removed the last in-tree uses of PCPU_INC(). Its potential benefit is also practically nonexistent. Non-x86 platforms already implement it as PCPU_ADD(..., 1), and acc
Remove PCPU_INC
e4b8deb22227 removed the last in-tree uses of PCPU_INC(). Its potential benefit is also practically nonexistent. Non-x86 platforms already implement it as PCPU_ADD(..., 1), and according to [0] there are no recent x86 processors for which the 'inc' instruction provides a performance benefit over the equivalent memory-operand form of the 'add' instruction. The only remaining benefit of 'inc' is smaller instruction size, which in this case is inconsequential given the limited number of per-CPU data consumers.
[0]: https://www.agner.org/optimize/instruction_tables.pdf
Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D29308
show more ...
|
| #
e2515283
|
| 27-Aug-2020 |
Glen Barber <gjb@FreeBSD.org> |
MFH
Sponsored by: Rubicon Communications, LLC (netgate.com)
|
| #
de6fc2e3
|
| 15-Aug-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r364082 through r364250.
|