#
896e217a |
| 07-Aug-2021 |
Jessica Clarke <jrtc27@FreeBSD.org> |
fu740_pci_dw: Add SiFive FU740 PCIe controller driver
Reviewed by: mhorne MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D31033
|
#
24042910 |
| 19-May-2021 |
Marcin Wojtas <mw@FreeBSD.org> |
Rename ofwpci.c to ofw_pcib.c
It's a class0 driver that implements some pcib methods and creates a pci bus as its children. The "ofw_pci" name will be used by a new driver that will be a subclass of
Rename ofwpci.c to ofw_pcib.c
It's a class0 driver that implements some pcib methods and creates a pci bus as its children. The "ofw_pci" name will be used by a new driver that will be a subclass of the pci bus. No functional changes intended.
Submitted by: Kornel Duleba <mindal@semihalf.com> Reviewed by: andrew Obtained from: Semihalf Sponsored by: Alstom Group Differential Revision: https://reviews.freebsd.org/D30226
show more ...
|
#
6e1abda2 |
| 27-Apr-2021 |
Brandon Bergren <bdragon@FreeBSD.org> |
riscv: Remove old qemu compatibility code
During early qemu development, the /soc node was marked as compatible with "riscv-virtio-soc" instead of "simple-bus".
This was changed in qemu 53f54508dae
riscv: Remove old qemu compatibility code
During early qemu development, the /soc node was marked as compatible with "riscv-virtio-soc" instead of "simple-bus".
This was changed in qemu 53f54508dae6 in Sep 2018, and predates the baseline required qemu version (5.0) for riscv by a wide margin.
The generic simplebus code handles attachment in all cases nowadays.
Sponsored by: Tag1 Consulting, Inc. Reviewed by: jrtc27, mhorne Differential Revision: https://reviews.freebsd.org/D30011
show more ...
|
#
af366d35 |
| 08-Feb-2021 |
Mateusz Guzik <mjg@FreeBSD.org> |
amd64: implement strlen in assembly
The C variant in libkern performs excessive branching to find the non-zero byte instead of using the bsfq instruction. The same code patched to use it is still sl
amd64: implement strlen in assembly
The C variant in libkern performs excessive branching to find the non-zero byte instead of using the bsfq instruction. The same code patched to use it is still slower than the routine implemented here as the compiler keeps neglecting to perform certain optimizations (like using leaq).
On top of that the routine can is a starting point for copyinstr which operates on words instead of bytes.
Tested with glibc test suite.
Sample results (calls/s):
Haswell: $(perl -e "print 'A' x 3"): stock: 211198039 patched:338626619 asm: 465609618
$(perl -e "print 'A' x 100"): stock: 83151997 patched: 98285919 asm: 120719888
AMD EPYC 7R32: $(perl -e "print 'A' x 3"): stock: 282523617 asm: 491498172
$(perl -e "print 'A' x 100"): stock: 114857172 asm: 112082057
show more ...
|
#
2e58ec01 |
| 19-Nov-2020 |
Mark Johnston <markj@FreeBSD.org> |
Move kern_clocksource.c to sys/conf/files
Sponsored by: The FreeBSD Foundation
|
#
c7aa572c |
| 31-Jul-2020 |
Glen Barber <gjb@FreeBSD.org> |
MFH
Sponsored by: Rubicon Communications, LLC (netgate.com)
|
#
82524003 |
| 26-Jul-2020 |
Jessica Clarke <jrtc27@FreeBSD.org> |
riscv: Include syscon_power device driver in GENERIC kernel config
QEMU's RISC-V virt machine provides syscon-power and syscon-reset devices as the means by which to shutdown and reboot. We also nee
riscv: Include syscon_power device driver in GENERIC kernel config
QEMU's RISC-V virt machine provides syscon-power and syscon-reset devices as the means by which to shutdown and reboot. We also need to ensure that we have attached the syscon_generic device before attaching any syscon_power devices, and so we introduce a new riscv_syscon device akin to aw_syscon added in r327936. Currently the SiFive test finisher is used as the specific implementation of such a syscon device.
Reviewed by: br, brooks (mentor), jhb (mentor) Approved by: br, brooks (mentor), jhb (mentor) Obtained from: CheriBSD Differential Revision: https://reviews.freebsd.org/D25725
show more ...
|
Revision tags: release/11.4.0 |
|
#
852c303b |
| 25-May-2020 |
Conrad Meyer <cem@FreeBSD.org> |
copystr(9): Move to deprecate (attempt #2)
This reapplies logical r360944 and r360946 (reverting r360955), with fixed copystr() stand-in replacement macro. Eventually the goal is to convert consume
copystr(9): Move to deprecate (attempt #2)
This reapplies logical r360944 and r360946 (reverting r360955), with fixed copystr() stand-in replacement macro. Eventually the goal is to convert consumers and kill the macro, but for a first step it helps if the macro is correct.
Prior commit message:
Unlike the other copy*() functions, it does not serve to copy from one address space to another or protect against potential faults. It's just an older incarnation of the now-more-common strlcpy().
Add a coccinelle script to tools/ which can be used to mechanically convert existing instances where replacement with strlcpy is trivial. In the two cases which matched, fuse_vfsops.c and union_vfsops.c, the code was further refactored manually to simplify.
Replace the declaration of copystr() in systm.h with a small macro wrapper around strlcpy (with correction from brooks@ -- thanks).
Remove N redundant MI implementations of copystr. For MIPS, this entailed inlining the assembler copystr into the only consumer, copyinstr, and making the latter a leaf function.
Reviewed by: jhb (earlier version) Discussed with: brooks (thanks!) Differential Revision: https://reviews.freebsd.org/D24672
show more ...
|
#
051fc58c |
| 12-May-2020 |
Conrad Meyer <cem@FreeBSD.org> |
Revert r360944 and r360946 until reported issues can be resolved
Reported by: cy
|
#
9cfae28e |
| 12-May-2020 |
Conrad Meyer <cem@FreeBSD.org> |
Remove deleted files from the build
Fix build break introduced in r360944.
Reported by: kevans
|
#
0e00c709 |
| 11-May-2020 |
John Baldwin <jhb@FreeBSD.org> |
Remove support for DES and Triple DES from OCF.
It no longer has any in-kernel consumers via OCF. smbfs still uses single DES directly, so sys/crypto/des remains for that use case.
Reviewed by: ce
Remove support for DES and Triple DES from OCF.
It no longer has any in-kernel consumers via OCF. smbfs still uses single DES directly, so sys/crypto/des remains for that use case.
Reviewed by: cem Relnotes: yes Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D24773
show more ...
|
#
32075647 |
| 11-May-2020 |
John Baldwin <jhb@FreeBSD.org> |
Remove support for the Blowfish algorithm from OCF.
It no longer has any in-kernel consumers.
Reviewed by: cem Relnotes: yes Sponsored by: Chelsio Communications Differential Revision: https://revi
Remove support for the Blowfish algorithm from OCF.
It no longer has any in-kernel consumers.
Reviewed by: cem Relnotes: yes Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D24772
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 ...
|
#
78c1387f |
| 02-Apr-2020 |
Ian Lepore <ian@FreeBSD.org> |
Add the Cadence GEM ethernet driver to NOTES so that it gets built with LINT kernels. Move the config for it from files.<arch> files into the main config (conf/files), because it works on multiple p
Add the Cadence GEM ethernet driver to NOTES so that it gets built with LINT kernels. Move the config for it from files.<arch> files into the main config (conf/files), because it works on multiple platforms now.
show more ...
|
#
bb1d0df5 |
| 29-Jan-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r357179 through r357269.
|
#
dee4c1d2 |
| 29-Jan-2020 |
Ruslan Bukin <br@FreeBSD.org> |
Add driver for Xilinx XDMA PCIe Bridge found in the U.S. Government Furnished Equipment (GFE) riscv cores.
GFE cores are synthesized on the Xilinx Virtex UltraScale+ FPGA VCU118 Evaluation Kit.
Spo
Add driver for Xilinx XDMA PCIe Bridge found in the U.S. Government Furnished Equipment (GFE) riscv cores.
GFE cores are synthesized on the Xilinx Virtex UltraScale+ FPGA VCU118 Evaluation Kit.
Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D23337
show more ...
|
#
051669e8 |
| 25-Jan-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r356931 through r357118.
|
#
7106b618 |
| 24-Jan-2020 |
Ruslan Bukin <br@FreeBSD.org> |
Include the PCI stack to the riscv GENERIC kernel.
It will be used by an upcoming PCI root complex driver.
Sponsored by: DARPA, AFRL
|
#
ff33210c |
| 15-Nov-2019 |
Mitchell Horne <mhorne@FreeBSD.org> |
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. Th
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
show more ...
|
Revision tags: release/12.1.0 |
|
#
d0c0856f |
| 10-Oct-2019 |
Andriy Gapon <avg@FreeBSD.org> |
emulate illumos membar_producer with atomic_thread_fence_rel
membar_producer is supposed to be a store-store barrier. Also, in the code that FreeBSD has ported from illumos membar_producer is used o
emulate illumos membar_producer with atomic_thread_fence_rel
membar_producer is supposed to be a store-store barrier. Also, in the code that FreeBSD has ported from illumos membar_producer is used only with regular stores to regular memory (with respect to caching).
We do not have an MI primitive for the store-store barrier, so atomic_thread_fence_rel is the closest we have as it provides (load | store) -> store barrier.
Previously, membar_producer was an empty function call on all 32-bit arm-s, 32-bit powerpc, riscv and all mips variants. I think that it was inadequate. On other platforms, such as amd64, arm64, i386, powerpc64, sparc64, membar_producer was implemented using stronger primitives than required for a store-store barrier with respect to regular memory access. For example, it used sfence on amd64 and lock-ed nop in i386 (despite TSO). On powerpc64 we now use recommended lwsync instead of eieio. On sparc64 FreeBSD uses TSO mode. On arm64/aarch64 we now use dmb sy instead of dmb ish. Not sure if this is an improvement, actually.
After this change we can drop opensolaris_atomic.S for aarch64, amd64, powerpc64 and sparc64 as all required atomic operations have either direct or light-weight mapping to FreeBSD native atomic operations.
Discussed with: kib MFC after: 4 weeks
show more ...
|
Revision tags: release/11.3.0 |
|
#
7648bc9f |
| 13-May-2019 |
Alan Somers <asomers@FreeBSD.org> |
MFHead @347527
Sponsored by: The FreeBSD Foundation
|
#
fcc3a0f6 |
| 08-May-2019 |
Ruslan Bukin <br@FreeBSD.org> |
Connect Xilinx AXI drivers and Cadence Ethernet MAC to the RISC-V build.
Sponsored by: DARPA, AFRL
|
#
75cf8837 |
| 07-May-2019 |
Ruslan Bukin <br@FreeBSD.org> |
Provide a template for busdma code for RISC-V.
RISC-V ISA specifies no cache management instructions so leave cache operations in cpufunc.h as no-op for now.
Note some new hardware comes with their
Provide a template for busdma code for RISC-V.
RISC-V ISA specifies no cache management instructions so leave cache operations in cpufunc.h as no-op for now.
Note some new hardware comes with their own memory-mapped cache management controller.
Tested on HiFive Unleashed board with cgem(4).
Reviewed by: markj Obtained from: arm64 Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D20126
show more ...
|
Revision tags: release/12.0.0 |
|
#
c6879c6c |
| 23-Oct-2018 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r339015 through r339669.
|
#
053ec050 |
| 12-Oct-2018 |
Ruslan Bukin <br@FreeBSD.org> |
Add support for the UART device found in lowRISC system-on-a-chip.
The only source of documentation for this device is verilog, so driver is minimalistic.
Reviewed by: Dr Jonathan Kimmitt <jrrk2@ca
Add support for the UART device found in lowRISC system-on-a-chip.
The only source of documentation for this device is verilog, so driver is minimalistic.
Reviewed by: Dr Jonathan Kimmitt <jrrk2@cam.ac.uk> Approved by: re (kib) Sponsored by: DARPA, AFRL
show more ...
|