/[base]/head/sys/conf/files
ViewVC logotype

Log of /head/sys/conf/files

Parent Directory Parent Directory | Revision Log Revision Log


Links to HEAD: (view) (download) (annotate)
Sticky Revision:


Revision 368559 - (view) (download) (annotate) - [select for diffs]
Modified Fri Dec 11 21:40:38 2020 UTC (3 years, 6 months ago) by brooks
File length: 240157 byte(s)
Diff to previous 368443
hme(4): Remove as previous announced

The hme (Happy Meal Ethernet) driver was the onboard NIC in most
supported sparc64 platforms. A few PCI NICs do exist, but we have seen
no evidence of use on non-sparc systems.

Reviewed by:	imp, emaste, bcr
Sponsored by:	DARPA


Revision 368443 - (view) (download) (annotate) - [select for diffs]
Modified Tue Dec 8 15:09:42 2020 UTC (3 years, 6 months ago) by n_hibma
File length: 240227 byte(s)
Diff to previous 368369
New Netgraph module ng_macfilter:

Macfilter to route packets through different hooks based on sender MAC address.

Based on ng_macfilter written by Pekka Nikander

Sponsered by Retina b.v.

Reviewed by:	afedorov
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D27268


Revision 368369 - (view) (download) (annotate) - [select for diffs]
Modified Sat Dec 5 12:08:37 2020 UTC (3 years, 6 months ago) by mmel
File length: 240174 byte(s)
Diff to previous 368349
Add basic support for Freescale LX2160A SoC.
All peripherals but the network processor are supported.


Revision 368349 - (view) (download) (annotate) - [select for diffs]
Modified Fri Dec 4 20:54:20 2020 UTC (3 years, 6 months ago) by mhorne
File length: 240121 byte(s)
Diff to previous 368168
ossl: split out x86 bits to x86/ossl_cpuid.c

Make room for adding arm64 support to this driver by moving the
x86-specific feature parsing to a separate file.

Reviewed by:	jhb
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D27388


Revision 368168 - (view) (download) (annotate) - [select for diffs]
Modified Mon Nov 30 08:22:40 2020 UTC (3 years, 7 months ago) by tsoome
File length: 239957 byte(s)
Diff to previous 367998
Add VT driver for VBE framebuffer device

Implement vt_vbefb to support Vesa Bios Extensions (VBE) framebuffer with VT.
vt_vbefb is built based on vt_efifb and is assuming similar data for
initialization, use MODINFOMD_VBE_FB to identify the structure vbe_fb
in kernel metadata.

struct vbe_fb, is populated by boot loader, and is passed to kernel via
metadata payload.

Differential Revision:	https://reviews.freebsd.org/D27373


Revision 367998 - (view) (download) (annotate) - [select for diffs]
Modified Tue Nov 24 21:28:44 2020 UTC (3 years, 7 months ago) by jkim
File length: 239914 byte(s)
Diff to previous 367827
Port rtsx(4) driver for Realtek SD card reader from OpenBSD.

This driver provides support for Realtek PCI SD card readers.  It attaches
mmc(4) bus on card insertion and detaches it on card removal.  It has been
tested with RTS5209, RTS5227, RTS5229, RTS522A, RTS525A and RTL8411B.  It
should also work with RTS5249, RTL8402 and RTL8411.

PR:			204521
Submitted by:		Henri Hennebert (hlh at restart dot be)
Reviewed by:		imp, jkim
Differential Revision:	https://reviews.freebsd.org/D26435


Revision 367827 - (view) (download) (annotate) - [select for diffs]
Modified Thu Nov 19 02:53:29 2020 UTC (3 years, 7 months ago) by markj
File length: 239876 byte(s)
Diff to previous 367521
Move kern_clocksource.c to sys/conf/files

Sponsored by:	The FreeBSD Foundation


Revision 367521 - (view) (download) (annotate) - [select for diffs]
Modified Mon Nov 9 13:20:14 2020 UTC (3 years, 7 months ago) by manu
File length: 239842 byte(s)
Diff to previous 367484
LinuxKPI: Implement ACPI bits required by drm-kmod in base system

It includes:

ACPI_HANDLE() implementation.
AC and VIDEO ACPI events notification support.
Replacement of hand-rolled GPLed _DSM method evaluation helpers
with in-base ones.

Submitted by:	wulf
Differential Revision:	https://reviews.freebsd.org/D26603


Revision 367484 - (view) (download) (annotate) - [select for diffs]
Modified Sun Nov 8 11:12:00 2020 UTC (3 years, 7 months ago) by melifaro
File length: 239739 byte(s)
Diff to previous 367428
Move all ifaddr route creation business logic to net/route/route_ifaddr.c

Differential Revision:	https://reviews.freebsd.org/D26318


Revision 367428 - (view) (download) (annotate) - [select for diffs]
Modified Fri Nov 6 19:04:20 2020 UTC (3 years, 7 months ago) by np
File length: 239704 byte(s)
Diff to previous 367004
cxgbe(4):  Update firmwares to 1.25.0.40.

This fixes a potential crash in firmware 1.25.0.0 on the passive open
side during TOE operation.

Obtained from:	Chelsio Communications
MFC after:	1 week
Sponsored by:	Chelsio Communications


Revision 367004 - (view) (download) (annotate) - [select for diffs]
Modified Sat Oct 24 15:38:04 2020 UTC (3 years, 8 months ago) by kevans
File length: 239701 byte(s)
Diff to previous 366934
backlight(9): compile with COMPAT_LINUXKPI as well

This would be more accurately expressed as COMPAT_LINUXKPI implying or
requiring backlight, but config(8) doesn't really have a way to express
that. This fixes the build with COMPAT_LINUXKPI specified in one's kernel
config.


Revision 366934 - (view) (download) (annotate) - [select for diffs]
Modified Thu Oct 22 10:29:27 2020 UTC (3 years, 8 months ago) by hselasky
File length: 239665 byte(s)
Diff to previous 366930
Fix for monotolithic kernel builds using device lagg(4).

Differential Revision:	https://reviews.freebsd.org/D26254
Reviewed by:		melifaro@
MFC after:		1 week
Sponsored by:		Mellanox Technologies // NVIDIA Networking


Revision 366930 - (view) (download) (annotate) - [select for diffs]
Modified Thu Oct 22 09:09:53 2020 UTC (3 years, 8 months ago) by hselasky
File length: 239658 byte(s)
Diff to previous 366813
Factor out generic IP over infiniband, IPoIB, definitions and code
into net/if_infiniband.c and net/infiniband.h . No functional change
intended.

Differential Revision:	https://reviews.freebsd.org/D26254
Reviewed by:		melifaro@
MFC after:		1 week
Sponsored by:		Mellanox Technologies // NVIDIA Networking


Revision 366813 - (view) (download) (annotate) - [select for diffs]
Modified Sun Oct 18 17:15:47 2020 UTC (3 years, 8 months ago) by melifaro
File length: 239620 byte(s)
Diff to previous 366726
Implement flowid calculation for outbound connections to balance
 connections over multiple paths.

Multipath routing relies on mbuf flowid data for both transit
 and outbound traffic. Current code fills mbuf flowid from inp_flowid
 for connection-oriented sockets. However, inp_flowid is currently
 not calculated for outbound connections.

This change creates simple hashing functions and starts calculating hashes
 for TCP,UDP/UDP-Lite and raw IP if multipath routes are present in the
 system.

Reviewed by:	glebius (previous version),ae
Differential Revision:	https://reviews.freebsd.org/D26523


Revision 366726 - (view) (download) (annotate) - [select for diffs]
Modified Thu Oct 15 14:37:51 2020 UTC (3 years, 8 months ago) by emaste
File length: 239606 byte(s)
Diff to previous 366620
move vmware pv drivers to sys/conf/files

VMware now has arm64 support; move these to MI files in advance of
building them on arm64.

PR:		250308
Reported by:	Vincent Milum Jr
MFC after:	1 week
Sponsored by:	The FreeBSD Foundation


Revision 366620 - (view) (download) (annotate) - [select for diffs]
Modified Sat Oct 10 21:45:59 2020 UTC (3 years, 8 months ago) by cem
File length: 239065 byte(s)
Diff to previous 366396
Add "Fenestras X" alternative /dev/random implementation

Fortuna remains the default; no functional change to GENERIC.

Big picture:
- Scalable entropy generation with per-CPU, buffered local generators.
- "Push" system for reseeding child generators when root PRNG is
  reseeded.  (Design can be extended to arc4random(9) and userspace
  generators.)
- Similar entropy pooling system to Fortuna, but starts with a single
  pool to quickly bootstrap as much entropy as possible early on.
- Reseeding from pooled entropy based on time schedule.  The time
  interval starts small and grows exponentially until reaching a cap.
  Again, the goal is to have the RNG state depend on as much entropy as
  possible quickly, but still periodically incorporate new entropy for
  the same reasons as Fortuna.

Notable design choices in this implementation that differ from those
specified in the whitepaper:
- Blake2B instead of SHA-2 512 for entropy pooling
- Chacha20 instead of AES-CTR DRBG
- Initial seeding.  We support more platforms and not all of them use
  loader(8).  So we have to grab the initial entropy sources in kernel
  mode instead, as much as possible.  Fortuna didn't have any mechanism
  for this aside from the special case of loader-provided previous-boot
  entropy, so most of these sources remain TODO after this commit.

