freebsd-dev/sys/conf
Mitchell Horne ff33210c04 RISC-V: add support for SBI spec v0.2
The Supervisor Binary Interface (SBI) specification v0.2 is a backwards
incompatible update to the SBI call interface for kernels running in
supervisor mode. The goal of this update was to make it easier for new
and optional functionality to be added to the SBI.

SBI functions are now called by passing an "extension ID" and a
"function ID" which are passed in a7 and a6 respectively. SBI calls
will also return an error and value in the following struct:

struct sbi_ret {
    long error;
    long value;
}

This version introduces several new functions under the "base"
extension. It is expected that all SBI implementations >= 0.2 will
support this base set of functions, as they implement some essential
services such as obtaining the SBI version, CPU implementation info, and
extension probing.

Existing SBI functions have been designated as "legacy". For the time
being they will remain implemented, but it is expected that in the
future their functionality will be duplicated or replaced by new SBI
extensions. Each legacy function has been assigned its own extension ID,
and for now we simply probe and assert for their existence.

Compatibility with legacy SBI implementations (such as BBL) is
maintained by checking the output of sbi_get_spec_version(). This
function is guaranteed to succeed by the new spec, but will return an
error in legacy implementations. We use this as an indicator of whether
or not we can rely on the new SBI base extensions.

For further info on the Supervisor Binary Interface, see:
https://github.com/riscv/riscv-sbi-doc/blob/master/riscv-sbi.adoc

Reviewed by:	kp, jhb
MFC after:	3 weeks
Differential Revision:	https://reviews.freebsd.org/D22326
2019-11-15 03:34:27 +00:00
..
config.mk Add comments about KERN_OPT here. 2019-07-19 17:48:29 +00:00
dtb.build.mk fdt: Fix installation of aarch64 dtb 2019-05-02 16:56:03 +00:00
dtb.mk
files Add t4_keyctx.c to sys/conf/files for the non-module build. 2019-11-13 17:06:10 +00:00
files.amd64 Add the pvscsi driver to the tree. 2019-11-14 23:31:20 +00:00
files.arm Compile in arm/unwind.c if options STACK is in effect; the new arm stack(9) 2019-11-14 17:04:19 +00:00
files.arm64 Boot arm64 kernel using booti command from U-boot. 2019-11-14 21:58:40 +00:00
files.i386 Add the pvscsi driver to the tree. 2019-11-14 23:31:20 +00:00
files.mips Add support for BERI statcounters. 2019-09-18 16:13:50 +00:00
files.powerpc powerpc: Add AmigaOne platform, a subclass of MPC85xx 2019-10-16 00:38:50 +00:00
files.riscv RISC-V: add support for SBI spec v0.2 2019-11-15 03:34:27 +00:00
files.sparc64 emulate illumos membar_producer with atomic_thread_fence_rel 2019-10-10 07:39:41 +00:00
files.x86 Move all the sys/dev/[a-j]* that are common to files.x86 2019-10-30 19:53:46 +00:00
kern.mk Honor CWARNFLAGS.clang/gcc in the kernel build 2019-09-22 18:27:57 +00:00
kern.opts.mk Disable REPRODUCIBLE_BUILD for kernel builds. 2019-09-28 14:14:42 +00:00
kern.post.mk Back out r351799 2019-09-04 14:32:04 +00:00
kern.pre.mk r354253 did miss the updates to sys/conf/files and sys/conf/kern.pre.mk 2019-11-02 20:46:45 +00:00
kmod_syms_prefix.awk
kmod_syms.awk
kmod.mk [PowerPC64] Fix broken kernel modules due to LLD 9+ TOC optimization 2019-11-14 19:56:42 +00:00
ldscript.amd64 Tighten mapping protections on preloaded files on amd64. 2019-10-18 14:05:13 +00:00
ldscript.arm Expose the kernel's build-ID through sysctl 2019-06-04 13:07:10 +00:00
ldscript.arm64 Expose the kernel's build-ID through sysctl 2019-06-04 13:07:10 +00:00
ldscript.i386 Expose the kernel's build-ID through sysctl 2019-06-04 13:07:10 +00:00
ldscript.kmod.amd64 Add an ldscript for amd64 kernel modules. 2019-10-17 21:39:23 +00:00
ldscript.kmod.i386 Formalize the use of linker scripts for kernel modules. 2019-10-16 22:19:56 +00:00
ldscript.mips Expose the kernel's build-ID through sysctl 2019-06-04 13:07:10 +00:00
ldscript.mips.cfe Expose the kernel's build-ID through sysctl 2019-06-04 13:07:10 +00:00
ldscript.mips.mips64 Expose the kernel's build-ID through sysctl 2019-06-04 13:07:10 +00:00
ldscript.mips.octeon1 Expose the kernel's build-ID through sysctl 2019-06-04 13:07:10 +00:00
ldscript.powerpc powerpc: Kernel fixes for ppc32 and powerpcspe w/ lld 2019-11-14 04:34:17 +00:00
ldscript.powerpc64 Expose the kernel's build-ID through sysctl 2019-06-04 13:07:10 +00:00
ldscript.powerpcspe powerpc: Kernel fixes for ppc32 and powerpcspe w/ lld 2019-11-14 04:34:17 +00:00
ldscript.riscv riscv: Ensure that BSS is 8-byte aligned 2019-09-09 15:57:24 +00:00
ldscript.sparc64 Expose the kernel's build-ID through sysctl 2019-06-04 13:07:10 +00:00
Makefile.amd64
Makefile.arm Remove support for kernel.tramp and kernel.tramp.gz 2019-07-27 17:24:19 +00:00
Makefile.arm64 Boot arm64 kernel using booti command from U-boot. 2019-11-14 21:58:40 +00:00
Makefile.i386
Makefile.mips Update MIPS kernel builds to work with mips-gcc. 2019-10-15 17:11:42 +00:00
Makefile.powerpc Add support for building Book-E kernels with clang/lld. 2019-11-02 21:15:56 +00:00
Makefile.riscv
Makefile.sparc64
makeLINT.mk Clean LINT* kernel configurations for arm* 2019-09-24 01:56:27 +00:00
makeLINT.sed
newvers.sh newvers: append commit count to uname version string 2019-08-01 14:13:04 +00:00
NOTES There's nothing architecture specific in "options STATS"; move it from 2019-10-30 10:16:28 +00:00
options Implement NetGDB(4) 2019-10-17 21:33:01 +00:00
options.amd64
options.arm
options.arm64 Boot arm64 kernel using booti command from U-boot. 2019-11-14 21:58:40 +00:00
options.i386
options.mips
options.powerpc powerpc: Add AmigaOne platform, a subclass of MPC85xx 2019-10-16 00:38:50 +00:00
options.riscv
options.sparc64
systags.sh
WITHOUT_SOURCELESS
WITHOUT_SOURCELESS_HOST
WITHOUT_SOURCELESS_UCODE