| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Build and sysctl configuration modes are introduced for QAT SPR
devices to disable safe dc mode. A new QAT driver build option
‘QAT_DISABLE_SAFE_DC_MODE’ is required to build the QAT driver
with code that allows a request to be sent to FW to override the
‘History Buffer’ mitigation. Default QAT driver builds do not
include this ‘QAT_DISABLE_SAFE_DC_MODE’ build option. Even if the
QAT driver was built with code that allows a request to be sent to
FW to override the ‘History Buffer’ mitigation, the QAT driver must
still be configured using sysctl to request an override of the
‘History Buffer’ mitigation if desired. The default QAT driver
configuration option sysctl dev.qat.X.disable_safe_dc_mode does not
allow override of the mitigation. The new sysctl attribute
disable_safe_dc_mode is to be set to 1 for overriding the history
buffer mitigation. Firmware for qat_4xxx is updated for this change.
If this mode is enabled, decompression throughput increases but may
result in a data leak if num_user_processes is more than 1.
This option is to be enabled only if your system is not prone to
user data leaks.
Reviewed by: markj, ziaee
MFC after: 2 weeks
Sponsored by: Intel Corporation
Differential Revision: https://reviews.freebsd.org/D50379
|
|
|
|
|
| |
Fixes: a15f7c96a276 ("nvmft: The in-kernel NVMe over Fabrics controller")
Sponsored by: Chelsio Communications
|
|
|
|
|
|
|
|
|
| |
This makes it possible to share these tables with the nvme(4) driver
in custom kernels that do not include any CAM support, only nvd(4).
Reviewed by: imp
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D50685
|
|
|
|
|
|
| |
Guessed by: alc
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
|
|
|
|
|
|
|
| |
Reviewed by: brooks
Sponsored by: The FreeBSD Foundation
MFC after: 2 weeks
Differential revision: https://reviews.freebsd.org/D50483
|
|
|
|
|
|
|
|
| |
The manual page says this is possible, but it's not. Make it possible.
Reviewed by: olce, kevans
Approved by: kevans (mentor)
Differential Revision: https://reviews.freebsd.org/D50451
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
They are used by the i915 DRM driver in Linux 6.6 (although this change
was only backported with Linux 6.7 DRM drivers).
`struct folio` simply wraps `struct page` for now.
`struct folio_batch` is the same as `struct pagevec` but it works with
`struct folio` instead of `struct page` directly.
Reviewed by: bz, kib, markj
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D48743
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The assumption that MCLBYTES == MJUMPAGESIZE can only happen if pages
are small is incorrect: it can also happen if MCLSHIFT is adjusted to
increase the size of clusters. Restore the ability to have clusters
fill a jumbo page, while still disallowing them from exceeding them.
MFC after: 1 week
Fixes: 840327e5ddf3, 9c3ad5ba932b
Sponsored by: NetApp, Inc.
Sponsored by: Klara, Inc.
Reviewed by: siderop1_netapp.com, kevans, brooks
Differential Revision: https://reviews.freebsd.org/D50242
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Broadcom's MPT-Fusion version 4 driver only works on 64-bit systems, and
has only been tested in amd64 and aarch64, so move it's building to just
those. I didn't notice this in the review and neglected to test those
cases (since I knew it didn't work there, so was a blind spot).
Pointy-hat: imp
Fixes: 9cdd40759617
Sponsored-by: Netflix
Sponsored by: Netflix
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Registered the mpi3mr driver source files in sys/conf/files, enabling it
to be compiled into the base kernel image. This matches the approach
used for existing Broadcom drivers such as mrsas, mps, and mpr.
Add mpi3mr to sys/conf/NOTES.
With this change, the mpi3mr driver will be built as part of the base
kernel, allowing automatic loading during boot when supported hardware
is detected.
Below changes are suggested by chs@:
- Corrected the file name typo mistake in /sys/conf/files from
mpi3mr_app.c.c to mpi3mr_app.c
- Added mpi3mr driver entries in "sys/amd64/conf/GENERIC" and
"sys/i386/conf/GENERIC"
Reviewed by: ssaxena, chs, imp
Differential Revision: https://reviews.freebsd.org/D49754
|
|
|
|
|
|
|
| |
Remove options.arm for OMAP3&4 and the makefile for building FDT
Approved by: manu (mentor)
Differential revision: https://reviews.freebsd.org/D49985
|
|
|
|
|
|
|
|
|
|
|
|
| |
CBO represents a subset of Cache-Management Operations (CMO) spec.
While the CMO spec encompasses all operations on caches, the CBO subset
operates on cache blocks only.
Detect Zicbom, Zicboz and Zicbop extensions and provide cache invalidation
handlers based on Zicbom instructions.
Sponsored by: UKRI
Differential Revision: https://reviews.freebsd.org/D49852
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
mlx5 and mlxfw both depend on LinuxKPI also being compiled into the
kernel. With nooptions COMPAT_LINUXKPI (LinuxKPI only compiled as
module) mlx5 and mlxfw fail to link due to undefined symbols.
Add the missing compat_linuxkpi to the files file.
Sponsored by: The FreeBSD Foundation
MFC after: 3 days
Reviewed by: kib
Differential Revision: https://reviews.freebsd.org/D49737
|
|
|
|
|
|
| |
This fixes LINT build.
Sponsored by: UKRI
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Introduce SPI-mode support which allows an SD card to communicate with a
host system using SPI protocol, as described in the SD Card Specification.
This feature is useful for low-end, FPGA or RISC-V research systems when a
SoC is limited in terms of peripherals available (e.g. lack of a dedicated
MMC controller in hardware). Examples of such systems include Codasip,
lowRISC and CVA6.
Project timeline:
2007: Warner first discussed SPI operational mode in his MMC presentation:
https://people.freebsd.org/~imp/bsdcan2007.pdf
2012: Patrick Kelsey engineered the support.
2025: Ruslan cleaned up, tested on Codasip X730 platform (RISC-V FPGA)
and put the patch to review.
2025: Patrick Kelsey reviewed the patch and aligned with the current MMC
code.
Reviewed by: pkelsey
Sponsored by: UKRI
Differential Revision: https://reviews.freebsd.org/D49248
|
|
|
|
|
|
|
|
|
|
| |
This is a ported version of OpenBSD's work, modulo interrupt
functionality. We won't need GPIO interrupts until we start to get
closer to audio support, and the existing version is sufficient for,
e.g., pcie.
Reviewed by: andrew
Differential Revision: https://reviews.freebsd.org/D49630
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a revival of the old exynos4210 driver, with some additional
bits to configure the apple "s5l" uart (which is actually slightly
different to operate).
This hasn't been tested on anything that would hit the non-s5l path, so
banish it off to the apple/ domain until someone cares to confirm that
none of the other hardware is broken -- it may be that nobody does, but
the complexity isn't too bad: mostly the driver1 construct added to the
uart_bas that we use to avoid having a whole bunch of shims for uart
driver methods and hardcoded references to the cfg structs.
Reviewed by: andrew
Differential Revision: https://reviews.freebsd.org/D48120
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This feature could be used to store the last sent and received TCP
packets for a TCP endpoint. There was no utility to get these packets
from a live system or core.
This functionality is now provided by TCP Black Box Logging, which also
stores additional events. There are tools to get these traces from a
live system or a core.
Therefore remove TCPPCAP to avoid maintaining it, when it is not
used anymore.
Reviewed by: rrs, rscheff, Peter Lei, glebiu
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D49589
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Each one is an arbitrary string associated with a jail. It can be set
upon jail creation or added/modified later:
> jail -cm ... meta="tag1=value1 tag2=value2" env="configuration"
The values are not inherited from the parent jail.
A parent jail can read both metadata parameters, while a child jail can
read only env via security.jail.env sysctl.
The maximum size of meta or env per jail is controlled by the
global security.jail.meta_maxbufsize sysctl. Decreasing it does not
alter the existing meta information.
Each metadata buffer can be handled as a set of key=value\n strings:
> jail -cm ... meta="$(echo k1=v1; echo k2=v2)" env.1=one
> jls meta.k2 env.1 meta.k1
While meta.k1= resets the value to an empty string, the meta.k1 without
the equal sign removes the given key.
Relnotes: yes
Reviewed by: jamie
Tested by: dch
Sponsored by: SkunkWerks GmbH
Differential Revision: https://reviews.freebsd.org/D47668
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This discrepancy previously caused `make makeman` to warn
`riscv/riscv64: ignoring duplicate option EFI`. Make the kernel EFI
option consistent with EFI's per-arch defaults in src.opts.mk to remove
the warning. Note that we do build EFI boot programs for RISC-V.
This is a NFC because the only component gated by the kernel's EFI
option is sys/modules/efirt, which is also inside of a MACHINE_CPUARCH
block that excludes riscv64 anyway.
Reviewed by: mhorne
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D49549
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
MFC after: 1 week
Test Plan: make kernel and boot with ZFS on /
Reviewers: #powerpc
Subscribers: imp, delphij
Differential Revision: https://reviews.freebsd.org/D49538
|
|
|
|
|
|
|
|
| |
It was removed with armv6.
Reviewed by: cognet, imp
Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D49499
|
|
|
|
|
|
|
|
|
| |
They appear to have been used when executing directly from flash,
however are now unused.
Reviewed by: cognet, imp
Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D49498
|
|
|
|
|
|
|
|
|
| |
Armv4, Armv5, and Armv6 support has been removed. Remove the Marvell
SoCs that used these cores.
Reviewed by: cognet, imp
Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D49497
|
|
|
|
|
|
|
| |
Add wlan_gcmp wherever CCMP is defined in kernel configs.
Differential Revision: https://reviews.freebsd.org/D49343
Reviewed by: bz, cy
|
|
|
|
|
| |
Remove the option CPU_ARM1176, as it has been useless since armv6 support
was removed.
|
|
|
|
|
| |
I was wrong and there were still one reference to that file, in files.arm,
so remove it.
|
|
|
|
|
|
|
| |
This is used in in the ROC-RK3328-CC to control a regulator.
Reviewed by: manu
Differential Revision: https://reviews.freebsd.org/D49399
|
|
|
|
| |
Sponsored by: The FreeBSD Foundation
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds initial AES-GCMP crypto support. It registers for both
128 and 256 bit support, although the 256 bit support will not work
without extending the net80211/ioctl keylength.
This is not yet enabled by default; drivers will need to opt-in
to supporting it in either hardware or software.
The AES-GCMP code is BSD licenced code from hostapd.git release 2.11.
Differential Revision: https://reviews.freebsd.org/D49161
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Notable upstream pull request merges:
#17042 ece35e0e6 zpool: allow relative vdev paths
#17046 c43df8bbb vdev_file: unify FreeBSD and Linux implementations
#17064 ee8803adc vdev_file: make FLUSH and TRIM asynchronous
#17066 ecc44c45c include: move zio_priority_t into zfs.h
#17071 ab3db6d15 arc: avoid possible deadlock in arc_read
#17079 682c5f6a0 Fix wrong free function in arc_hdr_decrypt
#17080 701093c44 Don't try to get mg of hole vdev in removal
#17081 d7d274471 Better fill empty metaslabs
#17088 a5fb5c55b spa: fix signature mismatch for spa_boot_init as
eventhandler required
#17089 7f05fface gcm_avx_init: zero the ghash state after hashing the IV
#17122 fe674998b Check portable objset MAC even if local is zeroed
Obtained from: OpenZFS
OpenZFS commit: fe674998bb2d0912660d8aa3f2904b70f57497b0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Using the newly isolated efi_map interface (subr_efi_map.c).
The primary goal is a greater adherence to the EFI firmware's view of
memory, and protection of its reserved regions. This is a better source
of truth than the device tree.
For example, regions marked as RuntimeServicesData must be excluded from
general memory allocations for EFI runtime services to eventually be
enabled on the platform (planned but not currently in progress).
The secondary impact is when loading a new/custom device tree via
loader(8); use of the EFI map ensures that reservations made by firmware
(OpenSBI, u-boot) are maintained.
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D49131
|
|
|
|
|
|
|
|
|
|
| |
Reduce code duplication by switching to the new shared interface.
Practically, the kernel may lose a few pages to (unused) EFI runtime
services.
Reviewed by: andrew
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D49132
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Motivation: I would like to enable the EFI memory map parsing on riscv,
which is preferable to parsing memory regions from the device tree. I
could easily duplicate the functionality, but it can be shared without
much extra effort. There are a couple of similar implementations
existing already.
In this commit, the arm64 version of the code is moved to the new file,
and enabled for this platform. No functional change intended. armv7 and
riscv will follow.
amd64 could be converted to use this interface too, but it doesn't use
the common "physmem" interfaces for managing physical memory, and would
therefore require further tweaks. I am not inclined to make this change
at this time.
Reviewed by: imp, andrew
Discussed with: emaste (copyright attribution)
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D47746
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On all three platforms supported by vmm, we have mostly duplicated code
to manage guest physical memory regions. Deduplicate much of this code
and move it into sys/dev/vmm/vmm_mem.c.
To avoid exporting struct vm outside of machdep vmm.c, add a new
struct vm_mem to contain the memory segment descriptors, and add a
vm_mem() accessor, akin to vm_vmspace(). This way vmm_mem.c can
implement its routines without needing to see the layout of struct vm.
The handling of the per-VM vmspace is also duplicated but will be moved
to vmm_mem.c in a follow-up patch.
On amd64, move the ppt_is_mmio() check out of vm_mem_allocated() to keep
the code MI, as PPT is only implemented on amd64. There are only a
couple of callers, so this is not unreasonable.
No functional change intended.
Reviewed by: jhb
Differential Revision: https://reviews.freebsd.org/D48270
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds read only support for the W25N series of flash parts.
Specifically starting with the W25N01GV, a 128MiB SPI NAND flash.
This doesn't currently support writing or erasing, as this requires
a NAND flash layer that we don't currently have. There are also
plenty of other commands that aren't currently supported - notably
maintaining the on-chip flash translation layer, flash wear statistics,
etc.
But read support is fine enough for now; it at least allows for
reading the boot / config / calibration flash on my ASUS IPQ4018 based
router.
Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D48979
|
|
|
|
|
| |
Reviewed by: jhb
Differential Revision: https://reviews.freebsd.org/D43239
|
|
|
|
|
|
|
|
|
|
| |
This patch refactors the 'sdhci_fdt.c' driver by moving all vendor
specific routines into separate files and making the base 'sdhci_fdt'
driver subclassable. The goal is to make adding new FDT-based drivers
easier and more maintainable. No functional change intended.
Reviewed by: manu, imp
Differential Revision: https://reviews.freebsd.org/D48527
|
|
|
|
|
|
|
|
|
|
| |
If SOURCE_DATE_EPOCH is set and MK_REPRODUCIBLE_BUILD is not set, the
kernel contains SOURCE_DATE_EPOCH, converted to a date+time string.
In the interests of easier reproducibility convert it in UTC.
Reviewed by: imp
Sponsored by: Amazon
Differential Revision: https://reviews.freebsd.org/D48802
|
|
|
|
|
|
|
|
|
|
|
|
| |
This shall be the official transport to connect kernel side RPC clients
to userland side RPC servers. All current kernel side clients that
hijack unix(4) sockets will be converted to it. Some implementation
details are available inside new clnt_nl.c.
The complementary RPC server over netlink(4) coming in next commit.
Reviewed by: rmacklem
Differential Revision: https://reviews.freebsd.org/D48549
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reflects its expanded support for platforms other than the A10.
Functions specific to A10/A13 retain the a10 prefix, but the majority of
names in the driver are changed, e.g. a10_timer_softc becomes
aw_timer_softc.
Reviewed by: manu, ganbold
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D48671
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add support for the Arm Errata Management Firmware Interface (Errata
ABI) [1]. This provides an interface for the kernel to query the status
of an erratum workaround.
Some errata may be mitigated depending on the other hardware in a SoC,
e.g. Cortex-A78 erratum 2712571 is not affected in systems that use
an Arm interconnect. As there may not be a way for the kernel to know
if this is the case then it would have to implement the workaround
even when not needed.
There are other cases where the needed workaround is implemented in
firmware and if not implemented then the kernel may decide to not use
a feature. In this case we can query the firmware before deciding if
we should use a feature or now.
There is a known issue with some firmware implementations of the Errata
ABI that incorrectly returns a status indicating the erratum is fully
mitigated by the firmware, however there is a kernel component needed,
e.g. Neoverse-N1 erratum 1542419. To handle this case we tell the
caller there is some workaround implemented in the firmware and it can
decide how to handle it. If this is fixed in a way we can detect we can
add a new erratum status value to indicate this.
[1] https://developer.arm.com/documentation/den0100/latest/
Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D48055
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This will be used to enable features that are discoverable on boot. It
has support to check if a feature needs to be enabled, and if there is
any errata associated with the feature that mean it shouldn't be
enabled. It can also be used to enable errata workarounds that aren't
associated with a specific feature, e.g. where we need to trap access
to a register in userspace to emulate it.
As some features need to be enabled early, while others can wait there
are two options for when to enable a feature:
* CPU_FEAT_EARLY_BOOT: The feature will be enabled early in the boot.
On the boot CPU this is in initarm, while on secondary CPUs this
is before signalling the CPU has started.
* CPU_FEAT_AFTER_DEV: The feature will be enabled after devices have
attached but before interrupts are enabled.
There are also two scopes for where to enable the feature:
* CPU_FEAT_PER_CPU: The feature will be checked and enabled on all
CPU cores.
* CPU_FEAT_SYSTEM: The feature will only be checked and enabled on a
single core.
It is expected the former will be used for most features, while the
latter is for features that set a global variable to be checked.
Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D47812
|
|
|
|
|
| |
Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D48541
|
|
|
|
|
|
|
|
|
|
|
| |
The RISC-V SBI (Supervisor Binary Interface) RFNC (fence) extension is used
to provide a standardized mechanism for enforcing memory and I/O ordering
between different execution contexts or cores in a system. Specifically, it
allows supervisors (such as an operating system kernel) to request certain
synchronization operations across CPUs or harts (hardware threads) via the
SBI.
Differential Revision: https://reviews.freebsd.org/D48441
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This includes the port of a driver originally from OpenBSD, later
ported to NetBSD by the author:
* The umb(4) kernel driver
* The umbctl(8) companion tool
This driver supports USB network devices implementing the
Mobile Broadband Interface Model (MBIM), often found in modern
(internal) USB models for 4G/LTE mobile broadband access.
It is currently limited to IPv4.
umbctl has to be used to display or set MBIM cellular modem
interface parameters (4G/LTE).
Differential Revision: https://reviews.freebsd.org/D48167
Approved by: adrian, zlei
Sponsored by: FreeBSD Foundation
PR: kern/263783
Submitted by: Pierre Pronchery <khorben@defora.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Statically initialize control family/group. This removes extra startup
code and provides a strong guarantee that they reside at the 0 index of
the respective arrays. Before a genl_register_family() with a higher
SYSINIT order could try to hijack index 0.
- Remove the family_id field completely. Now the family ID as well as
group ID are array indices and there is basically no place for a mistake.
Previous code had a bug where a KPI user could induce an ID mismatch.
- Merge netlink_generic_kpi.c to netlink_generic.c. Both files are small
and now there is more dependency between the control family and the family
allocator. Ok'ed by melifaro@.
Reviewed by: melifaro
Differential Revision: https://reviews.freebsd.org/D48316
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- We can use builtin constants for the size of int and long to simplify
definitions.
- The file should have a .S prefix since we want to run it through the
preprocessor, though apparently this happens anyway with .s...
- Move ticks and ticksl from .data to .bss.
Reported by: jrtc27
Reviewed by: jrtc27, kib, emaste
Fixes: 6b82130e6c9a ("clock: Add a long ticks variable, ticksl")
Differential Revision: https://reviews.freebsd.org/D48420
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
Add the generic USB drivers and FDT glue to the build.
Make small tweaks to the aw_usbphy and aw_musb drivers for the Allwinner
D1.
Reviewed by: manu
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D48126
|