Reviewed by:	markm
Approved by:	csprng (markm)
Differential Revision:	https://reviews.freebsd.org/D22837


Revision 366396 - (view) (download) (annotate) - [select for diffs]
Modified Sat Oct 3 14:00:33 2020 UTC (3 years, 9 months ago) by manu
File length: 238559 byte(s)
Diff to previous 366390
pwm_backlight: Depend on ext_resources

This driver cannot work without it.


Revision 366390 - (view) (download) (annotate) - [select for diffs]
Modified Sat Oct 3 10:47:17 2020 UTC (3 years, 9 months ago) by melifaro
File length: 238545 byte(s)
Diff to previous 366373
Introduce scalable route multipath.

This change is based on the nexthop objects landed in D24232.

The change introduces the concept of nexthop groups.
Each group contains the collection of nexthops with their
 relative weights and a dataplane-optimized structure to enable
 efficient nexthop selection.

Simular to the nexthops, nexthop groups are immutable. Dataplane part
 gets compiled during group creation and is basically an array of
 nexthop pointers, compiled w.r.t their weights.

With this change, `rt_nhop` field of `struct rtentry` contains either
 nexthop or nexthop group. They are distinguished by the presense of
 NHF_MULTIPATH flag.
All dataplane lookup functions returns pointer to the nexthop object,
leaving nexhop groups details inside routing subsystem.

User-visible changes:

The change is intended to be backward-compatible: all non-mpath operations
 should work as before with ROUTE_MPATH and net.route.multipath=1.

All routes now comes with weight, default weight is 1, maximum is 2^24-1.

Current maximum multipath group width is statically set to 64.
 This will become sysctl-tunable in the followup changes.

Using functionality:
* Recompile kernel with ROUTE_MPATH
* set net.route.multipath to 1

route add -6 2001:db8::/32 2001:db8::2 -weight 10
route add -6 2001:db8::/32 2001:db8::3 -weight 20

netstat -6On

Nexthop groups data

Internet6:
GrpIdx  NhIdx     Weight   Slots                                 Gateway     Netif  Refcnt
1         ------- ------- ------- --------------------------------------- ---------       1
              13      10       1                             2001:db8::2     vlan2
              14      20       2                             2001:db8::3     vlan2

Next steps:
* Land outbound hashing for locally-originated routes ( D26523 ).
* Fix net/bird multipath (net/frr seems to work fine)
* Add ROUTE_MPATH to GENERIC
* Set net.route.multipath=1 by default

Tested by:	olivier
Reviewed by:	glebius
Relnotes:	yes
Differential Revision:	https://reviews.freebsd.org/D26449


Revision 366373 - (view) (download) (annotate) - [select for diffs]
Modified Fri Oct 2 18:28:00 2020 UTC (3 years, 9 months ago) by manu
File length: 238445 byte(s)
Diff to previous 366371
linuxkpi: Add dmi_* function

dmi function are used to get smbios values.
The DRM subsystem and drivers use it to enabled (or not) quirks.

Reviewed by:	hselasky
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D26046


Revision 366371 - (view) (download) (annotate) - [select for diffs]
Modified Fri Oct 2 18:23:27 2020 UTC (3 years, 9 months ago) by manu
File length: 238348 byte(s)
Diff to previous 366369
Add pwm_backlight

Driver for pwm-backlight compatible device.

Relnotes:	yes
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D26252


Revision 366369 - (view) (download) (annotate) - [select for diffs]
Modified Fri Oct 2 18:18:01 2020 UTC (3 years, 9 months ago) by manu
File length: 238292 byte(s)
Diff to previous 365861
Add backlight subsystem

This is a simple subsystem that allow drivers to register as a backlight.
Each backlight creates a device node under /dev/backlight/backlightX and
an alias based on the name provided.

Relnotes:	yes
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D26250


Revision 365861 - (view) (download) (annotate) - [select for diffs]
Modified Thu Sep 17 22:14:11 2020 UTC (3 years, 9 months ago) by np
File length: 238197 byte(s)
Diff to previous 365347
cxgbe(4): Update T4/5/6 firmwares to 1.25.0.0.

Obtained from:	Chelsio Communications
MFC after:	3 days
Sponsored by:	Chelsio Communications


Revision 365347 - (view) (download) (annotate) - [select for diffs]
Modified Fri Sep 4 22:25:14 2020 UTC (3 years, 9 months ago) by mmacy
File length: 238200 byte(s)
Diff to previous 365244
ZFS: MFV 2.0-rc1-gfd20a8

- fixes jail delegation
- fixes raw kstat unsupported complaints
- exposes dbgmsg, dbuf, and checksum benchmark stats
- restore rename -u support


Revision 365244 - (view) (download) (annotate) - [select for diffs]
Modified Wed Sep 2 11:18:21 2020 UTC (3 years, 10 months ago) by hselasky
File length: 238211 byte(s)
Diff to previous 365054
Fix build fallout after r365054 .

Make sure that building dev/sdhci/sdhci_fsl_fdt.c has all the right
dependencies until a proper fix can be made.

Sponsored by:	Mellanox Technologies // NVIDIA Networking


Revision 365054 - (view) (download) (annotate) - [select for diffs]
Modified Tue Sep 1 16:17:21 2020 UTC (3 years, 10 months ago) by mw
File length: 238197 byte(s)
Diff to previous 364860
Introduce the SDHCI driver for NXP QorIQ Layerscape SoCs

Implement support for an eSDHC controller found in NXP QorIQ Layerscape SoCs.

This driver has been tested with NXP LS1046A and LX2160A (Honeycomb board),
which is incompatible with the existing sdhci_fsl driver (aiming at older
chips from this family). As such, it is not intended as replacement for
the old driver, but rather serves as an improved alternative for SoCs that
support it.
It comes with support for both PIO and Single DMA modes and samples the
clock from the extres clk API.

Submitted by: Artur Rojek <ar@semihalf.com>
Reviewed by: manu, mmel, kibab
Obtained from: Semihalf
Sponsored by: Alstom Group
Differential Revision: https://reviews.freebsd.org/D26153


Revision 364860 - (view) (download) (annotate) - [select for diffs]
Modified Thu Aug 27 10:28:12 2020 UTC (3 years, 10 months ago) by hselasky
File length: 238147 byte(s)
Diff to previous 364746
Implement extensible arrays API using the existing radix tree implementation
in the LinuxKPI.

Differential Revision:	https://reviews.freebsd.org/D25101
Reviewed by:	kib @
MFC after:	1 week
Sponsored by:	Mellanox Technologies


Revision 364746 - (view) (download) (annotate) - [select for diffs]
Modified Tue Aug 25 02:21:27 2020 UTC (3 years, 10 months ago) by mmacy
File length: 238048 byte(s)
Diff to previous 364475
Merge OpenZFS support in to HEAD.

The primary benefit is maintaining a completely shared
code base with the community allowing FreeBSD to receive
new features sooner and with less effort.

I would advise against doing 'zpool upgrade'
or creating indispensable pools using new
features until this change has had a month+
to soak.

Work on merging FreeBSD support in to what was
at the time "ZFS on Linux" began in August 2018.
I first publicly proposed transitioning FreeBSD
to (new) OpenZFS on December 18th, 2018. FreeBSD
support in OpenZFS was finally completed in December
2019. A CFT for downstreaming OpenZFS support in
to FreeBSD was first issued on July 8th. All issues
that were reported have been addressed or, for
a couple of less critical matters there are
pull requests in progress with OpenZFS. iXsystems
has tested and dogfooded extensively internally.
The TrueNAS 12 release is based on OpenZFS with
some additional features that have not yet made
it upstream.

Improvements include:
  project quotas, encrypted datasets,
  allocation classes, vectorized raidz,
  vectorized checksums, various command line
  improvements, zstd compression.

Thanks to those who have helped along the way:
Ryan Moeller, Allan Jude, Zack Welch, and many
others.

Sponsored by:	iXsystems, Inc.
Differential Revision:	https://reviews.freebsd.org/D25872


Revision 364475 - (view) (download) (annotate) - [select for diffs]
Modified Sat Aug 22 03:57:55 2020 UTC (3 years, 10 months ago) by rmacklem
File length: 237874 byte(s)
Diff to previous 364465
Add TLS support to the kernel RPC.

An internet draft titled "Towards Remote Procedure Call Encryption By Default"
describes how TLS is to be used for Sun RPC, with NFS as an intended use case.
This patch adds client and server support for this to the kernel RPC,
using KERN_TLS and upcalls to daemons for the handshake, peer reset and
other non-application data record cases.

The upcalls to the daemons use three fields to uniquely identify the
TCP connection. They are the time.tv_sec, time.tv_usec of the connection
establshment, plus a 64bit sequence number. The time fields avoid problems
with re-use of the sequence number after a daemon restart.
For the server side, once a Null RPC with AUTH_TLS is received, kernel
reception on the socket is blocked and an upcall to the rpctlssd(8) daemon
is done to perform the TLS handshake.  Upon completion, the completion
status of the handshake is stored in xp_tls as flag bits and the reply to
the Null RPC is sent.
For the client, if CLSET_TLS has been set, a new TCP connection will
send the Null RPC with AUTH_TLS to initiate the handshake.  The client
kernel RPC code will then block kernel I/O on the socket and do an upcall
to the rpctlscd(8) daemon to perform the handshake.
If the upcall is successful, ct_rcvstate will be maintained to indicate
if/when an upcall is being done.

