Find a file
Ruslan Bukin 03b330e191 riscv: add stage 2 translation to pmap.
Add basic stage 2 translation support (guest-physical to host-physical).

RISC-V hypervisor spec[1] introduces new translation schemes: Sv32x4,
Sv39x4, Sv48x4 and Sv57x4.
In each case, the size of the incoming address is widened by 2 bits (e.g.
Sv39 becomes 41-bit system).
To accommodate the 2 extra bits, the root page table (only) is expanded
by a factor of four to be 16 KiB instead of the usual 4 KiB. The rest of
page table system (including PTE format) is similar.
This gives us 4x of memory space in each scheme, but it does not make sense
to support all that memory for now.
Allocate required amount of pages for the top directory in case of stage 2,
but leave it unused.

1. https://github.com/riscv/riscv-isa-manual/blob/main/src/hypervisor.adoc

Reviewed by:	mhorne
Sponsored by:	UKRI
Differential Revision:	https://reviews.freebsd.org/D45481
2024-06-05 14:36:57 +01:00
.cirrus-ci
.github
bin csh: Remove hardlink /.cshrc 2024-05-29 09:56:58 +02:00
cddl dtrace tests: Regenerate makefiles after commit d0b2dbfa0e 2024-06-01 11:16:39 -04:00
contrib pf: convert DIOCNATLOOK to netlink 2024-06-04 14:59:58 +02:00
crypto posix_async: FreeBSD also defines {make|swap|get|set}context 2024-05-31 10:53:39 -06:00
etc
gnu
include stddef.h/stdlib.h: Remove unused rune_t 2024-06-02 19:41:22 +01:00
kerberos5
lib radlib: fix a memory leak in is_valid_request 2024-06-04 19:40:55 -07:00
libexec nuageinit: fix authorized_key test 2024-06-05 11:00:54 +02:00
release Revert "release/Makefile.vm: Use qemu-user-static-devel" 2024-06-02 07:07:52 -07:00
rescue
sbin pf: convert DIOCSETDEBUG to netlink 2024-06-04 14:59:59 +02:00
secure
share build.7: update cross-compile example 2024-06-04 15:27:50 -03:00
stand loader: Fix G overflowing for G(4) on 32-bit builds 2024-05-29 08:37:17 -06:00
sys riscv: add stage 2 translation to pmap. 2024-06-05 14:36:57 +01:00
targets
tests vnet tests: check for if_bridge.ko 2024-06-04 22:16:56 +02:00
tools git-arc.1: list width typo 2024-06-04 14:46:46 -03:00
usr.bin MFV: xz 5.6.2. 2024-06-03 18:14:43 -07:00
usr.sbin bhyve: Add a stub VM_EXITCODE_REG_EMUL handler 2024-06-04 15:06:42 -04:00
.arcconfig
.arclint
.cirrus.yml
.clang-format
.git-blame-ignore-revs
.gitattributes
.gitignore
.mailmap
CONTRIBUTING.md
COPYRIGHT
LOCKS
MAINTAINERS
Makefile
Makefile.inc1 Makefile.inc1: Allow showconfig and test-system-* if (X)CC is GCC 2024-06-03 00:16:58 +01:00
Makefile.libcompat
Makefile.sys.inc
ObsoleteFiles.inc ObsoleteFiles.inc: Add missed riscv64 file for LLVM 17 2024-06-04 18:07:56 +01:00
README.md
RELNOTES
UPDATING

FreeBSD Source:

This is the top level of the FreeBSD source directory.

FreeBSD is an operating system used to power modern servers, desktops, and embedded platforms. A large community has continually developed it for more than thirty years. Its advanced networking, security, and storage features have made FreeBSD the platform of choice for many of the busiest web sites and most pervasive embedded networking and storage devices.

For copyright information, please see the file COPYRIGHT in this directory. Additional copyright information also exists for some sources in this tree - please see the specific source directories for more information.

The Makefile in this directory supports a number of targets for building components (or all) of the FreeBSD source tree. See build(7), config(8), FreeBSD handbook on building userland, and Handbook for kernels for more information, including setting make(1) variables.

For information on the CPU architectures and platforms supported by FreeBSD, see the FreeBSD website's Platforms page.

For official FreeBSD bootable images, see the release page.

Source Roadmap:

Directory Description
bin System/user commands.
cddl Various commands and libraries under the Common Development and Distribution License.
contrib Packages contributed by 3rd parties.
crypto Cryptography stuff (see crypto/README).
etc Template files for /etc.
gnu Commands and libraries under the GNU General Public License (GPL) or Lesser General Public License (LGPL). Please see gnu/COPYING and gnu/COPYING.LIB for more information.
include System include files.
kerberos5 Kerberos5 (Heimdal) package.
lib System libraries.
libexec System daemons.
release Release building Makefile & associated tools.
rescue Build system for statically linked /rescue utilities.
sbin System commands.
secure Cryptographic libraries and commands.
share Shared resources.
stand Boot loader sources.
sys Kernel sources (see sys/README.md).
targets Support for experimental DIRDEPS_BUILD
tests Regression tests which can be run by Kyua. See tests/README for additional information.
tools Utilities for regression testing and miscellaneous tasks.
usr.bin User commands.
usr.sbin System administration commands.

For information on synchronizing your source tree with one or more of the FreeBSD Project's development branches, please see FreeBSD Handbook.