#
18051cc6 |
| 20-Jun-2024 |
Mitchell Horne <mhorne@FreeBSD.org> |
riscv: drop l1pt argument from pmap_bootstrap()
And from struct riscv_bootparams. It is no longer needed.
Reviewed by: br, markj MFC after: 1 month Sponsored by: The FreeBSD Foundation Differential
riscv: drop l1pt argument from pmap_bootstrap()
And from struct riscv_bootparams. It is no longer needed.
Reviewed by: br, markj MFC after: 1 month Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D45470
show more ...
|
#
bfb85754 |
| 20-Jun-2024 |
Mitchell Horne <mhorne@FreeBSD.org> |
riscv: Construct an identity map in locore.S
This is useful for two reasons. Within this change, it allows the early DTB mapping to be eliminated, as we can now just dereference the physical address
riscv: Construct an identity map in locore.S
This is useful for two reasons. Within this change, it allows the early DTB mapping to be eliminated, as we can now just dereference the physical address provided by FW and copy the DTB contents into KVA.
It will also aid in an upcoming change: the larger reworking of page table bootstrapping on this platform.
Reviewed by: markj, jhb MFC after: 1 month Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D45324
show more ...
|
Revision tags: release/14.1.0, release/13.3.0, release/14.0.0 |
|
#
95ee2897 |
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: two-line .h pattern
Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/
|
Revision tags: release/13.2.0, release/12.4.0, release/13.1.0 |
|
#
8a0339e6 |
| 07-Apr-2022 |
Mitchell Horne <mhorne@FreeBSD.org> |
riscv: eliminate physmap global
Since physical memory management is now handled by subr_physmem.c, the need to keep this global array has diminished. It is not referenced outside of early boot-time,
riscv: eliminate physmap global
Since physical memory management is now handled by subr_physmem.c, the need to keep this global array has diminished. It is not referenced outside of early boot-time, and is populated by physmem_avail() in pmap_bootstrap(). Just allocate the array on the stack for the duration of its lifetime.
The check against physmap[0] in initriscv() can be dropped altogether, as there is no consequence for excluding a memory range twice.
Reviewed by: markj MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D34778
show more ...
|
Revision tags: release/12.3.0, release/13.0.0, release/12.2.0 |
|
#
f7d2df2a |
| 24-Jun-2020 |
Mitchell Horne <mhorne@FreeBSD.org> |
Handle load from loader(8)
In locore, we must detect and handle different arguments passed by loader(8) compared to what we recieve when booting directly via SBI firmware. Currently we receive the h
Handle load from loader(8)
In locore, we must detect and handle different arguments passed by loader(8) compared to what we recieve when booting directly via SBI firmware. Currently we receive the hart ID in a0 and a pointer to the device tree blob in a1. loader(8) provides only a pointer to its metadata in a0.
The solution to this is to add an additional entry point, _alt_start. This will be placed first in the .text section, so SBI firmware will enter here, and jump to the common pagetable setup shortly after. Since loader(8) understands our ELF kernel, it will enter at the ELF's entry address, which points to _start. This approach leads to very little guesswork as to which way we booted.
Fix-up initriscv() to parse the loader's metadata, continuing to use fake_preload_metadata() in the SBI direct boot case.
Reviewed by: markj, jrtc27 (asm portion) Differential Revision: https://reviews.freebsd.org/D24912
show more ...
|
Revision tags: release/11.4.0 |
|
#
c98013c0 |
| 08-Jun-2020 |
Alex Richardson <arichardson@FreeBSD.org> |
RISC-V: Check that the DTB doesn't overlap with kernel
This can happen with very large kernels (e.g. ones embedding a root filesystem). The DTB written by OpenSBI/BBL is quite small so this is unlik
RISC-V: Check that the DTB doesn't overlap with kernel
This can happen with very large kernels (e.g. ones embedding a root filesystem). The DTB written by OpenSBI/BBL is quite small so this is unlikely to hit important data, but if it does this can result in very confusing and hard-to-debug crashes. Add a KASSERT() and a verbose print to catch this problem with debug kernels.
While this will not print any output by default if it fails (that would depend on EARLY_PRINTF), at least the kernel now halts reliably instead of randomly crashing.
Reviewed By: mhorne Differential Revision: https://reviews.freebsd.org/D25153
show more ...
|
#
820a3f43 |
| 19-Apr-2020 |
Mitchell Horne <mhorne@FreeBSD.org> |
RISC-V: use physmem to manage physical memory
Replace our hand-rolled functions with the generic ones provided by kern/subr_physmem.c. This greatly simplifies the initialization of physical memory r
RISC-V: use physmem to manage physical memory
Replace our hand-rolled functions with the generic ones provided by kern/subr_physmem.c. This greatly simplifies the initialization of physical memory regions and kernel globals.
Tested by: nick Differential Revision: https://reviews.freebsd.org/D24154
show more ...
|
#
24891abd |
| 07-Apr-2020 |
Mitchell Horne <mhorne@FreeBSD.org> |
RISC-V: copy the DTB to early KVA
The location of the device-tree blob is passed to the kernel by the previous booting stage (i.e. BBL or OpenSBI). Currently, we leave it untouched and mark the 1MB
RISC-V: copy the DTB to early KVA
The location of the device-tree blob is passed to the kernel by the previous booting stage (i.e. BBL or OpenSBI). Currently, we leave it untouched and mark the 1MB of memory holding it as unavailable.
Instead, do what is done by other fake_preload_metadata() routines and copy to the DTB to KVA space. This is more in line with what loader(8) will provide us in the future, and it allows us to reclaim the hole in physical memory.
Reviewed by: markj, kp (earlier version) Differential Revision: https://reviews.freebsd.org/D24152
show more ...
|
Revision tags: release/12.1.0, release/11.3.0, release/12.0.0, release/11.2.0, release/10.4.0 |
|
#
083c8ded |
| 13-Aug-2017 |
Enji Cooper <ngie@FreeBSD.org> |
MFhead@r322451
|
#
0275f9db |
| 11-Aug-2017 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
Merge ^/head r321383 through r322397.
|
#
af19cc59 |
| 10-Aug-2017 |
Ruslan Bukin <br@FreeBSD.org> |
Support for v1.10 (latest) of RISC-V privilege specification.
New version is not compatible on supervisor mode with v1.9.1 (previous version).
Highlights: o BBL (Berkeley Boot Loader) provides
Support for v1.10 (latest) of RISC-V privilege specification.
New version is not compatible on supervisor mode with v1.9.1 (previous version).
Highlights: o BBL (Berkeley Boot Loader) provides no initial page tables anymore allowing us to choose VM, to build page tables manually and enable MMU in S-mode. o SBI interface changed. o GENERIC kernel. FDT is now chosen standard for RISC-V hardware description. DTB is now provided by Spike (golden model simulator). This allows us to introduce GENERIC kernel. However, description for console and timer devices is not provided in DTB, so move these devices temporary to nexus bus. o Supervisor can't access userspace by default. Solution is to set SUM (permit Supervisor User Memory access) bit in sstatus register. o Compressed extension is now turned on by default. o External GCC 7.1 compiler used. o _gp renamed to __global_pointer$ o Compiler -march= string is now in use allowing us to choose required extensions (compressed, FPU, atomic, etc).
Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D11800
show more ...
|
Revision tags: release/11.1.0, release/11.0.1, release/11.0.0, release/10.3.0 |
|
#
b626f5a7 |
| 04-Jan-2016 |
Glen Barber <gjb@FreeBSD.org> |
MFH r289384-r293170
Sponsored by: The FreeBSD Foundation
|
#
9a7cd2e6 |
| 22-Dec-2015 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
MFH @r292599
This includes the pluggable TCP framework and other chnages to the netstack to track for VNET stability.
Security: The FreeBSD Foundation
|
#
8d7e7a98 |
| 17-Dec-2015 |
Ruslan Bukin <br@FreeBSD.org> |
Import RISC-V machine headers. This is a minimal set required to compile kernel and userland.
Reviewed by: andrew, imp, kib Sponsored by: DARPA, AFRL Sponsored by: HEIF5 Differential Revision: https
Import RISC-V machine headers. This is a minimal set required to compile kernel and userland.
Reviewed by: andrew, imp, kib Sponsored by: DARPA, AFRL Sponsored by: HEIF5 Differential Revision: https://reviews.freebsd.org/D4554
show more ...
|