If non-application data records are received, the code does an upcall to
the appropriate daemon, which will do a SSL_read() of 0 length to handle
the record(s).

When the socket is being shut down, upcalls are done to the daemons, so
that they can perform SSL_shutdown() calls to perform the "peer reset".

The rpctlssd(8) and rpctlscd(8) daemons require a patched version of the
openssl library and, as such, will not be committed to head at this time.

Although the changes done by this patch are fairly numerous, there should
be no semantics change to the kernel RPC at this time.
A future commit to the NFS code will optionally enable use of TLS for NFS.


Revision 364465 - (view) (download) (annotate) - [select for diffs]
Modified Fri Aug 21 21:34:52 2020 UTC (3 years, 10 months ago) by melifaro
File length: 235913 byte(s)
Diff to previous 364432
Make net.fibs growable.

Allow to dynamically grow the amount of fibs in each vnet.

This change alters current behavior. Currently, if one defines
 ROUTETABLES > 1 in the kernel config, each vnet will be created
 with the number of fibs defined in the kernel config.
 After this commit vnets will be created with fibs=1.

Dynamic net.fibs is not compatible with net.add_addr_allfibs.
 The plan is to deprecate the latter and make
 net.add_addr_allfibs=0 default behaviour.

Reviewed by:	glebius
Relnotes:	yes
Differential Revision:	https://reviews.freebsd.org/D26062


Revision 364432 - (view) (download) (annotate) - [select for diffs]
Modified Thu Aug 20 17:35:47 2020 UTC (3 years, 10 months ago) by imp
File length: 235879 byte(s)
Diff to previous 364219
Remove the long obsolete ufm driver.

It was a driver for a USB FM tuner that was available in the market in 2002. I
wrote the driver in 2003. I've not used it since 2005 or so, so it's time to
retire this driver. No userland code ever interfaced to the special device it
created. There's no user base: the last bug I received on this driver was in
2004.

Relnotes: Yes


Revision 364219 - (view) (download) (annotate) - [select for diffs]
Modified Thu Aug 13 20:48:14 2020 UTC (3 years, 10 months ago) by cem
File length: 235912 byte(s)
Diff to previous 363951
Add prng(9) API

Add prng(9) as a replacement for random(9) in the kernel.

There are two major differences from random(9) and random(3):

- General prng(9) APIs (prng32(9), etc) do not guarantee an
  implementation or particular sequence; they should not be used for
  repeatable simulations.

- However, specific named API families are also exposed (for now: PCG),
  and those are expected to be repeatable (when so-guaranteed by the named
  algorithm).

Some minor differences from random(3) and earlier random(9):

- PRNG state for the general prng(9) APIs is per-CPU; this eliminates
  contention on PRNG state in SMP workloads.  Each PCPU generator in an
  SMP system produces a unique sequence.

- Better statistical properties than the Park-Miller ("minstd") PRNG
  (longer period, uniform distribution in all bits, passes
  BigCrush/PractRand analysis).

- Faster than Park-Miller ("minstd") PRNG -- no division is required to
  step PCG-family PRNGs.

For now, random(9) becomes a thin shim around prng32().  Eventually I
would like to mechanically switch consumers over to the explicit API.

Reviewed by:	kib, markj (previous version both)
Discussed with:	markm
Differential Revision:	https://reviews.freebsd.org/D25916


Revision 363951 - (view) (download) (annotate) - [select for diffs]
Modified Thu Aug 6 13:41:42 2020 UTC (3 years, 10 months ago) by avg
File length: 235885 byte(s)
Diff to previous 363683
cp2112: driver for the namesake GPIO and I2C master gadget

Documentation:
- CP2112 Datasheet
  https://www.silabs.com/documents/public/data-sheets/cp2112-datasheet.pdf
- AN495: CP2112 Interface Specification
  https://www.silabs.com/documents/public/application-notes/an495-cp2112-interface-specification.pdf
- CP2112 Errata
  https://www.silabs.com/documents/public/errata/cp2112-errata.pdf

The logic is implemented as three sub-drivers.
The parent driver claims the USB device and creates two child devices.
One acts as a GPIO controller and the other is an I2C controller.

Tested with CP2112 revision F02.
Both features seem to work.
HTU21 sensor was used as an I2C slave.

Reviewed by:	adrian, hselasky
MFC after:	2 weeks
Relnotes:	maybe
Differential Revision: https://reviews.freebsd.org/D25359


Revision 363683 - (view) (download) (annotate) - [select for diffs]
Modified Thu Jul 30 00:53:56 2020 UTC (3 years, 11 months ago) by jmg
File length: 235846 byte(s)
Diff to previous 363638
remove some long abandonded serial drivers (cy, rc, rp) since 2008

Reviewed by:	phk (earlier version)
Reviewed by:	emaste (earlier version)
Reviewed by:	bcr (earlier version)
Reviewed by:	zeising (earlier version)
Differential Revision:	https://reviews.freebsd.org/D25874


Revision 363638 - (view) (download) (annotate) - [select for diffs]
Modified Tue Jul 28 10:08:07 2020 UTC (3 years, 11 months ago) by mw
File length: 236060 byte(s)
Diff to previous 363636
Fix ENA build when integrated into kernel

Provide missing rules for ena_datapath.c and ena_netmap.c,
which prevented the ENA driver from building.
This issue was showing up only when building the driver statically
into the kernel.

PR: 248116
Submitted by: Artur Rojek <ar@semihalf.com>
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D25796
Obtained from: Semihalf
Sponsored by: Amazon, Inc.


Revision 363636 - (view) (download) (annotate) - [select for diffs]
Modified Tue Jul 28 09:29:56 2020 UTC (3 years, 11 months ago) by andrew
File length: 235902 byte(s)
Diff to previous 363624
Add an ACPI attachment for if_smc

This is needed by some of the Arm simulators as they implement a smc based
network interface, but use ACPI rather than FDT.

Sponsored by:	Innovate UK


Revision 363624 - (view) (download) (annotate) - [select for diffs]
Modified Mon Jul 27 21:19:41 2020 UTC (3 years, 11 months ago) by mav
File length: 235861 byte(s)
Diff to previous 363573
Add initial driver for ACPI Platform Error Interfaces.

APEI allows platform to report different kinds of errors to OS in several
ways.  We've found that Supermicro X10/X11 motherboards report PCIe errors
appearing on hot-unplug via this interface using NMI.  Without respective
driver it ended up in kernel panic without any additional information.

This driver introduces support for the APEI Generic Hardware Error Source
reporting via NMI, SCI or polling.  It decodes the reported errors and
either pass them to pci(4) for processing or just logs otherwise.  Errors
marked as fatal still end up in kernel panic, but some more informative.

When somebody get to native PCIe AER support implementation both of the
reporting mechanisms should get common error recovery code.  Since in our
case errors happen when the device is already gone, there is nothing to
recover, so the code just clears the error statuses, practically ignoring
the otherwise destructive NMIs in nicer way.

MFC after:	2 weeks
Relnotes:	yes
Sponsored by:	iXsystems, Inc.


Revision 363573 - (view) (download) (annotate) - [select for diffs]
Modified Sun Jul 26 18:19:50 2020 UTC (3 years, 11 months ago) by jrtc27
File length: 235823 byte(s)
Diff to previous 363571
Add syscon power and reset control device driver

This device driver supports both syscon-power and syscon-reset devices,
as specified in [1] and [2]. These provide a very simple interface for
power and reset control, and among other things are used by QEMU's virt
machine on RISC-V. A separate commit will enable this on RISC-V, as that
requires adding a RISC-V-specific riscv_syscon akin to r327936's
aw_syscon.

[1] https://www.kernel.org/doc/Documentation/devicetree/bindings/power/reset/syscon-poweroff.txt
[2] https://www.kernel.org/doc/Documentation/devicetree/bindings/power/reset/syscon-reboot.txt

Reviewed by:	brooks (mentor), jhb (mentor)
Approved by:	brooks (mentor), jhb (mentor)
Obtained from:	CheriBSD
Differential Revision:	https://reviews.freebsd.org/D25724


Revision 363571 - (view) (download) (annotate) - [select for diffs]
Modified Sun Jul 26 18:15:16 2020 UTC (3 years, 11 months ago) by jrtc27
File length: 235743 byte(s)
Diff to previous 362817
Add Goldfish RTC device driver for RISC-V

This device was originally used as part of the goldfish virtual hardware
platform used for emulating Android on QEMU, but is now also used as the
RTC for the RISC-V virt machine in QEMU. It provides a simple 64-bit
nanosecond timer exposed via a pair of memory-mapped 32-bit registers,
although only with 1s granularity.

Reviewed by:	brooks (mentor), jhb (mentor), kp
Approved by:	brooks (mentor), jhb (mentor), kp
Obtained from:	CheriBSD
Differential Revision:	https://reviews.freebsd.org/D25717


Revision 362817 - (view) (download) (annotate) - [select for diffs]
Modified Wed Jul 1 00:33:16 2020 UTC (4 years ago) by gonzo
File length: 235689 byte(s)
Diff to previous 362803
Add i.MX 8M Quad support

- Add CCM driver and clocks implementations for i.MX 8M
- Add GPC driver for iMX8
- Add clock tree for i.MX 8M Quad
- Add clocks support and new compat strings (where required) for existing i.MX 6 UART, I2C, and GPIO drivers
- Enable aarch64-compatible drivers form i.MX 6 in arm64 GENERIC kernel config
- Add dtb/imx8 kernel module with DTBs for Nitrogen8M and iMX8MQ EVK

With this patch both Nitrogen8M and iMX8MQ EVK boot with NFS root up to multiuser login prompt

Reviewed by:	manu
Differential Revision:	https://reviews.freebsd.org/D25274


Revision 362803 - (view) (download) (annotate) - [select for diffs]
Modified Tue Jun 30 15:58:29 2020 UTC (4 years ago) by andrew
File length: 235637 byte(s)
Diff to previous 362666
Add dwc_otg_acpi

Create an acpi attachment for the DWC USB OTG device. This is present in
the Raspberry Pi 4 in the USB-C port normally used to power the board. Some
firmware presents the kernel with ACPI tables rather than FDT so we need
an ACPI attachment.

Submitted by:	Greg V <greg_unrelenting.technology>
Approved by:	hselasky (removal of All rights reserved)
Differential Revision:	https://reviews.freebsd.org/D25203


Revision 362666 - (view) (download) (annotate) - [select for diffs]
Modified Sat Jun 27 00:55:03 2020 UTC (4 years ago) by mmacy
File length: 235582 byte(s)
Diff to previous 361463
Rename nvpair.c to bsd_nvpair.c to not conflict with openzfs' version.


Revision 361463 - (view) (download) (annotate) - [select for diffs]
Modified Mon May 25 15:40:02 2020 UTC (4 years, 1 month ago) by mw
File length: 235578 byte(s)
Diff to previous 361462
Introduce support for Epson RX-8803 RTC.

This patch introduces support for Epson RX-8803 RTC controller accessible
over I2C bus. It has a resolution of 1 sec.
Support for interrupt based alarm was not implemented.

Submitted by: Kornel Duleba <mindal@semihalf.com>
Reviewed by: manu
Obtained from: Semihalf
Sponsored by: Alstom Group
Differential Revision: https://reviews.freebsd.org/D24364


Revision 361462 - (view) (download) (annotate) - [select for diffs]
Modified Mon May 25 15:31:43 2020 UTC (4 years, 1 month ago) by mw
File length: 235526 byte(s)
Diff to previous 361426
Add TCA6416 GPIO expander support.

Add basic TCA6416 GPIO expander support over I2C bus. The driver handles
enabling and disabling pins, setting pin mode to IN and OUT and
toggling the pins. External interrupts are not supported.

Submitted by: Dawid Gorecki <dgr@semihalf.com>
Reviewed by: manu, mmel
Obtained from: Semihalf
Sponsored by: Alstom Group
Differential Revision: https://reviews.freebsd.org/D24363


Revision 361426 - (view) (download) (annotate) - [select for diffs]
Modified Sat May 23 21:23:46 2020 UTC (4 years, 1 month ago) by cem
File length: 235479 byte(s)
Diff to previous 361418
Update to Zstandard 1.4.5

As usual, the full release notes are found on Github:

  https://github.com/facebook/zstd/releases/tag/v1.4.5

Notable changes include:

* Improved decompress performance on amd64 and arm (5-10%
  and 15-50%, respectively).
* '--patch-from' zstd(1) CLI option, which provides something like a very fast
  version of bspatch(1) with slightly worse compression.  See release notes.

In this update, I dropped the 3-year old -O0 workaround for an LLVM ARM bug;
the bug was fixed in LLVM SVN in 2017, but we didn't remove this workaround
from our tree until now.

MFC after:	I won't, but feel free
Relnotes:	yes


Revision 361418 - (view) (download) (annotate) - [select for diffs]
Modified Sat May 23 17:51:06 2020 UTC (4 years, 1 month ago) by manu
File length: 235387 byte(s)
Diff to previous 360934
libkern: Add arc4random_uniform

This variant get a random number up to the limit passed as the argument.
This is simply a copy of the libc version.

Sponsored-by: The FreeBSD Foundation
Reviewed by:	cem, hselasky (previous version)
Differential Revision:	https://reviews.freebsd.org/D24962


Revision 360934 - (view) (download) (annotate) - [select for diffs]
Modified Mon May 11 21:39:02 2020 UTC (4 years, 1 month ago) by jhb
File length: 235349 byte(s)
Diff to previous 360933
kgssapi no longer supports RC4, so don't list it as a build dependency.

Reviewed by:	cem
Sponsored by:	Chelsio Communications
Differential Revision:	https://reviews.freebsd.org/D24774


Revision 360933 - (view) (download) (annotate) - [select for diffs]
Modified Mon May 11 21:34:29 2020 UTC (4 years, 1 month ago) by jhb
File length: 235359 byte(s)
Diff to previous 360931
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


Revision 360931 - (view) (download) (annotate) - [select for diffs]
Modified Mon May 11 21:24:05 2020 UTC (4 years, 1 month ago) by jhb
File length: 235425 byte(s)
Diff to previous 360924
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


Revision 360924 - (view) (download) (annotate) - [select for diffs]
Modified Mon May 11 20:54:59 2020 UTC (4 years, 1 month ago) by jhb
File length: 235547 byte(s)
Diff to previous 360923
Remove support for the skipjack encryption algorithm.

This was removed from IPsec in r286100 and no longer has any in-tree
consumers.

Reviewed by:	cem
Relnotes:	yes
Sponsored by:	Chelsio Communications
Differential Revision:	https://reviews.freebsd.org/D24769


Revision 360923 - (view) (download) (annotate) - [select for diffs]
Modified Mon May 11 20:52:18 2020 UTC (4 years, 1 month ago) by jhb
File length: 235610 byte(s)
Diff to previous 360918
Remove support for the cast128 encryption algorithm.

It no longer has any in-tree consumers.

Reviewed by:	cem
Relnotes:	yes
Sponsored by:	Chelsio Communications
Differential Revision:	https://reviews.freebsd.org/D24768


Revision 360918 - (view) (download) (annotate) - [select for diffs]
Modified Mon May 11 20:30:28 2020 UTC (4 years, 1 month ago) by jhb
File length: 235669 byte(s)
Diff to previous 360450
Remove ubsec(4).

This driver was previously marked for deprecation in r360710.

Approved by:	csprng (cem, gordon, delphij)
Relnotes:	yes
Sponsored by:	Chelsio Communications
Differential Revision:	https://reviews.freebsd.org/D24766


Revision 360450 - (view) (download) (annotate) - [select for diffs]
Modified Tue Apr 28 20:00:17 2020 UTC (4 years, 2 months ago) by melifaro
File length: 235703 byte(s)
Diff to previous 360449
Move route-specific ddb commands to route/route_ddb.c

Currently functionality resides in rtsock.c, which is a controlling
 interface, partially external to the routing subsystem.
Additionally, DDB-supporting functionality is > 100SLOC, which deserves
 a separate file.

Given that, move this functionality to a newly-created net/route/ subdir.

Reviewed by:	cem
Differential Revision:	https://reviews.freebsd.org/D24561


Revision 360449 - (view) (download) (annotate) - [select for diffs]
Modified Tue Apr 28 19:14:09 2020 UTC (4 years, 2 months ago) by melifaro
File length: 235667 byte(s)
Diff to previous 360036
Move route_temporal.c and route_var.h to net/route.

Nexthop objects implementation, defined in r359823,
 introduced sys/net/route directory intended to hold all
 routing-related code. Move recently-introduced route_temporal.c and
 private route_var.h header there.

Differential Revision:	https://reviews.freebsd.org/D24597


Revision 360036 - (view) (download) (annotate) - [select for diffs]
Modified Fri Apr 17 06:04:20 2020 UTC (4 years, 2 months ago) by glebius
File length: 235662 byte(s)
Diff to previous 359932
Split XDR into separate kernel module.  Make krpc depend on xdr.

Reviewed by:	rmacklem
Differential Revision:	https://reviews.freebsd.org/D24408


Revision 359932 - (view) (download) (annotate) - [select for diffs]
Modified Tue Apr 14 18:11:54 2020 UTC (4 years, 2 months ago) by manu
File length: 235626 byte(s)
Diff to previous 359924
files: Add mmc_fdt_helpers for mmccam enabled config

MFC after:	1 month
X-MFC-With:	r359924


Revision 359924 - (view) (download) (annotate) - [select for diffs]
Modified Tue Apr 14 16:30:54 2020 UTC (4 years, 2 months ago) by manu
File length: 235613 byte(s)
Diff to previous 359910
Those functions are here to help fdt mmc controller drivers to parse
the dts to find the supported speeds and the regulators.
Not all DTS have every settings properly defined so host controller
will still have to add some caps themselves.
It also add a mmc_fdt_gpio_setup function which will read the cd-gpios
property and register it as the CD pin.
If the pin support interrupts one will be registered and the cd_helper
function will be called.
If the pin doesn't support interrupts the internal taskqueue will poll
for change and call the same cd_helper function.
mmc_fdt_gpio_setup will also parse the wp-gpio property and MMC drivers
can know the write-protect pin value by calling the
mmc_fdt_gpio_get_readonly function.

MFC after:	1 month
Differential Revision:	https://reviews.freebsd.org/D23267


Revision 359910 - (view) (download) (annotate) - [select for diffs]
Modified Tue Apr 14 00:01:26 2020 UTC (4 years, 2 months ago) by rmacklem
File length: 235570 byte(s)
Diff to previous 359823
Re-organize the NFS file handle affinity code for the NFS server.

The file handle affinity code was configured to be used by both the
old and new NFS servers. This no longer makes sense, since there is
only one NFS server.
This patch copies a majority of the code in sys/nfs/nfs_fha.c and
sys/nfs/nfs_fha.h into sys/fs/nfsserver/nfs_fha_new.c and
sys/fs/nfsserver/nfs_fha_new.h, so that the files in sys/nfs can be
deleted. The code is simplified by deleting the function callback pointers
used to call functions in either the old or new NFS server and they were
replaced by calls to the functions.

As well as a cleanup, this re-organization simplifies the changes
required for handling of external page mbufs, which is required for KERN_TLS.

This patch should not result in a semantic change to file handle affinity.


Revision 359823 - (view) (download) (annotate) - [select for diffs]
Modified Sun Apr 12 14:30:00 2020 UTC (4 years, 2 months ago) by melifaro
File length: 235600 byte(s)
Diff to previous 359786
Introduce nexthop objects and new routing KPI.

This is the foundational change for the routing subsytem rearchitecture.
 More details and goals are available in https://reviews.freebsd.org/D24141 .

This patch introduces concept of nexthop objects and new nexthop-based
 routing KPI.

Nexthops are objects, containing all necessary information for performing
 the packet output decision. Output interface, mtu, flags, gw address goes
 there. For most of the cases, these objects will serve the same role as
 the struct rtentry is currently serving.
Typically there will be low tens of such objects for the router even with
 multiple BGP full-views, as these objects will be shared between routing
 entries. This allows to store more information in the nexthop.

New KPI:

struct nhop_object *fib4_lookup(uint32_t fibnum, struct in_addr dst,
  uint32_t scopeid, uint32_t flags, uint32_t flowid);
struct nhop_object *fib6_lookup(uint32_t fibnum, const struct in6_addr *dst6,
  uint32_t scopeid, uint32_t flags, uint32_t flowid);

These 2 function are intended to replace all all flavours of
 <in_|in6_>rtalloc[1]<_ign><_fib>, mpath functions  and the previous
 fib[46]-generation functions.

Upon successful lookup, they return nexthop object which is guaranteed to
 exist within current NET_EPOCH. If longer lifetime is desired, one can
 specify NHR_REF as a flag and get a referenced version of the nexthop.
 Reference semantic closely resembles rtentry one, allowing sed-style conversion.

Additionally, another 2 functions are introduced to support uRPF functionality
 inside variety of our firewalls. Their primary goal is to hide the multipath
 implementation details inside the routing subsystem, greatly simplifying
 firewalls implementation:

int fib4_lookup_urpf(uint32_t fibnum, struct in_addr dst, uint32_t scopeid,
  uint32_t flags, const struct ifnet *src_if);
int fib6_lookup_urpf(uint32_t fibnum, const struct in6_addr *dst6, uint32_t scopeid,
  uint32_t flags, const struct ifnet *src_if);

All functions have a separate scopeid argument, paving way to eliminating IPv6 scope
 embedding and allowing to support IPv4 link-locals in the future.

Structure changes:
 * rtentry gets new 'rt_nhop' pointer, slightly growing the overall size.
 * rib_head gets new 'rnh_preadd' callback pointer, slightly growing overall sz.

Old KPI:
During the transition state old and new KPI will coexists. As there are another 4-5
 decent-sized conversion patches, it will probably take a couple of weeks.
To support both KPIs, fields not required by the new KPI (most of rtentry) has to be
 kept, resulting in the temporary size increase.
Once conversion is finished, rtentry will notably shrink.

More details:
* architectural overview: https://reviews.freebsd.org/D24141
* list of the next changes: https://reviews.freebsd.org/D24232

Reviewed by:	ae,glebius(initial version)
Differential Revision:	https://reviews.freebsd.org/D24232


Revision 359786 - (view) (download) (annotate) - [select for diffs]
Modified Fri Apr 10 23:08:41 2020 UTC (4 years, 2 months ago) by jhb
File length: 235442 byte(s)
Diff to previous 359745
Remove support for Kernel GSS algorithms deprecated in r348875.

This removes support for using DES, Triple DES, and RC4.

Reviewed by:	cem, kp
Tested by:	kp
Sponsored by:	Chelsio Communications
Differential Revision:	https://reviews.freebsd.org/D24344


Revision 359745 - (view) (download) (annotate) - [select for diffs]
Modified Thu Apr 9 14:44:46 2020 UTC (4 years, 2 months ago) by rmacklem
File length: 235579 byte(s)
Diff to previous 359574
Remove the old NFS lock device driver that uses Giant.

This NFS lock device driver was replaced by the kernel NLM around FreeBSD7 and
has not normally been used since then.
To use it, the kernel had to be built without "options NFSLOCKD" and
the nfslockd.ko had to be deleted as well.
Since it uses Giant and is no longer used, this patch removes it.

With this device driver removed, there is now a lot of unused code
in the userland rpc.lockd. That will be removed on a future commit.

Reviewed by:	kib
Differential Revision:	https://reviews.freebsd.org/D22933


Revision 359574 - (view) (download) (annotate) - [select for diffs]
Modified Thu Apr 2 19:06:05 2020 UTC (4 years, 3 months ago) by ian
File length: 235574 byte(s)
Diff to previous 359530
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.


Revision 359530 - (view) (download) (annotate) - [select for diffs]
Modified Wed Apr 1 19:22:09 2020 UTC (4 years, 3 months ago) by jhb
File length: 235533 byte(s)
Diff to previous 359111
Retire procfs-based process debugging.

Modern debuggers and process tracers use ptrace() rather than procfs
for debugging.  ptrace() has a supserset of functionality available
via procfs and new debugging features are only added to ptrace().
While the two debugging services share some fields in struct proc,
they each use dedicated fields and separate code.  This results in
extra complexity to support a feature that hasn't been enabled in the
default install for several years.

PR:		244939 (exp-run)
Reviewed by:	kib, mjg (earlier version)
Relnotes:	yes
Differential Revision:	https://reviews.freebsd.org/D23837


Revision 359111 - (view) (download) (annotate) - [select for diffs]
Modified Thu Mar 19 00:53:31 2020 UTC (4 years, 3 months ago) by kib
File length: 235574 byte(s)
Diff to previous 358820
Add file for static compilation of mlx5.

Sponsored by:	Mellanox Technologies
MFC after:	2 weeks


Revision 358820 - (view) (download) (annotate) - [select for diffs]
Modified Mon Mar 9 20:31:38 2020 UTC (4 years, 3 months ago) by wulf
File length: 235493 byte(s)
Diff to previous 358714
iicbus(4): Add support for ACPI-based children enumeration

When iicbus is attached as child of Designware I2C controller it scans all
ACPI nodes for "I2C Serial Bus Connection Resource Descriptor" described
in section 19.6.57 of ACPI specs.
If such a descriptor is found, I2C child is added to iicbus, it's I2C
address, IRQ resource and ACPI handle are added to ivars. Existing
ACPI bus-hosted child is deleted afterwards.

The driver also installs so called "I2C address space handler" which is
disabled by default as nontested.
Set hw.iicbus.enable_acpi_space_handler loader tunable to 1 to enable it.

Reviewed by:		markj
MFC after:		2 weeks
Differential Revision:	https://reviews.freebsd.org/D22901


Revision 358714 - (view) (download) (annotate) - [select for diffs]
Modified Fri Mar 6 18:41:37 2020 UTC (4 years, 3 months ago) by chs
File length: 235447 byte(s)
Diff to previous 358497
Add a new "mntfs" pseudo file system which provides private device vnodes for
file systems to safely access their disk devices, and adapt FFS to use it.
Also add a new BO_NOBUFS flag to allow enforcing that file systems using
mntfs vnodes do not accidentally use the original devfs vnode to create buffers.

Reviewed by:	kib, mckusick
Approved by:	imp (mentor)
Sponsored by:	Netflix
Differential Revision:	https://reviews.freebsd.org/D23787


Revision 358497 - (view) (download) (annotate) - [select for diffs]
Modified Sun Mar 1 19:15:03 2020 UTC (4 years, 4 months ago) by imp
File length: 235414 byte(s)
Diff to previous 358217
Remove bktr(4)

Remove the brooktree driver as discussed on arch@. Bump FreeBSD version to
1300082, though I doubt anything will care.

Relnote: yes


Revision 358217 - (view) (download) (annotate) - [select for diffs]
Modified Fri Feb 21 09:28:45 2020 UTC (4 years, 4 months ago) by manu
File length: 235697 byte(s)
Diff to previous 357986
linuxkpi: Move shmem related functions in it's own file

For drmkpi (D23085) we don't want the Linux struct file as we don't emulate
everything. Also the prototypes should be in shmem_fs.h to have 100%
compatibility with Linux.

Reviewed by:	hselasky
MFC after:	Maybe
Differential Revision:	https://reviews.freebsd.org/D23764


Revision 357986 - (view) (download) (annotate) - [select for diffs]
Modified Sun Feb 16 00:03:09 2020 UTC (4 years, 4 months ago) by mmacy
File length: 235597 byte(s)
Diff to previous 357793
Add chacha20poly1305 support to crypto build

This is a dependency for in-kernel wireguard.

Reviewed by:	cem@
MFC after:	1 week
Sponsored by:	Rubicon Communications, LLC (Netgate)
Differential Revision:	https://reviews.freebsd.org/D23689


Revision 357793 - (view) (download) (annotate) - [select for diffs]
Modified Wed Feb 12 02:55:06 2020 UTC (4 years, 4 months ago) by np
File length: 234576 byte(s)
Diff to previous 357455
cxgbe(4): Update T4/5/6 firmwares to 1.24.12.0.

Obtained from:	Chelsio Communications
MFC after:	1 month
Sponsored by:	Chelsio Communications


Revision 357455 - (view) (download) (annotate) - [select for diffs]
Modified Mon Feb 3 17:35:11 2020 UTC (4 years, 4 months ago) by imp
File length: 234576 byte(s)
Diff to previous 357426
Remove sparc64 kernel support

Remove all sparc64 specific files
Remove all sparc64 ifdefs
Removee indireeect sparc64 ifdefs


Revision 357426 - (view) (download) (annotate) - [select for diffs]
Modified Mon Feb 3 05:38:45 2020 UTC (4 years, 5 months ago) by imp
File length: 234834 byte(s)
Diff to previous 357401
On powerpc, we use ofw_syscons for device sc. That references the default
fonts. As a workaround, remove the static. vt is default on powerpc, but there's
a few old macs that still fail with vt. sc is used as a work arouond for those
machines, and the kernel fails to build w/o it.


Revision 357401 - (view) (download) (annotate) - [select for diffs]
Modified Sun Feb 2 08:27:26 2020 UTC (4 years, 5 months ago) by imp
File length: 234855 byte(s)
Diff to previous 357400
Move font.h generation to conf/files from conf/files.*

Use ${SRCTOP} instead of /usr/share.
Prefer to depend on option sc_dflt_fnt instead of sc.
gc the 4 otherwise identical instances in the tree.
Platforms that don't need this won't included it.


Revision 357400 - (view) (download) (annotate) - [select for diffs]
Modified Sun Feb 2 08:27:20 2020 UTC (4 years, 5 months ago) by imp
File length: 234205 byte(s)
Diff to previous 357394
Fix old-style build

Fix the old-style build by using ${SRCTOP} instead of a weird
construct that only works for new-style build.
Simplify the building of keymap files by using macros
Move atkbdmap.h in files.x86
This has been broken since r296899 which removed the implicit
dependency on /usr/share.


Revision 357394 - (view) (download) (annotate) - [select for diffs]
Modified Sun Feb 2 04:53:27 2020 UTC (4 years, 5 months ago) by imp
File length: 234577 byte(s)
Diff to previous 357314
Remove vpo.4

The Parallel Port SCSI adapter was interesting for 100MB ZIP drives, but is no
longer used or maintained. Remove it from the tree.

The Parallel Port microsequencer (microseq.9) is now mostly unused in the tree,
but remains. PPI still refrences it, but doesn't use its full functionality.

Relnotes: Yes
Reviewed by: rgrimes@, Ihor Antonov
Discussed on: arch@
Differential Revision:  https://reviews.freebsd.org/D23389


Revision 357314 - (view) (download) (annotate) - [select for diffs]
Modified Fri Jan 31 00:49:51 2020 UTC (4 years, 5 months ago) by jeff
File length: 234672 byte(s)
Diff to previous 356984
Implement a safe memory reclamation feature that is tightly coupled with UMA.

This is in the same family of algorithms as Epoch/QSBR/RCU/PARSEC but is
a unique algorithm.  This has 3x the performance of epoch in a write heavy
workload with less than half of the read side cost.  The memory overhead
is significantly lessened by limiting the free-to-use latency.  A synthetic
test uses 1/20th of the memory vs Epoch.  There is significant further
discussion in the comments and code review.

This code should be considered experimental.  I will write a man page after
it has settled.  After further validation the VM will begin using this
feature to permit lockless page lookups.

Both markj and cperciva tested on arm64 at large core counts to verify
fences on weaker ordering architectures.  I will commit a stress testing
tool in a follow-up.

Reviewed by:	mmacy, markj, rlibby, hselasky
Discussed with:	sbahara
Differential Revision:	https://reviews.freebsd.org/D22586


Revision 356984 - (view) (download) (annotate) - [select for diffs]
Modified Wed Jan 22 13:53:18 2020 UTC (4 years, 5 months ago) by melifaro
File length: 234645 byte(s)
Diff to previous 356303
Bring back redirect route expiration.

Redirect (and temporal) route expiration was broken a while ago.
This change brings route expiration back, with unified IPv4/IPv6 handling code.

It introduces net.inet.icmp.redirtimeout sysctl, allowing to set
 an expiration time for redirected routes. It defaults to 10 minutes,
 analogues with net.inet6.icmp6.redirtimeout.

Implementation uses separate file, route_temporal.c, as route.c is already
 bloated with tons of different functions.
Internally, expiration is implemented as an per-rnh callout scheduled when
 route with non-zero rt_expire time is added or rt_expire is changed.
 It does not add any overhead when no temporal routes are present.

Callout traverses entire routing tree under wlock, scheduling expired routes
 for deletion and calculating the next time it needs to be run. The rationale
 for such implemention is the following: typically workloads requiring large
 amount of routes have redirects turned off already, while the systems with
 small amount of routes will not inhibit large overhead during tree traversal.

This changes also fixes netstat -rn display of route expiration time, which
 has been broken since the conversion from kread() to sysctl.

Reviewed by:	bz
MFC after:	3 weeks
Differential Revision:	https://reviews.freebsd.org/D23075


Revision 356303 - (view) (download) (annotate) - [select for diffs]
Modified Thu Jan 2 23:00:52 2020 UTC (4 years, 6 months ago) by kevans
File length: 234614 byte(s)
Diff to previous 356278
iicoc: limit fdt attachment to EXT_RESOURCES platforms

The fdt attachment for this heavily relies on extres for clk work. This
unbreaks the build for mips XLPN32/XLP, which have pci/fdt but no need for
this fdt attachment.


Revision 356278 - (view) (download) (annotate) - [select for diffs]
Modified Thu Jan 2 17:51:49 2020 UTC (4 years, 6 months ago) by ian
File length: 234600 byte(s)
Diff to previous 356001
Add support for i2c bus mux hardware.

An i2c bus can be divided into segments which can be selectively connected
and disconnected from the main bus. This is usually done to enable using
multiple slave devices having the same address, by isolating the devices
onto separate bus segments, only one of which is connected to the main bus
at once.

There are several types of i2c bus muxes, which break down into two general
categories...

 - Muxes which are themselves i2c slaves. These devices respond to i2c
   commands on their upstream bus, and based on those commands, connect
   various downstream buses to the upstream. In newbus terms, they are both
   a child of an iicbus and the parent of one or more iicbus instances.
 - Muxes which are not i2c devices themselves. Such devices are part of the
   i2c bus electrically, but in newbus terms their parent is some other
   bus. The association with the upstream bus must be established by
   separate metadata (such as FDT data).

In both cases, the mux driver has one or more iicbus child instances
representing the downstream buses. The mux driver implements the iicbus_if
interface, as if it were an iichb host bridge/i2c controller driver. It
services the IO requests sent to it by forwarding them to the iicbus
instance representing the upstream bus, after electrically connecting the
upstream bus to the downstream bus that hosts the i2c slave device which
made the IO request.

The net effect is automatic mux switching which is transparent to slaves on
the downstream buses. They just do i2c IO they way they normally do, and the
bus is electrically connected for the duration of the IO and then idled when
it is complete.

The existing iicbus_if callback() method is enhanced so that the parameter
passed to it can be a struct which contains a device_t for the requesting
bus and slave devices. This change is done by adding a flag that indicates
the extra values are present, and making the flags field the first field of
a new args struct. If the flag is set, the iichb or mux driver can recast
the pointer-to-flags into a pointer-to-struct and access the extra
fields. Thus abi compatibility with older drivers is retained (but a mux
cannot exist on the bus with the older iicbus driver in use.)

A new set of core support routines exists in iicbus.c. This code will help
implement mux drivers for any type of mux hardware by supplying all the
boilerplate code that forwards IO requests upstream. It also has code for
parsing metadata and instantiating the child iicbus instances based on it.

Two new hardware mux drivers are added. The ltc430x driver supports the
LTC4305/4306 mux chips which are controlled via i2c commands. The
iic_gpiomux driver supports any mux hardware which is controlled by
manipulating the state of one or more gpio pins.  Test Plan

Tested locally using a variety of mux'd bus configurations involving both
ltc4305 and a homebrew gpio-controlled mux. Tested configurations included
cascaded muxes (unlikely in the real world, but useful to prove that 'it all
just works' in terms of the automatic switching and upstream forwarding of
IO requests).


Revision 356001 - (view) (download) (annotate) - [select for diffs]
Modified Sun Dec 22 06:25:20 2019 UTC (4 years, 6 months ago) by cem
File length: 234420 byte(s)
Diff to previous 355924
Add vmgenc(4) driver for ACPI VM generation counter

The VM generation counter is a 128-bit value exposed by the BIOS via ACPI.
The value changes to another unique identifier whenever a VM is duplicated.
Additionally, ACPI provides notification events when such events occur.

The driver decodes the pointer to the UUID, exports the value to userspace
via OPAQUE sysctl blob, and forwards the ACPI notifications in the form of
an EVENTHANDLER invocation as well as userspace devctl events.

See design paper: https://go.microsoft.com/fwlink/p/?LinkID=260709


Revision 355924 - (view) (download) (annotate) - [select for diffs]
Modified Fri Dec 20 03:40:50 2019 UTC (4 years, 6 months ago) by philip
File length: 234381 byte(s)
Diff to previous 355923
iicoc: add FDT bus attachment

This adds support for OpenCores I2C master controllers on FDT systems.

Reviewed by:    kp
Sponsored by:   Axiado


Revision 355923 - (view) (download) (annotate) - [select for diffs]
Modified Fri Dec 20 03:40:46 2019 UTC (4 years, 6 months ago) by philip
File length: 234338 byte(s)
Diff to previous 355822
iicoc: split up common core and PCI bus specifics

The OpenCores I2C IP core can be found on any bus.  Split out the PCI
bus specifics into their own file, only compiled on systems with PCI.

Reviewed by:    kp
Sponsored by:   Axiado


Revision 355822 - (view) (download) (annotate) - [select for diffs]
Modified Mon Dec 16 21:34:51 2019 UTC (4 years, 6 months ago) by imp
File length: 234295 byte(s)
Diff to previous 355579
We'll never have multiple slots a cardbus bridge. So, replace exca
array with a singleton.

Also, pccbb isa attachment is never going to happen, do disconnect it from the
build (will delete this in future commit). It would need to be updated as well,
but since this code is effectively dead code, remove it from the build instead.


Revision 355579 - (view) (download) (annotate) - [select for diffs]
Modified Tue Dec 10 07:45:10 2019 UTC (4 years, 6 months ago) by np
File length: 234335 byte(s)
Diff to previous 355462
cxgbe(4): Update T4/5/6 firmwares to 1.24.11.0.

These were obtained from the Chelsio Unified Wire v3.12.0.1 beta
release.

Note that the firmwares are not uuencoded any more.

MFH:		1 month
Sponsored by:	Chelsio Communications


Revision 355462 - (view) (download) (annotate) - [select for diffs]
Modified Fri Dec 6 20:21:07 2019 UTC (4 years, 6 months ago) by loos
File length: 234302 byte(s)
Diff to previous 355446
Add a GPIO based MDIO bit-banging bus driver.

Uses two GPIO pins as MDC (clock) and MDIO (bidirectional I/O), relies
on mii_bitbang.

Tested on SG-3200 where the PHY for one of the ports is wired independently
of the SoC MDIO bus.

Sponsored by:	Rubicon Communications, LLC (Netgate)


Revision 355446 - (view) (download) (annotate) - [select for diffs]
Modified Fri Dec 6 15:36:32 2019 UTC (4 years, 6 months ago) by hselasky
File length: 234251 byte(s)
Diff to previous 355421
Implement hardware TLS via send tags for mlx5en(4), which is supported by
ConnectX-6 DX.

Currently TLS v1.2 and v1.3 with AES 128/256 crypto over TCP/IP (v4
and v6) is supported.

A per PCI device UMA zone is used to manage the memory of the send
tags.  To optimize performance some crypto contexts may be cached by
the UMA zone, until the UMA zone finishes the memory of the given send
tag.

An asynchronous task is used manage setup of the send tags towards the
firmware. Most importantly setting the AES 128/256 bit pre-shared keys
for the crypto context.

Updating the state of the AES crypto engine and encrypting data, is
all done in the fast path. Each send tag tracks the TCP sequence
number in order to detect non-contiguous blocks of data, which may
require a dump of prior unencrypted data, to restore the crypto state
prior to wire transmission.

Statistics counters have been added to count the amount of TLS data
transmitted in total, and the amount of TLS data which has been dumped
prior to transmission. When non-contiguous TCP sequence numbers are
detected, the software needs to dump the beginning of the current TLS
record up until the point of retransmission. All TLS counters utilize
the counter(9) API.

In order to enable hardware TLS offload the following sysctls must be set:
kern.ipc.mb_use_ext_pgs=1
kern.ipc.tls.ifnet.permitted=1
kern.ipc.tls.enable=1

Sponsored by:	Mellanox Technologies


Revision 355421 - (view) (download) (annotate) - [select for diffs]
Modified Thu Dec 5 15:16:19 2019 UTC (4 years, 6 months ago) by hselasky
File length: 234157 byte(s)
Diff to previous 355304
Add basic support for TCP/IP based hardware TLS offload to mlx5core.

The hardware offload is primarily targeted for TLS v1.2 and v1.3,
using AES 128/256 bit pre-shared keys. This patch adds all the needed
hardware structures, capabilites and firmware commands.

Sponsored by:	Mellanox Technologies


Revision 355304 - (view) (download) (annotate) - [select for diffs]
Modified Mon Dec 2 20:58:04 2019 UTC (4 years, 7 months ago) by trasz
File length: 234079 byte(s)
Diff to previous 355164
Make use of the stats(3) framework in the TCP stack.

This makes it possible to retrieve per-connection statistical
information such as the receive window size, RTT, or goodput,
using a newly added TCP_STATS getsockopt(3) option, and extract
them using the stats_voistat_fetch(3) API.

See the net/tcprtt port for an example consumer of this API.

Compared to the existing TCP_INFO system, the main differences
are that this mechanism is easy to extend without breaking ABI,
and provides statistical information instead of raw "snapshots"
of values at a given point in time.  stats(3) is more generic
and can be used in both userland and the kernel.

Reviewed by:	thj
Tested by:	thj
Obtained from:	Netflix
Relnotes:	yes
Sponsored by:	Klara Inc, Netflix
Differential Revision:	https://reviews.freebsd.org/D20655


Revision 355164 - (view) (download) (annotate) - [select for diffs]
Modified Thu Nov 28 02:32:17 2019 UTC (4 years, 7 months ago) by scottl
File length: 234024 byte(s)
Diff to previous 354974
Remove the trm(4) driver

Differential Revision:	https://reviews.freebsd.org/D22575


Revision 354974 - (view) (download) (annotate) - [select for diffs]
Modified Thu Nov 21 19:30:31 2019 UTC (4 years, 7 months ago) by jhb
File length: 234053 byte(s)
Diff to previous 354942
NIC KTLS for Chelsio T6 adapters.

This adds support for ifnet (NIC) KTLS using Chelsio T6 adapters.
Unlike the TOE-based KTLS in r353328, NIC TLS works with non-TOE
connections.

NIC KTLS on T6 is not able to use the normal TSO (LSO) path to segment
the encrypted TLS frames output by the crypto engine.  Instead, the
TOE is placed into a special setup to permit "dummy" connections to be
associated with regular sockets using KTLS.  This permits using the
TOE to segment the encrypted TLS records.  However, this approach does
have some limitations:

1) Regular TOE sockets cannot be used when the TOE is in this special
   mode.  One can use either TOE and TOE-based KTLS or NIC KTLS, but
   not both at the same time.

2) In NIC KTLS mode, the TOE is only able to accept a per-connection
   timestamp offset that varies in the upper 4 bits.  Put another way,
   only connections whose timestamp offset has the 28 lower bits
   cleared can use NIC KTLS and generate correct timestamps.  The
   driver will refuse to enable NIC KTLS on connections with a
   timestamp offset with any of the lower 28 bits set.  To use NIC
   KTLS, users can either disable TCP timestamps by setting the
   net.inet.tcp.rfc1323 sysctl to 0, or apply a local patch to the
   tcp_new_ts_offset() function to clear the lower 28 bits of the
   generated offset.

3) Because the TCP segmentation relies on fields mirrored in a TCB in
   the TOE, not all fields in a TCP packet can be sent in the TCP
   segments generated from a TLS record.  Specifically, for packets
   containing TCP options other than timestamps, the driver will
   inject an "empty" TCP packet holding the requested options (e.g. a
   SACK scoreboard) along with the segments from the TLS record.
   These empty TCP packets are counted by the
   dev.cc.N.txq.M.kern_tls_options sysctls.

Unlike TOE TLS which is able to buffer encrypted TLS records in
on-card memory to handle retransmits, NIC KTLS must re-encrypt TLS
records for retransmit requests as well as non-retransmit requests
that do not include the start of a TLS record but do include the
trailer.  The T6 NIC KTLS code tries to optimize some of the cases for
requests to transmit partial TLS records.  In particular it attempts
to minimize sending "waste" bytes that have to be given as input to
the crypto engine but are not needed on the wire to satisfy mbufs sent
from the TCP stack down to the driver.

TCP packets for TLS requests are broken down into the following
classes (with associated counters):

- Mbufs that send an entire TLS record in full do not have any waste
  bytes (dev.cc.N.txq.M.kern_tls_full).

- Mbufs that send a short TLS record that ends before the end of the
  trailer (dev.cc.N.txq.M.kern_tls_short).  For sockets using AES-CBC,
  the encryption must always start at the beginning, so if the mbuf
  starts at an offset into the TLS record, the offset bytes will be
  "waste" bytes.  For sockets using AES-GCM, the encryption can start
  at the 16 byte block before the starting offset capping the waste at
  15 bytes.

- Mbufs that send a partial TLS record that has a non-zero starting
  offset but ends at the end of the trailer
  (dev.cc.N.txq.M.kern_tls_partial).  In order to compute the
  authentication hash stored in the trailer, the entire TLS record
  must be sent as input to the crypto engine, so the bytes before the
  offset are always "waste" bytes.

In addition, other per-txq sysctls are provided:

- dev.cc.N.txq.M.kern_tls_cbc: Count of sockets sent via this txq
  using AES-CBC.

- dev.cc.N.txq.M.kern_tls_gcm: Count of sockets sent via this txq
  using AES-GCM.

- dev.cc.N.txq.M.kern_tls_fin: Count of empty FIN-only packets sent to
  compensate for the TOE engine not being able to set FIN on the last
  segment of a TLS record if the TLS record mbuf had FIN set.

- dev.cc.N.txq.M.kern_tls_records: Count of TLS records sent via this
  txq including full, short, and partial records.

- dev.cc.N.txq.M.kern_tls_octets: Count of non-waste bytes (TLS header
  and payload) sent for TLS record requests.

- dev.cc.N.txq.M.kern_tls_waste: Count of waste bytes sent for TLS
  record requests.

To enable NIC KTLS with T6, set the following tunables prior to
loading the cxgbe(4) driver:

hw.cxgbe.config_file=kern_tls
hw.cxgbe.kern_tls=1

Reviewed by:	np
Sponsored by:	Chelsio Communications
Differential Revision:	https://reviews.freebsd.org/D21962


Revision 354942 - (view) (download) (annotate) - [select for diffs]
Modified Thu Nov 21 11:22:08 2019 UTC (4 years, 7 months ago) by andrew
File length: 233949 byte(s)
Diff to previous 354807
Port the NetBSD KCSAN runtime to FreeBSD.

Update the NetBSD Kernel Concurrency Sanitizer (KCSAN) runtime to work in
the FreeBSD kernel. It is a useful tool for finding data races between
threads executing on different CPUs.

This can be enabled by enabling KCSAN in the kernel config, or by using the
GENERIC-KCSAN amd64 kernel. It works on amd64 and arm64, however the later
needs a compiler change to allow -fsanitize=thread that KCSAN uses.

Sponsored by:	DARPA, AFRL
Differential Revision:	https://reviews.freebsd.org/D22315


Revision 354807 - (view) (download) (annotate) - [select for diffs]
Modified Mon Nov 18 10:46:55 2019 UTC (4 years, 7 months ago) by avg
File length: 233873 byte(s)
Diff to previous 354686
fix up r354804, add new ZFS file mmp.c to kernel files

Reported by:	CI LINT build
MFC after:	4 weeks
X-MFC with:	r354804


Revision 354686 - (view) (download) (annotate) - [select for diffs]
Modified Wed Nov 13 17:06:10 2019 UTC (4 years, 7 months ago) by jhb
File length: 233785 byte(s)
Diff to previous 354562
Add t4_keyctx.c to sys/conf/files for the non-module build.

Missed in r354667.

Pointy hat to:	jhb
MFC after:	1 month
Sponsored by:	Chelsio Communications


Revision 354562 - (view) (download) (annotate) - [select for diffs]
Modified Fri Nov 8 20:47:59 2019 UTC (4 years, 7 months ago) by markj
File length: 233692 byte(s)
Diff to previous 354554
Add new iwm(4) files to sys/conf/files.

Submitted by:	rea
MFC with:	r354504


Revision 354554 - (view) (download) (annotate) - [select for diffs]
Modified Fri Nov 8 18:57:41 2019 UTC (4 years, 7 months ago) by mmel
File length: 233620 byte(s)
Diff to previous 354267
Implement support for (soft)linked clocks.
This kind of clock nodes represent temporary placeholder for clocks
defined later in boot process. Also, these are necessary to break
circular dependencies occasionally occurring in complex clock graphs.

MFC after: 3 weeks


Revision 354267 - (view) (download) (annotate) - [select for diffs]
Modified Sat Nov 2 21:52:45 2019 UTC (4 years, 8 months ago) by tsoome
File length: 233563 byte(s)
Diff to previous 354264
r354264 did mix up the directory path

The correct path is sys/cddl/contrib/opensolaris/common/lz4, not
sys/cddl/contrib/opensolaris/lz4

Reported by:	Michael Butler


Revision 354264 - (view) (download) (annotate) - [select for diffs]
Modified Sat Nov 2 20:46:45 2019 UTC (4 years, 8 months ago) by tsoome
File length: 233557 byte(s)
Diff to previous 353742
r354253 did miss the updates to sys/conf/files and sys/conf/kern.pre.mk

Reported by:	Brandon Bergren


Revision 353742 - (view) (download) (annotate) - [select for diffs]
Modified Fri Oct 18 22:03:36 2019 UTC (4 years, 8 months ago) by cem
File length: 233569 byte(s)
Diff to previous 353700
Fix debugnet(4) link/build fallout on some configurations

Introduced in r353685 (sys/conf/files), r353694 (debugnet.c db_printf).

Submitted by:	kevans
Reported by:	cy
X-MFC-With:	r353685, r353694


Revision 353700 - (view) (download) (annotate) - [select for diffs]
Modified Thu Oct 17 21:33:01 2019 UTC (4 years, 8 months ago) by cem
File length: 233560 byte(s)
Diff to previous 353685
Implement NetGDB(4)

NetGDB(4) is a component of a system using a panic-time network stack to
remotely debug crashed FreeBSD kernels over the network, instead of
traditional serial interfaces.

There are three pieces in the complete NetGDB system.

First, a dedicated proxy server must be running to accept connections from
both NetGDB and gdb(1), and pass bidirectional traffic between the two
protocols.

Second, the NetGDB client is activated much like ordinary 'gdb' and
similarly to 'netdump' in ddb(4) after a panic.  Like other debugnet(4)
clients (netdump(4)), the network interface on the route to the proxy server
must be online and support debugnet(4).

Finally, the remote (k)gdb(1) uses 'target remote <proxy>:<port>' (like any
other TCP remote) to connect to the proxy server.

The NetGDB v1 protocol speaks the literal GDB remote serial protocol, and
uses a 1:1 relationship between GDB packets and sequences of debugnet
packets (fragmented by MTU).  There is no encryption utilized to keep
debugging sessions private, so this is only appropriate for local
segments or trusted networks.

Submitted by:	John Reimer <john.reimer AT emc.com> (earlier version)
Discussed some with:	emaste, markj
Relnotes:	sure
Differential Revision:	https://reviews.freebsd.org/D21568


Revision 353685 - (view) (download) (annotate) - [select for diffs]
Modified Thu Oct 17 16:23:03 2019 UTC (4 years, 8 months ago) by cem
File length: 233507 byte(s)
Diff to previous 353477
Split out a more generic debugnet(4) from netdump(4)

Debugnet is a simplistic and specialized panic- or debug-time reliable
datagram transport.  It can drive a single connection at a time and is
currently unidirectional (debug/panic machine transmit to remote server
only).

It is mostly a verbatim code lift from netdump(4).  Netdump(4) remains
the only consumer (until the rest of this patch series lands).

The INET-specific logic has been extracted somewhat more thoroughly than
previously in netdump(4), into debugnet_inet.c.  UDP-layer logic and up, as
much as possible as is protocol-independent, remains in debugnet.c.  The
separation is not perfect and future improvement is welcome.  Supporting
INET6 is a long-term goal.

Much of the diff is "gratuitous" renaming from 'netdump_' or 'nd_' to
'debugnet_' or 'dn_' -- sorry.  I thought keeping the netdump name on the
generic module would be more confusing than the refactoring.

The only functional change here is the mbuf allocation / tracking.  Instead
of initiating solely on netdump-configured interface(s) at dumpon(8)
configuration time, we watch for any debugnet-enabled NIC for link
activation and query it for mbuf parameters at that time.  If they exceed
the existing high-water mark allocation, we re-allocate and track the new
high-water mark.  Otherwise, we leave the pre-panic mbuf allocation alone.
In a future patch in this series, this will allow initiating netdump from
panic ddb(4) without pre-panic configuration.

No other functional change intended.

Reviewed by:	markj (earlier version)
Some discussion with:	emaste, jhb
Objection from:	marius
Differential Revision:	https://reviews.freebsd.org/D21421


Revision 353477 - (view) (download) (annotate) - [select for diffs]
Added Sun Oct 13 16:14:04 2019 UTC (4 years, 8 months ago) by markj
File length: 233423 byte(s)
Diff to previous 353283
Move SCTP DTrace probe definitions into a .c file.

Previously they were defined in a header which was included exactly
once.  Change this to follow the usual practice of putting definitions
in C files.  No functional change intended.

Discussed with:	tuexen
MFC after:	1 week
Sponsored by:	The FreeBSD Foundation



This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.

  Diffs between and
  Type of Diff should be a

  ViewVC Help
Powered by ViewVC 1.1.27