History log of /freebsd-current/sys/modules/Makefile
Revision Date Author Comments
# c867ba72 28-May-2024 Mark Johnston <markj@FreeBSD.org>

bnxt: Do not compile on 32-bit platforms

The new bnxt_re driver doesn't compile on any of them (it uses writeq()
from the LinuxKPI, which isn't implemented there), and had already been
disconnected from the build on i386.

Reported by: Jenkins
Fixes: acd884dec99a ("RDMA/bnxt_re: Add bnxt_re RoCE driver")


# 0e2ce866 23-May-2024 Lexi Winter <lexi@le-Fay.ORG>

ipfw: don't build the module if INET not in kernel

Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/1255


# 8aac90f1 09-May-2024 Baptiste Daroussin <bapt@FreeBSD.org>

mac_do: add a new MAC/do policy and mdo(1) utility

This policy enables a user to become another user without having to be
root (hence no setuid binary). it is configured via rules using sysctl
security.mac.do.rules

For example:
security.mac.do.rules=uid=1001:80,gid=0:any

The above rule means the user identifier by the uid 1001 is able to
become user 80
Any user of the group 0 are allowed to become any user on the system.

The mdo(1) utility expects the MAC/do policy to be installed and its
rules defined.

Reviewed by: des
Differential Revision: https://reviews.freebsd.org/D45145


# 304a0327 14-May-2024 Lexi Winter <lexi@le-Fay.ORG>

sys/modules/dpdk_lpm4: do not build without INET

Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/1236


# c2e9c5bb 13-Nov-2023 Justin Hibbits <jhibbits@FreeBSD.org>

tpm: Refactor TIS and add a SPI attachment

Summary:
Though mostly used in x86 devices, TPM can be used on others, with a
direct SPI attachment. Refactor the TPM 2.0 driver set to use an
attachment interface, and implement a SPI bus interface.

Test Plan:
Tested on a Raspberry Pi 4, with a GeeekPi TPM2.0 module (SLB9670
TPM) using security/tpm2-tools tpm2_getcaps for very light testing against the
spibus attachment.

Reviewed by: kd
Obtained from: Juniper Networks, Inc.
Differential Revision: https://reviews.freebsd.org/D45069


# aa1207ea 02-May-2024 John Baldwin <jhb@FreeBSD.org>

nvmf: Add infrastructure kernel module for NVMe over Fabrics

nvmf_transport.ko provides routines for managing NVMeoF queue pairs
and capsules. It provides a glue layer between transports (such as
TCP or RDMA) and an NVMeoF host (initiator) and controller (target).

Unlike the synchronous API exposed to the host and controller by
libnvmf, the kernel's transport layer uses an asynchronous API built
on callbacks. Upper layers provide callbacks on queue pairs that are
invoked for transport errors (error_cb) or anytime a capsule is
received (receive_cb).

Data transfers for a command are usually associated with a callback
that is invoked once a transfer has finished either due to an error
or successful completion.

For an upper layer that is a host, command capsules are allocated and
populated with an NVMe SQE by calling nvmf_allocate_command. A data
buffer (described by a struct memdesc) can be associated with a
command capsule before it is transmitted via nvmf_capsule_append_data.
This function accepts a direction (send vs receive) as well as the
data transfer callback. The host then transmits the command via
nvmf_transmit_capsule. The host must ensure that the data buffer
described by the 'struct memdesc' remains valid until the data
transfer callback is called. The queue pair's receive_cb callback
should match received response capsules up with previously transmitted
commands.

For the controller, incoming commands are received via the queue
pair's receive_cb callback. nvmf_receive_controller_data is used to
retrieve any data from a command (e.g. the data for a WRITE command).
It can be called multiple times to split the data transfer into
smaller sizes. This function accepts an I/O completion callback that
is invoked once the data transfer has completed.
nvmf_send_controller_data is used to send data to a remote host in
response to a command. In this case a callback function is not used
but the status is returned synchronously. Finally, the controller can
allocate a response capsule via nvmf_allocate_response populated with
a supplied CQE and send the response via nvmf_transmit_capsule.

Reviewed by: imp
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D44711


# 11d79c47 24-Apr-2024 Emmanuel Vadot <manu@FreeBSD.org>

linuxkpi: Add linuxkpi_video module

This contain the hdmi code and the aperture code like in linux.

Differential Revision: https://reviews.freebsd.org/D44925
Reviewed by: bz
Obtained from: drm-kmod
Sponsored by: Beckhoff Automation GmbH & Co. KG


# c68eed82 24-Apr-2024 Gleb Smirnoff <glebius@FreeBSD.org>

accf_tls: accept filter that waits for TLS handshake header


# 2cf0c517 12-Apr-2024 Lexi Winter <lexi@le-Fay.ORG>

genet: add module (if_genet.ko)

The driver already had the appropriate module macros, it just wasn't
hooked into the build system.

Since this device is specific to the Raspberry Pi 4, only build it for
AArch64.

Reviewed by: imp, emaste (earlier version)
Pull Request: https://github.com/freebsd/freebsd-src/pull/1139


# 16e846fa 09-Apr-2024 John Baldwin <jhb@FreeBSD.org>

sys: Enable NVMe drivers on all architectures

The NVMe drivers are portable and are already included statically in
GENERIC on other architectures such as aarch64 and riscv64.

Reviewed by: imp
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D44690


# 5ca8e326 22-Mar-2024 Pierre-Luc Drouin <pldrouin@pldrouin.net>

vf_i2c: split up and add ACPI attachments in addition to FDT

Move the code from the arm specific to the iicbus controller directory.
Split up between general logic and bus attachment code.
Add support for ACPI attachment in addition to FDT.

MFC after: 7 days
Tested by: bz (LS1088a FDT), Pierre-Luc Drouin (Honeycomb, ACPI)
Based on: D24917 by Val Packett (initial early version)
Differential Revision: https://reviews.freebsd.org/D44020


# 47e07394 09-Jan-2024 Andrew Turner <andrew@FreeBSD.org>

Import the kernel parts of bhyve/arm64

To support virtual machines on arm64 add the vmm code. This is based on
earlier work by Mihai Carabas and Alexandru Elisei at University
Politehnica of Bucharest, with further work by myself and Mark Johnston.

All AArch64 CPUs should work, however only the GICv3 interrupt
controller is supported. There is initial support to allow the GICv2
to be supported in the future. Only pure Armv8.0 virtualisation is
supported, the Virtualization Host Extensions are not currently used.

With a separate userspace patch and U-Boot port FreeBSD guests are able
to boot to multiuser mode, and the hypervisor can be tested with the
kvm unit tests. Linux partially boots, but hangs before entering
userspace. Other operating systems are untested.

Sponsored by: Arm Ltd
Sponsored by: Innovate UK
Sponsored by: The FreeBSD Foundation
Sponsored by: University Politehnica of Bucharest
Differential Revision: https://reviews.freebsd.org/D37428


# f92d9b1a 28-Nov-2023 Kristof Provost <kp@FreeBSD.org>

pflow: import from OpenBSD

pflow is a pseudo device to export flow accounting data over UDP.
It's compatible with netflow version 5 and IPFIX (10).

The data is extracted from the pf state table. States are exported once
they are removed.

Reviewed by: melifaro
Obtained from: OpenBSD
Sponsored by: Rubicon Communications, LLC ("Netgate")
Differential Revision: https://reviews.freebsd.org/D43106


# 3812c653 14-Dec-2023 Jessica Clarke <jrtc27@FreeBSD.org>

Revert "Don't try and run kldxref for arm kernels"

Now that kldxref supports arm this should not be needed.

This reverts commit 0840bdbf2a07b68e29267bc49057ca6df2351360.


# 0840bdbf 14-Dec-2023 Jessica Clarke <jrtc27@FreeBSD.org>

Don't try and run kldxref for arm kernels

Surprisingly, kldxref does not currently support arm, and unhelpfully
this means it silently does nothing rather than give an error, so the
linker.hints entry added to the METALOG for -DNO_ROOT builds (and
pkgbase ones) refers to a file that doesn't exist. Ideally it would be
supported (and ideally the METALOG handling would be less fragile, but
without integrating it into kldxref the only real option would be to
just run find(1) to get the list of linker.hints files, which feels a
little backwards), but for now just paper over this by skipping the
build step on arm.

Reported by: bapt
Fixes: ff7c12c1f17e ("Make kldxref a bootstrap tool and use unconditionally")


# ff7c12c1 13-Dec-2023 Jessica Clarke <jrtc27@FreeBSD.org>

Make kldxref a bootstrap tool and use unconditionally

Now that kldxref is a generic cross tool and can be built on non-FreeBSD
we can bootstrap it during the build and thus remove the condition for
whether it exists. We also need to make sure to add it to the METALOG
for -DNO_ROOT builds.

Reviewed by: brooks, imp
Differential Revision: https://reviews.freebsd.org/D43051


# 44f8e1e8 29-Nov-2023 Mark Johnston <markj@FreeBSD.org>

ossl: Add support for armv7

OpenSSL provides implementations of several AES modes which use
bitslicing and can be accelerated on CPUs which support the NEON
extension. This patch adds arm platform support to ossl(4) and provides
an AES-CBC implementation, though bsaes_cbc_encrypt() only implements
decryption. The real goal is to provide an accelerated AES-GCM
implementation; this will be added in a subsequent patch.

Initially derived from https://reviews.freebsd.org/D37420.

Reviewed by: jhb
Sponsored by: Klara, Inc.
Sponsored by: Stormshield
MFC after: 3 months
Differential Revision: https://reviews.freebsd.org/D41304


# 9eecef05 15-Nov-2023 Andrew Turner <andrew@FreeBSD.org>

Add an Armv8 rndr random number provider

Armv8.5 adds an optional random number generator. This is implemented
as two special registers one to read a random number, the other to
re-seed the entropy pool before reading a random number. Both registers
will set the condition flags to tell the caller they can't produce a
random number in a reasonable amount of time.

Without a signal to reseed the entropy pool use the latter register
to provide random numbers to the kernel pool. If at a later time we
had a way to tell the provider if it needs to reseed or not we could
use the former.

On an Amazon AWS Graviton3 VM this never failed, however this may not
be the case on low end CPUs so retry reading the random number 10 times
before returning an error.

Reviewed by: imp, delphij (csprng)
Sponsored by: The FreeBSD Foundation
Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D35411


# 299e2d57 06-Oct-2023 Bjoern A. Zeeb <bz@FreeBSD.org>

rtw88: re-connect to the build

This adds the (updated) rtw88 driver back to the build.
Functionality has not been tested (much) so might not currently
work but people offered to test.

Firmware is provided by the wifi-firmware-rtw88-kmod port/package.

This reverts commit 712468443df1130db8f893a5e2ce5c6a8dbf5cde.


# af6aaa90 21-Sep-2023 Bjoern A. Zeeb <bz@FreeBSD.org>

iwlwifi: re-attach to build after updates

While the build-breaking changes were only in the window of
the two commits, 3e1f5cc9a81a..9af1bba44e1c, further updates
restored some functionality as well. Now that we are done,
add iwlwifi back to the build.

This reverts commit b75d1ce6c10652fc4bfbf509deeae0e05c3d1356.

Sponsored by: The FreeBSD Foundation
MFC after: 3 days


# b75d1ce6 21-Sep-2023 Bjoern A. Zeeb <bz@FreeBSD.org>

iwlwifi: temporary disable build for updates

Disconnect iwlwifi from the build for a few commits which, due to
incompatible LinuxKPI 802.11 changes would break the build for a
revision. It will be re-enabled "instantly".

Sponsored by: The FreeBSD Foundation
MFC after: 3 days


# 71246844 05-Sep-2023 Bjoern A. Zeeb <bz@FreeBSD.org>

rtw88: temporary disconnect from build

As announced on freebsd-wireless [1] disconnect rtw88 from the build.
Add a note to the man page about the current state but leave the man
page in place for now as this is supposed to be temporary.

[1] https://lists.freebsd.org/archives/freebsd-wireless/2023-September/001377.html

MFC after: 20 days
X-MFC: will see about 14/13


# aece2a4f 08-Jun-2023 Bjoern A. Zeeb <bz@FreeBSD.org>

rtw88: detach firmware from build

Firmware is kept in ports now and fwget will find the right one to
install.

MFC after: 20 days
X-MFC: will see about 14/13


# 2a902189 18-Aug-2023 Dmitry Salychev <dsl@FreeBSD.org>

sff: Add SFP driver (fdt-based draft)

This basic version of the driver obtains properties of the "sff,sfp"
compatible devices and implements a simple interface to provide an I2C
bus device for the rest of the drivers (e.g. to implement SIOCGI2C).

Both of the interface and driver are subjects for a further
generalization to be used in case of non-FDT and non-arm64 platforms.

Reviewed by: bz, manu
Approved by: bz (mentor)
MFC after: 3 weeks
Differential Revision: https://reviews.freebsd.org/D41440


# 031beb4e 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

sys: Remove $FreeBSD$: one-line sh pattern

Remove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/


# 37c8ee88 07-Aug-2023 Marius Strobl <marius@FreeBSD.org>

ath(4): Remove MIPS AHB frontend and join PCI one w/ main support again

Following the removal of general MIPS support, there's no longer a need
to have the AHB bus-frontend in place, which according to Linux sources
also isn't used with any non-MIPS SoCs. For simplicity, PCI bus support
is only made conditional on the main one again, i. e. device ath_pci is
removed, and built into the main module, i. e. if_ath_pci.ko obsoleted,
respectively.
Effectively, this reverts the following commits and associated changes:
dba9c8597747c6c9bf3d2ec68f7eb90552878dc7
e849bb3ecbb1963344a22ae77fc96f89fbebf40c

Approved by: adrian
Relnotes: yes
Differential Revision: https://reviews.freebsd.org/D41354


# 3e1f6952 08-Aug-2023 Warner Losh <imp@FreeBSD.org>

modules: Use MACHINE_CPUARCH more

Replace two cases of MACHINE_ARCH with MACHINE_CPUARCH and also use
`aarch64` instead of the improper `arm64` for that test.

Noticed by: Mark Millard
Sponsored by: Netflix


# 215bab79 25-Jul-2023 Shivank Garg <shivank@freebsd.org>

mac_ipacl: new MAC policy module to limit jail/vnet IP configuration

The mac_ipacl policy module enables fine-grained control over IP address
configuration within VNET jails from the base system.
It allows the root user to define rules governing IP addresses for
jails and their interfaces using the sysctl interface.

Requested by: multiple
Sponsored by: Google, Inc. (GSoC 2019)
MFC after: 2 months
Reviewed by: bz, dch (both earlier versions)
Differential Revision: https://reviews.freebsd.org/D20967


# 350b7c35 01-Jul-2023 Stéphane Rochoy <stephane.rochoy@stormshield.eu>

superio+ncthwm: Add hardware monitoring support

Add support for the following chips:
- Nuvoton NCT6779D
- Nuvoton NCT6796D-E

Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/719


# 2d1d418e 14-Jun-2023 Sumit Saxena <sumit.saxena@broadcom.com>

mpi3mr: 3rd Generation Tri-Mode NVMe/SAS/SATA MegaRaid / eHBA

This is Broadcom's mpi3mr driver for FreeBSD version 8.6.0.2.0.
The mpi3mr driver supports Broadcom SAS4116-based cards in the 9600
series: 9670W-16i, 9670-24i, 9660-16i, 9620-16i, 9600-24i, 9600-16i,
9600W-16e, 9600-16e, 9600-8i8e.

Initially only available as a module and on amd64/arm64, since that's
how it has been tested to date. Future commits will add it to the kernel
build and may expand the architectures it is supported on.

Co-authored-by: Chandrakanth Patil <chandrakanth.patil@broadcom.com>
Feedback-by: ken (prior versions)
Reviewed-by: imp
RelNotes: yes
Differential-Revision: https://reviews.freebsd.org/D36771
Differential-Revision: https://reviews.freebsd.org/D36772


# 28082681 12-Jun-2023 Mark Johnston <markj@FreeBSD.org>

qatfw: Don't build if WITH_SOURCELESS_UCODE is defined


# 694f18d3 12-Jun-2023 Mark Johnston <markj@FreeBSD.org>

qat: Stop building on i386

The driver isn't tested on i386, so don't spend effort compiling it.


# 4d779448 04-Jun-2023 Xin LI <delphij@FreeBSD.org>

gve: Fix build on i386 and enable LINT builds.

Reviewed-by: imp
Differential Revision: https://reviews.freebsd.org/D40419


# 54dfc97b 02-Jun-2023 Shailend Chand <shailend@google.com>

Add gve, the driver for Google Virtual NIC (gVNIC)

gVNIC is a virtual network interface designed specifically for
Google Compute Engine (GCE). It is required to support per-VM Tier_1
networking performance, and for using certain VM shapes on GCE.

The NIC supports TSO, Rx and Tx checksum offloads, and RSS.
It does not currently do hardware LRO, and thus the software-LRO
in the host is used instead. It also supports jumbo frames.

For each queue, the driver negotiates a set of pages with the NIC to
serve as a fixed bounce buffer, this precludes the use of iflib.

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


# 8a2af0b4 01-Jun-2023 Baptiste Daroussin <bapt@FreeBSD.org>

nlsysevent: add a genetlink(4) module to report kernel events

Hooked to devctl_notify, this allows consumers to received events
by subscribing to a system over a generic netlink protocol

Reviewed by: imp, melifaro
Differential Revision: https://reviews.freebsd.org/D37574


# 062a7b91 10-May-2023 Warner Losh <imp@FreeBSD.org>

twe: Remove driver

Sponsored by: Netflix


# b8da3b62 17-Apr-2023 Alexander V. Chernikov <melifaro@FreeBSD.org>

tests: add ktest modules to build

MFC after: 2 weeks


# 894bcc87 16-Apr-2023 Stephen J. Kiernan <stevek@FreeBSD.org>

sys/modules/Makefile: conditionally add MAC/veriexec modules

Only build MAC/veriexec modules when MK_VERIEXEC is yes or we
are building all modules.

Add VERIEXEC knob to kernel __DEFAULT_NO_OPTIONS

Reviewed by: sjg
Obtained from: Juniper Networks, Inc.


# 8050e0a4 16-Apr-2023 Stephen J. Kiernan <stevek@FreeBSD.org>

sys/modules/Makefile: add MAC/veriexec modules into the build

Build the MAC/veriexec module and the SHA2, SHA256, SHA384, and
SHA512 fingerprint modules.

Obtained from: Juniper Networks, Inc.


# f1d7ae31 16-Mar-2023 Emmanuel Vadot <manu@FreeBSD.org>

linuxkpi: Add hdmi helpers

This is a direct port of the Linux code as the licence allows it, so
style(9) isn't respected to allow applying directly the upstream commits.
Do not add it to linuxkpi directly but add a new linuxkpi_hdmi module
that drm modules will require later, no need to bloat linuxkpi more.

Sponsored by: Beckhoff Automation GmbH & Co. KG
Differential Revision: https://reviews.freebsd.org/D39122


# 63715498 11-Mar-2023 Alfredo Dal'Ava Junior <alfredo@FreeBSD.org>

powerpc: enable ZFS on 32 bit powerpc/powerpcspe

Enable ZFS on powerpc 32 bit since it appears to build and work
correctly.

MFC after: 3 weeks
Relnotes: yes


# 3140e27e 08-Mar-2023 John Baldwin <jhb@FreeBSD.org>

sys/modules/Makefile: Add a section for arm64 + x86 + powerpc64.

This reduces some duplication between the existing arm64 + x86 section
and the powerpc64 section. To make the diff simpler, enable mlx4 on
powerpc64 since it compiles.

Reviewed by: pkubaj, imp, emaste
Differential Revision: https://reviews.freebsd.org/D38973


# fe0f6950 08-Mar-2023 John Baldwin <jhb@FreeBSD.org>

Enable OFED on all platforms except for 32-bit arm.

32-bit arm triggers multiple -Wunaligned-access errors due to
structure packing.

Reviewed by: emaste
Differential Revision: https://reviews.freebsd.org/D38972


# 1b10e191 28-Feb-2023 Stéphane Rochoy <stephane.rochoy@stormshield.eu>

superio,ftgpio: Add support for Fintek F81865 GPIO

Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/674
Differential Revision: https://reviews.freebsd.org/D37893


# e552cac3 25-Feb-2023 Piotr Kubaj <pkubaj@FreeBSD.org>

powerpc64*: port mlx5, OFED, KTLS and krping

Summary:
This review ports mlx5 driver, kernel's OFED stack (userland is already enabled), KTLS and krping to powerpc64 and powerpc64le.

krping requires a small change since it uses assembly for amd64 / i386.

NOTE: On powerpc64le RDMA works fine in the userspace with libmlx5, but on powerpc64 it does not. The problem is that contrib/ofed/libmlx5/doorbell.h checks for SIZEOF_LONG but this macro exists on neither powerpc64* nor amd64. Thus, the file silently goes to the fallback function written for 32-bit architectures. It works fine on little-endian architectures, but causes a hard fail on big-endian. It's possible it may also cause some runtime issues on little-endian.
Thus, on powerpc64 I verified that RDMA works with krping.

Reviewers: #powerpc, hselasky

Subscribers: bdrewery, imp, emaste, jhibbits

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


# f5a1c871 25-Feb-2023 Piotr Kubaj <pkubaj@FreeBSD.org>

Revert "powerpc64*: port mlx5, OFED, KTLS and krping"

Wrong push, another commit was supposed to be pushed.

This reverts commit 83d6d8877ef7dad4f4e8f409a01c9f28139cd026.


# 83d6d887 25-Feb-2023 Piotr Kubaj <pkubaj@FreeBSD.org>

powerpc64*: port mlx5, OFED, KTLS and krping

Summary:
This review ports mlx5 driver, kernel's OFED stack (userland is already enabled), KTLS and krping to powerpc64 and powerpc64le.

krping requires a small change since it uses assembly for amd64 / i386.

NOTE: On powerpc64le RDMA works fine in the userspace with libmlx5, but on powerpc64 it does not. The problem is that contrib/ofed/libmlx5/doorbell.h checks for SIZEOF_LONG but this macro exists on neither powerpc64* nor amd64. Thus, the file silently goes to the fallback function written for 32-bit architectures. It works fine on little-endian architectures, but causes a hard fail on big-endian. It's possible it may also cause some runtime issues on little-endian.
Thus, on powerpc64 I verified that RDMA works with krping.

Reviewers: #powerpc, hselasky

Subscribers: bdrewery, imp, emaste, jhibbits

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


# 9c067b84 27-Jan-2023 Doug Ambrisko <ambrisko@FreeBSD.org>

enic: Cisco VIC driver

This driver is based of the enic (Cisco VIC) DPDK driver. It provides
basic ethernet functionality. Has been run with various VIC cards to
do UEFI PXE boot with NFS root.


# 69d94f4c 02-Feb-2023 Dag-Erling Smørgrav <des@FreeBSD.org>

Add tarfs, a filesystem backed by tarballs.

Sponsored by: Juniper Networks, Inc.
Sponsored by: Klara, Inc.
Reviewed by: pauamma, imp
Differential Revision: https://reviews.freebsd.org/D37753


# 99aeb219 03-Jan-2023 Takanori Watanabe <takawata@FreeBSD.org>

wdatwd: Add support for ACPI WDAT based watchdog timer.

Simply said, WDAT is an abstraction for the real WDT hardware. For
instance, to add a newer generation WDT to ichwd(4), one must know the
detailed hardware registers, etc..

With WDAT, the necessary IO accesses to operate the WDT are comprehensively
described in it and no hardware knowledge is required.

With this driver, the WDT on Advantech ARK-1124C, Dell R210 and Dell R240 are
detected and operated flawlessly.
* While R210 is also supported by ichwd(4), others are not supported yet.

The unfortunate thing is that not all systems have WDAT defined.

Submitted by: t_uemura at macome.co.jp
Reviewed by: hrs
Differential Revision: https://reviews.freebsd.org/D37493


# 895992bb 24-Sep-2020 Ed Maste <emaste@FreeBSD.org>

retire cp(4) driver

Sync serial (e.g. T1/T1/G.703) interfaces are obsolete, this driver
includes obfuscated source, and has reported potential security issues.

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


# 76f67518 02-Feb-2020 Ed Maste <emaste@FreeBSD.org>

retire ce(4) driver

Sync serial (e.g. T1/T1/G.703) interfaces are obsolete, this driver
includes obfuscated source, and has reported potential security issues.

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


# eb40e3e7 04-Nov-2022 Warner Losh <imp@FreeBSD.org>

bnxt: Only filter out i386

Only i386 is missing bus_read_8. The other 32-bit platforms can be fixed
with a cast to a printf.

Suggested by: kevans
Sponsored by: Netflix


# 75217c2b 04-Nov-2022 Warner Losh <imp@FreeBSD.org>

bnxt: Only build on 64-bit platforms

The driver uses bus_space_read_8 and friends, which do not exist on
32-bit i386 and break the build.

Sponsored by: Netflix


# f7026fbb 29-Oct-2022 Warner Losh <imp@FreeBSD.org>

sys/modules: MODULES_OVERRIDE takes precedence over EXTRA_MODULES and WITHOUT_MODULES

MODULES_OVERRIDE has traditionally taken precedence over EXTRA_MODULES
and WITHOUT_MODULES as the exact list of modules to build. Over time,
things have been added that has broken this. Move the .endif that makes
this the case to the right place. The so called 'ALL_MODULES' option is
the only thing with higher precedence, but it's not quite all the
options anymore (though it is much more of them, and doesn't quite
work on !x86).

Sponsored by: Netflix


# 744bfb21 28-Oct-2022 John Baldwin <jhb@FreeBSD.org>

Import the WireGuard driver from zx2c4.com.

This commit brings back the driver from FreeBSD commit
f187d6dfbf633665ba6740fe22742aec60ce02a2 plus subsequent fixes from
upstream.

Relative to upstream this commit includes a few other small fixes such
as additional INET and INET6 #ifdef's, #include cleanups, and updates
for recent API changes in main.

Reviewed by: pauamma, gbe, kevans, emaste
Obtained from: git@git.zx2c4.com:wireguard-freebsd @ 3cc22b2
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D36909


# 31bfa278 28-Oct-2022 Warner Losh <imp@FreeBSD.org>

sys/modules: Catchup to armv[45] being removed

Now that armv[45] are removed, simplify some tests for armv[67] that are
now either always true, or always true when we're on arm.

Sponsored by: Netflix


# c8a63d71 28-Oct-2022 Warner Losh <imp@FreeBSD.org>

sys/modules: Delete now empty if

Ah, the joys of pushing a commit with a dirty editor buffer that all the
checks in git didn't catch... Also, my eyeballs missed it too :(.

Fixes: ba9f71ddeca8
Noticed by: jrtc27
Sponsored by: Netflix


# ba9f71dd 28-Oct-2022 Warner Losh <imp@FreeBSD.org>

sys/modules: simplify a little by moving syscons to x86 only

syscons is x86 only now that sparc has been retired. No need for the
extra if. Also alphabetize p2sb.

Sponsored by: Netflix


# 445875ae 28-Oct-2022 Warner Losh <imp@FreeBSD.org>

sys/modules: tidy up a bit by moving _hyperv to aarch64 section

Suggested by: jhb
Sponsored by: Netflix


# 8e9a651a 27-Oct-2022 Warner Losh <imp@FreeBSD.org>

hyperv: Don't build on 32-bit arm

Sponsored by: Netflix


# 701ab6db 27-Oct-2022 Andrew Turner <andrew@FreeBSD.org>

Stop building FDT-only modules in an ACPI only kernel

When building a kernel without FDT these modules don't build. As they
depend on FDT and don't work with ACPI disable them.

Reviewed by: imp, kevans
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D37178


# 9729f076 27-Oct-2022 Souradeep Chakrabarti <schakrabarti@microsoft.com>

arm64: Hyper-V: enablement for ARM64 in Hyper-V (Part 3, final)

This is the last part for ARM64 Hyper-V enablement. This includes
commone files and make file changes to enable the ARM64 FreeBSD
guest on Hyper-V. With this patch, it should be able to build
the ARM64 image and install it on Hyper-V.

Reviewed by: emaste, andrew, whu
Tested by: Souradeep Chakrabarti <schakrabarti@microsoft.com>
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D36744


# ba7319e9 20-Sep-2022 Dmitry Salychev <dsl@FreeBSD.org>

Add initial DPAA2 support

DPAA2 is a hardware-level networking architecture found in some NXP
SoCs which contain hardware blocks including Management Complex
(MC, a command interface to manipulate DPAA2 objects), Wire Rate I/O
processor (WRIOP, packets distribution, queuing, drop decisions),
Queues and Buffers Manager (QBMan, Rx/Tx queues control, Rx buffer
pools) and the others.

The Management Complex runs NXP-supplied firmware which provides DPAA2
objects as an abstraction layer over those blocks to simplify an
access to the underlying hardware. Each DPAA2 object has its own
driver (to perform an initialization at least) and will be visible
as a separate device in the device tree.

Two new drivers (dpaa2_mc and dpaa2_rc) act like firmware buses in
order to form a hierarchy of the DPAA2 devices:

acpiX (or simplebusX)
dpaa2_mcX
dpaa2_rcX
dpaa2_mcp0
...
dpaa2_mcpN
dpaa2_bpX
dpaa2_macX
dpaa2_io0
...
dpaa2_ioM
dpaa2_niX

dpaa2_mc is suppossed to be a root of the hierarchy, comes in ACPI
and FDT flavours and implements helper interfaces to allocate and
assign bus resources, MSI and "managed" DPAA2 devices (NXP treats some
of the objects as resources for the other DPAA2 objects to let them
function properly). Almost all of the DPAA2 objects are assigned to
the resource containers (dpaa2_rc) to implement isolation.

The initial implementation focuses on the DPAA2 network interface
to be operational. It is the most complex object in terms of
dependencies which uses I/O objects to transmit/receive packets.

Approved by: bz (mentor)
Tested by: manu, bz
MFC after: 3 months
Differential Revision: https://reviews.freebsd.org/D36638


# 7e5bf684 20-Jan-2022 Alexander V. Chernikov <melifaro@FreeBSD.org>

netlink: add netlink support

Netlinks is a communication protocol currently used in Linux kernel to modify,
read and subscribe for nearly all networking state. Interfaces, addresses, routes,
firewall, fibs, vnets, etc are controlled via netlink.
It is async, TLV-based protocol, providing 1-1 and 1-many communications.

The current implementation supports the subset of NETLINK_ROUTE
family. To be more specific, the following is supported:
* Dumps:
- routes
- nexthops / nexthop groups
- interfaces
- interface addresses
- neighbors (arp/ndp)
* Notifications:
- interface arrival/departure
- interface address arrival/departure
- route addition/deletion
* Modifications:
- adding/deleting routes
- adding/deleting nexthops/nexthops groups
- adding/deleting neghbors
- adding/deleting interfaces (basic support only)
* Rtsock interaction
- route events are bridged both ways

The implementation also supports the NETLINK_GENERIC family framework.

Implementation notes:
Netlink is implemented via loadable/unloadable kernel module,
not touching many kernel parts.
Each netlink socket uses dedicated taskqueue to support async operations
that can sleep, such as interface creation. All message processing is
performed within these taskqueues.

Compatibility:
Most of the Netlink data models specified above maps to FreeBSD concepts
nicely. Unmodified ip(8) binary correctly works with
interfaces, addresses, routes, nexthops and nexthop groups. Some
software such as net/bird require header-only modifications to compile
and work with FreeBSD netlink.

Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D36002
MFC after: 2 months


# aa74cc6d 06-Sep-2022 Gleb Smirnoff <glebius@FreeBSD.org>

divert(4): do not depend on ipfw(4)

Although originally socket was intended to use with ipfw(4) only, now
it also can be used with pf(4). On a kernel without packet filters,
it still can be used to inject traffic.


# 100ddf89 04-Aug-2022 Mark Johnston <markj@FreeBSD.org>

qat: Move qat_c2xxx firmware files and build glue into separate dirs

Reviewed by: Zdziarski, KrzysztofX <krzysztofx.zdziarski@intel.com>
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D36032


# 78ee8d1c 19-Jul-2022 Julian Grajkowski <julianx.grajkowski@intel.com>

qat: Import a new Intel (R) QAT driver

QAT in-tree driver ported from out-of-tree release available
from 01.org.

The driver exposes complete cryptography and data compression
API in the kernel and integrates with Open Crypto Framework.
Details of supported operations, devices and usage can be found
in man and on 01.org.

Patch co-authored by: Krzysztof Zdziarski <krzysztofx.zdziarski@intel.com>
Patch co-authored by: Michal Jaraczewski <michalx.jaraczewski@intel.com>
Patch co-authored by: Michal Gulbicki <michalx.gulbicki@intel.com>
Patch co-authored by: Julian Grajkowski <julianx.grajkowski@intel.com>
Patch co-authored by: Piotr Kasierski <piotrx.kasierski@intel.com>
Patch co-authored by: Adam Czupryna <adamx.czupryna@intel.com>
Patch co-authored by: Konrad Zelazny <konradx.zelazny@intel.com>
Patch co-authored by: Katarzyna Rucinska <katarzynax.kargol@intel.com>
Patch co-authored by: Lukasz Kolodzinski <lukaszx.kolodzinski@intel.com>
Patch co-authored by: Zbigniew Jedlinski <zbigniewx.jedlinski@intel.com>

Reviewed by: markj, jhb (OCF integration)
Reviewed by: debdrup, pauamma (docs)
Sponsored by: Intel Corporation
Differential Revision: https://reviews.freebsd.org/D34632


# f4f56ff4 27-Jul-2022 Mark Johnston <markj@FreeBSD.org>

qat: Rename to qat_c2xxx and remove support for modern chipsets

A replacement QAT driver will be imported, but this replacement does not
support Atom C2xxx hardware. So, the existing driver will be kept
around to provide opencrypto offload support for those chipsets.

Reviewed by: pauamma, emaste
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D35817


# 287d467c 18-Jul-2022 Mitchell Horne <mhorne@FreeBSD.org>

mac: add new mac_ddb(4) policy

Generally, access to the kernel debugger is considered to be unsafe from
a security perspective since it presents an unrestricted interface to
inspect or modify the system state, including sensitive data such as
signing keys.

However, having some access to debugger functionality on production
systems may be useful in determining the cause of a panic or hang.
Therefore, it is desirable to have an optional policy which allows
limited use of ddb(4) while disabling the functionality which could
reveal system secrets.

This loadable MAC module allows for the use of some ddb(4) commands
while preventing the execution of others. The commands have been broadly
grouped into three categories:
- Those which are 'safe' and will not emit sensitive data (e.g. trace).
Generally, these commands are deterministic and don't accept
arguments.
- Those which are definitively unsafe (e.g. examine <addr>, search
<addr> <value>)
- Commands which may be safe to execute depending on the arguments
provided (e.g. show thread <addr>).

Safe commands have been flagged as such with the DB_CMD_MEMSAFE flag.

Commands requiring extra validation can provide a function to do so.
For example, 'show thread <addr>' can be used as long as addr can be
checked against the system's list of process structures.

The policy also prevents debugger backends other than ddb(4) from
executing, for example gdb(4).

Reviewed by: markj, pauamma_gundo.com (manpages)
Sponsored by: Juniper Networks, Inc.
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D35371


# 3bf66365 06-Jul-2022 Brooks Davis <brooks@FreeBSD.org>

cddl/*: add a WITH(OUT)_DTRACE option

Add an option to enable/disable DTrace without disabling ZFS. New
architectures such as CHERI may support ZFS before they support DTrace
and the old model of WITHOUT_CDDL disabling both wasn't helpful.

For compatiblity, the CDDL option remains and WITHOUT_CDDL implies
WITHOUT_DTRACE. WITHOUT_DTRACE also implies WITHOUT_CTF.

As part of this change, largely convert cddl/*/Makefile to using the
more compact SUBDIR.${MK_<FOO>}+= form rather than using intermediate
variables.

Reviewed by: markj
Obtained from: CheriBSD
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D35718


# ab91feab 22-Feb-2022 Kristof Provost <kp@FreeBSD.org>

ovpn: Introduce OpenVPN DCO support

OpenVPN Data Channel Offload (DCO) moves OpenVPN data plane processing
(i.e. tunneling and cryptography) into the kernel, rather than using tap
devices.
This avoids significant copying and context switching overhead between
kernel and user space and improves OpenVPN throughput.

In my test setup throughput improved from around 660Mbit/s to around
2Gbit/s.

Sponsored by: Rubicon Communications, LLC ("Netgate")
Differential Revision: https://reviews.freebsd.org/D34340


# 648a47b8 14-Jun-2022 Mitchell Horne <mhorne@FreeBSD.org>

modules: Only build MAC modules if options MAC is set

They are not loadable otherwise.

Reviewed by: emaste
MFC after: 1 week
Sponsored by: Juniper Networks, Inc.
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D35369


# acdfbc6c 30-May-2022 Mitchell Horne <mhorne@FreeBSD.org>

irdma: fix LINT-NOIP/NOINET/NOINET6 builds

This module depends on the presence of both INET and INET6 options in
order to compile.

Reviewed by: erj
Fixes: cdcd52d41e24 ("irdma: Add RDMA driver for Intel(R) Ethernet...")
Differential Revision: https://reviews.freebsd.org/D35343


# cdcd52d4 23-May-2022 Bartosz Sobczak <bartosz.sobczak@intel.com>

irdma: Add RDMA driver for Intel(R) Ethernet Controller E810

This is an initial commit for RDMA FreeBSD driver for Intel(R) Ethernet
Controller E810, called irdma. Supporting both RoCEv2 and iWARP
protocols in per-PF manner, RoCEv2 being the default.

Testing has been done using krping tool, perftest, ucmatose, rping,
ud_pingpong, rc_pingpong and others.

Signed-off-by: Eric Joyner <erj@FreeBSD.org>

Reviewed by: #manpages (pauamma_gundo.com) [documentation]
MFC after: 1 week
Relnotes: yes
Sponsored by: Intel Corporation
Differential Revision: https://reviews.freebsd.org/D34690


# 14b77062 19-Apr-2022 Wojciech Macek <wma@FreeBSD.org>

mac_pimd: Support for privilege drop in pimd

Create new kernel module for privilege check in case
the user wants to run pimd daemon.

Sponsored by: Stormshield
Obtained from: Semihalf


# 242cd60a 02-Apr-2022 Milan Obuch <bsd@dino.sk>

cgem: Support building as a loadable kernel module

For development, building a driver as kernel module is both convenient
and a time saver (no need for reboot on some change, testing it requires
just kldunload and kldload, a matter of seconds). For some special
cases, it may be even desirable to postpone initializing the network
interface after some action is done (loading a FPGA bitstream may be
required for Zynq/ZynqMP based hardware as an example).

Building is limited to ARM, ARM64 and RISC-V architectures (for Zynq,
ZynqMP, PolarFire Soc based boards, and HiFive based boards are known to
use CGEM at the moment).

Reviewed by: mhorne
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D34687


# 20eeed68 30-Mar-2022 Bjoern A. Zeeb <bz@FreeBSD.org>

rtw88: add man pages and hook up to build

Add man pages for rtw88 and rtw88fw. Install a copy of the firmware
license file and hook up the driver and firmware modules to the build.

MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Relnotes: yes


# 5fcb5ae8 25-Jan-2022 John Baldwin <jhb@FreeBSD.org>

Remove a stale comment.

The intr_disable as a macro was only a problem on arm and mips and
is no longer relevant after the mips removal.


# a0f3abb0 20-Jan-2022 Piotr Kubaj <pkubaj@FreeBSD.org>

powerpc: enable ice in GENERIC64LE

Approved by: erj
Differential Revision: https://reviews.freebsd.org/D33974


# f9bf8876 31-Dec-2021 Warner Losh <imp@FreeBSD.org>

mips: Remove system module support

Remove all mips .if conditionals. Since _sym was now set
unconditionally, just add it to the right place w/o a variable.

Sponsored by: Netflix


# abae2c01 31-Dec-2021 Warner Losh <imp@FreeBSD.org>

hwpmc: deorbit mips support

Sponsored by: Netflix


# 7d4394cb 27-Dec-2021 Bjoern A. Zeeb <bz@FreeBSD.org>

iwlwifi: attach to the build

Add iwlwifi and iwlwififw to the module builds.

Sponsored by: The FreeBSD Foundation
MFC after: 3 days


# 6b4cac81 26-Dec-2021 Bjoern A. Zeeb <bz@FreeBSD.org>

LinuxKPI: add 802.11 compat code

Add 802.11 compat code for mac80211 and to a minimal degree cfg80211.
This allows us to compile and use basic functionality of wireless
drivers such as iwlwifi.

This is a constant work in progress but having it in the tree will
allow others to test and more easy to track changes and avoid having
snapshots no longer applying to branches.

Sponsored by: The FreeBSD Foundation
MFC after: 3 days


# 0f2d88d1 06-Dec-2021 Konstantin Belousov <kib@FreeBSD.org>

amd64: Only build aout.ko when COMPAT_FREEBSD32 is enabled

a.out.ko is useless without COMPAT_FREEBSD32, and since vdso support was
added, it requires a header built during depend phase, from the COMPAT
option.

Reported by: glebius
Reviewed by: emaste, markj
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D33311


# bf2fa8d9 04-Dec-2021 Florian Walpen <dev@submerge.ch>

MAC/priority module for realtime privilege group

This is a MAC policy module that grants scheduling privileges based on
group membership. Users or processes in the group realtime (gid 47) are
allowed to run threads and processes with realtime scheduling priority.
For timing-sensitive, low-latency software like audio/jack, running with
realtime priority helps to avoid stutter and gaps.

PR: 239125
MFC after: 2 weeks
Differential revision: https://reviews.freebsd.org/D33191


# 94e25b7a 25-Nov-2021 Wojciech Macek <wma@FreeBSD.org>

flex_spi: Support for FlexSPI Flash controller.

NXP FlexSPI is a complex SPI controller which provides
full offload for accessing NOR Flash.
Create a Flash driver which attaches to existing FreeBSD
infrastructure and exports generic READ and WRITE disk commands.
The Flash has to be identified first to configure controller
internals. For now, only one NOR Flash chip is supported.
Future commits shall either increase number of known chips
or implement SFDP mechanism which can be used by other Flash
drivers.

Sponsored by: Alstom
Obtained from: Semihalf
Differential revision: https://reviews.freebsd.org/D33117


# 8722e05a 25-Nov-2021 Warner Losh <imp@FreeBSD.org>

twa: Remove

Belatedly remove twa(4). It was supposed to go before 13.0, but was
overlooked.

Sponsored by: Netflix
Relnotes: yes
Reviewed by: scottl
Differential Revision: https://reviews.freebsd.org/D33114


# 0d5935af 25-Nov-2021 Warner Losh <imp@FreeBSD.org>

esp: Remove

Belatedly remove esp(4). It was tagged as gone in 13, but was overlooked
until now.

Sponsored by: Netflix
Reviewed by: scottl
Differential Revision: https://reviews.freebsd.org/D33115


# 60de2867 25-Nov-2021 Warner Losh <imp@FreeBSD.org>

amr: remove

Belatedly remove amr(4). It was slated to depart before 13.0 but was
overlooked until now.

Sponsored by: Netflix
Relnotes: yes
Reviewed by: scottl
Differential Revision: https://reviews.freebsd.org/D33113


# 399188a2 25-Nov-2021 Warner Losh <imp@FreeBSD.org>

iir: Remove

Belatedly remove iir(4). It was slated to go before 13, but was
overlooked.

Sponsored by: Netflix
Relnotes: yes
Reviewed by: scottl
Differential Revision: https://reviews.freebsd.org/D33112


# a9620045 25-Nov-2021 Warner Losh <imp@FreeBSD.org>

mly: Remove.

We'd said this was going away in 13, but was overlooked. Belatedly
remove.

Sponsored by: Netflix
Relnotes: yes
Reviewed by: scottl
Differential Revision: https://reviews.freebsd.org/D33111


# 8c5fead1 26-Oct-2021 Kornel Duleba <mindal@semihalf.com>

Remove enetc_mdio driver

It was previously used by felix(4) for PHY communication.
Since that is not the case anymore this driver is now left unused.

Obtained from: Semihalf
Sponsored by: Alstom Group


# 48cb3fee 26-Oct-2021 Ed Maste <emaste@FreeBSD.org>

Retire obsolete iscsi_initiator(4)

The new iSCSI initiator iscsi(4) was introduced with FreeBSD 10.0, and
the old intiator was marked obsolete shortly thereafter (in commit
d32789d95cfbf, MFC'd to stable/10 in ba54910169c4). Remove it now.

Reviewed by: jhb, mav
Relnotes: yes
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D32673


# 6aae3517 20-Oct-2021 Gleb Smirnoff <glebius@FreeBSD.org>

Retire synchronous PPP kernel driver sppp(4).

The last two drivers that required sppp are cp(4) and ce(4).

These devices are still produced and can be purchased
at Cronyx <http://cronyx.ru/hardware/wan.html>.

Since Roman Kurakin <rik@FreeBSD.org> has quit them, they no
longer support FreeBSD officially. Later they have dropped
support for Linux drivers to. As of mid-2020 they don't even
have a developer to maintain their Windows driver. However,
their support verbally told me that they could provide aid to
a FreeBSD developer with documentaion in case if there appears
a new customer for their devices.

These drivers have a feature to not use sppp(4) and create an
interface, but instead expose the device as netgraph(4) node.
Then, you can attach ng_ppp(4) with help of ports/net/mpd5 on
top of the node and get your synchronous PPP. Alternatively
you can attach ng_frame_relay(4) or ng_cisco(4) for HDLC.
Actually, last time I used cp(4) back in 2004, using netgraph(4)
instead of sppp(4) was already the right way to do.

Thus, remove the sppp(4) related part of the drivers and enable
by default the negraph(4) part. Further maintenance of these
drivers in the tree shouldn't be a big deal.

While doing that, remove some cruft and enable cp(4) compilation
on amd64. The ce(4) for some unknown reason marks its internal
DDK functions with __attribute__ fastcall, which most likely is
safe to remove, but without hardware I'm not going to do that, so
ce(4) remains i386-only.

Reviewed by: emaste, imp, donner
Differential Revision: https://reviews.freebsd.org/D32590
See also: https://reviews.freebsd.org/D23928


# 543df609 27-Sep-2021 Ed Maste <emaste@FreeBSD.org>

mgb: Connect if_mgb module to the build

It supports the following Microchip devices:

LAN7430 PCIe Gigabit Ethernet controller with PHY
LAN7431 PCIe Gigabit Ethernet controller with RGMII interface

The driver has a number of caveats and limitations, but is functional.

Relnotes: Yes
Sponsored by: The FreeBSD Foundation


# cf0ee873 12-Sep-2021 Konstantin Belousov <kib@FreeBSD.org>

Drop cloudabi

According to https://github.com/NuxiNL/cloudlibc:
CloudABI is no longer being maintained. It was an awesome experiment,
but it never got enough traction to be sustainable.

There is no reason to keep it in FreeBSD.

Approved by: ed (private mail)
Reviewed by: emaste
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D31923


# b831f9ce 13-Sep-2021 Hubert Mazur <hum@semihalf.com>

if_mvneta: Build the driver as a kernel module

Fix device detach and attach routine. Add required Makefile
to build as a module. Remove entry from GENERIC, since now
it can be loaded automatically.

Tested on EspressoBin.

Obtained from: Semihalf
Reviewed by: manu
Differential revision: https://reviews.freebsd.org/D31581


# ba4d9d9d 14-Sep-2021 Wojciech Macek <wma@FreeBSD.org>

Revert "if_mvneta: Build the driver as a kernel module"

This reverts commit bcf5c7a8b1dcdcd5f27c1aa694f66208dc07a0dd.


# bcf5c7a8 13-Sep-2021 Hubert Mazur <hum@semihalf.com>

if_mvneta: Build the driver as a kernel module

Fix device detach and attach routine. Add required Makefile
to build as a module. Remove entry from GENERIC, since now
it can be loaded automatically.

Tested on EspressoBin.

Obtained from: Semihalf
Reviewed by: manu
Differential revision: https://reviews.freebsd.org/D31581


# 6e93bdff 12-Sep-2021 Wojciech Macek <wma@FreeBSD.org>

Revert "if_mvneta: Build the driver as a kernel module"

This reverts commit 41b0190cc404e21cb8b430602eabfedc20107471.


# 41b0190c 13-Sep-2021 Hubert Mazur <hum@semihalf.com>

if_mvneta: Build the driver as a kernel module

Fix device detach and attach routine. Add required Makefile
to build as a module. Remove entry from GENERIC, since now
it can be loaded automatically.

Tested on EspressoBin.

Obtained from: Semihalf
Reviewed by: manu
Differential revision: https://reviews.freebsd.org/D31581


# ee1b7811 13-Sep-2021 Hubert Mazur <hum@semihalf.com>

e6000sw: Build the driver as a kernel module

Fix detach routine.
Driver was tested on EspressoBin.
Remove it from GENERIC, since now it can be loaded automatically.

Obtained from: Semihalf
Reviewed by: manu
Differential revision: https://reviews.freebsd.org/D31580


# 7af4475a 02-Sep-2021 Alexander Motin <mav@FreeBSD.org>

vmd(4): Major driver refactoring

- Re-implement pcib interface to use standard pci bus driver on top of
vmd(4) instead of custom one.
- Re-implement memory/bus resource allocation to properly handle even
complicated configurations.
- Re-implement interrupt handling to evenly distribute children's MSI/
MSI-X interrupts between available vmd(4) MSI-X vectors and setup them
to be handled by standard OS mechanisms with minimal overhead, except
sharing when unavoidable.

Successfully tested on Dell XPS 13 laptop with Core i7-1185G7 CPU (VMD
device ID 0x9a0b) and single NVMe SSD, dual-booting with Windows 10.

Successfully tested on Supermicro X11DPI-NT motherboard with Xeon(R)
Gold 6242R CPUs (VMD device ID 0x201d), simultaneously handling NVMe
SSD on one PCIe port and PLX bridge with 3 NVMe and 1 AHCI SSDs on
another. Handles SSD hot-plug (except Optane 905p for some reason,
which are not detected until manual bus rescan) and enabled IOMMU
(directly connected SSDs work, but ones connected to the PLX fail
without errors from IOMMU).

MFC after: 2 weeks
Sponsored by: iXsystems, Inc.
Differential revision: https://reviews.freebsd.org/D31762


# 3706af42 29-Jun-2021 Arnaud Ysmal <arnaud.ysmal@stormshield.eu>

Add support for Lewisburg GPIO through P2SB

Obtained from: Semihalf
Sponsored by: Stormshield
Differential revision: https://reviews.freebsd.org/D31269


# ce110ea1 20-Aug-2021 Wei Hu <whu@FreeBSD.org>

Microsoft Azure Network Adapter(MANA) VF support

MANA is the new network adapter from Microsoft which will be available
in Azure public cloud. It provides SRIOV NIC as virtual function to
guest OS running on Hyper-V.

The code can be divided into two major parts. Gdma_main.c is the one to
bring up the hardware board and drives all underlying hardware queue
infrastructure. Mana_en.c contains all main ethernet driver code.
It has only tested and supported on amd64 architecture.

PR: 256336
Reviewed by: decui@microsoft.com
Tested by: whu
MFC after: 2 week
Relnotes: yes
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D31150


# dfcaa2c1 28-Jul-2021 Kornel Duleba <mindal@semihalf.com>

enetc_mdio: Support building the driver as a loadable module.

After recent arm64 GENERIC config cleanup the ENETC MDIO
in NXP LS1028A SoC should support being loaded as a module.

Obtained from: Semihalf
Sponsored by: Alstom Group


# 5ad6d28c 28-Jul-2021 Kornel Duleba <mindal@semihalf.com>

enetc: Support building the driver as a loadable module.

Function level reset has to be done in attach in order to put the
hardware in a known state before configuring it.
The order of DRIVER_MODULEs was changed to ensure that the miibus driver
is loaded when mii_attach is called.

Obtained from: Semihalf
Sponsored by: Alstom Group


# 451bcf1b 09-Jun-2021 Marcin Wojtas <mw@FreeBSD.org>

Introduce driver for Freescale Felix switch

It is found on boards equipped with LS1028A SoC.
802.1q VLAN grouping is supported.
An external MDIO device is used for communicating with PHYs.
The driver is built as a module by default, it is not included
in GENERIC kernel config.

Submitted by: Lukasz Hajec <lha@semihalf.com>
Kornel Duleba <mindal@semihalf.com>
Obtained from: Semihalf
Sponsored by: Alstom Group
Differential Revision: https://reviews.freebsd.org/D30923


# 91f046d0 13-Jul-2021 Warner Losh <imp@FreeBSD.org>

pccard: remove pccard module

There's no more pccard client drivers, so remove pccard driver.

Sponsored by: Netflix


# 517904de 11-Jul-2021 Peter Grehan <grehan@FreeBSD.org>

igc(4): Introduce new driver for the Intel I225 Ethernet controller.

This controller supports 2.5G/1G/100MB/10MB speeds, and allows
tx/rx checksum offload, TSO, LRO, and multi-queue operation.

The driver was derived from code contributed by Intel, and modified
by Netgate to fit into the iflib framework.

Thanks to Mike Karels for testing and feedback on the driver.

Reviewed by: bcr (manpages), kbowling, scottl, erj
MFC after: 1 month
Relnotes: yes
Sponsored by: Rubicon Communications, LLC ("Netgate")
Differential Revision: https://reviews.freebsd.org/D30668


# 663b174b 07-Jun-2021 Emmanuel Vadot <manu@FreeBSD.org>

an: Remove driver

Last an(4) devices have been End Of Life and End Of Sale in 2007.
Time to remove this driver.

Differential Revision: https://reviews.freebsd.org/D30679
Reviewed by: imp (earlier version), emaste (earlier version)
Sponsored by: Diablotin Systems


# 21e3c1fb 25-May-2021 John Baldwin <jhb@FreeBSD.org>

Assume OCF is the only KTLS software backend.

This removes support for loadable software backends. The KTLS OCF
support is now always included in kernels with KERN_TLS and the
ktls_ocf.ko module has been removed. The software encryption routines
now take an mbuf directly and use the TLS mbuf as the crypto buffer
when possible.

Bump __FreeBSD_version for software backends in ports.

Reviewed by: gallatin, markj
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D30138


# 0b426a1c 13-May-2021 Emmanuel Vadot <manu@FreeBSD.org>

modules: Only build sdhci_fdt for arm and arm64

Other FDT platform (like powerpc64* or riscv64) don't have gpio built
by default so just compile the module for those two arches.

Fixes: 9e08f82058cb ("modules: Add sdhci_fdt module")


# 9e08f820 28-Apr-2021 Emmanuel Vadot <manu@FreeBSD.org>

modules: Add sdhci_fdt module

This is a module for sdhci on fdt system


# 2aca58e1 05-May-2021 Marko Zec <zec@FreeBSD.org>

Introduce DXR as an IPv4 longest prefix matching / FIB module

DXR maintains compressed lookup structures with a trivial search
procedure. A two-stage trie is indexed by the more significant bits of
the search key (IPv4 address), while the remaining bits are used for
finding the next hop in a sorted array. The tradeoff between memory
footprint and search speed depends on the split between the trie and
the remaining binary search. The default of 20 bits of the key being
used for trie indexing yields good performance (see below) with
footprints of around 2.5 Bytes per prefix with current BGP snapshots.

Rebuilding lookup structures takes some time, which is compensated for by
batching several RIB change requests into a single FIB update, i.e. FIB
synchronization with the RIB may be delayed for a fraction of a second.
RIB to FIB synchronization, next-hop table housekeeping, and lockless
lookup capability is provided by the FIB_ALGO infrastructure.

DXR works well on modern CPUs with several MBytes of caches, especially
in VMs, where is outperforms other currently available IPv4 FIB
algorithms by a large margin.

Synthetic single-thread LPM throughput test method:

kldload test_lookup; kldload dpdk_lpm4; kldload fib_dxr
sysctl net.route.test.run_lps_rnd=N
sysctl net.route.test.run_lps_seq=N

where N is the number of randomly generated keys (IPv4 addresses) which
should be chosen so that each test iteration runs for several seconds.

Each reported score represents the best of three runs, in million
lookups per second (MLPS), for two bechmarks (RND & SEQ) with two FIBs:

host: single interface address, local subnet route + default route
BGP: snapshot from linx.routeviews.org, 887957 prefixes, 496 next hops

Bhyve VM on an Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60 GHz:
inet.algo host, RND host, SEQ BGP, RND BGP, SEQ
bsearch4 40.6 20.2 N/A N/A
radix4 7.8 3.8 1.2 0.6
radix4_lockless 18.0 9.0 1.6 0.8
dpdk_lpm4 14.4 5.0 14.6 5.0
dxr 70.3 34.7 43.0 19.5

Intel(R) Core(TM) i5-5300U CPU @ 2.30 GHz:
inet.algo host, RND host, SEQ BGP, RND BGP, SEQ
bsearch4 47.0 23.1 N/A N/A
radix4 8.5 4.2 1.9 1.0
radix4_lockless 19.2 9.5 2.5 1.2
dpdk_lpm4 31.2 9.4 31.6 9.3
dxr 84.9 41.4 51.7 23.6

Intel(R) Core(TM) i7-4771 CPU @ 3.50 GHz:
inet.algo host, RND host, SEQ BGP, RND BGP, SEQ
bsearch4 59.5 29.4 N/A N/A
radix4 10.8 5.5 2.5 1.3
radix4_lockless 24.7 12.0 3.1 1.6
dpdk_lpm4 29.1 9.0 30.2 9.1
dxr 101.3 49.9 69.8 32.5

AMD Ryzen 7 3700X 8-Core Processor @ 3.60 GHz:
inet.algo host, RND host, SEQ BGP, RND BGP, SEQ
bsearch4 70.8 35.4 N/A N/A
radix4 14.4 7.2 2.8 1.4
radix4_lockless 30.2 15.1 3.7 1.8
dpdk_lpm4 29.9 9.0 30.0 8.9
dxr 163.3 81.5 99.5 44.4

AMD Ryzen 5 5600X 6-Core Processor @ 3.70 GHz:
inet.algo host, RND host, SEQ BGP, RND BGP, SEQ
bsearch4 93.6 46.7 N/A N/A
radix4 18.9 9.3 4.3 2.1
radix4_lockless 37.2 18.6 5.3 2.7
dpdk_lpm4 51.8 15.1 51.6 14.9
dxr 218.2 103.3 114.0 49.0

Reviewed by: melifaro
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D29821


# 77c89fa6 15-Apr-2021 Kyle Evans <kevans@FreeBSD.org>

modules: remove stale if_wg reference

This variable isn't being used anywhere, remove it.


# f187d6df 15-Mar-2021 Kyle Evans <kevans@FreeBSD.org>

base: remove if_wg(4) and associated utilities, manpage

After length decisions, we've decided that the if_wg(4) driver and
related work is not yet ready to live in the tree. This driver has
larger security implications than many, and thus will be held to
more scrutiny than other drivers.

Please also see the related message sent to the freebsd-hackers@
and freebsd-arch@ lists by Kyle Evans <kevans@FreeBSD.org> on
2021/03/16, with the subject line "Removing WireGuard Support From Base"
for additional context.


# 11704859 14-Mar-2021 Kyle Evans <kevans@FreeBSD.org>

if_wg: fix the !INET6 support

INET is still required, so formally don't build it in !INET
configurations.


# bfc99943 25-Jan-2021 Brooks Davis <brooks@one-eyed-alien.net>

ndis(4): remove as previous announced

nids(4) was a clever idea in the early 2000's when the market was
flooded with 10/100 NICs with Windows-only drivers, but that hasn't been
the case for ages and the driver has had no meaningful maintenance in
ages. It only supports Windows-XP era drivers.

Also remove:
- ndis support from wpa_supplicant
- ndiscvt(8)

Reviewed By: emaste, bcr (manpages)
Differential Revision: https://reviews.freebsd.org/D27609


# 32cb85d0 20-Jan-2021 Jessica Clarke <jrtc27@FreeBSD.org>

Build VirtIO modules on all architectures

Currently only amd64, i386 and powerpc build VirtIO modules, yet all other
architectures have at least one kernel configuration that includes the
transport drivers, and so they lack drivers for all the devices they don't
statically compile into the kernel. Instead, enable the build everywhere so all
architectures have the full set of device drivers available.

Reviewed by: bryanv (earlier version), imp (earlier version)
Differential Revision: https://reviews.freebsd.org/D28058


# 0a05676b 13-Jan-2021 Emmanuel Vadot <manu@FreeBSD.org>

Add driver for Synopsys Designware Watchdog timer.

This driver supports some arm and arm64 boards equipped with
"snps,dw-wdt"-compatible watchdog device.
Tested on RK3399-based board (RockPro64).
Once started watchdog device cannot be stopped.
Interrupt handler has mode to kick watchdog even when software does not do it
properly.
This can be controlled via sysctl: dev.dwwdt.prevent_restart.
Also - driver handles system shutdown and prevents from restart when system
is asked to reboot.

Submitted by: kjopek@gmail.com
Differential Revision: https://reviews.freebsd.org/D26761


# 537d1343 08-Jan-2021 Alexander V. Chernikov <melifaro@FreeBSD.org>

Bring DPDK route lookups to FreeBSD.

This change introduces loadable fib lookup modules based on
DPDK rte_lpm lib targeted for high-speed lookups in large-scale tables.
It is based on the lookup framework described in D27401.

IPv4 module is called dpdk_lpm4. It wraps around rte_lpm [1] library.
This library implements variation of DIR24-8 [2] lookup algorithm.
Module provide lockless route lookups and in-place incremental updates,
allowing for good RIB performance.

IPv6 module is called dpdk_lpm6. It wraps around rte_lpm6 [3] library.
Implementation can be seen as multi-bit trie where the stride or number of bits
inspected on each level varies from level to level.
It can vary from 1 to 14 memory accesses, with 5 being the average value
for the lengths that are most commonly used in IPv6.
Module provide lockless route lookups for global unicast addresses
and in-place incremental updates, allowing for good RIB performance.

Implementation details:
* wrapper code lives in `sys/contrib/dpdk_rte_lpm/dpdk_lpm[6].c`.
* rte_lpm[6] implementation contains both RIB and FIB code.
. RIB ("rule_") code, backed by array of hash tables part has been commented out,
as base radix already provides all the necessary primitives.
* link-local lookups are currently implemented as base radix lookup.
This part should be converted to something like read-only radix trie.

Usage detail:
Compile kernel with option FIB_ALGO and load dpdk_lpm4/dpdk_lpm6
module at any time. They will be picked up automatically when
amount of routes raises to several thousand.

[1]: https://doc.dpdk.org/guides/prog_guide/lpm_lib.html
[2]: http://yuba.stanford.edu/~nickm/papers/Infocom98_lookup.pdf
[3]: https://doc.dpdk.org/guides/prog_guide/lpm6_lib.html

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


# a21def4d 07-Jan-2021 Warner Losh <imp@FreeBSD.org>

pccard: Remove wi(4) driver

Remove wi(4). pccard is going away, and wi only supports PC Card
devices, though it has a minor amount of glue to also support
PCI cards. However, removing the one without removing the other
is hard, so the whole driver is being removed.

Relnotes: Yes


# 0d3a424a 07-Jan-2021 Warner Losh <imp@FreeBSD.org>

pccard: Remove cmx(4) driver

The only attachment of cmx was pccard, so remove the driver in
anticipation of PC Card support removal.

Relnotes: Yes


# 67de2db2 04-Oct-2020 Vladimir Kondratyev <wulf@FreeBSD.org>

Factor-out hardware-independent part of USB HID support to new module

It will be used by the upcoming HID-over-i2C implementation. Should be
no-op, except hid.ko module dependency is to be added to affected drivers.

Reviewed by: hselasky, manu
Differential revision: https://reviews.freebsd.org/D27867


# 40d0971b 06-Jan-2021 Mitchell Horne <mhorne@FreeBSD.org>

arm64: enable build of the ipmi module

Only ACPI attachment is supported for now, some others depend on the
presence of smbios(4) support, which we lack on arm64.

Reviewed by: emaste
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D28009


# ead01bfe 28-Dec-2020 Ed Maste <emaste@FreeBSD.org>

Move cp(4) module enable to SOURCELESS_HOST

cp contains obfuscated code that runs on the host's processor


# 9ee99cec 11-Dec-2020 Brooks Davis <brooks@FreeBSD.org>

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


# 22bd0c97 04-Dec-2020 Mitchell Horne <mhorne@FreeBSD.org>

ossl: port to arm64

Enable in-kernel acceleration of SHA1 and SHA2 operations on arm64 by adding
support for the ossl(4) crypto driver. This uses OpenSSL's assembly routines
under the hood, which will detect and use SHA intrinsics if they are
supported by the CPU.

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


# 2338da03 29-Nov-2020 Matt Macy <mmacy@FreeBSD.org>

Import kernel WireGuard support

Data path largely shared with the OpenBSD implementation by
Matt Dunwoodie <ncon@nconroy.net>

Reviewed by: grehan@freebsd.org
MFC after: 1 month
Sponsored by: Rubicon LLC, (Netgate)
Differential Revision: https://reviews.freebsd.org/D26137


# 5667729f 28-Nov-2020 Poul-Henning Kamp <phk@FreeBSD.org>

Add watchdog(9) driver for the Fintek F81803 SuperIO chip


# 926ce35a 24-Nov-2020 Jung-uk Kim <jkim@FreeBSD.org>

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


# f078c492 05-Nov-2020 Mark Johnston <markj@FreeBSD.org>

Add firmware modules for qat(4)

MFC after: 3 days
Sponsored by: Rubicon Communications, LLC (Netgate)


# 72143e89 05-Nov-2020 Mark Johnston <markj@FreeBSD.org>

Add qat(4)

This provides an OpenCrypto driver for Intel QuickAssist devices. The
driver was initially ported from NetBSD and comes with a few
improvements:
- support for GMAC/AES-GCM, AES-CTR and AES-XTS, and support for
SHA/HMAC-authenticated encryption
- support for detaching the driver
- various bug fixes
- DH895X support

Discussed with: jhb
MFC after: 3 days
Sponsored by: Rubicon Communications, LLC (Netgate)
Differential Revision: https://reviews.freebsd.org/D26963


# 9d40cf60 22-Oct-2020 Hans Petter Selasky <hselasky@FreeBSD.org>

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


# ba610be9 20-Oct-2020 John Baldwin <jhb@FreeBSD.org>

Add a kernel crypto driver using assembly routines from OpenSSL.

Currently, this supports SHA1 and SHA2-{224,256,384,512} both as plain
hashes and in HMAC mode on both amd64 and i386. It uses the SHA
intrinsics when present similar to aesni(4), but uses SSE/AVX
instructions when they are not.

Note that some files from OpenSSL that normally wrap the assembly
routines have been adapted to export methods usable by 'struct
auth_xform' as is used by existing software crypto routines.

Reviewed by: gallatin, jkim, delphij, gnn
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D26821


# 2c19e8ed 19-Oct-2020 Ed Maste <emaste@FreeBSD.org>

build vmware modules on arm64

pvscsi and vmxnet3 build and work. Exclude vmci for now as it contains
x86-specific assembly.

Reported by: Vincent Milum Jr
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation


# a31993fe 13-Oct-2020 Alex Richardson <arichardson@FreeBSD.org>

Don't build the malo module with clang 10

Compiling it with LLVM 10 triggers https://bugs.llvm.org/show_bug.cgi?id=44351
While LLVM 11 is the default compiler, I regularly build with
CROSS_TOOLCHAIN=llvm10 or use system packages for clang on Linux/macOS and
those have not been updated to 11 yet.


# 7113afc8 11-Oct-2020 Emmanuel Vadot <manu@FreeBSD.org>

10Gigabit Ethernet driver for AMD SoC

This patch has the driver for 10Gigabit Ethernet controller in AMD
SoC. This driver is written compatible to the Iflib framework. The
existing driver is for the old version of hardware. The submitted
driver here is for the recent versions of the hardware where the Ethernet
controller is PCI-E based.

Submitted by: Rajesh Kumar <rajesh1.kumar@amd.com>
MFC after: 1 month
Relnotes: yes
Differential Revision: https://reviews.freebsd.org/D25793


# 1a6947fb 08-Oct-2020 Warner Losh <imp@FreeBSD.org>

Remove apm module

The apm code is about to be removed. Remove the module since it's
about to be useless.


# 675aae73 02-Oct-2020 Emmanuel Vadot <manu@FreeBSD.org>

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


# b75abea4 22-Sep-2020 Brandon Bergren <bdragon@FreeBSD.org>

[PowerPC64LE] Set up powerpc.powerpc64le architecture

This is the initial set up for PowerPC64LE.

The current plan is for this arch to remain experimental for FreeBSD 13.

This started as a weekend learning project for me and kinda snowballed from
there.

(More to follow momentarily.)

Reviewed by: imp (earlier version), emaste
Sponsored by: Tag1 Consulting, Inc.
Differential Revision: https://reviews.freebsd.org/D26399


# b963e10d 13-Sep-2020 Brandon Bergren <bdragon@FreeBSD.org>

[PowerPC64LE] Ensure nvram is built on powerpc64le.

Fix some cases where conditionals that were trying to exclude powerpcspe
were also excluding powerpc64le.

Sponsored by: Tag1 Consulting, Inc.


# bd368728 30-Aug-2020 Marko Zec <zec@FreeBSD.org>

Driver for 4x10Gb Ethernet reference NIC FPGA design for NetFPGA SUME
development board.

Submitted by: Denis Salopek <denis.salopek AT fer.hr>
Reported by: zec, bz (src); rgrimes, bcr (manpages)
MFC after: 7 days
Sponsored by: Google Summer of Code 2020
Differential Revision: https://reviews.freebsd.org/D26074


# 9e5787d2 24-Aug-2020 Matt Macy <mmacy@FreeBSD.org>

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


# 0050ea24 30-Jul-2020 Michal Meloun <mmel@FreeBSD.org>

Move Ti AM335x to dev/extres/clk framework.

Re-implement clocks for these SoC by using now standard extres/clk framework.
This is necessary for future expansion of these. The new implementation
is (due to the size of the patch) only the initial (minimum) version.
It will be updated/expanded with a subsequent set of particular patches.

This patch is also not tested on OMAP4 based boards (BeagleBone),
so all possible issues should be (and will be) fixed by ASAP once
identified.

Submited by: Oskar Holmlund (oskar.holmlund@ohdata.se)
Differential Revision: https://reviews.freebsd.org/D25118


# bd8f09eb 19-Jul-2020 Mitchell Horne <mhorne@FreeBSD.org>

Make efirt module dependent on MK_EFI

MK_EFI was added to kern.opts.mk in r331099, but is currently unused.
Take advantage of that fact and gate the build of efirt behind it.

Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D24673


# b356ddf0 14-Jul-2020 Mark Johnston <markj@FreeBSD.org>

Add a driver for the SafeXcel EIP-97.

The EIP-97 is a packet processing module found on the ESPRESSObin. This
commit adds a crypto(9) driver for the crypto and hash engine in this
device. An initial skeleton driver that could attach and submit
requests was written by loos and others at Netgate, and the driver was
finished by me.

Support for separate AAD and output buffers will be added in a separate
commit, to simplify merging to stable/12 (where those features don't
exist).

Reviewed by: gnn, jhb
Feedback from: andrew, cem, manu
MFC after: 1 week
Sponsored by: Rubicon Communications, LLC (Netgate)
Differential Revision: https://reviews.freebsd.org/D25417


# 052c5ec4 10-Jul-2020 Mark Johnston <markj@FreeBSD.org>

Provide support for building SCTP as a loadable module.

With this change, a kernel compiled with "options SCTP_SUPPORT" and
without "options SCTP" supports dynamic loading of the SCTP stack.

Currently sctp.ko cannot be unloaded since some prerequisite teardown
logic is not yet implemented. Attempts to unload the module will return
EOPNOTSUPP.

Discussed with: tuexen
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D21997


# f45b1312 01-Jun-2020 Kyle Evans <kevans@FreeBSD.org>

modules: don't build ipsec/tcpmd5 if the kernel is configured for IPSEC

IPSEC_SUPPORT can currently only cope with either IPSEC || IPSEC_SUPPORT,
not both. Refrain from building if IPSEC is set, as the resulting module
won't be able to load anyways if it's built into the kernel.

KERN_OPTS is safe here; for tied modules, it will reflect the kernel
configuration. For untied modules, it will defer to whatever is set in
^/sys/conf/config.mk, which doesn't set IPSEC for modules. The latter
situation has some risk to it for uncommon scenarios, but such is the life
of untied kernel modules.

Reported by: jenkins (a lot), O. Hartmann (once)
Generally discussed with: imp, jhb


# 1319a761 29-May-2020 John Baldwin <jhb@FreeBSD.org>

Only build ipsec modules if the kernel includes IPSEC_SUPPORT.

Honoring the kernel-supplied opt_ipsec.h in r361632 causes builds of
ipsec modules to fail if the kernel doesn't include IPSEC_SUPPORT.
However, the module can never be loaded into such a kernel, so only
build the modules if the kernel includes IPSEC_SUPPORT.

Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D25059


# 71d10453 26-May-2020 Eric Joyner <erj@FreeBSD.org>

ice(4): Introduce new driver for Intel E800 Ethernet controllers

The ice(4) driver is the driver for the Intel E8xx series Ethernet
controllers; currently with codenames Columbiaville and
Columbia Park.

These new controllers support 100G speeds, as well as introducing
more queues, better virtualization support, and more offload
capabilities. Future work will enable virtual functions (like
in ixl(4)) and the other functionality outlined above.

For full functionality, the kernel should be compiled with
"device ice_ddp" like in the amd64 NOTES file, and/or
ice_ddp_load="YES" should be added to /boot/loader.conf so that
the DDP package file included in this commit can be downloaded
to the adapter. Otherwise, the adapter will fall back to a single
queue mode with limited functionality.

A man page for this driver will be forthcoming.

MFC after: 1 month
Relnotes: yes
Sponsored by: Intel Corporation
Differential Revision: https://reviews.freebsd.org/D21959


# fac6dee9 12-May-2020 Eric van Gyzen <vangyzen@FreeBSD.org>

Remove tests for obsolete compilers in the build system

Assume gcc is at least 6.4, the oldest xtoolchain in the ports tree.
Assume clang is at least 6, which was in 11.2-RELEASE. Drop conditions
for older compilers.

Reviewed by: imp (earlier version), emaste, jhb
MFC after: 2 weeks
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D24802


# 97e25132 11-May-2020 John Baldwin <jhb@FreeBSD.org>

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


# 732a02b4 17-Apr-2020 Gleb Smirnoff <glebius@FreeBSD.org>

Split XDR into separate kernel module. Make krpc depend on xdr.

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


# 8de97f39 09-Apr-2020 Rick Macklem <rmacklem@FreeBSD.org>

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


# c3079787 31-Mar-2020 Takanori Watanabe <takawata@FreeBSD.org>

Add Platform Controller Hub built-in thermal management device driver.

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


# 2733d8c9 20-Mar-2020 Ed Maste <emaste@FreeBSD.org>

retire cx,ctau drivers

The devices supported by these drivers are obsolete ISA cards, and the
sync serial protocols they supported are essentially obsolete too.

Sponsored by: The FreeBSD Foundation


# c5568ba0 11-Mar-2020 Leandro Lupori <luporl@FreeBSD.org>

Enable ixl device on PowerPC64

The ixl driver now works on PowerPC64 and may be compiled in-kernel and
as a module.

Reviewed by: alfredo, erj
Sponsored by: Eldorado Research Institute (eldorado.org.br)
Differential Revision: https://reviews.freebsd.org/D23974


# d8c51c6f 05-Mar-2020 Leandro Lupori <luporl@FreeBSD.org>

[aacraid] Port driver to big-endian

Port aacraid driver to big-endian (BE) hosts.

The immediate goal of this change is to make it possible to use the
aacraid driver on PowerPC64 machines that have Adaptec Series 8 SAS
controllers.

Adapters supported by this driver expect FIB contents in little-endian
(LE) byte order. All FIBs have a fixed header part as well as a data
part that depends on the command being issued to the controller.

In this way, on BE hosts, the FIB header and all FIB data structures
used in aacraid.c and aacraid_cam.c need to be converted to LE before
being sent to the adapter and converted to BE when coming from it.

The functions to convert each struct are on aacraid_endian.c.
For little-endian (LE) targets, they are macros that expand
to nothing.
In some cases, when only a few fields of a large structure are used,
the fields are converted inline, by the code using them.

PR: 237463
Reviewed by: jhibbits
Sponsored by: Eldorado Research Institute (eldorado.org.br)
Differential Revision: https://reviews.freebsd.org/D23887


# 79514055 01-Mar-2020 Warner Losh <imp@FreeBSD.org>

Remove bktr(4)

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

Relnote: yes


# 2ec8d574 16-Feb-2020 Konstantin Belousov <kib@FreeBSD.org>

Fix build of some modules for some kernel configs.

Namely, vmm.ko cannot be compiled without 'option SMP', the code uses
IPIs and LAPIC.
Recently systrace was forced over any configs, check for KDTRACE_HOOK
before compiling the dtrace/ modules.

Reviewed by: markj
Discussed with: mjg
Tested by: se (previous version)
Sponsored by: The FreeBSD Foundation (kib)
Differential revision: https://reviews.freebsd.org/D23699


# 58aa35d4 03-Feb-2020 Warner Losh <imp@FreeBSD.org>

Remove sparc64 kernel support

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


# 43c2dac0 02-Feb-2020 Ed Maste <emaste@FreeBSD.org>

Move ce enable to SOURCELESS_HOST

ce contains obfuscated code that runs on the host's processor


# 51691e26 01-Feb-2020 Warner Losh <imp@FreeBSD.org>

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


# d4633a9e 16-Jan-2020 Leandro Lupori <luporl@FreeBSD.org>

[PowerPC64] Enable virtio drivers

This enables virtio modules on PowerPC* target.
On PowerPC64, drivers are also kernel builtin.

QEMU currently needs to be patched to in order to work on LE hosts due to known
issue affecting pre-1.0 (legacy) virtio drivers.

The patch was submitted to QEMU mail list by @afscoelho_gmail.com, available at
https://lists.nongnu.org/archive/html/qemu-devel/2020-01/msg01496.html

Submitted by: Alfredo Dal'Ava Junior <alfredo.junior@eldorado.org.br>
Reviewed by: luporl
Differential Revision: https://reviews.freebsd.org/D22833


# 33ce28d1 27-Nov-2019 Scott Long <scottl@FreeBSD.org>

Remove the trm(4) driver

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


# 849aef49 21-Nov-2019 Andrew Turner <andrew@FreeBSD.org>

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


# 88f8e098 16-Oct-2019 Andriy Gapon <avg@FreeBSD.org>

attach itwd to the module build on x86

MFC after: 19 days
X-MFC with: r353647


# f2521a76 09-Oct-2019 Doug Ambrisko <ambrisko@FreeBSD.org>

This driver attaches to the Intel VMD drive and connects a new PCI domain
starting at the max. domain, and then work down. Then existing FreeBSD
drivers will attach. Interrupt routing from the VMD MSI-X to the NVME
drive is not well known, so any interrupt is sent to all children that
register.

VROC used Intel meta data so graid(8) works with it. However, graid(8)
supports RAID 0,1,10 for read and write. I have some early code to
support writes with RAID 5. Note that RAID 5 can have life issues
with SSDs since it can cause write amplification from updating the parity
data.

Hot plug support needs a change to skip the following check to work:
if (pcib_request_feature(dev, PCI_FEATURE_HP) != 0) {
in sys/dev/pci/pci_pci.c.

Looked at by: imp, rpokala, bcr
Differential Revision: https://reviews.freebsd.org/D21383


# 1c56203b 13-Sep-2019 Justin Hibbits <jhibbits@FreeBSD.org>

powerpc64/powernv: Add opal NVRAM driver for PowerNV systems

Add a very basic NVRAM driver for OPAL which can be used by the IBM
powerpc-utils nvram utility, not to be confused with the base nvram utility,
which only operates on powermac_nvram.

The IBM utility handles all partitions itself, treating the nvram device as
a plain store.

An alternative would be to manage partitions in the kernel, and augment the
base nvram utility to deal with different backing stores, but that
complicates the driver significantly. Instead, present the same interface
IBM's utlity expects, and we get the usage for free.

Tested by: bdragon


# 6659d8e7 12-Sep-2019 Ed Maste <emaste@FreeBSD.org>

arm64: connect Linuxulator to the build

More work needs to be done, but it is capable of running basic
statically or dynamically linked Linux/arm64 binaries.

Relnotes: Yes
Sponsored by: The FreeBSD Foundation


# b2e60773 26-Aug-2019 John Baldwin <jhb@FreeBSD.org>

Add kernel-side support for in-kernel TLS.

KTLS adds support for in-kernel framing and encryption of Transport
Layer Security (1.0-1.2) data on TCP sockets. KTLS only supports
offload of TLS for transmitted data. Key negotation must still be
performed in userland. Once completed, transmit session keys for a
connection are provided to the kernel via a new TCP_TXTLS_ENABLE
socket option. All subsequent data transmitted on the socket is
placed into TLS frames and encrypted using the supplied keys.

Any data written to a KTLS-enabled socket via write(2), aio_write(2),
or sendfile(2) is assumed to be application data and is encoded in TLS
frames with an application data type. Individual records can be sent
with a custom type (e.g. handshake messages) via sendmsg(2) with a new
control message (TLS_SET_RECORD_TYPE) specifying the record type.

At present, rekeying is not supported though the in-kernel framework
should support rekeying.

KTLS makes use of the recently added unmapped mbufs to store TLS
frames in the socket buffer. Each TLS frame is described by a single
ext_pgs mbuf. The ext_pgs structure contains the header of the TLS
record (and trailer for encrypted records) as well as references to
the associated TLS session.

KTLS supports two primary methods of encrypting TLS frames: software
TLS and ifnet TLS.

Software TLS marks mbufs holding socket data as not ready via
M_NOTREADY similar to sendfile(2) when TLS framing information is
added to an unmapped mbuf in ktls_frame(). ktls_enqueue() is then
called to schedule TLS frames for encryption. In the case of
sendfile_iodone() calls ktls_enqueue() instead of pru_ready() leaving
the mbufs marked M_NOTREADY until encryption is completed. For other
writes (vn_sendfile when pages are available, write(2), etc.), the
PRUS_NOTREADY is set when invoking pru_send() along with invoking
ktls_enqueue().

A pool of worker threads (the "KTLS" kernel process) encrypts TLS
frames queued via ktls_enqueue(). Each TLS frame is temporarily
mapped using the direct map and passed to a software encryption
backend to perform the actual encryption.

(Note: The use of PHYS_TO_DMAP could be replaced with sf_bufs if
someone wished to make this work on architectures without a direct
map.)

KTLS supports pluggable software encryption backends. Internally,
Netflix uses proprietary pure-software backends. This commit includes
a simple backend in a new ktls_ocf.ko module that uses the kernel's
OpenCrypto framework to provide AES-GCM encryption of TLS frames. As
a result, software TLS is now a bit of a misnomer as it can make use
of hardware crypto accelerators.

Once software encryption has finished, the TLS frame mbufs are marked
ready via pru_ready(). At this point, the encrypted data appears as
regular payload to the TCP stack stored in unmapped mbufs.

ifnet TLS permits a NIC to offload the TLS encryption and TCP
segmentation. In this mode, a new send tag type (IF_SND_TAG_TYPE_TLS)
is allocated on the interface a socket is routed over and associated
with a TLS session. TLS records for a TLS session using ifnet TLS are
not marked M_NOTREADY but are passed down the stack unencrypted. The
ip_output_send() and ip6_output_send() helper functions that apply
send tags to outbound IP packets verify that the send tag of the TLS
record matches the outbound interface. If so, the packet is tagged
with the TLS send tag and sent to the interface. The NIC device
driver must recognize packets with the TLS send tag and schedule them
for TLS encryption and TCP segmentation. If the the outbound
interface does not match the interface in the TLS send tag, the packet
is dropped. In addition, a task is scheduled to refresh the TLS send
tag for the TLS session. If a new TLS send tag cannot be allocated,
the connection is dropped. If a new TLS send tag is allocated,
however, subsequent packets will be tagged with the correct TLS send
tag. (This latter case has been tested by configuring both ports of a
Chelsio T6 in a lagg and failing over from one port to another. As
the connections migrated to the new port, new TLS send tags were
allocated for the new port and connections resumed without being
dropped.)

ifnet TLS can be enabled and disabled on supported network interfaces
via new '[-]txtls[46]' options to ifconfig(8). ifnet TLS is supported
across both vlan devices and lagg interfaces using failover, lacp with
flowid enabled, or lacp with flowid enabled.

Applications may request the current KTLS mode of a connection via a
new TCP_TXTLS_MODE socket option. They can also use this socket
option to toggle between software and ifnet TLS modes.

In addition, a testing tool is available in tools/tools/switch_tls.
This is modeled on tcpdrop and uses similar syntax. However, instead
of dropping connections, -s is used to force KTLS connections to
switch to software TLS and -i is used to switch to ifnet TLS.

Various sysctls and counters are available under the kern.ipc.tls
sysctl node. The kern.ipc.tls.enable node must be set to true to
enable KTLS (it is off by default). The use of unmapped mbufs must
also be enabled via kern.ipc.mb_use_ext_pgs to enable KTLS.

KTLS is enabled via the KERN_TLS kernel option.

This patch is the culmination of years of work by several folks
including Scott Long and Randall Stewart for the original design and
implementation; Drew Gallatin for several optimizations including the
use of ext_pgs mbufs, the M_NOTREADY mechanism for TLS records
awaiting software encryption, and pluggable software crypto backends;
and John Baldwin for modifications to support hardware TLS offload.

Reviewed by: gallatin, hselasky, rrs
Obtained from: Netflix
Sponsored by: Netflix, Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D21277


# 63ac15ab 15-Aug-2019 Alexander Motin <mav@FreeBSD.org>

Add NTB modules to i386 build.

There is no reason why NTB should not be usable on i386 if memory windows
are small enough.


# e3722b78 01-Jul-2019 Andriy Gapon <avg@FreeBSD.org>

add superio driver

The goal of this driver is consolidate information about SuperIO chips
and to provide for peaceful coexistence of drivers that need to access
SuperIO configuration registers.

While SuperIO chips can host various functions most of them are
discoverable and accessible without any knowledge of the SuperIO.
Examples are: keyboard and mouse controllers, UARTs, floppy disk
controllers. SuperIO-s also provide non-standard functions such as
GPIO, watchdog timers and hardware monitoring. Such functions do
require drivers with a knowledge of a specific SuperIO.

At this time the driver supports a number of ITE and Nuvoton (fka
Winbond) SuperIO chips.
There is a single driver for all devices. So, I have not done the usual
split between the hardware driver and the bus functionality. Although,
superio does act as a bus for devices that represent known non-standard
functions of a SuperIO chip. The bus provides enumeration of child
devices based on the hardcoded knowledge of such functions. The
knowledge as extracted from datasheets and other drivers.
As there is a single driver, I have not defined a kobj interface for it.
So, its interface is currently made of simple functions.
I think that we can the flexibility (and complications) when we actually
need it.

I am planning to convert nctgpio and wbwd to superio bus very soon.
Also, I am working on itwd driver (watchdog in ITE SuperIO-s).
Additionally, there is ithwm driver based on the reverted sensors
import, but I am not sure how to integrate it given that we still lack
any sensors interface.

Discussed with: imp, jhb
MFC after: 7 weeks
Differential Revision: https://reviews.freebsd.org/D8175


# f5a95d9a 24-Jun-2019 Warner Losh <imp@FreeBSD.org>

Remove NAND and NANDFS support

NANDFS has been broken for years. Remove it. The NAND drivers that
remain are for ancient parts that are no longer relevant. They are
polled, have terrible performance and just for ancient arm
hardware. NAND parts have evolved significantly from this early work
and little to none of it would be relevant should someone need to
update to support raw nand. This code has been off by default for
years and has violated the vnode protocol leading to panics since it
was committed.

Numerous posts to arch@ and other locations have found no actual users
for this software.

Relnotes: Yes
No Objection From: arch@
Differential Revision: https://reviews.freebsd.org/D20745


# e108c3df 15-Jun-2019 Ian Lepore <ian@FreeBSD.org>

Add module makefiles for pwm.


# 67ca7330 08-Jun-2019 Bjoern A. Zeeb <bz@FreeBSD.org>

Add SDIO support.

Add a CAM-Newbus SDIO support module. This works provides a newbus
infrastructure for device drivers wanting to use SDIO. On the lower end
while it is connected by newbus to SDHCI, it talks CAM using the MMCCAM
framework to get to it.

This also duplicates the usbdevs framework to equally create sdiodev
header files with #defines for "vendors" and "products".

Submitted by: kibab (initial work, see https://reviews.freebsd.org/D12467)
Reviewed by: kibab, imp (comments on earlier version)
MFC after: 6 weeks
Relnotes: yes
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D19749


# 5ec57af4 02-Jun-2019 Maxim Sobolev <sobomax@FreeBSD.org>

Fix several places where tool name has been hardcoded:

install -> ${INSTALL}
mtree -> ${MTREE_CMD}
services_mkdb -> ${SERVICES_MKDB_CMD}
cap_mkdb -> ${CAP_MKDB_CMD}
pwd_mkdb -> ${PWD_MKDB_CMD}
kldxref -> ${KLDXREF_CMD}

If you do custom FreeBSD builds you may want to override those
in some cases.

Sponsored by: Sippy Software, Inc.


# 03f1cf9f 19-May-2019 Johannes Lundberg <johalun@FreeBSD.org>

LinuxKPI: Finalize move of lindebugfs from ports to base.

The source file was moved to base earlier and also improved upon,
but never compiled in. This patch will:
- Make a module in sys/modules
- Make lindebugfs depend on linuxkpi (for seq_file)
- Check if read/write functions are set before calling, DRM drivers
don't always set both of them.

Reviewed by: hps
Approved by: imp (mentor), hps
MFC after: 1 week


# 7a582e53 17-May-2019 Brooks Davis <brooks@FreeBSD.org>

FCP-101: Remove xe(4)

Relnotes: yes
FCP: https://github.com/freebsd/fcp/blob/master/fcp-0101.md
Reviewed by: jhb, imp
Differential Revision: https://reviews.freebsd.org/D20230


# 02fae06a 17-May-2019 Brooks Davis <brooks@FreeBSD.org>

FCP-101: Remove wb(4)

Relnotes: yes
FCP: https://github.com/freebsd/fcp/blob/master/fcp-0101.md
Reviewed by: jhb, imp
Differential Revision: https://reviews.freebsd.org/D20230


# e8504bf9 17-May-2019 Brooks Davis <brooks@FreeBSD.org>

FCP-101: Remove vx(4).

Relnotes: yes
FCP: https://github.com/freebsd/fcp/blob/master/fcp-0101.md
Reviewed by: jhb, imp
Differential Revision: https://reviews.freebsd.org/D20230


# be345ff0 17-May-2019 Brooks Davis <brooks@FreeBSD.org>

FCP-101: Remove txp(4).

Relnotes: yes
FCP: https://github.com/freebsd/fcp/blob/master/fcp-0101.md
Reviewed by: jhb, imp
Differential Revision: https://reviews.freebsd.org/D20230


# b1b1c2fe 17-May-2019 Brooks Davis <brooks@FreeBSD.org>

FCP-101: Remove tx(4).

Relnotes: yes
FCP: https://github.com/freebsd/fcp/blob/master/fcp-0101.md
Reviewed by: jhb, imp
Differential Revision: https://reviews.freebsd.org/D20230


# 7c897ca9 17-May-2019 Brooks Davis <brooks@FreeBSD.org>

FCP-101: Remove tl(4).

Relnotes: yes
FCP: https://github.com/freebsd/fcp/blob/master/fcp-0101.md
Reviewed by: jhb, imp
Differential Revision: https://reviews.freebsd.org/D20230


# 90089841 17-May-2019 Brooks Davis <brooks@FreeBSD.org>

FCP-101: Remove sn(4).

Relnotes: yes
FCP: https://github.com/freebsd/fcp/blob/master/fcp-0101.md
Reviewed by: jhb, imp
Differential Revision: https://reviews.freebsd.org/D20230


# 3b70dd81 17-May-2019 Brooks Davis <brooks@FreeBSD.org>

FCP-101: Remove sf(4).

Relnotes: yes
FCP: https://github.com/freebsd/fcp/blob/master/fcp-0101.md
Reviewed by: jhb, imp
Differential Revision: https://reviews.freebsd.org/D20230


# 607790d1 17-May-2019 Brooks Davis <brooks@FreeBSD.org>

FCP-101: Remove pcn(4).

Relnotes: yes
FCP: https://github.com/freebsd/fcp/blob/master/fcp-0101.md
Reviewed by: jhb, imp
Differential Revision: https://reviews.freebsd.org/D20230


# dd262716 17-May-2019 Brooks Davis <brooks@FreeBSD.org>

FCP-101: Remove fe(4).

Relnotes: yes
FCP: https://github.com/freebsd/fcp/blob/master/fcp-0101.md
Reviewed by: jhb, imp
Differential Revision: https://reviews.freebsd.org/D20230


# 3ee01a13 17-May-2019 Brooks Davis <brooks@FreeBSD.org>

FCP-101: Remove ex(4).

Relnotes: yes
FCP: https://github.com/freebsd/fcp/blob/master/fcp-0101.md
Reviewed by: jhb, imp
Differential Revision: https://reviews.freebsd.org/D20230


# e153ee66 17-May-2019 Brooks Davis <brooks@FreeBSD.org>

FCP-101: Remove ep(4).

Relnotes: yes
FCP: https://github.com/freebsd/fcp/blob/master/fcp-0101.md
Reviewed by: jhb, imp
Differential Revision: https://reviews.freebsd.org/D20230


# 05aa6e58 17-May-2019 Brooks Davis <brooks@FreeBSD.org>

FCP-101: Remove ed(4).

Relnotes: yes
FCP: https://github.com/freebsd/fcp/blob/master/fcp-0101.md
Reviewed by: jhb, imp
Differential Revision: https://reviews.freebsd.org/D20230


# 08ac01a9 17-May-2019 Brooks Davis <brooks@FreeBSD.org>

FCP-101: Remove de(4).

Relnotes: yes
FCP: https://github.com/freebsd/fcp/blob/master/fcp-0101.md
Reviewed by: jhb, imp
Differential Revision: https://reviews.freebsd.org/D20230


# e1edf124 17-May-2019 Brooks Davis <brooks@FreeBSD.org>

FCP-101: Remove cs(4).

Relnotes: yes
FCP: https://github.com/freebsd/fcp/blob/master/fcp-0101.md
Reviewed by: jhb, imp
Differential Revision: https://reviews.freebsd.org/D20230


# 9e774e53 17-May-2019 Brooks Davis <brooks@FreeBSD.org>

FCP-101: Remove bm(4).

Relnotes: yes
FCP: https://github.com/freebsd/fcp/blob/master/fcp-0101.md
Reviewed by: jhb, imp
Differential Revision: https://reviews.freebsd.org/D20230


# 3b2324c3 08-May-2019 Hans Petter Selasky <hselasky@FreeBSD.org>

Initial version of Mellanox in-kernel firmware upgrade support.

Submitted by: slavash@
MFC after: 3 days
Sponsored by: Mellanox Technologies


# 251a32b5 07-May-2019 Kyle Evans <kevans@FreeBSD.org>

tun/tap: merge and rename to `tuntap`

tun(4) and tap(4) share the same general management interface and have a lot
in common. Bugs exist in tap(4) that have been fixed in tun(4), and
vice-versa. Let's reduce the maintenance requirements by merging them
together and using flags to differentiate between the three interface types
(tun, tap, vmnet).

This fixes a couple of tap(4)/vmnet(4) issues right out of the gate:
- tap devices may no longer be destroyed while they're open [0]
- VIMAGE issues already addressed in tun by kp

[0] emaste had removed an easy-panic-button in r240938 due to devdrn
blocking. A naive glance over this leads me to believe that this isn't quite
complete -- destroy_devl will only block while executing d_* functions, but
doesn't block the device from being destroyed while a process has it open.
The latter is the intent of the condvar in tun, so this is "fixed" (for
certain definitions of the word -- it wasn't really broken in tap, it just
wasn't quite ideal).

ifconfig(8) also grew the ability to map an interface name to a kld, so
that `ifconfig {tun,tap}0` can continue to autoload the correct module, and
`ifconfig vmnet0 create` will now autoload the correct module. This is a
low overhead addition.

(MFC commentary)

This may get MFC'd if many bugs in tun(4)/tap(4) are discovered after this,
and how critical they are. Changes after this are likely easily MFC'd
without taking this merge, but the merge will be easier.

I have no plans to do this MFC as of now.

Reviewed by: bcr (manpages), tuexen (testing, syzkaller/packetdrill)
Input also from: melifaro
Relnotes: yes
Differential Revision: https://reviews.freebsd.org/D20044


# e53f0338 23-Apr-2019 Ed Maste <emaste@FreeBSD.org>

Enable Mellanox drivers (modules) on AArch64

Tested by Greg V with mlx5en on an Ampere eMAG instance at Packet.com on
c2.large.arm (with some additional uncommitted PCIe WIP).

PR: 237055
Submitted by: Greg V <greg@unrelenting.technology>
Reviewed by: hselasky
MFC after: 1 month
Differential Revision: https://reviews.freebsd.org/D19983


# f56baf87 22-Mar-2019 Colin Percival <cperciva@FreeBSD.org>

Build if_ena.ko on arm64.

This module provides support for the Amazon Elastic Network Adapter; it
was previously only built on x86 architectures, but Amazon EC2 now also
has ARM64 instances with this hardware.

Submitted by: Greg V


# 123af6ec 20-Mar-2019 Alan Somers <asomers@FreeBSD.org>

Rename fuse(4) to fusefs(4)

This makes it more consistent with other filesystems, which all end in "fs",
and more consistent with its mount helper, which is already named
"mount_fusefs".

Reviewed by: cem, rgrimes
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D19649


# 608accbf 28-Feb-2019 Ian Lepore <ian@FreeBSD.org>

Undo accidental part of r344681.

I think I must have accidentally mouse-click pasted while scrolling and
didn't notice it.

Reported by: jhibbits@


# 238eb01b 28-Feb-2019 Ian Lepore <ian@FreeBSD.org>

Build fdt support modules on systems that use fdt data.

kern.opts.mk sets make var OPT_FDT to a non-empty value if platform.h
contains OPT_FDT.


# e8643b01 26-Feb-2019 Konstantin Belousov <kib@FreeBSD.org>

Modularize xz.

Embedded lzma decompression library becomes a module usable by other
consumers, in addition to geom_uzip.

Most important code changes are
- removal of XZ_DEC_SINGLE define, we need the code to work
with XZ_DEC_DYNALLOC;
- xz_crc32_init() call is removed from geom_uzip, xz module handles
initialization on its own.

xz is no longer embedded into geom_uzip, instead the depend line for
the module is provided, and corresponding kernel option is added to
each MIPS kernel config file using geom_uzip.

The commit also carries unrelated cleanup by removing excess "device geom_uzip"
in places which were missed in r344479.

Reviewed by: cem, hselasky, ray, slavash (previous versions)
Sponsored by: Mellanox Technologies
Differential revision: https://reviews.freebsd.org/D19266
MFC after: 3 weeks


# 68685bf1 19-Feb-2019 Warner Losh <imp@FreeBSD.org>

Remove drm2 modules.

Remove support for compiling drm2 as a module. This has transitioned
to the drm-kmod or drm-legacy-kmodw ports.

Approved by: graphics team
Reviewed by: manu@, mmel@
Differential Revision: https://reviews.freebsd.org/D19196


# 669fd68e 19-Feb-2019 Warner Losh <imp@FreeBSD.org>

Per discussions on arch@ and elsewhere, retire drm module / drives.

Retire the drm modules / drivers. These are now handled by the
drm-legacy-kmod port and/or the drm-kmod port. All future
development and maintanace will be handled there.

Approved by: graphics team
Reviewed by: manu@, mmel@
Differential Revision: https://reviews.freebsd.org/D19196


# c75f49f7 31-Jan-2019 Konstantin Belousov <kib@FreeBSD.org>

Make iflib a loadable module.

iflib is already a module, but it is unconditionally compiled into the
kernel. There are drivers which do not need iflib(4), and there are
situations where somebody might not want iflib in kernel because of
using the corresponding driver as module.

Reviewed by: marius
Discussed with: erj
Sponsored by: The FreeBSD Foundation
MFC after: 2 weeks
Differential revision: https://reviews.freebsd.org/D19041


# 70a975ae 19-Dec-2018 Mateusz Guzik <mjg@FreeBSD.org>

Remove iBCS2, part3: the implementation

Reviewed by: kib (previous version)
Sponsored by: The FreeBSD Foundation


# 0cbe99d7 09-Dec-2018 Warner Losh <imp@FreeBSD.org>

Fix typo in powerpcspe name.


# 25b4f9ad 08-Dec-2018 Scott Long <scottl@FreeBSD.org>

I missed powerpcspe in the previous commit for excluding mps and mpr.
I also learned that 'mips' is overly broad and covers 64bit architectures
too. However, it's not worth the fight right now, so any refinements
will have to come another day.


# 44f299a3 08-Dec-2018 Scott Long <scottl@FreeBSD.org>

Remove the mps driver from powerpc 32bit GENERIC, and don't build it and
mpr as a module for powerpc or mips. An upcoming commit will cause these
drivers to rely on the presence of 64bit atomic operations. Discussed
with jhibbits.


# 9984cc3d 25-Oct-2018 Warner Losh <imp@FreeBSD.org>

Bump to 1300002 for sys/joystick.h removal reversion.


# 7c320a22 25-Oct-2018 Warner Losh <imp@FreeBSD.org>

Revert r339563.

I held the mistaken belief this was completely unused. While the
driver is unused and likely not relevant for a long time,
sys/joystick.h lives on in maybe half a dozen ports, even though
hardware to use it hasn't been widely used in maybe 15 years.


# 6a186782 21-Oct-2018 Warner Losh <imp@FreeBSD.org>

Remove the ncr(4) drive.

This driver has been obsolete since the FreeBSD 4.x. It should have
been removed then since the sym(4) driver had subsumed it. The driver
was commented out of GENERIC in 2000.

RelNotes: Yes


# 51a2f839 21-Oct-2018 Warner Losh <imp@FreeBSD.org>

Retire scsi_low

scsi_low was a common set of routines to do the SCSI bus sequencing
for the ncv, nsp and stg drivers. Those have been removed, so it's no
longer needed since nothing else in the tree uses it and nothing
likely ever will (it's for super-low-end 8-bit parallel SCSI cards).


# 49a93324 21-Oct-2018 Warner Losh <imp@FreeBSD.org>

Remove stg(4) driver

stg(4) is marked as gone in 12. Remove it. There are no sightings of
it in the nycbug dmesg database. It was for an obscure SCSI card that
sold mostly in Japan, and was especially popilar among pc98 hackers in
the 4.x time frame. It was also only enabled on i386.

Relnote: Yes


# 08204c2c 21-Oct-2018 Warner Losh <imp@FreeBSD.org>

Remove nsp(4) driver

nsp(4) is marked as gone in 12. Remove it. There are no sightings of
it in the nycbug dmesg database. It was for an obscure SCSI card that
sold mostly in Japan, and was especially popilar among pc98 hackers in
the 4.x time frame. It was also only enabled on i386.

Relnote: Yes


# 2dfd3588 21-Oct-2018 Warner Losh <imp@FreeBSD.org>

Remove ncv(4) driver

ncv(4) is marked as gone in 12. Remove it. There are no sightings of
it in the nycbug dmesg database. It was for an obscure SCSI card that
sold mostly in Japan, and was especially popilar among pc98 hackers in
the 4.x time frame..

Relnote: Yes


# e9b5375b 21-Oct-2018 Warner Losh <imp@FreeBSD.org>

Retire dpt(4)

Marked as gone in 12 and not relevant since the early 90s. No
sightings in nycbug's dmesg database.

Relnotes: yes


# c24bd33d 21-Oct-2018 Warner Losh <imp@FreeBSD.org>

Remove aic(4) driver

aic was marked to be gone in 12 a while ago. Go ahead and remove it.
nycbug's dmesg database shows this was last seen in 6 and one more
time in 4.x. It never was popular, and what popularity it had was over
before the nycbug databse got going in 2004.

Relnotes: yes


# 39c362e0 21-Oct-2018 Warner Losh <imp@FreeBSD.org>

Remove aha(4) from the tree.

We tagged aha as gone in 12 a while ago. Proceed with its removal.
Data from nycbug's database shows the last sighting of this driver in
6, with the prior one in 4.x show its popularity had died prior to
4.x.

Relnotes: yes


# c1cdf6a4 21-Oct-2018 Warner Losh <imp@FreeBSD.org>

Remove mse(4) from tree

Remove mse and all support for bus and inport devices from the tree.
Data from nycbug's dmesg database shows the last sighting of this
driver was in 4.10 on only one machine.

Relnotes: yes
Differential Revision: https://reviews.freebsd.org/D17628


# 33a54d77 21-Oct-2018 Warner Losh <imp@FreeBSD.org>

Remove joy(4) driver.

This driver was marked as gone in 12. We're at 13 now. Remove it.
Data from nycbug's dmesg cache shows only one potential user,
suggesting it never was used much.

RelNotes: yes
Differential Revision: https://reviews.freebsd.org/D17629


# 8ce574de 20-Oct-2018 Oleksandr Tymoshenko <gonzo@FreeBSD.org>

Add amdgpio, driver for GPIO controller on AMD-based x86_64 platforms

Submitted by: Rajesh Kumar <rajbsd@gmail.com>
Differential Revision: https://reviews.freebsd.org/D16865


# 6db7f8e5 16-Oct-2018 Konstantin Belousov <kib@FreeBSD.org>

Add initial driver for ACPI NFIT-enumerated NVDIMMs.

Driver enumerates NVDIMMs. Besides, for each found System Physical
Address (SPA) range, spaN geom provider is created, which allows
formatting and mounting the region as the normal volume. Also,
/dev/nvdimm_spaN node is created, which can be read/written/mapped by
userspace, the mapping is zero-copy.

No support for block access methods implemented, labels are not
parsed. No management interfaces are provided.

Tested by: Intel, NetApp
Sponsored by: The FreeBSD Foundation
Approved by: re (gjb)
MFC after: 2 weeks


# 77c1fcec 12-Oct-2018 Eric Joyner <erj@FreeBSD.org>

ixl/iavf(4): Change ixlv to iavf and update it to use iflib(9)

Finishes the conversion of the 40Gb Intel Ethernet drivers to iflib(9) for
FreeBSD 12.0, and fixes numerous bugs in both ixl(4) and iavf(4).

This commit also re-adds the VF driver to GENERIC since it now compiles and
functions.

The VF driver name was changed from ixlv(4) to iavf(4) because the VF driver is
now intended to be used with future products, not just with Fortville/Fort Park
VFs.

A man page update that documents these drivers is forthcoming in a separate
commit.

Reviewed by: sbruno@, kbowling@
Tested by: jeffrey.e.pieper@intel.com
Approved by: re (gjb@)
Relnotes: yes
Sponsored by: Intel Corporation
Differential Revision: https://reviews.freebsd.org/D16429


# c0386fa3 28-Aug-2018 Warner Losh <imp@FreeBSD.org>

Put building of drm and drm2 modules behind options.

Make the building of drm dependent on MK_MODULE_DRM and the building
of module drm2 on MK_MODULE_DRM2. The defaults are unchanged.

Approved by: re@ (gjb)
Differential Review: https://reviews.freebsd.org/D16894


# 19fa89e9 25-Aug-2018 Mark Murray <markm@FreeBSD.org>

Remove the Yarrow PRNG algorithm option in accordance with due notice
given in random(4).

This includes updating of the relevant man pages, and no-longer-used
harvesting parameters.

Ensure that the pseudo-unit-test still does something useful, now also
with the "other" algorithm instead of Yarrow.

PR: 230870
Reviewed by: cem
Approved by: so(delphij,gtetlow)
Approved by: re(marius)
Differential Revision: https://reviews.freebsd.org/D16898


# 592ffb21 23-Aug-2018 Warner Losh <imp@FreeBSD.org>

Revert drm2 removal.

Revert r338177, r338176, r338175, r338174, r338172

After long consultations with re@, core members and mmacy, revert
these changes. Followup changes will be made to mark them as
deprecated and prent a message about where to find the up-to-date
driver. Followup commits will be made to make this clear in the
installer. Followup commits to reduce POLA in ways we're still
exploring.

It's anticipated that after the freeze, this will be removed in
13-current (with the residual of the drm2 code copied to
sys/arm/dev/drm2 for the TEGRA port's use w/o the intel or
radeon drivers).

Due to the impending freeze, there was no formal core vote for
this. I've been talking to different core members all day, as well as
Matt Macey and Glen Barber. Nobody is completely happy, all are
grudgingly going along with this. Work is in progress to mitigate
the negative effects as much as possible.

Requested by: re@ (gjb, rgrimes)


# d157fbd5 21-Aug-2018 Matt Macy <mmacy@FreeBSD.org>

Remove legacy drm and drm2 from tree

As discussed on the MLs drm2 conflicts with the ports' version and there
is no upstream for most if not all of drm. Both have been merged in to
a single port.

Users on powerpc, 32-bit hardware, or with GPUs predating Radeon
and i915 will need to install the graphics/drm-legacy-kmod. All
other users should be able to use one of the LinuxKPI-based ports:
graphics/drm-stable-kmod, graphics/drm-next-kmod, graphics/drm-devel-kmod.

MFC: never
Approved by: core@


# 0bf0bb83 25-Jul-2018 Justin Hibbits <jhibbits@FreeBSD.org>

Support building IPMI as a module on powerpc64

This still only supports IPMI via OPAL on powerpc64, but now it can be tested
with a GENERIC kernel.


# 3496c981 19-Jul-2018 Ian Lepore <ian@FreeBSD.org>

Make it possible to run ntpd as a non-root user, add ntpd uid and gid.

Code analysis and runtime analysis using truss(8) indicate that the only
privileged operations performed by ntpd are adjusting system time, and
(re-)binding to privileged UDP port 123. These changes add a new mac(4)
policy module, mac_ntpd(4), which grants just those privileges to any
process running with uid 123.

This also adds a new user and group, ntpd:ntpd, (uid:gid 123:123), and makes
them the owner of the /var/db/ntp directory, so that it can be used as a
location where the non-privileged daemon can write files such as the
driftfile, and any optional logfile or stats files.

Because there are so many ways to configure ntpd, the question of how to
configure it to run without root privs can be a bit complex, so that will be
addressed in a separate commit. These changes are just what's required to
grant the limited subset of privs to ntpd, and the small change to ntpd to
prevent it from exiting with an error if running as non-root.

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


# e18e6384 26-Jun-2018 Stephen J. Kiernan <stevek@FreeBSD.org>

Partial revert of r335399 and r335400:
Unhook the MAC/veriexec, fingerprint handlers, and veriexec modules from
the kernel modules Makefile.

Reviewed by: sjg


# 408ab1bd 26-Jun-2018 Ed Maste <emaste@FreeBSD.org>

Correct linprocfs/linsysfs arch check in r335672

Pointy hat to: emaste


# 96fa5386 26-Jun-2018 Ed Maste <emaste@FreeBSD.org>

Build linprocfs and linsysfs also on arm64

Sponsored by: Turing Robotic Industries


# ed7b25da 19-Jun-2018 Stephen J. Kiernan <stevek@FreeBSD.org>

Device for user space to interface with MAC/veriexec.

The veriexec device features the following ioctl commands:

VERIEXEC_ACTIVE
Activate veriexec functionality
VERIEXEC_DEBUG_ON
Enable debugging mode and increment or set the debug level
VERIEXEC_DEBUG_OFF
Disable debugging mode
VERIEXEC_ENFORCE
Enforce veriexec fingerprinting (and acitvate if not already)
VERIEXEC_GETSTATE
Get current veriexec state
VERIEXEC_LOCK
Lock changes to veriexec meta-data store
VERIEXEC_LOAD
Load veriexec fingerprint if secure level is not raised (and passes the
checks for VERIEXEC_SIGNED_LOAD)
VERIEXEC_SIGNED_LOAD
Load veriexec fingerprints from loader that supports signed manifest
(and thus we can be more lenient about secure level being raised.)
Fingerprints can be loaded if the meta-data store is not locked. Also
securelevel must not have been raised or some fingerprints must have
already been loaded, otherwise it would be dangerous to allow loading.
(Note: this assumes that the fingerprints in the meta-data store at
least cover the fingerprint loader.)

Reviewed by: jtl
Obtained from: Juniper Networks, Inc.
Differential Revision: https://reviews.freebsd.org/D8561


# fb47a376 19-Jun-2018 Stephen J. Kiernan <stevek@FreeBSD.org>

MAC/veriexec implements a verified execution environment using the MAC
framework.

The code is organized into a few distinct pieces:

* The meta-data store (in veriexec_metadata.c) which maps a file system
identifier, file identifier, and generation key tuple to veriexec
meta-data record.

* Fingerprint management (in veriexec_fingerprint.c) which deals with
calculating the cryptographic hash for a file and verifying it. It also
manages the loadable fingerprint modules.

* MAC policy implementation (in mac_veriexec.c) which implements the
following MAC methods:

mpo_init
Initializes the veriexec state, meta-data store, fingerprint modules,
and registers mount and unmount EVENTHANDLERs

mpo_syscall
Implements the following per-policy system calls:
MAC_VERIEXEC_CHECK_FD_SYSCALL
Check a file descriptor to see if the referenced file has a valid
fingerprint.
MAC_VERIEXEC_CHECK_PATH_SYSCALL
Check a path to see if the referenced file has a valid fingerprint.

mpo_kld_check_load
Check if loading a kld is allowed. This checks if the referenced vnode
has a valid fingerprint.

mpo_mount_destroy_label
Clears the veriexec slot data in a mount point label.

mpo_mount_init_label
Initializes the veriexec slot data in a mount point label.
The file system identifier is saved in the veriexec slot data.

mpo_priv_check
Check if a process is allowed to write to /dev/kmem and /dev/mem
devices.
If a process is flagged as trusted, it is allowed to write.

mpo_proc_check_debug
Check if a process is allowed to be debugged. If a process is not
flagged with VERIEXEC_NOTRACE, then debugging is allowed.

mpo_vnode_check_exec
Check is an exectuable is allowed to run. If veriexec is not enforcing
or the executable has a valid fingerprint, then it is allowed to run.
NOTE: veriexec will complain about mismatched fingerprints if it is
active, regardless of the state of the enforcement.

mpo_vnode_check_open
Check is a file is allowed to be opened. If verification was not
requested, veriexec is not enforcing, or the file has a valid
fingerprint, then veriexec will allow the file to be opened.

mpo_vnode_copy_label
Copies the veriexec slot data from one label to another.

mpo_vnode_destroy_label
Clears the veriexec slot data in a vnode label.

mpo_vnode_init_label
Initializes the veriexec slot data in a vnode label.
The fingerprint status for the file is stored in the veriexec slot data.

* Some sysctls, under security.mac.veriexec, for setting debug level,
fetching the current state in a human-readable form, and dumping the
fingerprint database are implemented.

* The MAC policy implementation source file also contains some utility
functions.

* A set of fingerprint modules for the following cryptographic hash
algorithms:
RIPEMD-160, SHA1, SHA2-256, SHA2-384, SHA2-512

* Loadable module builds for MAC/veriexec and fingerprint modules.

WARNING: Using veriexec with NFS (or other network-based) file systems is
not recommended as one cannot guarantee the integrity of the files
served, nor the uniqueness of file system identifiers which are
used as key in the meta-data store.

Reviewed by: ian, jtl
Obtained from: Juniper Networks, Inc.
Differential Revision: https://reviews.freebsd.org/D8554


# 936a20bb 18-Jun-2018 Matt Macy <mmacy@FreeBSD.org>

remove epoch_test from default build


# 1031d839 18-Jun-2018 Eric Joyner <erj@FreeBSD.org>

ixl(4): Update to use iflib

Update the driver to use iflib in order to bring performance,
maintainability, and (hopefully) stability benefits to the driver.

The driver currently isn't completely ported; features that are missing:

- VF driver (ixlv)
- SR-IOV host support
- RDMA support

The plan is to have these re-added to the driver before the next FreeBSD release.

Reviewed by: gallatin@
Contributions by: gallatin@, mmacy@, krzysztof.galazka@intel.com
Tested by: jeffrey.e.pieper@intel.com
MFC after: 1 month
Sponsored by: Intel Corporation
Differential Revision: https://reviews.freebsd.org/D15577


# c0fc4047 14-Jun-2018 Emmanuel Vadot <manu@FreeBSD.org>

Add modules/rockchip

Build rockchip modules as part of buildkernel.
Add the i2c controller module.


# ee3d52d7 11-Jun-2018 Dimitry Andric <dim@FreeBSD.org>

Disable building aesni with base gcc

Because base gcc does not support the required intrinsics, do not
attempt to compile the aesni module with it.

Noticed by: Dan Allen <danallen46@gmail.com>
MFC after: 3 days


# b5e08a60 07-Jun-2018 Justin Hibbits <jhibbits@FreeBSD.org>

Build nvme modules for powerpc, and install man pages

NVMe builds for powerpc now, so just build modules for all powerpc targets,
and install NVMe man pages for all powerpc targets.


# d7c5a620 18-May-2018 Matt Macy <mmacy@FreeBSD.org>

ifnet: Replace if_addr_lock rwlock with epoch + mutex

Run on LLNW canaries and tested by pho@

gallatin:
Using a 14-core, 28-HTT single socket E5-2697 v3 with a 40GbE MLX5
based ConnectX 4-LX NIC, I see an almost 12% improvement in received
packet rate, and a larger improvement in bytes delivered all the way
to userspace.

When the host receiving 64 streams of netperf -H $DUT -t UDP_STREAM -- -m 1,
I see, using nstat -I mce0 1 before the patch:

InMpps OMpps InGbs OGbs err TCP Est %CPU syscalls csw irq GBfree
4.98 0.00 4.42 0.00 4235592 33 83.80 4720653 2149771 1235 247.32
4.73 0.00 4.20 0.00 4025260 33 82.99 4724900 2139833 1204 247.32
4.72 0.00 4.20 0.00 4035252 33 82.14 4719162 2132023 1264 247.32
4.71 0.00 4.21 0.00 4073206 33 83.68 4744973 2123317 1347 247.32
4.72 0.00 4.21 0.00 4061118 33 80.82 4713615 2188091 1490 247.32
4.72 0.00 4.21 0.00 4051675 33 85.29 4727399 2109011 1205 247.32
4.73 0.00 4.21 0.00 4039056 33 84.65 4724735 2102603 1053 247.32

After the patch

InMpps OMpps InGbs OGbs err TCP Est %CPU syscalls csw irq GBfree
5.43 0.00 4.20 0.00 3313143 33 84.96 5434214 1900162 2656 245.51
5.43 0.00 4.20 0.00 3308527 33 85.24 5439695 1809382 2521 245.51
5.42 0.00 4.19 0.00 3316778 33 87.54 5416028 1805835 2256 245.51
5.42 0.00 4.19 0.00 3317673 33 90.44 5426044 1763056 2332 245.51
5.42 0.00 4.19 0.00 3314839 33 88.11 5435732 1792218 2499 245.52
5.44 0.00 4.19 0.00 3293228 33 91.84 5426301 1668597 2121 245.52

Similarly, netperf reports 230Mb/s before the patch, and 270Mb/s after the patch

Reviewed by: gallatin
Sponsored by: Limelight Networks
Differential Revision: https://reviews.freebsd.org/D15366


# 6f78fad3 17-May-2018 Sean Bruno <sbruno@FreeBSD.org>

Retire vxge(4).

This driver was merged to HEAD one week prior to Exar publicly announcing they
had left the Ethernet market. It is not known to be used and has various code
quality issues spotted by Brooks and Hiren. Retire it in preparation for
FreeBSD 12.0.

Submitted by: kbowling
Reviewed by: brooks imp
Relnotes: yes
Sponsored by: Limelight Networks
Differential Revision: https://reviews.freebsd.org/D15442


# 3076898a 17-May-2018 Emmanuel Vadot <manu@FreeBSD.org>

allwinner: Add h3 spi driver

This driver is compatible with H3/H5/A64.
Test was done on the OrangePi-PC2 board (H5 based), which have a mx25l1606e
spi flash on it, by writing u-boot image, reading it and booting from the spi.
There is still room for improvement especially on reading using the controller
automatic burst which will avoid us to write dummy data to the TX FIFO.
DMA is also not supported as we currently don't support the DMA controller on
those SoCs
Only add a kernel module for it.


# 57b49365 08-May-2018 Sean Bruno <sbruno@FreeBSD.org>

nxge(4):
Remove nxge(4) and associated man page and tools in FreeBSD 12.0.

Submitted by: kbowling
Reviewed by: brooks
Relnotes: yes
Sponsored by: Limelight Networks
Differential Revision: https://reviews.freebsd.org/D1529


# 2695c9c1 02-May-2018 Sean Bruno <sbruno@FreeBSD.org>

Retire ixgb(4)

This driver was for an early and uncommon legacy PCI 10GbE for a single
ASIC, Intel 82597EX. Intel quickly shifted to the long lived ixgbe family.

Submitted by: kbowling
Reviewed by: brooks imp jeffrey.e.pieper@intel.com
Relnotes: yes
Sponsored by: Limelight Networks
Differential Revision: https://reviews.freebsd.org/D15234


# e6a376d1 01-May-2018 Ed Maste <emaste@FreeBSD.org>

Retire lmc(4)

This driver supports legacy, 32-bit PCI devices, and had an ambiguous
license. Supported devices were already reported to be rare in 2003
(when an earlier version of the driver was removed in r123201).

Reviewed by: rgrimes
Relnotes: Yes
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D15245


# 1e66f787 26-Apr-2018 Sean Bruno <sbruno@FreeBSD.org>

martpqi(4):
- Microsemi SCSI driver for PQI controllers.
- Found on newer model HP servers.
- Restrict to AMD64 only as per developer request.

The driver provides support for the new generation of PQI controllers
from Microsemi. This driver is the first SCSI driver to implement the PQI
queuing model and it will replace the aacraid driver for Adaptec Series 9
controllers. HARDWARE Controllers supported by the driver include:

HPE Gen10 Smart Array Controller Family
OEM Controllers based on the Microsemi Chipset.

Submitted by: deepak.ukey@microsemi.com
Relnotes: yes
Sponsored by: Microsemi
Differential Revision: https://reviews.freebsd.org/D14514


# 3a4fc8a8 13-Apr-2018 Brooks Davis <brooks@FreeBSD.org>

Remove support for the Arcnet protocol.

While Arcnet has some continued deployment in industrial controls, the
lack of drivers for any of the PCI, USB, or PCIe NICs on the market
suggests such users aren't running FreeBSD.

Evidence in the PR database suggests that the cm(4) driver (our sole
Arcnet NIC) was broken in 5.0 and has not worked since.

PR: 182297
Reviewed by: jhibbits, vangyzen
Relnotes: yes
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D15057


# ef270ab1 30-Mar-2018 Kenneth D. Merry <ken@FreeBSD.org>

Bring in the Broadcom/Emulex Fibre Channel driver, ocs_fc(4).

The ocs_fc(4) driver supports the following hardware:

Emulex 16/8G FC GEN 5 HBAS
LPe15004 FC Host Bus Adapters
LPe160XX FC Host Bus Adapters

Emulex 32/16G FC GEN 6 HBAS
LPe3100X FC Host Bus Adapters
LPe3200X FC Host Bus Adapters

The driver supports target and initiator mode, and also supports FC-Tape.

Note that the driver only currently works on little endian platforms. It
is only included in the module build for amd64 and i386, and in GENERIC
on amd64 only.

Submitted by: Ram Kishore Vegesna <ram.vegesna@broadcom.com>
Reviewed by: mav
MFC after: 5 days
Relnotes: yes
Sponsored by: Broadcom
Differential Revision: https://reviews.freebsd.org/D11423


# 0e33efe4 21-Mar-2018 Conrad Meyer <cem@FreeBSD.org>

Import Blake2 algorithms (blake2b, blake2s) from libb2

The upstream repository is on github BLAKE2/libb2. Files landed in
sys/contrib/libb2 are the unmodified upstream files, except for one
difference: secure_zero_memory's contents have been replaced with
explicit_bzero() only because the previous implementation broke powerpc
link. Preferential use of explicit_bzero() is in progress upstream, so
it is anticipated we will be able to drop this diff in the future.

sys/crypto/blake2 contains the source files needed to port libb2 to our
build system, a wrapped (limited) variant of the algorithm to match the API
of our auth_transform softcrypto abstraction, incorporation into the Open
Crypto Framework (OCF) cryptosoft(4) driver, as well as an x86 SSE/AVX
accelerated OCF driver, blake2(4).

Optimized variants of blake2 are compiled for a number of x86 machines
(anything from SSE2 to AVX + XOP). On those machines, FPU context will need
to be explicitly saved before using blake2(4)-provided algorithms directly.
Use via cryptodev / OCF saves FPU state automatically, and use via the
auth_transform softcrypto abstraction does not use FPU.

The intent of the OCF driver is mostly to enable testing in userspace via
/dev/crypto. ATF tests are added with published KAT test vectors to
validate correctness.

Reviewed by: jhb, markj
Obtained from: github BLAKE2/libb2
Differential Revision: https://reviews.freebsd.org/D14662


# 27cb8d84 16-Mar-2018 Conrad Meyer <cem@FreeBSD.org>

Garbage collect unused chacha20 code

Two copies of chacha20 were imported into the tree on Apr 15 2017 (r316982)
and Apr 16 2017 (r317015). Only the latter is actually used by anything, so
just go ahead and garbage collect the unused version while it's still only
in CURRENT.

I'm not making any judgement on which implementation is better. If I pulled
the wrong one, feel free to swap the existing implementation out and replace
it with the other code (conforming to the API that actually gets used in
randomdev, of course). We only need one generic implementation.

Sponsored by: Dell EMC Isilon


# 94b8a54a 22-Feb-2018 Oleksandr Tymoshenko <gonzo@FreeBSD.org>

[chvgpio] add GPIO driver for Intel Z8xxx SoC family

Add chvgpio(4) driver for Intel Z8xxx SoC family. This product
was formerly known as Cherry Trail but Linux and OpenBSD drivers
refer to it as Cherry View. This driver is derived from OpenBSD
one so the name is kept for alignment with another BSD system.

Submitted by: Tom Jones <tj@enoti.me>
Reviewed by: gonzo, wblock(man page)
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D13086


# 2aa5d9c4 18-Feb-2018 Ian Lepore <ian@FreeBSD.org>

Add modules/spi as a gathering point for SPI-related modules, analagous to
modules/i2c for i2c/iicbus modules. Build spibus as a module.


# f82eace5 17-Feb-2018 Ian Lepore <ian@FreeBSD.org>

Build modules specific to imx5/imx6 only when building those kernels.

This adds sys/modules/imx with a SUBDIR makefile to make the whole
collection of modules that are specific to these SoCs. Initially, that
"whole collection" consists of the if_ffec and imx_i2c drivers.

The if_ffec driver is referenced in its existing home in ../ffec rather
than moving it into the imx directory, because it's used by powerpc too,
but it is no longer built for all armv6/7 systems.

The imx_i2c driver is newly added as a module.


# 33ec1ccb 13-Feb-2018 Hans Petter Selasky <hselasky@FreeBSD.org>

Import the mthca kernel side infiniband driver from Linux 4.9 and fix
compilation under FreeBSD. The mthca driver was temporarily removed as
part of the Linux 4.9 RoCE/infinband upgrade.

Top commit in Linux source tree:
69973b830859bc6529a7a0468ba0d80ee5117826

Sponsored by: Mellanox Technologies


# d177c199 05-Feb-2018 Landon J. Fuller <landonf@FreeBSD.org>

bwn(4): migrate bwn(4) to the native bhnd(9) interface, and drop siba_bwn.

- Remove the shim interface that allowed bwn(4) to use either siba_bwn or
bhnd(4), replacing all siba_bwn calls with their bhnd(4) bus equivalents.
- Drop the legay, now-unused siba_bwn bus driver.
- Clean up bhnd(4) board flag defines referenced by bwn(4).

Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D13518


# fc62b7e5 22-Jan-2018 Poul-Henning Kamp <phk@FreeBSD.org>

Add a skeleton Clock Manager for RPi2/3, and use that from pwm
instead of frobbing the registers directly.

As a hack the bcm2835_pwm kmod presently ignores the 'status="disabled"'
in the RPI3 DTB, assuming that if you load the kld you probably
want the PWM to work.


# 137a344c 21-Jan-2018 Poul-Henning Kamp <phk@FreeBSD.org>

Rename rpi_pwm to bcm283x_pwm, and build it on armv[67] and arm64.

Truncate ratio if period is lowered.

Tested on Rpi2 and Rpi3.

Rpi3 requires DTB->DTS->edit->DTB hack


# d3f8974a 18-Jan-2018 Conrad Meyer <cem@FreeBSD.org>

Unbreak i386 build

The logical result of a right shift >= the width of a type is zero, but our
compiler decides this is a warning (and thus, error). Just remove ccp(4)
from i386.

Reported by: cy
Sponsored by: Dell EMC Isilon


# 844d9543 18-Jan-2018 Conrad Meyer <cem@FreeBSD.org>

Add ccp(4): experimental driver for AMD Crypto Co-Processor

* Registers TRNG source for random(4)
* Finds available queues, LSBs; allocates static objects
* Allocates a shared MSI-X for all queues. The hardware does not have
separate interrupts per queue. Working interrupt mode driver.
* Computes SHA hashes, HMAC. Passes cryptotest.py, cryptocheck tests.
* Does AES-CBC, CTR mode, and XTS. cryptotest.py and cryptocheck pass.
* Support for "authenc" (AES + HMAC). (SHA1 seems to result in
"unaligned" cleartext inputs from cryptocheck -- which the engine
cannot handle. SHA2 seems to work fine.)
* GCM passes for block-multiple AAD, input lengths

Largely based on ccr(4), part of cxgbe(4).

Rough performance averages on AMD Ryzen 1950X (4kB buffer):
aesni: SHA1: ~8300 Mb/s SHA256: ~8000 Mb/s
ccp: ~630 Mb/s SHA256: ~660 Mb/s SHA512: ~700 Mb/s
cryptosoft: ~1800 Mb/s SHA256: ~1800 Mb/s SHA512: ~2700 Mb/s

As you can see, performance is poor in comparison to aesni(4) and even
cryptosoft (due to high setup cost). At a larger buffer size (128kB),
throughput is a little better (but still worse than aesni(4)):

aesni: SHA1:~10400 Mb/s SHA256: ~9950 Mb/s
ccp: ~2200 Mb/s SHA256: ~2600 Mb/s SHA512: ~3800 Mb/s
cryptosoft: ~1750 Mb/s SHA256: ~1800 Mb/s SHA512: ~2700 Mb/s

AES performance has a similar story:

aesni: 4kB: ~11250 Mb/s 128kB: ~11250 Mb/s
ccp: ~350 Mb/s 128kB: ~4600 Mb/s
cryptosoft: ~1750 Mb/s 128kB: ~1700 Mb/s

This driver is EXPERIMENTAL. You should verify cryptographic results on
typical and corner case inputs from your application against a known- good
implementation.

Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D12723


# abbfe9e5 30-Dec-2017 Konstantin Belousov <kib@FreeBSD.org>

Move i386/isa/elink.[hc] to dev/ep.

The ep(4) driver is the only consumer of the two functions from
elink.c. I removed the standalone module as well, and most likely,
the module metadata is not needed anywhere, but this is for later
cleanup.

Discussed with: imp, jhb
Sponsored by: The FreeBSD Foundation


# aea6d042 30-Nov-2017 Ed Schouten <ed@FreeBSD.org>

Port cloudabi32.ko to FreeBSD/arm64.

This change adds an implementation of a sysent for running CloudABI
armv6 and armv7 binaries on FreeBSD/arm64. It is a somewhat literal copy
of the armv6 version, except that it's been patched up to use the proper
registers.

Just like for cloudabi32.ko on FreeBSD/amd64, we make use of a vDSO that
automatically pads system call parameters to 64-bit value. These are
stored in a buffer on the stack, meaning we need to use copyin() and
copyout() unconditionally.


# 8dee9a7a 13-Nov-2017 Hans Petter Selasky <hselasky@FreeBSD.org>

Remove no longer supported mthca driver.

Sponsored by: Mellanox Technologies


# 3de0952f 25-Oct-2017 Sean Bruno <sbruno@FreeBSD.org>

Enable i386 build of the Cavium LiquidIO driver (lio) module.

Submitted by: pkanneganti@cavium.com (Prasad V Kanneganti)
MFC after: 1 week
Sponsored by: Cavium Networks
Differential Revision: https://reviews.freebsd.org/D12415


# 39ed7f25 17-Oct-2017 Brooks Davis <brooks@FreeBSD.org>

Remove mbpool(9) now that it has no consumers.

mbpool existed to support NICs with memory interfaces and all remaining
comsumers were removed earlier this year with NATM.

Reviewed by: jhb
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D10513


# 7a158e82 10-Oct-2017 Andrew Turner <andrew@FreeBSD.org>

Support the EFI Runtime Services on arm64. As with amd64 we use the 1:1
mapping. This uses the new common code shared with amd64.

The RTC should only be accessed via EFI. There is no locking around it as
the spec only has this as a requirement for the PC-AT CMOS device.

Reviewed by: kib, imp
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D12595


# 0b972ac9 05-Oct-2017 Warner Losh <imp@FreeBSD.org>

Support armv7 builds for userland

Make armv7 as a new MACHINE_ARCH.

Copy all the places we do armv6 and add armv7 as basically an
alias. clang appears to generate code for armv7 by default. armv7 hard
float isn't supported by the the in-tree gcc, so it hasn't been
updated to have a new default.

Support armv7 as a new valid MACHINE_ARCH (and by extension
TARGET_ARCH).

Add armv7 to the universe build.

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


# 19ebd288 13-Sep-2017 Sean Bruno <sbruno@FreeBSD.org>

Don't (try to) build lio(4) if the SOURCELESS_UCODE is set.

Submitted by: Fabien Keil <fk@fabiankeil.de>


# eadaf05d 12-Sep-2017 Ed Maste <emaste@FreeBSD.org>

qlnx: exclude if WITHOUT_SOURCELESS_UCODE set

PR: 222277
Submitted by: Fabian Keil
Obtained from: ElectroBSD
MFC after: 1 week


# f173c2b7 12-Sep-2017 Sean Bruno <sbruno@FreeBSD.org>

The diff is the initial submission of Cavium Liquidio 2350/2360 10/25G
Intelligent NIC driver.

The submission conconsists of firmware binary file and driver sources.

Submitted by: pkanneganti@cavium.com (Prasad V Kanneganti)
Relnotes: Yes
Sponsored by: Cavium Networks
Differential Revision: https://reviews.freebsd.org/D11927


# 907f50fe 05-Sep-2017 Conrad Meyer <cem@FreeBSD.org>

Add smn(4) driver for AMD System Management Network

AMD Family 17h CPUs have an internal network used to communicate between
the host CPU and the PSP and SMU coprocessors. It exposes a simple
32-bit register space.

Reviewed by: avg (no +1), mjoras, truckman
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D12217


# 12515907 22-Aug-2017 Hans Petter Selasky <hselasky@FreeBSD.org>

Add new mlx5ib(4) driver to the kernel source tree which supports
Remote DMA over Converged Ethernet, RoCE, for the ConnectX-4 series of
PCI express network cards.

There is currently no user-space support and this driver only supports
kernel side non-routable RoCE V1. The krping kernel module can be used
to test this driver. Full user-space support including RoCE V2 will be
added as part of the ongoing upgrade to ibcore from Linux 4.9. Otherwise
this driver is feature equivalent to mlx4ib(4). The mlx5ib(4) kernel
module will only be built when WITH_OFED=YES is specified.

MFC after: 2 weeks
Sponsored by: Mellanox Technologies


# 49c6edfc 18-Aug-2017 Ed Maste <emaste@FreeBSD.org>

sys/modules: don't build qlxgbe if the user objects to sourceless ucode

PR: 204749
Submitted by: Fabian Keil
Obtained from: ElectroBSD
MFC after: 1 week


# 722f80ae 18-Aug-2017 Ed Maste <emaste@FreeBSD.org>

sys/modules: don't build bxe if the user objects to sourceless ucode

PR: 204747
Submitted by: Fabian Keil
Obtained from: ElectroBSD
MFC after: 1 week


# 2164af29 16-Aug-2017 Ruslan Bukin <br@FreeBSD.org>

Add support for Intel Software Guard Extensions (Intel SGX).

Intel SGX allows to manage isolated compartments "Enclaves" in user VA
space. Enclaves memory is part of processor reserved memory (PRM) and
always encrypted. This allows to protect user application code and data
from upper privilege levels including OS kernel.

This includes SGX driver and optional linux ioctl compatibility layer.
Intel SGX SDK for FreeBSD is also available.

Note this requires support from hardware (available since late Intel
Skylake CPUs).

Many thanks to Robert Watson for support and Konstantin Belousov
for code review.

Project wiki: https://wiki.freebsd.org/Intel_SGX.

Reviewed by: kib
Relnotes: yes
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D11113


# 1a97aaeb 09-Jul-2017 Warner Losh <imp@FreeBSD.org>

Reconnect mmc and mmcsd disconnected unintentioanlly in mmccam commit.


# a94a63f0 09-Jul-2017 Warner Losh <imp@FreeBSD.org>

An MMC/SD/SDIO stack using CAM

Implement the MMC/SD/SDIO protocol within a CAM framework. CAM's
flexible queueing will make it easier to write non-storage drivers
than the legacy stack. SDIO drivers from both the kernel and as
userland daemons are possible, though much of that functionality will
come later.

Some of the CAM integration isn't complete (there are sleeps in the
device probe state machine, for example), but those minor issues can
be improved in-tree more easily than out of tree and shouldn't gate
progress on other fronts. Appologies to reviews if specific items
have been overlooked.

Submitted by: Ilya Bakulin
Reviewed by: emaste, imp, mav, adrian, ian
Differential Review: https://reviews.freebsd.org/D4761

merge with first commit, various compile hacks.


# f5c49e5c 10-Jun-2017 Ian Lepore <ian@FreeBSD.org>

Allow building if_ffec as a module.


# 41059135 24-May-2017 Adrian Chadd <adrian@FreeBSD.org>

[ath] [ath_hal] (etc, etc) - begin the task of re-modularising the HAL.

In the deep past, when this code compiled as a binary module, ath_hal
built as a module. This allowed custom, smaller HAL modules to be built.
This was especially beneficial for small embedded platforms where you
didn't require /everything/ just to run.

However, sometime around the HAL opening fanfare, the HAL landed here
as one big driver+HAL thing, and a lot of the (dirty) infrastructure
(ie, #ifdef AH_SUPPORT_XXX) to build specific subsets of the HAL went away.
This was retained in sys/conf/files as "ath_hal_XXX" but it wasn't
really floated up to the modules themselves.

I'm now in a position where for the reaaaaaly embedded boards (both the
really old and the last couple generation of QCA MIPS boards) having a
cut down HAL module and driver loaded at runtime is /actually/ beneficial.

This reduces the kernel size down by quite a bit. The MIPS modules look
like this:

adrian@gertrude:~/work/freebsd/head-embedded/src % ls -l ../root/mips_ap/boot/kernel.CARAMBOLA2/ath*ko
-r-xr-xr-x 1 adrian adrian 5076 May 23 23:45 ../root/mips_ap/boot/kernel.CARAMBOLA2/ath_dfs.ko
-r-xr-xr-x 1 adrian adrian 100588 May 23 23:45 ../root/mips_ap/boot/kernel.CARAMBOLA2/ath_hal.ko
-r-xr-xr-x 1 adrian adrian 627324 May 23 23:45 ../root/mips_ap/boot/kernel.CARAMBOLA2/ath_hal_ar9300.ko
-r-xr-xr-x 1 adrian adrian 314588 May 23 23:45 ../root/mips_ap/boot/kernel.CARAMBOLA2/ath_main.ko
-r-xr-xr-x 1 adrian adrian 23472 May 23 23:45 ../root/mips_ap/boot/kernel.CARAMBOLA2/ath_rate.ko

And the x86 versions, like this:

root@gertrude:/home/adrian # ls -l /boot/kernel/ath*ko
-r-xr-xr-x 1 root wheel 36632 May 24 18:32 /boot/kernel/ath_dfs.ko
-r-xr-xr-x 1 root wheel 134440 May 24 18:32 /boot/kernel/ath_hal.ko
-r-xr-xr-x 1 root wheel 82320 May 24 18:32 /boot/kernel/ath_hal_ar5210.ko
-r-xr-xr-x 1 root wheel 104976 May 24 18:32 /boot/kernel/ath_hal_ar5211.ko
-r-xr-xr-x 1 root wheel 236144 May 24 18:32 /boot/kernel/ath_hal_ar5212.ko
-r-xr-xr-x 1 root wheel 336104 May 24 18:32 /boot/kernel/ath_hal_ar5416.ko
-r-xr-xr-x 1 root wheel 598336 May 24 18:32 /boot/kernel/ath_hal_ar9300.ko
-r-xr-xr-x 1 root wheel 406144 May 24 18:32 /boot/kernel/ath_main.ko
-r-xr-xr-x 1 root wheel 55352 May 24 18:32 /boot/kernel/ath_rate.ko

.. so you can see, not building the whole HAL can save quite a bit.
For example, if you don't need AR9300 support, you can actually avoid
wasting half a megabyte of RAM. On embedded routers this is quite a
big deal.

The AR9300 HAL can be later further shrunk because, hilariously,
it indeed supports AH_SUPPORT_<xxx> for optionally adding chipset support.
(I'll chase that down later as it's quite a big savings if you're only
building for a single embedded target.)

So:

* Create a very hackish way to load/unload HAL modules
* Create module metadata for each HAL subtype - ah_osdep_arXXXX.c
* Create module metadata for ath_rate and ath_dfs (bluetooth is
currently just built as part of it)
* .. yes, this means we could actually build multiple rate control
modules and pick one at load time, but I'd rather just glue this
into net80211's rate control code. Oh well, baby steps.
* Main driver is now "ath_main"
* Create an "if_ath" module that does what the ye olde one did -
load PCI glue, main driver, HAL and all child modules.
In this way, if you have "if_ath_load=YES" in /boot/modules.conf
it will load everything the old way and stuff should still work.
* For module autoloading purposes, I actually /did/ fix up
the name of the modules in if_ath_pci and if_ath_ahb.

If you want to selectively load things (eg on ye cheape ARM/MIPS platforms
where RAM is at a premium) you should:

* load ath_hal
* load the chip modules in question
* load ath_rate, ath_dfs
* load ath_main
* load if_ath_pci and/or if_ath_ahb depending upon your particular
bus bind type - this is where probe/attach is done.

TODO:

* AR5312 module and associated pieces - yes, we have the SoC side support
now so the wifi support would be good to "round things out";
* Just nuke AH_SUPPORT_AR5416 for now and always bloat the packet
structures; this'll simplify other things.
* Should add a simple refcnt thing to the HAL RF/chip modules so you
can't unload them whilst you're using them.
* Manpage updates, UPDATING if appropriate, etc.


# 9b8d05b8 22-May-2017 Zbigniew Bodek <zbb@FreeBSD.org>

Add support for Amazon Elastic Network Adapter (ENA) NIC

ENA is a networking interface designed to make good use of modern CPU
features and system architectures.

The ENA device exposes a lightweight management interface with a
minimal set of memory mapped registers and extendable command set
through an Admin Queue.

The driver supports a range of ENA devices, is link-speed independent
(i.e., the same driver is used for 10GbE, 25GbE, 40GbE, etc.), and has
a negotiated and extendable feature set.

Some ENA devices support SR-IOV. This driver is used for both the
SR-IOV Physical Function (PF) and Virtual Function (VF) devices.

ENA devices enable high speed and low overhead network traffic
processing by providing multiple Tx/Rx queue pairs (the maximum number
is advertised by the device via the Admin Queue), a dedicated MSI-X
interrupt vector per Tx/Rx queue pair, and CPU cacheline optimized
data placement.

The ENA driver supports industry standard TCP/IP offload features such
as checksum offload and TCP transmit segmentation offload (TSO).
Receive-side scaling (RSS) is supported for multi-core scaling.

The ENA driver and its corresponding devices implement health
monitoring mechanisms such as watchdog, enabling the device and driver
to recover in a manner transparent to the application, as well as
debug logs.

Some of the ENA devices support a working mode called Low-latency
Queue (LLQ), which saves several more microseconds. This feature will
be implemented for driver in future releases.

Submitted by: Michal Krawczyk <mk@semihalf.com>
Jakub Palider <jpa@semihalf.com>
Jan Medala <jan@semihalf.com>
Obtained from: Semihalf
Sponsored by: Amazon.com Inc.
Differential revision: https://reviews.freebsd.org/D10427


# a3d929a7 08-May-2017 Enji Cooper <ngie@FreeBSD.org>

Only compile tests/ if MK_TESTS != no or ALL_MODULES is defined

MFC after: 3 weeks
Sponsored by: Dell EMC Isilon


# a7dc3128 24-Apr-2017 Brooks Davis <brooks@FreeBSD.org>

Remove the NATM framework including the en(4), fatm(4), hatm(4), and
patm(4) devices.

Maintaining an address family and framework has real costs when we make
infrastructure improvements. In the case of NATM we support no devices
manufactured in the last 20 years and some will not even work in modern
motherboards (some newer devices that patm(4) could be updated to
support apparently exist, but we do not currently have support).

With this change, support remains for some netgraph modules that don't
require NATM support code. It is unclear if all these should remain,
though ng_atmllc certainly stands alone.

Note well: FreeBSD 11 supports NATM and will continue to do so until at
least September 30, 2021. Improvements to the code in FreeBSD 11 are
certainly welcome.

Reviewed by: philip
Approved by: harti


# d196586a 15-Apr-2017 Dag-Erling Smørgrav <des@FreeBSD.org>

3BSD-licensed implementation of the chacha20 stream cipher, intended for
use by the upcoming arc4random replacement.


# 11e25f0d 04-Apr-2017 David C Somayajulu <davidcs@FreeBSD.org>

Add 25/40/100Gigabit Ethernet Driver version v1.3.0 for Cavium Inc's.
Qlogic 45000 Series Adapters

MFC after:2 weeks


# aac74aea 02-Apr-2017 Andrey V. Elsukov <ae@FreeBSD.org>

Add ipfw_pmod kernel module.

The module is designed for modification of a packets of any protocols.
For now it implements only TCP MSS modification. It adds the external
action handler for "tcp-setmss" action.

A rule with tcp-setmss action does additional check for protocol and
TCP flags. If SYN flag is present, it parses TCP options and modifies
MSS option if its value is greater than configured value in the rule.
Then it adjustes TCP checksum if needed. After handling the search
continues with the next rule.

Obtained from: Yandex LLC
MFC after: 2 weeks
Relnotes: yes
Sponsored by: Yandex LLC
No objection from: #network
Differential Revision: https://reviews.freebsd.org/D10150


# 653e7d63 29-Mar-2017 Enji Cooper <ngie@FreeBSD.org>

Split iscsi(4) ctl frontend off of ctl(4) as cfiscsi(4)

The goal of this work is to remove the explicit dependency for ctl(4)
on iscsi(4), so end-users without iscsi(4) support in the kernel can
use ctl(4) for its other functions.

This allows those without iscsi(4) support built into the kernel to use
ctl(4) as a test mechanism. As a sidenote, this was possible around the
10.0-RELEASE period, but made impossible for end-users without iscsi(4)
between 10.0-RELEASE and 11.0-RELEASE.

Automatically load cfiscsi(4) from ctladm(8) and ctld(8) for backwards
compatibility with previously releases. The automatic loading feature is
compiled into the beforementioned tools if MK_ISCSI == yes when building
world.

Add a manpage for cfiscsi(4) and refer to it in ctl(4).

Differential Revision: D10099
MFC after: 2 months
Relnotes: yes
Reviewed by: mav, trasz
Sponsored by: Dell EMC Isilon


# 4222f968 27-Mar-2017 Michael Tuexen <tuexen@FreeBSD.org>

Tweak the Makefiles a bit to allow using "tcp" in MODULES_OVERRIDE
to build the tcp modules.

Sponsored by: Netflix, Inc.


# 09285d14 08-Mar-2017 Oleksandr Tymoshenko <gonzo@FreeBSD.org>

[spigen] Add spigen module

spigen provides userland API to SPI bus. Make it available as a loadable
module so people using official ARM images can enabled it on devices like
BBB or RPi without re-building kernel

MFC after: 1 week


# 193d9e76 04-Mar-2017 Enji Cooper <ngie@FreeBSD.org>

sys/modules: normalize .CURDIR-relative paths to SRCTOP

This simplifies make output/logic

Tested with: `cd sys/modules; make ALL_MODULES=` on amd64
MFC after: 1 month
Sponsored by: Dell EMC Isilon


# f5aac907 03-Mar-2017 Andriy Gapon <avg@FreeBSD.org>

add a module that provides support for DRAM ECC error injection on AMD CPUs

I imagine that the module would be useful only to a very limited number
of developers, so that's my excuse for not writing any documentation.
On a more serious note, please see DRAM Error Injection section of BKDGs
for families 10h - 16h. E.g. section 2.13.3.1 of BKDG for AMD Family 15h
Models 00h-0Fh Processors.

Many thanks to kib for his suggestions and comments.

Discussed with: kib
MFC after: 3 weeks
Differential Revision: https://reviews.freebsd.org/D9824


# efe3b0de 27-Feb-2017 Gleb Smirnoff <glebius@FreeBSD.org>

Remove SVR4 (System V Release 4) binary compatibility support.

UNIX System V Release 4 is operating system released in 1988. It ceased
to exist in early 2000-s.


# d4bfe939 16-Feb-2017 Warner Losh <imp@FreeBSD.org>

Remove the ahb driver for the EISA Adaptec 174x.


# fcf59617 06-Feb-2017 Andrey V. Elsukov <ae@FreeBSD.org>

Merge projects/ipsec into head/.

Small summary
-------------

o Almost all IPsec releated code was moved into sys/netipsec.
o New kernel modules added: ipsec.ko and tcpmd5.ko. New kernel
option IPSEC_SUPPORT added. It enables support for loading
and unloading of ipsec.ko and tcpmd5.ko kernel modules.
o IPSEC_NAT_T option was removed. Now NAT-T support is enabled by
default. The UDP_ENCAP_ESPINUDP_NON_IKE encapsulation type
support was removed. Added TCP/UDP checksum handling for
inbound packets that were decapsulated by transport mode SAs.
setkey(8) modified to show run-time NAT-T configuration of SA.
o New network pseudo interface if_ipsec(4) added. For now it is
build as part of ipsec.ko module (or with IPSEC kernel).
It implements IPsec virtual tunnels to create route-based VPNs.
o The network stack now invokes IPsec functions using special
methods. The only one header file <netipsec/ipsec_support.h>
should be included to declare all the needed things to work
with IPsec.
o All IPsec protocols handlers (ESP/AH/IPCOMP protosw) were removed.
Now these protocols are handled directly via IPsec methods.
o TCP_SIGNATURE support was reworked to be more close to RFC.
o PF_KEY SADB was reworked:
- now all security associations stored in the single SPI namespace,
and all SAs MUST have unique SPI.
- several hash tables added to speed up lookups in SADB.
- SADB now uses rmlock to protect access, and concurrent threads
can do SA lookups in the same time.
- many PF_KEY message handlers were reworked to reflect changes
in SADB.
- SADB_UPDATE message was extended to support new PF_KEY headers:
SADB_X_EXT_NEW_ADDRESS_SRC and SADB_X_EXT_NEW_ADDRESS_DST. They
can be used by IKE daemon to change SA addresses.
o ipsecrequest and secpolicy structures were cardinally changed to
avoid locking protection for ipsecrequest. Now we support
only limited number (4) of bundled SAs, but they are supported
for both INET and INET6.
o INPCB security policy cache was introduced. Each PCB now caches
used security policies to avoid SP lookup for each packet.
o For inbound security policies added the mode, when the kernel does
check for full history of applied IPsec transforms.
o References counting rules for security policies and security
associations were changed. The proper SA locking added into xform
code.
o xform code was also changed. Now it is possible to unregister xforms.
tdb_xxx structures were changed and renamed to reflect changes in
SADB/SPDB, and changed rules for locking and refcounting.

Reviewed by: gnn, wblock
Obtained from: Yandex LLC
Relnotes: yes
Sponsored by: Yandex LLC
Differential Revision: https://reviews.freebsd.org/D9352


# 75429a15 02-Feb-2017 Kurt Lidl <lidl@FreeBSD.org>

Fix compilation for mips64 platforms

The hwpmc_mips24k / hwpmc_mips74k modules are only for mips 32-bit hosts.
Reviewed by: adrian


# cc59dd9a 30-Jan-2017 Adrian Chadd <adrian@FreeBSD.org>

Fix compilation!


# 4691c88f 30-Jan-2017 Adrian Chadd <adrian@FreeBSD.org>

[mips] add some (temporary, I hope!) mips24k/mips74k hwpmc modules.

Ideally we'd have a top level hwpmc module with the shared bits, then
cpu specific glue as needed. However, on the MIPS side, there's no
probe code - {mips24k, mips74k, octeon} implement a set of methods
that hwpmc_mips.c expects.

So this populates separate modules with duplicate code.
Ew, but it does work.

This gets me off the hook - these work fine as copied into the relevant
mfsroot for mips24k/mips74k systems.

TODO:

* do it the "right" way in the future. Note that modules/hwpmc/ does
build fine on MIPS, it jusn't DO anything. So it'd be nice to
maybe call that "hwpmc_core" and then "hwpmc" can be the CPU/arch glue.


# 17fc11dd 28-Jan-2017 Enji Cooper <ngie@FreeBSD.org>

Garbage collect pc98-only variables still referenced in sys/modules/Makefile

These should have been removed with r312910


# dd59a8d0 28-Jan-2017 Enji Cooper <ngie@FreeBSD.org>

Remove duplicate bhnd SUBDIR entry

MFC after: 1 week
PR: 216413
Reported by: mail@fbsd.e4m.org


# 2b375b4e 27-Jan-2017 Yoshihiro Takahashi <nyan@FreeBSD.org>

Remove pc98 support completely.
I thank all developers and contributors for pc98.

Relnotes: yes


# 7b523f05 26-Jan-2017 Ed Maste <emaste@FreeBSD.org>

mips: exclude modules that fail to build


# 3d488c41 26-Jan-2017 Ed Maste <emaste@FreeBSD.org>

Disconnect netfpga10g module from the build

It only builds with the non-default DEVICE_POLLING option.

Approved by: bz


# e5d519fd 10-Jan-2017 Oleksandr Tymoshenko <gonzo@FreeBSD.org>

[sdhci] Add ACPI platform support for SDHCI driver

- Create ACPI version of SDHCI attach/detach/accessors logic. Some
platforms (e.g. BayTrail-based Minnowboard) expose SDHCI devices
via ACPI, not PCI
- Add sdchi_acpi kernel module

Reviewed by: ian, imp
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D9112


# f2d6ace4 09-Jan-2017 Sean Bruno <sbruno@FreeBSD.org>

Migrate e1000 to the IFLIB framework:
- em(4) igb(4) and lem(4)
- deprecate the igb device from kernel configurations
- create a symbolic link in /boot/kernel from if_em.ko to if_igb.ko

Devices tested:
- 82574L
- I218-LM
- 82546GB
- 82579LM
- I350
- I217

Please report problems to freebsd-net@freebsd.org

Partial review from jhb and suggestions on how to *not* brick folks who
originally would have lost their igbX device.

Submitted by: mmacy@nextbsd.org
MFC after: 2 weeks
Relnotes: yes
Sponsored by: Limelight Networks and Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D8299


# d786719d 27-Dec-2016 Oleksandr Tymoshenko <gonzo@FreeBSD.org>

[intelspi] Add SPI driver for Intel BayTrail SoC

Add SPI mode (PIO-only) support for Intel Synchronous Serial Port that
can be found in several Intel's products starting from PXA family.
Most of implementations have slight differences in behavior and in
addresses for registers subset. This driver covers only BayTrail SoC
implementation for it's the only hardware I have to test it on.

Driver attaches to ACPI bus only and does not have PCI or FDT support
for now due to lack of hardware to test it on.

"intelspi" is the best name I've managed to come up with. Linux driver
name (spi-pxa2xx) does not make sense because current implementation
does not support actual PXA2xx SoCs. And as far as I know there is no
codename assigned to Intel SSP chip.

Reviewed by: br, manu
MFC after: 1 month
Differential Revision: https://reviews.freebsd.org/D8896


# 4d12189b 03-Dec-2016 Ravi Pokala <rpokala@FreeBSD.org>

Build smbios.ko as a module for amd64 and i386

For whatever reason, smapi, smbios, vpd are all under the "bios" directory.
smapi is only for i386, so the entire "bios" directory is only built for
i386. Break smapi out, and make only it i386-specific. Then, build the
"bios" directory for both amd64 and i386.

Reviewed by: imp
MFC after: 1 week
Sponsored by: Panasas
Differential Revision: https://reviews.freebsd.org/D8609


# c5d1ccc2 24-Nov-2016 Oleksandr Tymoshenko <gonzo@FreeBSD.org>

[bytgpio] Fix pc98 build by disabling bytgpio module for this platform

Reported by: dim


# 5370c80e 21-Nov-2016 Oleksandr Tymoshenko <gonzo@FreeBSD.org>

[bytgpio] Add module for bytgpio(4)

MFC after: 3 days


# d6699d29 21-Nov-2016 Andrew Turner <andrew@FreeBSD.org>

Add accelerated AES with using the ARMv8 crypto instructions. This is based
on the AES-NI code, and modified as needed for use on ARMv8. When loaded
the driver will check the appropriate field in the id_aa64isar0_el1
register to see if AES is supported, and if so the probe function will
signal the driver should attach.

With this I have seen up to 2000Mb/s from the cryptotest test with a single
thread on a ThunderX Pass 2.0.

Reviewed by: imp
Obtained from: ABT Systems Ltd
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D8297


# d933e97f 15-Nov-2016 Stephen Hurd <shurd@FreeBSD.org>

New driver for Broadcom NetXtreme-C and NetXtreme-E devices.

This driver uses the iflib framework supporting Broadcom
25/50Gbps devices.

Reviewed by: gallatin, wblock
Approved by: davidch
MFC after: 2 weeks
Relnotes: yes
Sponsored by: Broadcom Limited
Differential Revision: https://reviews.freebsd.org/D7551


# 448897d3 29-Oct-2016 Andriy Gapon <avg@FreeBSD.org>

add iic interface to ig4 driver, move isl and cyapa to iicbus

Summary:
The hardware does not expose a classic SMBus interface.
Instead it has a lower level interface that can express a far richer
I2C protocol than what smbus offers. However, the interface does not
provide a way to explicitly generate the I2C stop and start conditions.
It's only possible to request that the stop condition is generated
after transferring the next byte in either direction. So, at least
one data byte must always be transferred.
Thus, some I2C sequences are impossible to generate, e.g., an equivalent
of smbus quick command (<start>-<slave addr>-<r/w bit>-<stop>).

At the same time isl(4) and cyapa(4) are moved to iicbus and now they use
iicbus_transfer for communication. Previously they used smbus_trans()
interface that is not defined by the SMBus protocol and was implemented
only by ig4(4). In fact, that interface was impossible to implement
for the typical SMBus controllers like intpm(4) or ichsmb(4) where
a type of the SMBus command must be programmed.

The plan is to remove smbus_trans() and all its uses.
As an aside, the smbus_trans() method deviates from the standard,
but perhaps backwards, FreeBSD convention of using 8-bit slave
addresses (shifted by 1 bit to the left). The method expects
7-bit addresses.

There is a user facing consequence of this change.
A user must now provide device hints for isl and cyapa that specify an iicbus to use
and a slave address on it.
On Chromebook hardware where isl and cyapa devices are commonly found
it is also possible to use a new chromebook_platform(4) driver that
automatically configures isl and cyapa devices. There is no need to
provide the device hints in that case,

Right now smbus(4) driver tries to discover all slaves on the bus.
That is very dangerous. Fortunately, the probing code uses smbus_trans()
to do its job, so it is really enabled for ig4 only.
The plan is to remove that auto-probing code and smbus_trans().

Tested by: grembo, Matthias Apitz <guru@unixarea.de> (w/o
chromebook_platform)
Discussed with: grembo, imp
Reviewed by: wblock (docs)
MFC after: 1 month
Relnotes: yes
Differential Revision: https://reviews.freebsd.org/D8172


# dc9b124d 21-Oct-2016 Justin Hibbits <jhibbits@FreeBSD.org>

Create a new MACHINE_ARCH for Freescale PowerPC e500v2

Summary:
The Freescale e500v2 PowerPC core does not use a standard FPU.
Instead, it uses a Signal Processing Engine (SPE)--a DSP-style vector processor
unit, which doubles as a FPU. The PowerPC SPE ABI is incompatible with the
stock powerpc ABI, so a new MACHINE_ARCH was created to deal with this.
Additionaly, the SPE opcodes overlap with Altivec, so these are mutually
exclusive. Taking advantage of this fact, a new file, powerpc/booke/spe.c, was
created with the same function set as in powerpc/powerpc/altivec.c, so it
becomes effectively a drop-in replacement. setjmp/longjmp were modified to save
the upper 32-bits of the now-64-bit GPRs (upper 32-bits are only accessible by
the SPE).

Note: This does _not_ support the SPE in the e500v1, as the e500v1 SPE does not
support double-precision floating point.

Also, without a new MACHINE_ARCH it would be impossible to provide binary
packages which utilize the SPE.

Additionally, no work has been done to support ports, work is needed for this.
This also means no newer gcc can yet be used. However, gcc's powerpc support
has been refactored which would make adding a powerpcspe-freebsd target very
easy.

Test Plan:
This was lightly tested on a RouterBoard RB800 and an AmigaOne A1222
(P1022-based) board, compiled against the new ABI. Base system utilities
(/bin/sh, /bin/ls, etc) still function appropriately, the system is able to boot
multiuser.

Reviewed By: bdrewery, imp
Relnotes: yes
Differential Revision: https://reviews.freebsd.org/D5683


# 7453645f 17-Oct-2016 Andriy Voskoboinyk <avos@FreeBSD.org>

rtwn(4), urtwn(4): merge common code, add support for 11ac devices.

All devices:
- add support for rate adaptation via ieee80211_amrr(9);
- use short preamble for transmitted frames when needed;
- multi-bss support:
* for RTL8821AU: 2 VAPs at the same time;
* other: 1 any VAP + 1 sta VAP.
RTL8188CE:
- fix IQ calibration bug (reason of significant speed degradation);
- add h/w crypto acceleration support.
USB:
- A-MPDU Tx support;
- short GI support;
Other:
- add support for RTL8812AU / RTL8821AU chipsets
(a/b/g/n only; no ac yet);
- split merged code into subparts:
* bus glue (usb/*, pci/*, rtl*/usb/*, rtl*/pci/*)
* common (if_rtwn*)
* chip-specific (rtl*/*)
- various other bugfixes.

Due to code reorganization, module names / requirements were changed too:
urtwn urtwnfw -> rtwn rtwn_usb rtwnfw
rtwn rtwnfw -> rtwn rtwn_pci rtwnfw

Tested with RTL8188CE, RTL8188CUS, RTL8188EU and RTL8821AU.

Tested by: kevlo, garga,
Peter Garshtja <peter.garshtja@ambient-md.com>,
Kevin McAleavey <kevin.mcaleavey@knosproject.com>,
Ilias-Dimitrios Vrachnis <id@vrachnis.com>,
<otacilio.neto@bsd.com.br>
Relnotes: yes


# a6b15a34 01-Oct-2016 Oleksandr Tymoshenko <gonzo@FreeBSD.org>

Modularize evdev

- Convert "options EVDEV" to "device evdev" and "device uinput", add
modules for both new devices. They are isolated subsystems and do not
require any compile-time changes to general kernel subsytems
- For hybrid drivers that have evdev as an optional way to deliver input
events add option EVDEV_SUPPORT. Update all existing hybrid drivers
to use it instead of EVDEV
- Remove no-op DECLARE_MODULE in evdev, it's not required, MODULE_VERSION
is enough
- Add evdev module dependency to uinput

Submitted by: Vladimir Kondratiev <wulf@cicgroup.ru>


# 97549c34 30-Sep-2016 Hans Petter Selasky <hselasky@FreeBSD.org>

Move the ConnectX-3 and ConnectX-2 driver from sys/ofed into sys/dev/mlx4
like other PCI network drivers. The sys/ofed directory is now mainly
reserved for generic infiniband code, with exception of the mthca driver.

- Add new manual page, mlx4en(4), describing how to configure and load
mlx4en.

- All relevant driver C-files are now prefixed mlx4, mlx4_en and
mlx4_ib respectivly to avoid object filename collisions when compiling
the kernel. This also fixes an issue with proper dependency file
generation for the C-files in question.

- Device mlxen is now device mlx4en and depends on device mlx4, see
mlx4en(4). Only the network device name remains unchanged.

- The mlx4 and mlx4en modules are now built by default on i386 and
amd64 targets. Only building the mlx4ib module depends on
WITH_OFED=YES .

Sponsored by: Mellanox Technologies


# 2885e9e8 21-Sep-2016 Ed Schouten <ed@FreeBSD.org>

Make the cloudabi32 kernel module available on ARMv6.

Now that all of the necessary bits for ARMv6 support for CloudABI have
been checked in, let's hook the kernel module up to the build and
document its existence.


# bc3ad3a1 21-Sep-2016 Konstantin Belousov <kib@FreeBSD.org>

Add kernel interfaces to call EFI Runtime Services.

Runtime services require special execution environment for the call.
Besides that, OS must inform firmware about runtime virtual memory map
which will be active during the calls, with the SetVirtualAddressMap()
runtime call, done while the 1:1 mapping is still used. There are two
complication: the SetVirtualAddressMap() effectively must be done from
loader, which needs to know kernel address map in advance. More,
despite not explicitely mentioned in the specification, both 1:1 and
the map passed to SetVirtualAddressMap() must be active during the
SetVirtualAddressMap() call. Second, there are buggy BIOSes which
require both mappings active during runtime calls as well, most likely
because they fail to identify all relocations to perform.

On amd64, we can get rid of both problems by providing 1:1 mapping for
the duration of runtime calls, by temprorary remapping user addresses.
As result, we avoid the need for loader to know about future kernel
address map, and avoid bugs in BIOSes. Typically BIOS only maps
something in low 4G. If not runtime bugs, we would take advantage of
the DMAP, as previous versions of this patch did.

Similar but more complicated trick can be used even for i386 and 32bit
runtime, if and when the EFI boot on i386 is supported. We would need
a trampoline page, since potentially whole 4G of VA would be switched
on calls, instead of only userspace portion on amd64.

Context switches are disabled for the duration of the call, FPU access
is granted, and interrupts are not disabled. The later is possible
because kernel is mapped during calls.

To test, the sysctl mib debug.efi_time is provided, setting it to 1
makes one call to EFI get_time() runtime service, on success the efitm
structure is printed to the control terminal. Load efirt.ko, or add
EFIRT option to the kernel config, to enable code.

Discussed with: emaste, imp
Tested by: emaste (mac, qemu)
Sponsored by: The FreeBSD Foundation
MFC after: 2 weeks


# 787650cd 27-Aug-2016 Bjoern A. Zeeb <bz@FreeBSD.org>

Back out r304907, Ed had fixed it apparently earlier in the cloudabi*
subdirectories.

Reported by: np


# acbeb22d 26-Aug-2016 Bjoern A. Zeeb <bz@FreeBSD.org>

Do not try to build cloudabi32 for pc98.

Should unbreak tinderbox.


# e4df2955 24-Aug-2016 Ed Schouten <ed@FreeBSD.org>

Add a Makefile for building the cloudabi32 kernel module.

Where the cloudabi64 kernel can be used to execute 64-bit CloudABI
binaries, this one should be used for 32-bit binaries. Right now it
works on i386 and amd64.


# 21768fa9 19-Aug-2016 John Baldwin <jhb@FreeBSD.org>

Remove the ie(4) driver for Intel 82586 ISA Ethernet adapters.

This driver only supports 10Mb Ethernet using PIO (the hardware supports
DMA, but the driver only does PIO). There are not any PCCard adapters
supported by this driver, only ISA cards. In addition, it does not use
bus_space but instead uses bcopy with volatile pointers triggering a
host of warnings. (if_ie.c is one of 3 files always built with
-Wno-error)

Relnotes: yes


# 09b9789b 19-Aug-2016 John Baldwin <jhb@FreeBSD.org>

Remove the wl(4) driver and wlconfig(8) utility.

The wl(4) driver supports pre-802.11 PCCard wireless adapters that
are slower than 802.11b. They do not work with any of the 802.11
framework and the driver hasn't been reported to actually work in a
long time.

Relnotes: yes


# 64450fdf 19-Aug-2016 John Baldwin <jhb@FreeBSD.org>

Remove the wds(4) driver for the WD700 ISA SCSI HBA.

While this driver does do DMA, it bounce buffers all transactions through
a single 64k buffer. It also does not have a manpage.

Relnotes: yes


# c1c97642 19-Aug-2016 John Baldwin <jhb@FreeBSD.org>

Remove the si(4) driver and sicontrol(8) for Specialix serial cards.

The si(4) driver supported multiport serial adapters for ISA, EISA, and
PCI buses. This driver does not use bus_space, instead it depends on
direct use of the pointer returned by rman_get_virtual(). It is also
still locked by Giant and calls for patch testing to convert it to use
bus_space were unanswered.

Relnotes: yes


# 88912400 19-Aug-2016 John Baldwin <jhb@FreeBSD.org>

Remove the scd(4) driver for Sony CDU31/33 CD-ROM drives.

This is a driver for a pre-ATAPI ISA CD-ROM adapter. The driver only
uses PIO.


# 061ae3c5 15-Aug-2016 John Baldwin <jhb@FreeBSD.org>

Remove the mcd(4) driver for Mitsumi CD-ROM players.

This is a driver for a pre-ATAPI ISA CD-ROM adapter. As noted in
the manpage, this driver is only useful as a backend to cdcontrol to
play audio CDs since it doesn't use DMA, so its data performance is
"abysmal" (and that was true in the mid 90's).


# d8caf56e 13-Aug-2016 Andrey V. Elsukov <ae@FreeBSD.org>

Add ipfw_nat64 module that implements stateless and stateful NAT64.

The module works together with ipfw(4) and implemented as its external
action module.

Stateless NAT64 registers external action with name nat64stl. This
keyword should be used to create NAT64 instance and to address this
instance in rules. Stateless NAT64 uses two lookup tables with mapped
IPv4->IPv6 and IPv6->IPv4 addresses to perform translation.

A configuration of instance should looks like this:
1. Create lookup tables:
# ipfw table T46 create type addr valtype ipv6
# ipfw table T64 create type addr valtype ipv4
2. Fill T46 and T64 tables.
3. Add rule to allow neighbor solicitation and advertisement:
# ipfw add allow icmp6 from any to any icmp6types 135,136
4. Create NAT64 instance:
# ipfw nat64stl NAT create table4 T46 table6 T64
5. Add rules that matches the traffic:
# ipfw add nat64stl NAT ip from any to table(T46)
# ipfw add nat64stl NAT ip from table(T64) to 64:ff9b::/96
6. Configure DNS64 for IPv6 clients and add route to 64:ff9b::/96
via NAT64 host.

Stateful NAT64 registers external action with name nat64lsn. The only
one option required to create nat64lsn instance - prefix4. It defines
the pool of IPv4 addresses used for translation.

A configuration of instance should looks like this:
1. Add rule to allow neighbor solicitation and advertisement:
# ipfw add allow icmp6 from any to any icmp6types 135,136
2. Create NAT64 instance:
# ipfw nat64lsn NAT create prefix4 A.B.C.D/28
3. Add rules that matches the traffic:
# ipfw add nat64lsn NAT ip from any to A.B.C.D/28
# ipfw add nat64lsn NAT ip6 from any to 64:ff9b::/96
4. Configure DNS64 for IPv6 clients and add route to 64:ff9b::/96
via NAT64 host.

Obtained from: Yandex LLC
Relnotes: yes
Sponsored by: Yandex LLC
Differential Revision: https://reviews.freebsd.org/D6434


# e9004cef 28-Jul-2016 Brooks Davis <brooks@FreeBSD.org>

cxgbe's firmware module fails to build on mips64 as well as mips32 so
disable for all mips.

Sponsored by: DARPA, AFRL


# 8485a1f6 24-Jul-2016 Ed Maste <emaste@FreeBSD.org>

avoid building otusfw when WITHOUT_SOURCELESS_UCODE set

PR: 204748
Submitted by: Fabian Keil
Obtained from: ElectroBSD
MFC after: 1 week


# b867e84e 18-Jul-2016 Andrey V. Elsukov <ae@FreeBSD.org>

Add ipfw_nptv6 module that implements Network Prefix Translation for IPv6
as defined in RFC 6296. The module works together with ipfw(4) and
implemented as its external action module. When it is loaded, it registers
as eaction and can be used in rules. The usage pattern is similar to
ipfw_nat(4). All matched by rule traffic goes to the NPT module.

Reviewed by: hrs
Obtained from: Yandex LLC
MFC after: 1 month
Relnotes: yes
Sponsored by: Yandex LLC
Differential Revision: https://reviews.freebsd.org/D6420


# ad8874fd 10-Jun-2016 Jonathan T. Looney <jtl@FreeBSD.org>

Change the default build behavior so we don't compile extra TCP modules by
default. At least initially, the feature to support multiple TCP stacks is
aimed at supporting advanced use cases and TCP development, but it is not
necessarily aimed at a wide audience. Therefore, there is no need to build
and install the extra TCP stacks by default. Instead, the people who are
using or developing this functionality can add the extra option to build/
install the extra TCP stacks.

However, we do want to build the extra TCP stacks as part of test builds
(e.g. LINT or tinderbox) to ensure that developers who are testing their
changes will know that their changes do not break the additional TCP
stack modules.

After this change, a user will need to add WITH_EXTRA_TCP_STACKS=1 to
make.conf or the kernel config in order to build the extra TCP modules.

Differential Revision: https://reviews.freebsd.org/D6795
Reviewed by: sjg
Approved by: re (kib)


# 24862f22 01-Jun-2016 Bryan Drewery <bdrewery@FreeBSD.org>

Enable filemon on all architectures.

MFC after: 2 weeks
Sponsored by: EMC / Isilon Storage Division


# 87ef4064 01-Jun-2016 Ruslan Bukin <br@FreeBSD.org>

Don't build some modules on RISC-V.

Submitted by: Yukishige Shibata <y-shibat@mtd.biglobe.ne.jp>


# 1e45d04b 27-May-2016 Ian Lepore <ian@FreeBSD.org>

Go back to unconditionally compiling modules/gpio now that the parts of it
dependent on FDT support are conditionally compiled only on FDT platforms.


# 1b4b226b 27-May-2016 Edward Tomasz Napierala <trasz@FreeBSD.org>

Attach iser(4) to the build.

MFC after: 1 month
Sponsored by: The FreeBSD Foundation


# 3bf5c797 26-May-2016 Ian Lepore <ian@FreeBSD.org>

Only build gpio modules on armv6, until it's known that they can be built
succesfully on other arches.


# 128e3872 26-May-2016 Ian Lepore <ian@FreeBSD.org>

Add a PPS driver that takes the timing pulse from a gpio pin. Currently
supports only ofw/fdt systems. Some day, hinted attachment for non-fdt
systems should be possible too.


# 49773547 26-May-2016 Bryan Drewery <bdrewery@FreeBSD.org>

Add some missing .PHONY.

These are relevant for WITH_META_MODE to ensure they are
always reran and don't generate a .meta file.

Sponsored by: EMC / Isilon Storage Division


# bde75b9b 17-May-2016 George V. Neville-Neil <gnn@FreeBSD.org>

Kill off ReiserFS as it is no longer supported, for obvious reasons.


# 148ed571 04-May-2016 Adrian Chadd <adrian@FreeBSD.org>

[bwn] [bhnd] initial support for using bhnd for if_bwn devices.

This is an initial work in progress to use the replacement bhnd
bus code for devices which support it.

* Add manpage updates for bhnd, bhndb, siba
* Add kernel options for bhnd, bhndbus, etc
* Add initial support in if_bwn_pci / if_bwn_mac for using bhnd
as the bus transport for suppoted NICs
* if_bwn_pci will eventually be the PCI bus glue to interface to bwn,
which will use the right backend bus to attach to, versus direct
nexus/bhnd attachments (as found in embedded broadcom devices.)

The PCI glue defaults to probing at a lower level than the bwn glue,
so bwn should still attach as per normal without a boot time tunable set.

It's also not fully fleshed out - the bwn probe/attach code needs to be
broken out into platform and bus specific things (just like ath, ath_pci,
ath_ahb) before we can shift the driver over to using this.

Tested:

* BCM4311, STA mode
* BCM4312, STA mode

Submitted by: Landon Fuller <landonf@landonf.org>
Differential Revision: https://reviews.freebsd.org/D6191


# 6b7b2d80 30-Mar-2016 Adrian Chadd <adrian@FreeBSD.org>

Add support for the Nuvoton NCT5104D.

Make it compile only for i386/amd64 for now as it's been tested there.
It's quite possible it'll show up elsewhere and we can enable it
for other architectures later.

Tested:

* PC Engines APU1C4

Submitted by: Daniel Wyatt <daniel@dewyatt.com>
Reviewed by: adrian, loos
Differential Revision: https://reviews.freebsd.org/D5389


# 0c91dc1d 19-Mar-2016 Adrian Chadd <adrian@FreeBSD.org>

[urtwn] migrate urtwn out into sys/dev/urtwn/ .

There's some upcoming work to add new chipset support here and I'd
like to only add 802.11n support to one driver, instead of both
urtwn and rtwn.

There's also missing support for things like 802.11n, some powersave
work, bluetooth integration/coexistence, etc, and also newer parts
(like 8192EU, maybe some 11ac parts, not sure yet.)

So, this is hopefully the first step in a longer set of steps to unify
rtwn/urtwn and extend it with more interesting chipset and functionality
support.

Reviewed by: kevlo


# ec4047ad 12-Mar-2016 Bryan Drewery <bdrewery@FreeBSD.org>

Reduce duplicated logic from r291744.

Sponsored by: EMC / Isilon Storage Division


# f3215338 01-Mar-2016 John Baldwin <jhb@FreeBSD.org>

Refactor the AIO subsystem to permit file-type-specific handling and
improve cancellation robustness.

Introduce a new file operation, fo_aio_queue, which is responsible for
queueing and completing an asynchronous I/O request for a given file.
The AIO subystem now exports library of routines to manipulate AIO
requests as well as the ability to run a handler function in the
"default" pool of AIO daemons to service a request.

A default implementation for file types which do not include an
fo_aio_queue method queues requests to the "default" pool invoking the
fo_read or fo_write methods as before.

The AIO subsystem permits file types to install a private "cancel"
routine when a request is queued to permit safe dequeueing and cleanup
of cancelled requests.

Sockets now use their own pool of AIO daemons and service per-socket
requests in FIFO order. Socket requests will not block indefinitely
permitting timely cancellation of all requests.

Due to the now-tight coupling of the AIO subsystem with file types,
the AIO subsystem is now a standard part of all kernels. The VFS_AIO
kernel option and aio.ko module are gone.

Many file types may block indefinitely in their fo_read or fo_write
callbacks resulting in a hung AIO daemon. This can result in hung
user processes (when processes attempt to cancel all outstanding
requests during exit) or a hung system. To protect against this, AIO
requests are only permitted for known "safe" files by default. AIO
requests for all file types can be enabled by setting the new
vfs.aio.enable_usafe sysctl to a non-zero value. The AIO tests have
been updated to skip operations on unsafe file types if the sysctl is
zero.

Currently, AIO requests on sockets and raw disks are considered safe
and are enabled by default. aio_mlock() is also enabled by default.

Reviewed by: cem, jilles
Discussed with: kib (earlier version)
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D5289


# 783da314 04-Jan-2016 Christian Brueffer <brueffer@FreeBSD.org>

Don't build rtwnfw if building without binary blobs.

rtwnfw got added in r293009 and depends on source-less and
non-free microcode in sys/contrib/dev/rtwn.

PR: 205874
Submitted by: Fabian Keil
Obtained from: ElectroBSD


# b6ac0e65 31-Dec-2015 Adrian Chadd <adrian@FreeBSD.org>

[rtwn] Add rtwn firmware and driver module.

Submitted by: kevlo


# 71e8eac4 25-Dec-2015 Adrian Chadd <adrian@FreeBSD.org>

[mdio] migrate mdiobus out of etherswitch and into a top-level device of its own.

The mdio driver interface is generally useful for devices that require
MDIO without the full MII bus interface. This lifts the driver/interface
out of etherswitch(4), and adds a mdio(4) man page.

Submitted by: Landon Fuller <landon@landonf.org>
Differential Revision: https://reviews.freebsd.org/D4606


# 55bceb1e 15-Dec-2015 Randall Stewart <rrs@FreeBSD.org>

First cut of the modularization of our TCP stack. Still
to do is to clean up the timer handling using the async-drain.
Other optimizations may be coming to go with this. Whats here
will allow differnet tcp implementations (one included).
Reviewed by: jtl, hiren, transports
Sponsored by: Netflix Inc.
Differential Revision: D4055


# 3c9c5b15 03-Dec-2015 Bryan Drewery <bdrewery@FreeBSD.org>

Calculate MPATH for sys/modules to save 92% time in a basic 'obj' tree-walk.

Sponsored by: EMC / Isilon Storage Division


# 493a4890 28-Nov-2015 Konstantin Belousov <kib@FreeBSD.org>

Disconnect iBCS2 emulator from the build. The ibcs2 option, the build
glue and the sources are not removed for now.

Discussed with: emaste
Sponsored by: The FreeBSD Foundation


# ef91a976 25-Nov-2015 Andrey V. Elsukov <ae@FreeBSD.org>

Overhaul if_enc(4) and make it loadable in run-time.

Use hhook(9) framework to achieve ability of loading and unloading
if_enc(4) kernel module. INET and INET6 code on initialization registers
two helper hooks points in the kernel. if_enc(4) module uses these helper
hook points and registers its hooks. IPSEC code uses these hhook points
to call helper hooks implemented in if_enc(4).


# c77964aa 20-Nov-2015 Andrew Turner <andrew@FreeBSD.org>

Fix a logic inversion, we should build dtrace on armv6, not on arm and
armeb.


# c92ef786 20-Nov-2015 Andrew Turner <andrew@FreeBSD.org>

DTrace is known to work on armv6, enable building it as a module.

Reviewed by: imp
Sponsored by: ABT Systems Ltd
Differential Revision: https://reviews.freebsd.org/D4221


# 22f2c49ab1 18-Nov-2015 Hans Petter Selasky <hselasky@FreeBSD.org>

Add the mlx5 and mlx5en modules to the i386 and amd64 kernel builds by
default and add a manual page for mlx5en. The mlx5 module contains
shared code for both infiniband and ethernet. The mlx5en module
contains specific code for ethernet functionality only. A mlx5ib
module is in the works for infiniband support.

Supported hardware:
- ConnectX-4: 10/20/25/40/50/56/100Gb/s speeds.
- ConnectX-4 LX: 10/25/40/50Gb/s speeds (low power consumption)

Refer to the mlx5en(4) manual page for a comprehensive list.

The team porting the mlx5 driver(s) to FreeBSD:
- Hans Petter Selasky <hselasky@freebsd.org>
- Oded Shanoon <odeds@mellanox.com>
- Meny Yossefi <menyy@mellanox.com>
- Shany Michaely <shanim@mellanox.com>
- Shahar Klein <shahark@mellanox.com>
- Daria Genzel <dariaz@mellanox.com>
- Mark Bloch <markb@mellanox.com>

Differential Revision: https://reviews.freebsd.org/D4163
Submitted by: Mark Block <markb@mellanox.com>
Sponsored by: Mellanox Technologies
Reviewed by: gnn @
MFC after: 3 days


# f52e50ae 10-Nov-2015 Randall Stewart <rrs@FreeBSD.org>

Add a kernel test framework. The callout_test is a demonstration and will only
work with the upcoming async-drain functionality. Tests can be added
to the tests directory and then the framework can be used to launch
those tests.

MFC after: 1 month
Sponsored by: Netflix Inc.
Differential Revision: https://reviews.freebsd.org/D1755


# fa32340b 06-Nov-2015 Ed Maste <emaste@FreeBSD.org>

arm64: build em(4) and igb(4) modules

Sponsored by: The FreeBSD Foundation


# 24ef40de 26-Oct-2015 Hans Petter Selasky <hselasky@FreeBSD.org>

Build the LinuxKPI module by default.

Sponsored by: Mellanox Technologies


# 5e742644 22-Oct-2015 Ed Maste <emaste@FreeBSD.org>

Move dtrace/opensolaris/zfs module option to common section

These are not target-specific modules, so the logic to build them should
be common. This also enables them for arm64.

Sponsored by: The FreeBSD Foundation


# 2ff069a7 22-Oct-2015 Ed Schouten <ed@FreeBSD.org>

Add support for CloudABI on ARM64.

It turns out that it is pretty easy to make CloudABI work on ARM64. We
essentially only need to copy over the sysvec from AMD64 and ensure that
we use ARM64 specific registers.

As there is an overlap between function argument and return registers,
we do need to extend cloudabi64_schedtail() to only set its values if
we're actually forking. Not when we're creating a new thread.

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


# 2da3897d 22-Oct-2015 Hans Petter Selasky <hselasky@FreeBSD.org>

Rename linuxapi[.ko] into linuxkpi[.ko], to reflect that it is a
kernel programming interface module, KPI, to avoid confusion with the
existing Linux userspace binary compatibility shims. Bump the
FreeBSD_version number.

Reviewed by: np @
Suggested by: dumbbell @
Sponsored by: Mellanox Technologies


# 32b6c6ec 08-Oct-2015 Konstantin Belousov <kib@FreeBSD.org>

Disable syscons and vpo modules for arm64.

Reviewed by: andrew, emaste
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D3796


# a9fcb51f 26-Sep-2015 Adrian Chadd <adrian@FreeBSD.org>

Add an initial driver for the AR9170 series draft-11n hardware from
Atheros.

Thanks to OpenBSD for providing a driver based on the original
Atheros open source driver circa 2008. This uses the early, pre-carl9170
atheros provided firmware.

It only supports 11bg at the moment. I've not tested it with 11a
(and so the TX rate control logic may be slightly wrong!) so if
you do have the dual-band version of this hardware please do let me know.

Tested:

* AR9170, TP-Link WN821N 2GHz.

TODO:

* Hook this up to a non-module build.


# ae1f3df4 27-Aug-2015 Warner Losh <imp@FreeBSD.org>

New 1-Wire bus implementation. 1-Wire controller is abstracted, though
only gpiobus configured via FDT is supported. Bus enumeration is
supported. Devices are created for each device found. 1-Wire
temperature controllers are supported, but other drivers could be
written. Temperatures are polled and reported via a sysctl. Errors
are reported via sysctl counters. Mis-wired bus detection is included
for more trouble shooting. See ow(4), owc(4) and ow_temp(4) for
details of what's supported and known issues.

This has been tested on Raspberry Pi-B, Pi2 and Beagle Bone Black
with up to 7 devices.

Differential Revision: https://reviews.freebsd.org/D2956
Relnotes: yes
MFC after: 2 weeks
Reviewed by: loos@ (with many insightful comments)


# e974f91c 24-Aug-2015 Conrad Meyer <cem@FreeBSD.org>

Import ioat(4) driver

I/OAT is also referred to as Crystal Beach DMA and is a Platform Storage
Extension (PSE) on some Intel server platforms.

This driver currently supports DMA descriptors only and is part of a
larger effort to upstream an interconnect between multiple systems using
the Non-Transparent Bridge (NTB) PSE.

For now, this driver is only built on AMD64 platforms. It may be ported
to work on i386 later, if that is desired. The hardware is exclusive to
x86.

Further documentation on ioat(4), including API documentation and usage,
can be found in the new manual page.

Bring in a test tool, ioatcontrol(8), in tools/tools/ioat. The test
tool is not hooked up to the build and is not intended for end users.

Submitted by: jimharris, Carl Delsey <carl.r.delsey@intel.com>
Reviewed by: jimharris (reviewed my changes)
Approved by: markj (mentor)
Relnotes: yes
Sponsored by: Intel
Sponsored by: EMC / Isilon Storage Division
Differential Revision: https://reviews.freebsd.org/D3456


# 646041a8 17-Aug-2015 Mark Murray <markm@FreeBSD.org>

Add DEV_RANDOM pseudo-option and use it to "include out" random(4)
if desired.

Retire randomdev_none.c and introduce random_infra.c for resident
infrastructure. Completely stub out random(4) calls in the "without
DEV_RANDOM" case.

Add RANDOM_LOADABLE option to allow loadable Yarrow/Fortuna/LocallyWritten
algorithm. Add a skeleton "other" algorithm framework for folks
to add their own processing code. NIST, anyone?

Retire the RANDOM_DUMMY option.

Build modules for Yarrow, Fortuna and "other".

Use atomics for the live entropy rate-tracking.

Convert ints to bools for the 'seeded' logic.

Move _write() function from the algorithm-specific areas to randomdev.c

Get rid of reseed() function - it is unused.

Tidy up the opt_*.h includes.

Update documentation for random(4) modules.

Fix test program (reviewers, please leave this).

Differential Revision: https://reviews.freebsd.org/D3354
Reviewed by: wblock,delphij,jmg,bjk
Approved by: so (/dev/random blanket)


# 444e7e3d 08-Aug-2015 Rui Paulo <rpaulo@FreeBSD.org>

Build the iwm and iwmfw modules by default on x86.


# a5965d15 30-Jul-2015 Andrey V. Elsukov <ae@FreeBSD.org>

Build if_stf(4) module only when both INET and INET6 support are enabled.


# 8bc78518 22-Jul-2015 Ed Schouten <ed@FreeBSD.org>

Add Makefiles for CloudABI kernel modules.

Place all of the machine/pointer size independent code in a kernel
module called 'cloudabi'. All of the 64-bit specific code goes in a
separate module called 'cloudabi64'. The latter is only enabled on
amd64, as it is the only architecture supported.


# a650d869 17-Jul-2015 Benno Rice <benno@FreeBSD.org>

Enable pms module on amd64 for now.


# d1b06863 30-Jun-2015 Mark Murray <markm@FreeBSD.org>

Huge cleanup of random(4) code.

* GENERAL
- Update copyright.
- Make kernel options for RANDOM_YARROW and RANDOM_DUMMY. Set
neither to ON, which means we want Fortuna
- If there is no 'device random' in the kernel, there will be NO
random(4) device in the kernel, and the KERN_ARND sysctl will
return nothing. With RANDOM_DUMMY there will be a random(4) that
always blocks.
- Repair kern.arandom (KERN_ARND sysctl). The old version went
through arc4random(9) and was a bit weird.
- Adjust arc4random stirring a bit - the existing code looks a little
suspect.
- Fix the nasty pre- and post-read overloading by providing explictit
functions to do these tasks.
- Redo read_random(9) so as to duplicate random(4)'s read internals.
This makes it a first-class citizen rather than a hack.
- Move stuff out of locked regions when it does not need to be
there.
- Trim RANDOM_DEBUG printfs. Some are excess to requirement, some
behind boot verbose.
- Use SYSINIT to sequence the startup.
- Fix init/deinit sysctl stuff.
- Make relevant sysctls also tunables.
- Add different harvesting "styles" to allow for different requirements
(direct, queue, fast).
- Add harvesting of FFS atime events. This needs to be checked for
weighing down the FS code.
- Add harvesting of slab allocator events. This needs to be checked for
weighing down the allocator code.
- Fix the random(9) manpage.
- Loadable modules are not present for now. These will be re-engineered
when the dust settles.
- Use macros for locks.
- Fix comments.

* src/share/man/...
- Update the man pages.

* src/etc/...
- The startup/shutdown work is done in D2924.

* src/UPDATING
- Add UPDATING announcement.

* src/sys/dev/random/build.sh
- Add copyright.
- Add libz for unit tests.

* src/sys/dev/random/dummy.c
- Remove; no longer needed. Functionality incorporated into randomdev.*.

* live_entropy_sources.c live_entropy_sources.h
- Remove; content moved.
- move content to randomdev.[ch] and optimise.

* src/sys/dev/random/random_adaptors.c src/sys/dev/random/random_adaptors.h
- Remove; plugability is no longer used. Compile-time algorithm
selection is the way to go.

* src/sys/dev/random/random_harvestq.c src/sys/dev/random/random_harvestq.h
- Add early (re)boot-time randomness caching.

* src/sys/dev/random/randomdev_soft.c src/sys/dev/random/randomdev_soft.h
- Remove; no longer needed.

* src/sys/dev/random/uint128.h
- Provide a fake uint128_t; if a real one ever arrived, we can use
that instead. All that is needed here is N=0, N++, N==0, and some
localised trickery is used to manufacture a 128-bit 0ULLL.

* src/sys/dev/random/unit_test.c src/sys/dev/random/unit_test.h
- Improve unit tests; previously the testing human needed clairvoyance;
now the test will do a basic check of compressibility. Clairvoyant
talent is still a good idea.
- This is still a long way off a proper unit test.

* src/sys/dev/random/fortuna.c src/sys/dev/random/fortuna.h
- Improve messy union to just uint128_t.
- Remove unneeded 'static struct fortuna_start_cache'.
- Tighten up up arithmetic.
- Provide a method to allow eternal junk to be introduced; harden
it against blatant by compress/hashing.
- Assert that locks are held correctly.
- Fix the nasty pre- and post-read overloading by providing explictit
functions to do these tasks.
- Turn into self-sufficient module (no longer requires randomdev_soft.[ch])

* src/sys/dev/random/yarrow.c src/sys/dev/random/yarrow.h
- Improve messy union to just uint128_t.
- Remove unneeded 'staic struct start_cache'.
- Tighten up up arithmetic.
- Provide a method to allow eternal junk to be introduced; harden
it against blatant by compress/hashing.
- Assert that locks are held correctly.
- Fix the nasty pre- and post-read overloading by providing explictit
functions to do these tasks.
- Turn into self-sufficient module (no longer requires randomdev_soft.[ch])
- Fix some magic numbers elsewhere used as FAST and SLOW.

Differential Revision: https://reviews.freebsd.org/D2025
Reviewed by: vsevolod,delphij,rwatson,trasz,jmg
Approved by: so (delphij)


# 1f6c33ac 24-Jun-2015 Eric Joyner <erj@FreeBSD.org>

Several build changes for ix and ixv:

- Allow ix and ixv to be built seperately.
- Re-enable building ix for i386 and amd64 archs
- Fix ixv Makefile.

Approved by: jfv (mentor)


# 27179078 06-Jun-2015 Warner Losh <imp@FreeBSD.org>

Turns out amd64 is hit too by ix. When it works, turn it back on.


# 3981a55d 06-Jun-2015 Warner Losh <imp@FreeBSD.org>

ix module doesn't compile on i386, so remove it from the build.
It can be restored when it builds again.


# 0b6ce4ef 28-May-2015 Dmitry Chagin <dchagin@FreeBSD.org>

The linux_common module only for 64bit Linuxulators.
Its my fault.


# 506bd395 28-May-2015 Dmitry Chagin <dchagin@FreeBSD.org>

Move linux64 and linux_common to it's right place and make them not
depend on bhyve.

Submitted by: Oliver Pinter <oliver.pinter from hardenedbsd.org>


# c0fe996d 24-May-2015 Dmitry Chagin <dchagin@FreeBSD.org>

Connect linux64 module to the build.

Differential Revision: https://reviews.freebsd.org/D1097
Reviewed by: emaste


# 67d39748 24-May-2015 Dmitry Chagin <dchagin@FreeBSD.org>

Introduce a new module linux_common.ko which is intended for the
following primary purposes:

1. Remove the dependency of linsysfs and linprocfs modules from linux.ko,
which will be architecture specific on amd64.

2. Incorporate into linux_common.ko general code for platforms on which
we'll support two Linuxulator modules (for both instruction set - 32 & 64 bit).

3. Move malloc(9) declaration to linux_common.ko, to enable getting memory
usage statistics properly.

Currently linux_common.ko incorporates a code from linux_mib.c and linux_util.c
and linprocfs, linsysfs and linux kernel modules depend on linux_common.ko.

Temporarily remove dtrace garbage from linux_mib.c and linux_util.c

Differential Revision: https://reviews.freebsd.org/D1072
In collaboration with: Vassilis Laganakos.

Reviewed by: trasz


# 8ff01f5d 19-May-2015 Ed Maste <emaste@FreeBSD.org>

Avoid trying to build cxbge on 32-bit MIPS

It lacks required 64-bit atomics.

Reviewed by: imp (earlier version)
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D2585


# e2b58d84 26-Mar-2015 Warner Losh <imp@FreeBSD.org>

sym and cxgb build on arm, add them to the build.

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


# 4be7e5f8 26-Mar-2015 Justin Hibbits <jhibbits@FreeBSD.org>

Make several modules unconditionally built, there's no need for them to be
hidden.

These modules pass a tinderbox build.
Discussed with: ian and others
MFC after: 1 month


# 1aa7c60c 18-Mar-2015 Jack F Vogel <jfv@FreeBSD.org>

Correct the ixgbe entries in mips and powerpc, and add the module
entries in i386/amd64 in the Makefile


# bc2e8d79 17-Mar-2015 Jack F Vogel <jfv@FreeBSD.org>

Resolve a few build issues, add module directories back into Makefile,
then correct a NETMAP problem resulting from the split, and finally
temporarily disable the X550 functionality.


# 13bb7d7c 17-Mar-2015 Gleb Smirnoff <glebius@FreeBSD.org>

Fix build after r280182.


# 455fa651 17-Mar-2015 Jean-Sébastien Pédron <dumbbell@FreeBSD.org>

drm: Update the device-independent code to match Linux 3.8.13

This update brings few features:
o Support for the setmaster/dropmaster ioctls. For instance, they
are used to run multiple X servers simultaneously.
o Support for minor devices. The only user-visible change is a new
entry in /dev/dri but it is useless at the moment. This is a
first step to support render nodes [1].

The main benefit is to greatly reduce the diff with Linux (at the
expense of an unreadable commit diff). Hopefully, next upgrades will be
easier.

No updates were made to the drivers, beside adapting them to API
changes.

[1] https://en.wikipedia.org/wiki/Direct_Rendering_Manager#Render_nodes

Tested by: Many people
MFC after: 1 month
Relnotes: yes


# b1029a9b 09-Mar-2015 Ian Lepore <ian@FreeBSD.org>

Revert accidentally commited file from r279824. We're not quite ready to
enable dtrace module building on all arm platforms yet.


# 7115aa8d 09-Mar-2015 Ian Lepore <ian@FreeBSD.org>

Add a dtb module for AM335x systems (just Beaglebone right now).


# a7ff99cc 08-Mar-2015 Hans Petter Selasky <hselasky@FreeBSD.org>

Build the videomode kernel module by default.


# 35c4406d 18-Feb-2015 Warner Losh <imp@FreeBSD.org>

Populate new KERN_OPTS from all the opt_*.h files in
KERNBUILDDIR. Come up with some sensible defaults (though listing them
in kmod.mk may be unwise -- we have no easy way to know what are the
best sensible defaults for everything so we just catch the big stuff).
Append SRCS.${opt} for each option in KERN_OPTS to SRCS to allow easy
conditional compilation. Append any notion of KERN_OPTS_EXTRA to the
list of kernel opts.

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


# 854739a4 06-Feb-2015 Warner Losh <imp@FreeBSD.org>

Pull in the rpi.dts -> rpi.dtb module (dtb/rpi) and have it install
rpi.dtb in /boot/dtb by default.


# b3590423 26-Jan-2015 Enji Cooper <ngie@FreeBSD.org>

Add MK_AUTOFS knob for building and installing autofs(4), et al

MFC after: 2 weeks
Sponsored by: EMC / Isilon Storage Division


# 02629e46 25-Jan-2015 Enji Cooper <ngie@FreeBSD.org>

Add MK_BHYVE knob for building and installing bhyve(4), et al

MFC after: 2 weeks
Sponsored by: EMC / Isilon Storage Division


# e3d1e0f6 24-Jan-2015 Enji Cooper <ngie@FreeBSD.org>

Build cuse(4) if MK_CUSE != no

MFC after: 1 week
Sponsored by: EMC / Isilon Storage Division


# b29d6977 24-Jan-2015 Enji Cooper <ngie@FreeBSD.org>

Add MK_ISCSI knob for building the iscsi initiator, iscsi daemon, kernel
modules, etc

MFC after: 2 weeks
Sponsored by: EMC / Isilon Storage Division


# 673d1626 18-Jan-2015 Hans Petter Selasky <hselasky@FreeBSD.org>

Make the linuxapi module only build when WITH_OFED=YES is specified.
There needs to be some more testing done before it is ready for all
platforms and architectures.

MFC after: 1 month
Sponsored by: Mellanox Technologies
Reported by: bz@


# e982e5c5 17-Jan-2015 Hans Petter Selasky <hselasky@FreeBSD.org>

Start importing the basic OFED linux compatibility layer changes made
by dumbbell@ to be able to compile this layer as a dependency module.
Clean up some Makefiles and remove the no longer used OFED define.
Currently only i386 and amd64 targets are supported.

MFC after: 1 month
Sponsored by: Mellanox Technologies


# eac107b8 16-Jan-2015 Warner Losh <imp@FreeBSD.org>

The sn driver isn't UCODE sourceless. While it is true there's an
binary FPGA image that's in an include file in this directory, that
include file isn't actually used. It is only for certain Trump Cards
that we don't yet support. When support was anticipated for them, we
got permission to include the required FPGA image in our sources under
the BSDL, but didn't start actually including the file. This was done
to provide a public paper trail for this file.


# 1acffcc4 15-Jan-2015 Warner Losh <imp@FreeBSD.org>

Add back a couple PC Card devices to amd64. There's only a couple of
them that were popular enough, so this doesn't adversly affect build
times.


# b7d3aa11 15-Jan-2015 Navdeep Parhar <np@FreeBSD.org>

Build cxgbe(4) on powerpc64 too.


# ca7fe84a 15-Jan-2015 Navdeep Parhar <np@FreeBSD.org>

Plug cxgbe(4) back into !powerpc && !arm builds, instead of building it
on amd64 only.


# 2089f538 01-Jan-2015 Scott Long <scottl@FreeBSD.org>

Garbage collect the asr driver. Hardware for it has not been produced in
roughly 10 years, and the driver has not enjoyed any significant maintenance
since long before that. Despite well-meaning efforts from a number of
people, myself included, it never made the jump to 64-bit and was relegated
to the back-corners of i386. Now its frailty is hampering forward progress
with Clang. Any renewed engineering efforts are of course welcome and can
happen outside of the tree. No MFC of this is planned.


# 183dc986 31-Dec-2014 Navdeep Parhar <np@FreeBSD.org>

Temporarily unplug cxgbe(4) from !amd64 builds.


# c15882f0 22-Dec-2014 Rick Macklem <rmacklem@FreeBSD.org>

Remove the old NFS client and server from head,
which means that the NFSCLIENT and NFSSERVER
kernel options will no longer work. This commit
only removes the kernel components. Removal of
unused code in the user utilities will be done
later. This commit does not include an addition
to UPDATING, but that will be committed in a
few minutes.

Discussed on: freebsd-fs


# b43a681b 09-Dec-2014 Enji Cooper <ngie@FreeBSD.org>

Move MK_BHYVE/MK_HYPERV to architecture specific sections in Makefiles
instead of introducing an architecture specific section in src.opts.mk

Make it clear in the documentation that the options only affect certain
architectures to reduce user confusion if the knobs are tweaked

A better method for abstracting this out will be done in the future in a
different commit

Discussed with/Requested by: imp


# 036a8c5d 07-Dec-2014 Andriy Gapon <avg@FreeBSD.org>

remove opensolaris cyclic code, replace with high-precision callouts

In the old days callout(9) had 1 tick precision and that was inadequate
for some uses, e.g. DTrace profile module, so we had to emulate cyclic
API and behavior. Now we can directly use callout(9) in the very few
places where cyclic was used.

Differential Revision: https://reviews.freebsd.org/D1161
Reviewed by: gnn, jhb, markj
MFC after: 2 weeks


# e7d836f7 29-Nov-2014 Enji Cooper <ngie@FreeBSD.org>

Make nfs server components conditional according to MK_NFS_SERVER


# 92e0655d 27-Nov-2014 Enji Cooper <ngie@FreeBSD.org>

Honor MK_AUTOFS


# 49a61f07 26-Nov-2014 Enji Cooper <ngie@FreeBSD.org>

Only build iscsi/iscsi_initiator if MK_ISCSI != no


# bb9096f6 26-Nov-2014 Enji Cooper <ngie@FreeBSD.org>

Move hyperv/vmm under MK_HYPERV/MK_BHYVE, respectively


# 603eaf79 09-Nov-2014 Alexander V. Chernikov <melifaro@FreeBSD.org>

Renove faith(4) and faithd(8) from base. It looks like industry
have chosen different (and more traditional) stateless/statuful
NAT64 as translation mechanism. Last non-trivial commits to both
faith(4) and faithd(8) happened more than 12 years ago, so I assume
it is time to drop RFC3142 in FreeBSD.

No objections from: net@


# f325335c 07-Nov-2014 Andrey V. Elsukov <ae@FreeBSD.org>

Overhaul if_gre(4).

Split it into two modules: if_gre(4) for GRE encapsulation and
if_me(4) for minimal encapsulation within IP.

gre(4) changes:
* convert to if_transmit;
* rework locking: protect access to softc with rmlock,
protect from concurrent ioctls with sx lock;
* correct interface accounting for outgoing datagramms (count only payload size);
* implement generic support for using IPv6 as delivery header;
* make implementation conform to the RFC 2784 and partially to RFC 2890;
* add support for GRE checksums - calculate for outgoing datagramms and check
for inconming datagramms;
* add support for sending sequence number in GRE header;
* remove support of cached routes. This fixes problem, when gre(4) doesn't
work at system startup. But this also removes support for having tunnels with
the same addresses for inner and outer header.
* deprecate support for various GREXXX ioctls, that doesn't used in FreeBSD.
Use our standard ioctls for tunnels.

me(4):
* implementation conform to RFC 2004;
* use if_transmit;
* use the same locking model as gre(4);

PR: 164475
Differential Revision: D1023
No objections from: net@
Relnotes: yes
Sponsored by: Yandex LLC


# 4384929a 01-Nov-2014 Mark Murray <markm@FreeBSD.org>

Remove duplicate macro settings (probably due to an SVN merge /faux pas/ on my part.

Spotted by: DES
Approved by: DES(implicit)


# 10cb2424 30-Oct-2014 Mark Murray <markm@FreeBSD.org>

This is the much-discussed major upgrade to the random(4) device, known to you all as /dev/random.

This code has had an extensive rewrite and a good series of reviews, both by the author and other parties. This means a lot of code has been simplified. Pluggable structures for high-rate entropy generators are available, and it is most definitely not the case that /dev/random can be driven by only a hardware souce any more. This has been designed out of the device. Hardware sources are stirred into the CSPRNG (Yarrow, Fortuna) like any other entropy source. Pluggable modules may be written by third parties for additional sources.

The harvesting structures and consequently the locking have been simplified. Entropy harvesting is done in a more general way (the documentation for this will follow). There is some GREAT entropy to be had in the UMA allocator, but it is disabled for now as messing with that is likely to annoy many people.

The venerable (but effective) Yarrow algorithm, which is no longer supported by its authors now has an alternative, Fortuna. For now, Yarrow is retained as the default algorithm, but this may be changed using a kernel option. It is intended to make Fortuna the default algorithm for 11.0. Interested parties are encouraged to read ISBN 978-0-470-47424-2 "Cryptography Engineering" By Ferguson, Schneier and Kohno for Fortuna's gory details. Heck, read it anyway.

Many thanks to Arthur Mesh who did early grunt work, and who got caught in the crossfire rather more than he deserved to.

My thanks also to folks who helped me thresh this out on whiteboards and in the odd "Hallway track", or otherwise.

My Nomex pants are on. Let the feedback commence!

Reviewed by: trasz,des(partial),imp(partial?),rwatson(partial?)
Approved by: so(des)


# 007054f0 20-Oct-2014 Bryan Venteicher <bryanv@FreeBSD.org>

Add vxlan interface

vxlan creates a virtual LAN by encapsulating the inner Ethernet frame in
a UDP packet. This implementation is based on RFC7348.

Currently, the IPv6 support is not fully compliant with the specification:
we should be able to receive UPDv6 packets with a zero checksum, but we
need to support RFC6935 first. Patches for this should come soon.

Encapsulation protocols such as vxlan emphasize the need for the FreeBSD
network stack to support batching, GRO, and GSO. Each frame has to make
two trips through the network stack, and each frame will be at most MTU
sized. Performance suffers accordingly.

Some latest generation NICs have begun to support vxlan HW offloads that
we should also take advantage of. VIMAGE support should also be added soon.

Differential Revision: https://reviews.freebsd.org/D384
Reviewed by: gnn
Relnotes: yes


# 513798cc 05-Oct-2014 Yoshihiro Takahashi <nyan@FreeBSD.org>

- Refactor defining variables.
- Merge common modules both i386 and amd64 into one if-endif.
- Sort.
- There are no functional changes.


# 14f2533c 23-Sep-2014 Bjoern A. Zeeb <bz@FreeBSD.org>

As per [1] Intel only supports this driver on 64bit platforms.
For now restrict it to amd64. Other architectures might be
re-added later once tested.

Remove the drivers from the global NOTES and files files and move
them to the amd64 specifics.
Remove the drivers from the i386 modules build and only leave the
amd64 version.

Rather than depending on "inet" depend on "pci" and make sure that
ixl(4) and ixlv(4) can be compiled independently [2]. This also
allows the drivers to build properly on IPv4-only or IPv6-only
kernels.

PR: 193824 [2]
Reviewed by: eric.joyner intel.com
MFC after: 3 days

References:
[1] http://lists.freebsd.org/pipermail/svn-src-all/2014-August/090470.html


# 3355bd61 22-Sep-2014 Rui Paulo <rpaulo@FreeBSD.org>

Move pci/ncr to dev/ncr.


# d502eb6d 28-Aug-2014 Jack F Vogel <jfv@FreeBSD.org>

Add XL710 device entries to NOTES, and directories to the module
Makefile so they will be built.

MFC after: 1 day


# e6e57451 20-Aug-2014 John Baldwin <jhb@FreeBSD.org>

Add kernel modules for si(4), wds(4), and wl(4).


# 3914ddf8 17-Aug-2014 Edward Tomasz Napierala <trasz@FreeBSD.org>

Bring in the new automounter, similar to what's provided in most other
UNIX systems, eg. MacOS X and Solaris. It uses Sun-compatible map format,
has proper kernel support, and LDAP integration.

There are still a few outstanding problems; they will be fixed shortly.

Reviewed by: allanjude@, emaste@, kib@, wblock@ (earlier versions)
Phabric: D523
MFC after: 2 weeks
Relnotes: yes
Sponsored by: The FreeBSD Foundation


# 79785bbf 11-Aug-2014 Enji Cooper <ngie@FreeBSD.org>

Similar to r250143, optimize MODULES_OVERRIDE such that SUBDIR isn't
automatically defined if MODULES_OVERRIDE is defined

Approved by: jmmv (mentor)
Reviewed by: imp
Phabric: D578
Sponsored by: EMC / Isilon Storage Division


# df3394b3 11-Aug-2014 Warner Losh <imp@FreeBSD.org>

Remove dependence on source tree options. Move all kernel module
options into kern.opts.mk and change all the places where we use
src.opts.mk to pull in the options. Conditionally define SYSDIR and
use SYSDIR/conf/kern.opts.mk instead of a CURDIR path. Replace all
instances of CURDIR/../../etc with STSDIR, but only in the affected
files.

As a special compatibility hack, include bsd.owm.mk at the top of
kern.opts.mk to allow the bare build of sys/modules to work on older
systems. If the defaults ever change between 9.x, 10.x and current for
these options, however, you'll wind up with the host OS' defaults
rather than the -current defaults. This hack will be removed when
we no longer need to support this build scenario.

Reviewed by: jhb
Differential Revision: https://phabric.freebsd.org/D529


# e7d939bd 06-Jul-2014 Marcel Moolenaar <marcel@FreeBSD.org>

Remove ia64.

This includes:
o All directories named *ia64*
o All files named *ia64*
o All ia64-specific code guarded by __ia64__
o All ia64-specific makefile logic
o Mention of ia64 in comments and documentation

This excludes:
o Everything under contrib/
o Everything under crypto/
o sys/xen/interface
o sys/sys/elf_common.h

Discussed at: BSDcan


# 36716419 13-Jun-2014 Hans Petter Selasky <hselasky@FreeBSD.org>

Attach the CUSE library and kernel module to the default FreeBSD
builds. Bump the FreeBSD version number.


# 13fe9e6c 01-Jun-2014 John-Mark Gurney <jmg@FreeBSD.org>

enable sound modules on arm.. This is necessary to get the uaudio
module installed...


# 81e3caaf 21-May-2014 Justin Hibbits <jhibbits@FreeBSD.org>

imagact_binmisc builds for all supported architectures, so enable it for all.

Any bugs in execution will be dealt with as they crop up.

MFC after: 3 weeks
Relnotes: Yes


# 41bc2b72 12-May-2014 Ian Lepore <ian@FreeBSD.org>

Build modules in parallel. This has been tested by several people at
various -j levels from 6 to 48 without problems.


# 204fa412 10-May-2014 Ian Lepore <ian@FreeBSD.org>

Revert accidental commit of SUBDIR_PARALLEL for sys/modules. (It hasn't
been tested sufficiently).


# 6af0d51b 10-May-2014 Ian Lepore <ian@FreeBSD.org>

Make the hardware memory and instruction barrier functions work on armv4
and armv5 as well.


# 665484d8 07-May-2014 Doug Ambrisko <ambrisko@FreeBSD.org>

Add mrsas(4) driver from LSI official support of newer MegaRAID SAS
cards. LSI has been maintaining this driver outside of the FreeBSD
tree. It overlaps support of ThunderBolt and Invader cards that mfi(4)
supports. By default mfi(4) will attach to cards. If the tunable:
hw.mfi.mrsas_enable=1
is set then mfi(4) will not probe and attach to these newer cards and
allow mrsas(4) to attach. So by default this driver will not effect
a FreeBSD system unless mfi(4) is removed from the kernel or the
tunable is enabled.

mrsas(4) attaches disks to the CAM layer so it depends on CAM and devices
show up as /dev/daX. mfiutil(8) does not work with mrsas. The FreeBSD
version of MegaCli and StorCli from LSI do work with mrsas. It appears
that StorCli only works with mrsas. MegaCli appears to work with mfi(4)
and mrsas(4).

It would be good to add mfiutil(4) support to mrsas, emulations modes,
kernel logging, device aliases to ease the transition between mfi(4)
and mrsas(4).

Style issues should be resolved by LSI when they get committers approved.
The plan is get this driver in FreeBSD 9.3 to improve HW support.

Thanks to LSI for developing, testing and working with FreeBSD to
make this driver co-exist in FreeBSD. This improves the overall
support of MegaRAID SAS.

Submitted by: Kashyap Desai <Kashyap.Desai@lsi.com>
Reviewed by: scottl
MFC after: 3 days
Sponsored by: LSI


# c6063d0d 05-May-2014 Warner Losh <imp@FreeBSD.org>

Use src.opts.mk in preference to bsd.own.mk except where we need stuff
from the latter.


# 991554f2 02-May-2014 Kenneth D. Merry <ken@FreeBSD.org>

Bring in the mpr(4) driver for LSI's MPT3 12Gb SAS controllers.

This is derived from the mps(4) driver, but it supports only the 12Gb
IT and IR hardware including the SAS 3004, SAS 3008 and SAS 3108.

Some notes about this driver:
o The 12Gb hardware can do "FastPath" I/O, and that capability is included in
this driver.

o WarpDrive functionality has been removed, since it isn't supported in
the 12Gb driver interface.

o The Scatter/Gather list handling code is significantly different between
the 6Gb and 12Gb hardware. The 12Gb boards support IEEE Scatter/Gather
lists.

Thanks to LSI for developing and testing this driver for FreeBSD.

share/man/man4/mpr.4:
mpr(4) man page.

sys/dev/mpr/*:
mpr(4) driver files.

sys/modules/Makefile,
sys/modules/mpr/Makefile:
Add a module Makefile for the mpr(4) driver.

sys/conf/files:
Add the mpr(4) driver.

sys/amd64/conf/GENERIC,
sys/i386/conf/GENERIC,
sys/mips/conf/OCTEON1,
sys/sparc64/conf/GENERIC:
Add the mpr(4) driver to all config files that currently
have the mps(4) driver.

sys/ia64/conf/GENERIC:
Add the mps(4) and mpr(4) drivers to the ia64 GENERIC
config file.

sys/i386/conf/XEN:
Exclude the mpr module from building here.

Submitted by: Steve McConnell <Stephen.McConnell@lsi.com>
MFC after: 3 days
Tested by: Chris Reeves <chrisr@spectralogic.com>
Sponsored by: LSI, Spectra Logic
Relnotes: LSI 12Gb SAS driver mpr(4) added


# 5ff85f90 02-May-2014 Christian Brueffer <brueffer@FreeBSD.org>

libdev(4) has been removed, get rid of the module as well to fix the build.

Submitted by: Sainath Varanasi


# 67fb10f3 28-Apr-2014 Marcel Moolenaar <marcel@FreeBSD.org>

Add proto(4): A driver for prototyping and diagnostics.
It exposes I/O resources to user space, so that programs can peek
and poke at the hardware. It does not itself have knowledge about
the hardware device it attaches to.

Sponsored by: Juniper Networks, Inc.


# 77667fec 18-Apr-2014 Warner Losh <imp@FreeBSD.org>

Don't build EISA by default anymore. Remove from i386 GENERIC and
create an option that defaults to "no" on all platforms to not build
the EISA bits.

Discussed on: arch@


# 4a9af7d5 16-Apr-2014 Bjoern A. Zeeb <bz@FreeBSD.org>

Add the initial version of if_nf10bmac(4), a driver to support an
NetFPGA-10G Embedded CPU Ethernet Core.

The current version operates on a simple PIO based interface connected
to a NetFPGA-10G port.

To avoid confusion: this driver operates on a CPU running on the FPGA,
e.g. BERI/mips, and is not suited for the PCI host interface.

MFC after: 1 week
Relnotes: yes
Sponsored by: DARPA/AFRL


# 4ab550ca 08-Apr-2014 Sean Bruno <sbruno@FreeBSD.org>

Spell imgact_binmisc correctly


# b434acb3 08-Apr-2014 Sean Bruno <sbruno@FreeBSD.org>

Actually, since this is what I thought I was doing, only allow the
binmisc code to be build on amd64/i386 for the kernel.

Update NOTES with some indication of what this code is used for.

Pointed out by jhb@ ... thanks!

Submitted by: jhb@


# 6d756449 08-Apr-2014 Sean Bruno <sbruno@FreeBSD.org>

Add Stacey Son's binary activation patches that allow remapping of
execution to a emumation program via parsing of ELF header information.

With this kernel module and userland tool, poudriere is able to build
ports packages via the QEMU userland tools (or another emulator program)
in a different architecture chroot, e.g. TARGET=mips TARGET_ARCH=mips

I'm not connecting this to GENERIC for obvious reasons, but this should
allow the kernel module to be built by default and enable the building
of the userland tool (which automatically loads the kernel module).

Submitted by: sson@
Reviewed by: jhb@


# 2c284d93 13-Mar-2014 Gleb Smirnoff <glebius@FreeBSD.org>

Remove IPX support.

IPX was a network transport protocol in Novell's NetWare network operating
system from late 80s and then 90s. The NetWare itself switched to TCP/IP
as default transport in 1998. Later, in this century the Novell Open
Enterprise Server became successor of Novell NetWare. The last release
that claimed to still support IPX was OES 2 in 2007. Routing equipment
vendors (e.g. Cisco) discontinued support for IPX in 2011.

Thus, IPX won't be supported in FreeBSD 11.0-RELEASE.


# 7f47cbd3 15-Feb-2014 Christian Brueffer <brueffer@FreeBSD.org>

Retire the nve(4) driver; nfe(4) has been the default driver for NVIDIA
nForce MCP adapters for a long time.

Yays: jhb, remko, yongari
Nays: none on the current and stable lists


# 0ad3455e 04-Dec-2013 Xin LI <delphij@FreeBSD.org>

Support Hyper-V on i386:

- Add 'hyperv' module into build;
- Allow building Hyper-V support as part of the kernel;
- Hook Hyper-V build into NOTES.

This is intended for MFC if re@ permits.

MFC after: 3 days


# 421b30ef 18-Oct-2013 Edward Tomasz Napierala <trasz@FreeBSD.org>

Don't build krping.ko, iw_cxgb.ko, and iw_cxgbe.ko, if MK_OFED=no
(the default). They build, but are unloadable, due to missing ibcore.ko.

Sponsored by: FreeBSD Foundation


# c9f432b7 28-Sep-2013 Alfred Perlstein <alfred@FreeBSD.org>

Update OFED to Linux 3.7 and update Mellanox drivers.

Update the OFED Infiniband core to the version supplied in Linux
version 3.7.

The update to OFED is nearly all additional defines and functions
with the exception of the addition of additional parameters to
ib_register_device() and the reg_user_mr callback.

In addition the ibcore (Infiniband core) and ipoib (IP over Infiniband)
have both been made into completely loadable modules to facilitate
testing of the OFED stack in FreeBSD.

Finally the Mellanox Infiniband drivers are now updated to the
latest version shipping with Linux 3.7.

Submitted by: Mellanox FreeBSD driver team:
Oded Shanoon (odeds mellanox.com),
Meny Yossefi (menyy mellanox.com),
Orit Moskovich (oritm mellanox.com)

Approved by: re


# 009ea47e 14-Sep-2013 Edward Tomasz Napierala <trasz@FreeBSD.org>

Bring in the new iSCSI target and initiator.

Reviewed by: ken (parts)
Approved by: re (delphij)
Sponsored by: FreeBSD Foundation


# e3c97c2c 23-Aug-2013 Bryan Venteicher <bryanv@FreeBSD.org>

Add vmx(4), a VMware VMXNET3 ethernet driver ported from OpenBSD


# 9732e4fd 22-Aug-2013 Edward Tomasz Napierala <trasz@FreeBSD.org>

Move the old iSCSI initiator source to a more appropriate place
(sys/dev/iscsi_initiator/ instead of sys/dev/iscsi/initiator/), to make
room for the new one. This is also more logical location (kernel module
being named iscsi_initiator.ko, for example). There is no ongoing work
on this I know of, so it shouldn't make life harder for anyone.

There are no functional changes, apart from "svn mv" and adjusting paths.


# 0e6a0799 31-Jul-2013 David E. O'Brien <obrien@FreeBSD.org>

Back out r253779 & r253786.


# 84cd55bb 30-Jul-2013 Justin Hibbits <jhibbits@FreeBSD.org>

Add the macio attachment for wi(4). Partially obtained from NetBSD.

Reviewed by: adrian
Obtained from: NetBSD (partially)


# a99fe630 29-Jul-2013 Rui Paulo <rpaulo@FreeBSD.org>

Move runfw to modules/usb.
While there, respect MK_SOURCELESS_UCODE.

Discussed with: kevlo


# 99ff83da 29-Jul-2013 David E. O'Brien <obrien@FreeBSD.org>

Decouple yarrow from random(4) device.

* Make Yarrow an optional kernel component -- enabled by "YARROW_RNG" option.
The files sha2.c, hash.c, randomdev_soft.c and yarrow.c comprise yarrow.

* random(4) device doesn't really depend on rijndael-*. Yarrow, however, does.

* Add random_adaptors.[ch] which is basically a store of random_adaptor's.
random_adaptor is basically an adapter that plugs in to random(4).
random_adaptor can only be plugged in to random(4) very early in bootup.
Unplugging random_adaptor from random(4) is not supported, and is probably a
bad idea anyway, due to potential loss of entropy pools.
We currently have 3 random_adaptors:
+ yarrow
+ rdrand (ivy.c)
+ nehemeiah

* Remove platform dependent logic from probe.c, and move it into
corresponding registration routines of each random_adaptor provider.
probe.c doesn't do anything other than picking a specific random_adaptor
from a list of registered ones.

* If the kernel doesn't have any random_adaptor adapters present then the
creation of /dev/random is postponed until next random_adaptor is kldload'ed.

* Fix randomdev_soft.c to refer to its own random_adaptor, instead of a
system wide one.

Submitted by: arthurmesh@gmail.com, obrien
Obtained from: Juniper Networks
Reviewed by: obrien


# 8e2ad3d7 13-Jul-2013 Justin Hibbits <jhibbits@FreeBSD.org>

Clean up the modules list for PowerPC. powerpc64 has MACHINE_CPUARCH of
powerpc. While here, sort the list.


# 1fdeb165 06-Jul-2013 Xin LI <delphij@FreeBSD.org>

Import HighPoint DC Series Data Center HBA (DC7280 and R750) driver.
This driver works for FreeBSD/i386 and FreeBSD/amd64 platforms.

Many thanks to HighPoint for providing this driver.

MFC after: 1 day


# 4310207e 01-Jul-2013 Robert Millan <rmh@FreeBSD.org>

Wrap cxgbe declaration around MK_SOURCELESS_UCODE check


# 237abf0c 28-Jun-2013 Davide Italiano <davide@FreeBSD.org>

- Trim an unused and bogus Makefile for mount_smbfs.
- Reconnect with some minor modifications, in particular now selsocket()
internals are adapted to use sbintime units after recent'ish calloutng
switch.


# 711bcba0 25-Jun-2013 David C Somayajulu <davidcs@FreeBSD.org>

Add Qlogic 10Gb Ethernet Driver for Qlogic 8100 Series CNA Adapter
Driver version (v2.0.0)

Submitted by: David C Somayajulu (davidcs@freebsd.org) QLogic Corporation
Approved by: George Neville-Neil (gnn@freebsd.org)


# 7d99ab9f 15-Jun-2013 Peter Grehan <grehan@FreeBSD.org>

make glue to hook up the hyperv kmods to the build.

Modified from the original Microsoft versions to pull
code/headers in from the sys/contrib/dev directory.


# dce93cd0 24-May-2013 Achim Leubner <achim@FreeBSD.org>

Driver 'aacraid' added. Supports Adaptec by PMC RAID controller families Series 6, 7, 8 and upcoming products. Older Adaptec RAID controller families are supported by the 'aac' driver.

Approved by: scottl (mentor)


# f10a77bb 15-May-2013 David C Somayajulu <davidcs@FreeBSD.org>

Add Qlogic 10Gigabit Ethernet & CNA Adapter Driver Version 3.10.10 for
QLogic 8300 Series Adapters

Submitted by: David C Somayajulu (davidcs@freebsd.org) QLogic Corporation
Approved by: George Neville-Neil (gnn@freebsd.org)


# e5548b5c 02-May-2013 Peter Grehan <grehan@FreeBSD.org>

Initial import of the Microsoft HyperV 'enlightened' drivers.

From https://github.com/FreeBSDonHyper-V/VendorBranchForFreeBSDonHyper-V
rev: 99eaa0ddb0485c9d76046664100f6beb1a0a0c58


# e47937d1 29-Apr-2013 Carl Delsey <carl@FreeBSD.org>

Add a new driver to support the Intel Non-Transparent Bridge(NTB).

The NTB allows you to connect two systems with this device using a PCI-e
link. The driver is made of two modules:
- ntb_hw which is a basic hardware abstraction layer for the device.
- if_ntb which implements the ntb network device and the communication
protocol.

The driver is limited at the moment to CPU memcpy instead of using DMA, and
only Back-to-Back mode is supported. Also the network device isn't full
featured yet. These changes will be coming soon. The DMA change will also
bring in the ioat driver from the project branch it is on now.

This is an initial port of the GPL/BSD Linux driver contributed by Jon Mason
from Intel. Any bugs are my contributions.

Sponsored by: Intel
Reviewed by: jimharris, joel (man page only)
Approved by: jimharris (mentor)


# 32562145 02-Apr-2013 Edward Tomasz Napierala <trasz@FreeBSD.org>

Make it possible to build CTL as a module.

Reviewed by: ken
Sponsored by: FreeBSD Foundation


# 8caac1d5 31-Jan-2013 Neel Natu <neel@FreeBSD.org>

Delete the "blackhole" driver - it is not needed anymore.

The "blackhole" driver was used in conjunction with bhyve to sequester
pci devices intended for passthru until vmm.ko was loaded. This was
useful at one point because vmm.ko could not be loaded at boot time.

The same functionality can now be achieved by loading vmm.ko via the
loader along with the kernel.

Discussed with: grehan
Obtained from: NetApp


# d5c0af17 20-Nov-2012 Andrey V. Elsukov <ae@FreeBSD.org>

Connect ip6_mroute kernel module to the build.

MFC after: 1 week


# c7570492 07-Nov-2012 Justin Hibbits <jhibbits@FreeBSD.org>

Implement DTrace for PowerPC. This includes both 32-bit and 64-bit.

There is one known issue: Some probes will display an error message along the
lines of: "Invalid address (0)"

I tested this with both a simple dtrace probe and dtruss on a few different
binaries on 32-bit. I only compiled 64-bit, did not run it, but I don't expect
problems without the modules loaded. Volunteers are welcome.

MFC after: 1 month


# 86b32c08 27-Oct-2012 Nathan Whitehorn <nwhitehorn@FreeBSD.org>

drm(4) works just fine on PowerPC, so connect it to the build.

MFC after: 2 weeks


# 2e564269 17-Oct-2012 Attilio Rao <attilio@FreeBSD.org>

Disconnect non-MPSAFE SMBFS from the build in preparation for dropping
GIANT from VFS. In addition, disconnect also netsmb, which is a base
requirement for SMBFS.

In the while SMBFS regular users can use FUSE interface and smbnetfs
port to work with their SMBFS partitions.

Also, there are ongoing efforts by vendor to support in-kernel smbfs,
so there are good chances that it will get relinked once properly locked.

This is not targeted for MFC.


# a42ac676 17-Oct-2012 Attilio Rao <attilio@FreeBSD.org>

Disconnect non-MPSAFE NTFS from the build in preparation for dropping
GIANT from VFS. This code is particulary broken and fragile and other
in-kernel implementations around, found in other operating systems,
don't really seem clean and solid enough to be imported at all.
If someone wants to reconsider in-kernel NTFS implementation for
inclusion again, a fair effort for completely fixing and cleaning it
up is expected.

In the while NTFS regular users can use FUSE interface and ntfs-3g
port to work with their NTFS partitions.

This is not targeted for MFC.


# e6116d5b 17-Oct-2012 Attilio Rao <attilio@FreeBSD.org>

Disconnect non-MPSAFE NWFS from the build in preparation for dropping
GIANT from VFS. In addition, disconnect also netncp, which is a base
requirement for NWFS.

In the possibility of a future maintenance of the code and later
readd to the FreeBSD base, maybe we should think about a better location
for netncp. I'm not entirely sure the / top location is actually right,
however I will let network people to comment on that more specifically.

This is not targeted for MFC.


# 26c3f6d7 16-Oct-2012 Attilio Rao <attilio@FreeBSD.org>

Disconnect non-MPSAFE CODAFS from the build in preparation for dropping
GIANT from VFS.

This is not targeted for MFC.


# 4b0bdbfd 16-Oct-2012 Attilio Rao <attilio@FreeBSD.org>

Disconnect non-MPSAFE XFS from the build in preparation for dropping
GIANT from VFS.

This is not targeted for MFC.


# 55793cdc 16-Oct-2012 Attilio Rao <attilio@FreeBSD.org>

Disconnect non-MPSAFE PORTALFS from the build in preparation for dropping
GIANT from VFS.

This is not targeted for MFC.


# d6b3aaf8 15-Oct-2012 Oleksandr Tymoshenko <gonzo@FreeBSD.org>

Split sdhci driver in two parts: sdhci and sdhci_pci.
sdchi encapsulates a generic SD Host Controller logic that relies on
actual hardware driver for register access.

sdhci_pci implements driver for PCI SDHC controllers using new SDHCI
interface

No kernel config modifications are required, but if you load sdhc
as a module you must switch to sdhci_pci instead.


# 5fe58019 13-Oct-2012 Attilio Rao <attilio@FreeBSD.org>

Import a FreeBSD port of the FUSE Linux module.
This has been developed during 2 summer of code mandates and being revived
by gnn recently.
The functionality in this commit mirrors entirely content of fusefs-kmod
port, which doesn't need to be installed anymore for -CURRENT setups.

In order to get some sparse technical notes, please refer to:
http://lists.freebsd.org/pipermail/freebsd-fs/2012-March/013876.html

or to the project branch:
svn://svn.freebsd.org/base/projects/fuse/

which also contains granular history of changes happened during port
refinements. This commit does not came from the branch reintegration
itself because it seems svn is not behaving properly for this functionaly
at the moment.

Partly Sponsored by: Google, Summer of Code program 2005, 2011
Originally submitted by: ilya, Csaba Henk <csaba-ml AT creo DOT hu >
In collabouration with: pho
Tested by: flo, gnn, Gustau Perez,
Kevin Oberman <rkoberman AT gmail DOT com>
MFC after: 2 months


# 0d773745 08-Oct-2012 David E. O'Brien <obrien@FreeBSD.org>

Restrict the module to varied environments.


# eb85d44f 17-Sep-2012 Jim Harris <jimharris@FreeBSD.org>

Integrate nvme(4) and nvd(4) into the amd64 and i386 builds.

Sponsored by: Intel


# 7e2fcdff 12-Sep-2012 Jim Harris <jimharris@FreeBSD.org>

Remove some trailing whitespace.


# 2a6ce61a 06-Sep-2012 John Baldwin <jhb@FreeBSD.org>

Add a kernel module on pc98 for the ct(4) driver.


# e53470fe 15-Aug-2012 Oleksandr Tymoshenko <gonzo@FreeBSD.org>

Merging of projects/armv6, part 10

- Support for Texas Instruments SoCs:
- AM335x
- OMAP4

- Kernel configs, DTS for Beaglebone and Pandaboard

Submitted by: Ben Gray, Damjan Marion


# 097f09bb 02-Jul-2012 Marcel Moolenaar <marcel@FreeBSD.org>

There's no need to make filemon specific to i386 and amd64. All
LP64 architectures define elf64_freebsd_sysvec and all ILP32
architectures define elf32_freebsd_sysvec.


# 09fe6320 19-Jun-2012 Navdeep Parhar <np@FreeBSD.org>

- Updated TOE support in the kernel.

- Stateful TCP offload drivers for Terminator 3 and 4 (T3 and T4) ASICs.
These are available as t3_tom and t4_tom modules that augment cxgb(4)
and cxgbe(4) respectively. The cxgb/cxgbe drivers continue to work as
usual with or without these extra features.

- iWARP driver for Terminator 3 ASIC (kernel verbs). T4 iWARP in the
works and will follow soon.

Build-tested with make universe.

30s overview
============
What interfaces support TCP offload? Look for TOE4 and/or TOE6 in the
capabilities of an interface:
# ifconfig -m | grep TOE

Enable/disable TCP offload on an interface (just like any other ifnet
capability):
# ifconfig cxgbe0 toe
# ifconfig cxgbe0 -toe

Which connections are offloaded? Look for toe4 and/or toe6 in the
output of netstat and sockstat:
# netstat -np tcp | grep toe
# sockstat -46c | grep toe

Reviewed by: bz, gnn
Sponsored by: Chelsio communications.
MFC after: ~3 months (after 9.1, and after ensuring MFC is feasible)


# 98663aa0 05-Jun-2012 David E. O'Brien <obrien@FreeBSD.org>

Only build filemon(4) on x86.


# eb9aea5a 04-Jun-2012 David E. O'Brien <obrien@FreeBSD.org>

Add the 'filemon' device. 'filemon' is a kernel module that provides a device
interface for processes to record system calls of its children.

Submitted by: Juniper Networks.


# 9fa69148 04-Jun-2012 Grzegorz Bernacki <gber@FreeBSD.org>

Restore changes accidentally removed in r235537.

Noticed by: avg


# ccc00630 23-May-2012 Konstantin Belousov <kib@FreeBSD.org>

Enable drm2 modules build.

Sponsored by: The FreeBSD Foundation
MFC after: 1 month


# 7f725bcd 17-May-2012 Grzegorz Bernacki <gber@FreeBSD.org>

Import work done under project/nand (@235533) into head.

The NAND Flash environment consists of several distinct components:
- NAND framework (drivers harness for NAND controllers and NAND chips)
- NAND simulator (NANDsim)
- NAND file system (NAND FS)
- Companion tools and utilities
- Documentation (manual pages)

This work is still experimental. Please use with caution.

Obtained from: Semihalf
Supported by: FreeBSD Foundation, Juniper Networks


# 9124ddeb 13-Mar-2012 Adrian Chadd <adrian@FreeBSD.org>

Add module building Makefile entries for NFSv4 and POSIX.1e ACL handling.


# 0566170f 06-Mar-2012 Bjoern A. Zeeb <bz@FreeBSD.org>

Provide wbwd(4), a driver for the watchdog timer found on various
Winbond Super I/O chips.

With minor efforts it should be possible the extend the driver to support
further chips/revisions available from Winbond. In the simplest case
only new IDs need to be added, while different chipsets might require
their own function to enter extended function mode, etc.

Sponsored by: Sandvine Incorporated ULC (in 2011)
Reviewed by: emaste, brueffer
MFC after: 2 weeks


# 2f345d8e 10-Feb-2012 Luigi Rizzo <luigi@FreeBSD.org>

Add a driver for Emulex OneConnect ethernet cards (10 Gbit PCIe)
A manpage will come in a future commit.

Submitted by: Naresh Raju Gottumukkala (emulex)


# fb6d9e60 05-Feb-2012 Justin Hibbits <jhibbits@FreeBSD.org>

Add exca to powerpc modules build as a dependency for cbb.


# 4a47892c 03-Feb-2012 Robert Millan <rmh@FreeBSD.org>

Add MK_SOURCELESS build option. Setting MK_SOURCELESS to "no" will disable
kernel modules that include binary-only code.

More fine-grained control is provided via MK_SOURCELESS_HOST (for native code
that runs on host CPU) and MK_SOURCELESS_UCODE (for microcode).

Reviewed by: julian, delphij, freebsd-arch
Approved by: kib (mentor)
MFC after: 2 weeks


# 363e589a 31-Jan-2012 Justin Hibbits <jhibbits@FreeBSD.org>

Enable the pccard/cardbus modules for powerpc.

Approved by: nwhitehorn (mentor)


# f11c7f63 31-Jan-2012 Jim Harris <jimharris@FreeBSD.org>

Add isci(4) driver for amd64 and i386 targets.

The isci driver is for the integrated SAS controller in the Intel C600
(Patsburg) chipset. Source files in sys/dev/isci directory are
FreeBSD-specific, and sys/dev/isci/scil subdirectory contains
an OS-agnostic library (SCIL) published by Intel to control the SAS
controller. This library is used primarily as-is in this driver, with
some post-processing to better integrate into the kernel build
environment.

isci.4 and a README in the sys/dev/isci directory contain a few
additional details.

This driver is only built for amd64 and i386 targets.

Sponsored by: Intel
Reviewed by: scottl
Approved by: scottl


# aa57e971 21-Jan-2012 Bjoern A. Zeeb <bz@FreeBSD.org>

Fix ip_divert handling of inet and inet6 and module building some more.

Properly sort the "carp" case in modules/Makefile after it was renamed.

Reported by: bde (most)
Reviewed by: bde
MFC after: 3 days


# 49da75c9 18-Jan-2012 Jens Schweikhardt <schweikh@FreeBSD.org>

Connect the bktr module(s) to the amd64 build.

MFC after: 7 days


# 2064b86f 29-Dec-2011 Marcel Moolenaar <marcel@FreeBSD.org>

Add a module for cfi(4). Build only for arm and powerpc, as there are
only bus attachments only for these.


# 81966bce 28-Dec-2011 Xin LI <delphij@FreeBSD.org>

Import the first release of HighPoint RocketRAID 27xx SAS 6Gb/s HBA card
driver. This driver works for FreeBSD/i386 and FreeBSD/amd64 platforms.

Many thanks to HighPoint for providing this driver.

MFC after: 2 weeks


# 663222f1 16-Dec-2011 Gleb Smirnoff <glebius@FreeBSD.org>

- Rename if_carp.ko to carp.ko.
- carp.ko depends on sha1.c


# 61af1d13 12-Dec-2011 Fabien Thomas <fabient@FreeBSD.org>

Add watchdog support for VIA south bridge chipset.
Tested on VT8251, VX900 but CX700, VX800, VX855 should works.

MFC after: 1 month
Sponsored by: NETASQ


# 3af069c5 25-Nov-2011 Marius Strobl <marius@FreeBSD.org>

Deorbit the broken amd(4) (see PR 124667), which was superseded by esp(4)
as of r227006.


# 5bd64b65 18-Nov-2011 Philip Paeps <philip@FreeBSD.org>

Limit building sfxge(4) to amd64 only to unbreak the tinderboxen. The driver
should also work on (at least) i386 but hasn't been built/tested for a while.

MFC after: 3 weeks


# 10b59a9b 17-Nov-2011 Peter Grehan <grehan@FreeBSD.org>

Import virtio base, PCI front-end, and net/block/balloon drivers.
Tested on Qemu/KVM, VirtualBox, and BHyVe.

Currently built as modules-only on i386/amd64. Man pages not yet hooked
up, pending review.

Submitted by: Bryan Venteicher bryanv at daemoninthecloset dot org
Reviewed by: bz
MFC after: 4 weeks or so


# e948693e 16-Nov-2011 Philip Paeps <philip@FreeBSD.org>

Add the sfxge(4) device driver, providing support for 10Gb Ethernet adapters
based on Solarflare SFC9000 family controllers. The driver supports jumbo
frames, transmit/receive checksum offload, TCP Segmentation Offload (TSO),
Large Receive Offload (LRO), VLAN checksum offload, VLAN TSO, and Receive Side
Scaling (RSS) using MSI-X interrupts.

This work was sponsored by Solarflare Communications, Inc.

My sincere thanks to Ben Hutchings for doing a lot of the hard work!

Sponsored by: Solarflare Communications, Inc.
MFC after: 3 weeks


# 8813217a 04-Nov-2011 Bjoern A. Zeeb <bz@FreeBSD.org>

Always use the opt_*.h options for ipfw.ko, not just when
compiled into the kernel.
Do not try to build the module in case of no INET support but
keep #error calls for now in case we would compile it into the
kernel.

This should fix an issue where the module would fail to enable
IPv6 support from the rc framework, but also other INET and INET6
parts being silently compiled out without giving a warning in the
module case.

While here garbage collect unneeded opt_*.h includes.
opt_ipdn.h is not used anywhere but we need to leave the DUMMYNET
entry in options for conditional inclusion in kernel so keep the
file with the same name.

Reported by: pluknet
Reviewed by: plunket, jhb
MFC After: 3 days


# 0bc7cf6f 03-Nov-2011 Bjoern A. Zeeb <bz@FreeBSD.org>

Add QLogic 10 Gigabit Ethernet & CNA Adapter Driver version 1.30
for 3200 and 8200 series cards.

Submitted by: David C Somayajulu (david.somayajulu@qlogic.com),
Qlogic Corporation
MFC After: 3 days


# a9ab459b 01-Nov-2011 Marius Strobl <marius@FreeBSD.org>

Add a PCI front-end to esp(4) allowing it to support AMD Am53C974 and
replace amd(4) with the former in the amd64, i386 and pc98 GENERIC kernel
configuration files. Besides duplicating functionality, amd(4), which
previously also supported the AMD Am53C974, unlike esp(4) is no longer
maintained and has accumulated enough bit rot over time to always cause
a panic during boot as long as at least one target is attached to it
(see PR 124667).

PR: 124667
Obtained from: NetBSD (based on)
MFC after: 3 days


# db1fda10 04-Oct-2011 Xin LI <delphij@FreeBSD.org>

Add the 9750 SATA+SAS 6Gb/s RAID controller card driver, tws(4). Many
thanks for their contiued support to FreeBSD.

This is version 10.80.00.003 from codeset 10.2.1 [1]

Obtained from: LSI http://kb.lsi.com/Download16574.aspx [1]


# 2304f22d 12-Sep-2011 Christian Brueffer <brueffer@FreeBSD.org>

Connect the vxge(4) module to the i386/amd64 build.

Catcher of stupid errors: kib
Approved by: re (kib)


# 7e7fd7d1 19-Jun-2011 Rick Macklem <rmacklem@FreeBSD.org>

Fix the kgssapi so that it can be loaded as a module. Currently
the NFS subsystems use five of the rpcsec_gss/kgssapi entry points,
but since it was not obvious which others might be useful, all
nineteen were included. Basically the nineteen entry points are
set in a structure called rpc_gss_entries and inline functions
defined in sys/rpc/rpcsec_gss.h check for the entry points being
non-NULL and then call them. A default value is returned otherwise.
Requested by rwatson.

Reviewed by: jhb
MFC after: 2 weeks


# 149d1c89 15-May-2011 Henrik Brix Andersen <brix@FreeBSD.org>

Add I2C bus driver for the AMD Geode LX series CS5536 Companion
Device.

Reviewed by: jhb (newbus bits only), adrian


# 6c4c7d0f 14-May-2011 Peter Grehan <grehan@FreeBSD.org>

bhyve import part 2 of 2, guest kernel changes.
This branch is now considered frozen: future bhyve development will take
place in a branch off -CURRENT.

sys/dev/bvm/bvm_console.c
sys/dev/bvm/bvm_dbg.c
- simple console driver/gdb debug port used for bringup. supported
by user-space bhyve executable

sys/conf/options.amd64
sys/amd64/amd64/minidump_machdep.c
- allow NKPT to be set in the kernel config file

sys/amd64/conf/GENERIC
- mptable config options; bhyve user-space executable creates an mptable
with number of CPUs, and optional vendor extension
- add bvm console/debug
- set NKPT to 512 to allow loading of large RAM disks from the loader
- include kdb/gdb

sys/amd64/amd64/local_apic.c
sys/amd64/amd64/apic_vector.S
sys/amd64/include/specialreg.h
- if x2apic mode available, use MSRs to access the local APIC, otherwise
fall back to 'classic' MMIO mode

sys/amd64/amd64/mp_machdep.c
- support AP spinup on CPU models that don't have real-mode support by
overwriting the real-mode page with a message that supplies the bhyve
user-space executable with enough information to start the AP directly
in 64-bit mode.

sys/amd64/amd64/vm_machdep.c
- insert pause statements into cpu shutdown busy-wait loops

sys/dev/blackhole/blackhole.c
sys/modules/blackhole/Makefile
- boot-time loadable module that claims all PCI bus/slot/funcs specified
in an env var that are to be used for PCI passthrough

sys/amd64/amd64/intr_machdep.c
- allow round-robin assignment of device interrupts to CPUs to be disabled
from the loader

sys/amd64/include/bus.h
- convert string ins/outs instructions to loops of individual in/out since
bhyve doesn't support these yet

sys/kern/subr_bus.c
- if the device was no created with a fixed devclass, then remove it's
association with the devclass it was associated with during probe.
Otherwise, new drivers do not get a chance to probe/attach since the
device will stay married to the first driver that it probed successfully
but failed to attach.

Sponsored by: NetApp, Inc.


# 366f6083 12-May-2011 Peter Grehan <grehan@FreeBSD.org>

Import of bhyve hypervisor and utilities, part 1.
vmm.ko - kernel module for VT-x, VT-d and hypervisor control
bhyve - user-space sequencer and i/o emulation
vmmctl - dump of hypervisor register state
libvmm - front-end to vmm.ko chardev interface

bhyve was designed and implemented by Neel Natu.

Thanks to the following folk from NetApp who helped to make this available:
Joe CaraDonna
Peter Snyder
Jeff Heller
Sandeep Mann
Steve Miller
Brian Pawlowski


# af8a927e 30-Apr-2011 Bjoern A. Zeeb <bz@FreeBSD.org>

Update carp, gre and pf module builds to be depenent on INET and/or
INET6_SUPPORT.

Reviewed by: gnn (slightly earlier version without pf)
Sponsored by: The FreeBSD Foundation
Sponsored by: iXsystems
MFC after: 2 weeks


# d1bb9769 25-Apr-2011 David Christensen <davidch@FreeBSD.org>

- Removed duplicate {_bxe} definition.

MFC after: One week


# 102657cb 25-Apr-2011 David Christensen <davidch@FreeBSD.org>

- Added bxe(4) driver for i386 and amd64. Currently untested on other
CPU architectures.

MFC after: One week


# 7332c129 01-Apr-2011 Konstantin Belousov <kib@FreeBSD.org>

Add support for executing the FreeBSD 1/i386 a.out binaries on amd64.

In particular:
- implement compat shims for old stat(2) variants and ogetdirentries(2);
- implement delivery of signals with ancient stack frame layout and
corresponding sigreturn(2);
- implement old getpagesize(2);
- provide a user-mode trampoline and LDT call gate for lcall $7,$0;
- port a.out image activator and connect it to the build as a module
on amd64.

The changes are hidden under COMPAT_43.

MFC after: 1 month


# e9e23719 30-Mar-2011 Adrian Chadd <adrian@FreeBSD.org>

ath_ahb shouldn't be compiled normally; it is atheros chip specific.
Remove it from here; users can compile it manually if needed.


# dba9c859 31-Mar-2011 Adrian Chadd <adrian@FreeBSD.org>

Break out the ath PCI logic into a separate device/module.

Introduce the AHB glue for Atheros embedded systems. Right now it's
hard-coded for the AR9130 chip whose support isn't yet in this HAL;
it'll be added in a subsequent commit.

Kernel configuration files now need both 'ath' and 'ath_pci' devices; both
modules need to be loaded for the ath device to work.


# 06f0d80d 23-Mar-2011 Jeff Roberson <jeff@FreeBSD.org>

- Move ofed modules into the i386 and amd64 specific sections to fix
universe on other architectures.


# 3b1f0b5d 21-Mar-2011 Jeff Roberson <jeff@FreeBSD.org>

- For now, disable ofed module build unless MK_OFED is set.


# aa0a1e58 21-Mar-2011 Jeff Roberson <jeff@FreeBSD.org>

- Merge in OFED 1.5.3 from projects/ofed/head


# 54e4ee71 18-Feb-2011 Navdeep Parhar <np@FreeBSD.org>

cxgbe(4) - NIC driver for Chelsio T4 (Terminator 4) based 10Gb/1Gb adapters.

MFC after: 3 weeks


# 6987b09f 24-Jan-2011 Lawrence Stewart <lstewart@FreeBSD.org>

Add build infrastructure for Khelp modules.

Sponsored by: FreeBSD Foundation
Reviewed by: bz
MFC after: 3 months


# 2608aefc 30-Dec-2010 Pyun YongHyeon <yongari@FreeBSD.org>

Add driver for DM&P Vortex86 RDC R6040 Fast Ethernet.
The controller is commonly found on DM&P Vortex86 x86 SoC. The
driver supports all hardware features except flow control. The
flow control was intentionally disabled due to silicon bug.

DM&P Electronics, Inc. provided all necessary information including
sample board to write driver and answered many questions I had.
Many thanks for their support of FreeBSD.

H/W donated by: DM&P Electronics, Inc.


# ad4e3b96 01-Dec-2010 Lawrence Stewart <lstewart@FreeBSD.org>

Add build infrastructure for the forthcoming CC algorithm modules.

Sponsored by: FreeBSD Foundation
Submitted by: David Hayes <dahayes at swin edu au>
MFC after: 3 months


# b05d9670 13-Nov-2010 Warner Losh <imp@FreeBSD.org>

Correct mips/arm elimination of sym


# 50fd2a5b 31-Oct-2010 Nathan Whitehorn <nwhitehorn@FreeBSD.org>

Add a driver for the Apple Uninorth AGP host bridge found in all PowerPC
Macintoshes with an AGP bus.


# a7d5f7eb 19-Oct-2010 Jamie Gritton <jamie@FreeBSD.org>

A new jail(8) with a configuration file, to replace the work currently done
by /etc/rc.d/jail.


# d3c7b9a0 10-Sep-2010 Kenneth D. Merry <ken@FreeBSD.org>

MFp4 (//depot/projects/mps/...)

Bring in a driver for the LSI Logic MPT2 6Gb SAS controllers.

This driver supports basic I/O, and works with SAS and SATA drives and
expanders.

Basic error recovery works (i.e. timeouts and aborts) as well.

Integrated RAID isn't supported yet, and there are some known bugs.

So this isn't ready for production use, but is certainly ready for
testing and additional development. For the moment, new commits to this
driver should go into the FreeBSD Perforce repository first
(//depot/projects/mps/...) and then get merged into -current once
they've been vetted.

This has only been added to the amd64 GENERIC, since that is the only
architecture I have tested this driver with.

Submitted by: scottl
Discussed with: imp, gibbs, will
Sponsored by: Yahoo, Spectra Logic Corporation


# c09808d0 23-Aug-2010 Warner Losh <imp@FreeBSD.org>

MFtbemd:

Use MACHINE_CPUARCH in preference to MACHINE_ARCH. The former is the
source code location of the machine, the latter the binary output. In
general, we want to use MACHINE_CPUARCH instead of MACHINE_ARCH unless
we're tesitng for a specific target. The isn't even moot for
i386/amd64 where there's momemntum towards a MACHINE_CPUARCH == x86,
although a specific cleanup for that likely would be needed...


# 1db8d1f8 19-Aug-2010 Ana Kukec <anchie@FreeBSD.org>

MFp4: anchie_soc2009 branch:

Add kernel side support for Secure Neighbor Discovery (SeND), RFC 3971.

The implementation consists of a kernel module that gets packets from
the nd6 code, sends them to user space on a dedicated socket and reinjects
them back for further processing.

Hooks are used from nd6 code paths to divert relevant packets to the
send implementation for processing in user space. The hooks are only
triggered if the send module is loaded. In case no user space
application is connected to the send socket, processing continues
normaly as if the module would not be loaded. Unloading the module
is not possible at this time due to missing nd6 locking.

The native SeND socket is similar to a raw IPv6 socket but with its own,
internal pseudo-protocol.

Approved by: bz (mentor)


# c02b5042 12-Aug-2010 Warner Losh <imp@FreeBSD.org>

This depends on ACPI, so only build on i386:i386, amd64:amd64 and
ia64:ia64. It can't possibly work on pc98, or any of the embedded
platforms, since they lack ACPI.


# 97f24f66 11-Aug-2010 Takanori Watanabe <takawata@FreeBSD.org>

Add tpm(4) driver for Trusted Platform Module.
You may want to look at http://bsssd.sourceforge.net/ .

Submitted by: Hans-Joerg Hoexer <Hans-Joerg_Hoexer@genua.de>


# 54bfbd51 10-Aug-2010 Will Andrews <will@FreeBSD.org>

Allow carp(4) to be loaded as a kernel module. Follow precedent set by
bridge(4), lagg(4) etc. and make use of function pointers and
pf_proto_register() to hook carp into the network stack.

Currently, because of the uncertainty about whether the unload path is free
of race condition panics, unloads are disallowed by default. Compiling with
CARPMOD_CAN_UNLOAD in CFLAGS removes this anti foot shooting measure.

This commit requires IP6PROTOSPACER, introduced in r211115.

Reviewed by: bz, simon
Approved by: ken (mentor)
MFC after: 2 weeks


# f92bbff2 24-Jul-2010 Rick Macklem <rmacklem@FreeBSD.org>

Move sys/nfsclient/nfs_lock.c into sys/nfs and build it as a separate
module that can be used by both the regular and experimental nfs
clients. This fixes the problem reported by jh@ where /dev/nfslock
would be registered twice when both nfs clients were used.
I also defined the size of the lm_fh field to be the correct value,
as it should be the maximum size of an NFSv3 file handle.

Reviewed by: jh
MFC after: 2 weeks


# 5f270659 23-Jul-2010 Konstantin Belousov <kib@FreeBSD.org>

Crypto(4) driver for AESNI.

The aeskeys_{amd64,i386}.S content was mostly obtained from OpenBSD,
no objections to the license from core.

Hardware provided by: Sentex Communications
Tested by: fabient, pho (previous versions)
MFC after: 1 month


# 2785677d 17-Jul-2010 Nathan Whitehorn <nwhitehorn@FreeBSD.org>

Add OpenSolaris atomics for powerpc64 and connect ZFS to the build on
this platform.

Reviewed by: pjd


# a393ae13 12-Jul-2010 Nathan Whitehorn <nwhitehorn@FreeBSD.org>

Make kernel modules build correctly on 64-bit PowerPC.


# a5548bf6 03-Jul-2010 Lawrence Stewart <lstewart@FreeBSD.org>

Import the Statistical Information For TCP Research (SIFTR) kernel module into
FreeBSD. SIFTR logs a range of statistics on active TCP connections to a log
file, providing the ability to make highly granular measurements of TCP
connection state. The tool is aimed at system administrators, developers and
researchers alike. Please take it for a spin and test it out - the man page
should have all the information required to get you going.

Many thanks go to the Cisco University Research Program Fund at Community
Foundation Silicon Valley and the FreeBSD Foundation. Their support of our work
at the Centre for Advanced Internet Architectures, Swinburne University of
Technology is greatly appreciated.

Sponsored by: Cisco URP, FreeBSD Foundation
Reviewed by: dwmalone, gnn, rpaulo
Tested by: Many on freebsd-current@ and elsewhere over the years
MFC after: 1 month


# 47d91595 26-May-2010 Konstantin Belousov <kib@FreeBSD.org>

Remove a check that should be always true.

Discussed with: pjd
MFC after: 1 week


# 4567e833 19-May-2010 Alexander Motin <mav@FreeBSD.org>

MFC r207536, r207696, r208183:
Import mvs(4) - Marvell 88SX50XX/88SX60XX/88SX70XX/SoC SATA controllers
driver for CAM ATA subsystem. This driver supports same hardware as
atamarvell, ataadaptec and atamvsata drivers from ata(4), but provides
many additional features, such as NCQ, PMP, etc.


# 9c694208 12-May-2010 Christian Brueffer <brueffer@FreeBSD.org>

Build the ixgbe(4) and mwlfw(4) modules by default.

PR: 144494
Submitted by: John Giacomoni <John.Giacomoni@LineRateSystems.com>, brucec


# dd48af36 02-May-2010 Alexander Motin <mav@FreeBSD.org>

Import mvs(4) - Marvell 88SX50XX/88SX60XX/88SX70XX/SoC SATA controllers
driver for CAM ATA subsystem. This driver supports same hardware as
atamarvell, ataadaptec and atamvsata drivers from ata(4), but provides
many additional features, such as NCQ, PMP, etc.


# ffb1296f 26-Apr-2010 Pyun YongHyeon <yongari@FreeBSD.org>

MFC r206625:
Add driver for Silicon Integrated Systems SiS190/191 Fast/Gigabit Ethernet.
This driver was written by Alexander Pohoyda and greatly enhanced
by Nikolay Denev. I don't have these hardwares but this driver was
tested by Nikolay Denev and xclin.

Because SiS didn't release data sheet for this controller, programming
information came from Linux driver and OpenSolaris. Unlike other open
source driver for SiS190/191, sge(4) takes full advantage of TX/RX
checksum offloading and does not require additional copy operation in
RX handler.
The controller seems to have advanced offloading features like VLAN
hardware tag insertion/stripping, TCP segmentation offload(TSO) as
well as jumbo frame support but these features are not available
yet. Special thanks to xclin <xclin<> cs dot nctu dot edu dot tw>
who sent fix for receiving VLAN oversized frames.


# 56ffe551 20-Apr-2010 Weongyo Jeong <weongyo@FreeBSD.org>

MFC r204326:
Add bwn(4) driver to the build.


# f9097055 20-Apr-2010 Weongyo Jeong <weongyo@FreeBSD.org>

MFC r203320:
Hook up the siba_bwn module to the build.


# d193ed0b 14-Apr-2010 Pyun YongHyeon <yongari@FreeBSD.org>

Add driver for Silicon Integrated Systems SiS190/191 Fast/Gigabit Ethernet.
This driver was written by Alexander Pohoyda and greatly enhanced
by Nikolay Denev. I don't have these hardwares but this driver was
tested by Nikolay Denev and xclin.

Because SiS didn't release data sheet for this controller, programming
information came from Linux driver and OpenSolaris. Unlike other open
source driver for SiS190/191, sge(4) takes full advantage of TX/RX
checksum offloading and does not require additional copy operation in
RX handler.
The controller seems to have advanced offloading features like VLAN
hardware tag insertion/stripping, TCP segmentation offload(TSO) as
well as jumbo frame support but these features are not available
yet. Special thanks to xclin <xclin<> cs dot nctu dot edu dot tw>
who sent fix for receiving VLAN oversized frames.


# b74668b1 13-Apr-2010 Warner Losh <imp@FreeBSD.org>

Only compile in uart_cpu_$MACHINE.c if it exists. I'm not sure how
useful it will be, but we really need to be keying off something other
than MACHINE for this anyway since on arm and mips we have lots of
these running around (one for each SoC family)...


# 0bdee1fa 12-Apr-2010 Warner Losh <imp@FreeBSD.org>

Doh! Last minute changes bites me in the butt....

Remove _ to make things build again.


# 215da5ec 12-Apr-2010 Warner Losh <imp@FreeBSD.org>

bce, bwi, bwn, mfi, mpt and siba_bwn all now compile that arm and mips
have added a BUS_SPACE_UNSPECIFIED definition. Add them back to the
mix on these platforms.


# 0b2d5c29 06-Apr-2010 Andrew Thompson <thompsa@FreeBSD.org>

MFC r203134

Add run(4), a driver for Ralink RT2700U/RT2800U/RT3000U USB 802.11agn devices.

This driver was written for OpenBSD by Damien Bergamini and ported over by
Akinori Furukoshi.


# 419ee982 30-Mar-2010 Marcel Moolenaar <marcel@FreeBSD.org>

MFC rev 199727, 200888, 201031, 202904, 203054, 203106, 203572, 203884,
204183, 204184, 204185, 204425, 204904, 204905, 205172, 205234, 205357,
205428, 205429, 205431, 205432, 205433, 205434, 205435, 205454, 205665,
205713, 205723, 205726 and 205727:

Bring ia64 machine-dependent changes from 9-current to 8-stable.


# d28f42f9 30-Mar-2010 Lawrence Stewart <lstewart@FreeBSD.org>

Add support for ALQ(9) to be compiled and loaded as a kernel module.

Sponsored by: FreeBSD Foundation
Reviewed by: dwmalone, jeff, rpaulo, rwatson
Approved by: kmacy (mentor)
MFC after: 1 month


# 96f36cee 29-Mar-2010 Warner Losh <imp@FreeBSD.org>

Arm defines intr_disable() as a macro, which causes problems for cxgb.
Rather than remove it for all architectures (which was a botch in
r205845), remove it only for arm and mips until that can be sorted out.

Pointy Hat: imp

Submitted by: Navdeep Parhar
MFC after: 7 days


# c99255b8 29-Mar-2010 Warner Losh <imp@FreeBSD.org>

Make all the modules build on arm (modulo ipfilter, which I'm looking
into):

o Don't build vpo and syscons on mips or arm either
o Add a section for mips and arm breakages, and document why.
This is easier than opting in on all the other architectures:
# no BUS_SPACE_UNSPECIFIED: bce, bwi, bwn, mfi, mpt, siba_bwn
# No barrier instruction support (specific to this driver): sym
# no uart_cpu_$MACHINE_ARCH: uart

(mips has, by inspection, the same issues as arm, so ditto for it)

MFC after: 7 days


# 8d02363b 27-Mar-2010 Marcel Moolenaar <marcel@FreeBSD.org>

Bring up-to-date:
o Switch to ITANIUM2 has the cpu. This has absolutely no effect
on the code, but makes for a better example.
o Drop COMPAT_FREEBSD6. We're tier 2, so you're supposed to run
8-stable or newer.
o Add PREEMPTION. It works now.
o Remove HWPMC_HOOKS. We don't have support for hwpmc yet.

o Add a bunch of new devices: atapist, hptiop, amr, ips, twa, igb,
ixgbe, ae, age, alc, ale, bce, bfe, et, jme, msk, nge, sk, ste,
stge, tx, vge, axe, rue, udav, fwip, and all USB serial.
o Remove "legacy" devices: le, vx, dc, pcn, rl, sis.

Make sure to the module list is a superset of what goes into GENERIC.


# d319cc96 08-Mar-2010 Nathan Whitehorn <nwhitehorn@FreeBSD.org>

Enable tmpfs unconditionally on all platforms. No one I spoke to could
remember why it was x86 only, and it works just as well on at least powerpc
as on x86.


# aa3d547d 01-Mar-2010 Xin LI <delphij@FreeBSD.org>

MFC x86emu/x86bios emulator and make previously i386 only dpms and vesa
framebuffer driver, etc. work on FreeBSD/amd64.

A significant amount of improvements were done by jkim@ during the recent
months to make vesa(4) work better, over the initial code import. This
work is based on OpenBSD's x86emu implementation and contributed by
paradox <ddkprog yahoo com> and swell.k at gmail com.

Hopefully I have stolen all their work to 8-STABLE :)

All bugs in this commit are mine, as usual.


# 61c8bb57 25-Feb-2010 Weongyo Jeong <weongyo@FreeBSD.org>

Add bwn(4) driver to the build.


# c6bf5f18 22-Feb-2010 Marius Strobl <marius@FreeBSD.org>

- Factor out the code shared between NFS client and server into its own
module so it's not present twice.
- Move nfs_realign() from the NFS client to the shared NFS code and
remove the NFS server version in order to reduce code duplication.
The shared version now uses a second parameter how, which is passed
on to m_get(9) and m_getcl(9) as the server used M_WAIT while the
client requires M_DONTWAIT, and replaces the the previously unused
parameter hsiz.
- Change nfs_realign() to use nfsm_aligned() so as with other NFS code
the alignment check isn't actually performed on platforms without
strict alignment requirements for performance reasons because as the
comment suggests unaligned data only occasionally occurs with TCP.
- Change fha_extract_info() to use nfs_realign() with M_DONTWAIT rather
than M_WAIT because it's called with the RPC sp_lock held.


# c245df76 19-Feb-2010 Marius Strobl <marius@FreeBSD.org>

Hook up nfs_common missed in r203968.

Submitted by: kib


# 6eba1d69 31-Jan-2010 Weongyo Jeong <weongyo@FreeBSD.org>

Hook up the siba_bwn module to the build.


# c261b502 30-Jan-2010 Antoine Brodin <antoine@FreeBSD.org>

MFC r202448 to stable/8:
Do not build netgraph kernel modules if WITHOUT_NETGRAPH is set in src.conf
Submitted by: bf


# 069f1a80 28-Jan-2010 Andrew Thompson <thompsa@FreeBSD.org>

Add run(4), a driver for Ralink RT2700U/RT2800U/RT3000U USB 802.11agn devices.

This driver was written for OpenBSD by Damien Bergamini and ported over by
Akinori Furukoshi.


# 6f1bbd83 25-Jan-2010 Pyun YongHyeon <yongari@FreeBSD.org>

Build smbfs kernel module on sparc64.


# 4e31204f 21-Jan-2010 Christian Brueffer <brueffer@FreeBSD.org>

MFC: r202290

Build iwi(4) and iwifw(4) modules on amd64 as well.


# abae4e8a 16-Jan-2010 Antoine Brodin <antoine@FreeBSD.org>

Do not build netgraph kernel modules if WITHOUT_NETGRAPH is set in src.conf

Submitted by: bf
MFC after: 2 weeks


# 8e52edcf 15-Jan-2010 Marius Strobl <marius@FreeBSD.org>

MFC: r202006

Add epic(4), a driver for the front panel LEDs in Sun Fire V215/V245.
It's named after the driver doing the same job in OpenSolaris.


# 1aa1169d 14-Jan-2010 Christian Brueffer <brueffer@FreeBSD.org>

Build iwi(4) and iwifw(4) modules on amd64 as well.

PR: 113117
Submitted by: "O. Hartmann" <ohartman@zedat.fu-berlin.de>
MFC after: 1 week


# 319570f9 10-Jan-2010 Marius Strobl <marius@FreeBSD.org>

Add epic(4), a driver for the front panel LEDs in Sun Fire V215/V245.
It's named after the driver doing the same job in OpenSolaris.


# 5e860e7b 20-Dec-2009 Andriy Gapon <avg@FreeBSD.org>

MFC r199969: amdsbwd: new driver for AMD SB600/SB7xx watchdog timer


# a1778929 05-Dec-2009 Bjoern A. Zeeb <bz@FreeBSD.org>

MFC r197518:

lindev(4) [1] is supposed to be a collection of linux-specific pseudo
devices that we also support, just not by default (thus only LINT or
module builds by default).

While currently there is only "/dev/full" [2], we are planning to see more
in the future. We may decide to change the module/dependency logic in the
future should the list grow too long.

This is not part of linux.ko as also non-linux binaries like kFreeBSD
userland or ports can make use of this as well.

Suggested by: rwatson [1] (name)
Submitted by: ed [2]
Discussed with: markm, ed, rwatson, kib (weeks ago)
Reviewed by: rwatson, brueffer (prev. version)
PR: kern/68961


# 5022f21b 30-Nov-2009 Andriy Gapon <avg@FreeBSD.org>

amdsbwd: new driver for AMD SB600/SB7xx watchdog timer

The hardware is compliant with WDRT specification, so I originally
considered including generic WDRT watchdog support, but decided
against it, because I couldn't find anyone to the code for me.
WDRT seems to be not very popular.
Besides, generic WDRT porbably requires a slightly different driver
approach.

Reviewed by: des, gavin, rpaulo
MFC after: 3 weeks


# 2df1facb 01-Nov-2009 Andriy Gapon <avg@FreeBSD.org>

MFC 198279: fix sorting of some amd* entries in some makefiles


# 2b201a17 20-Oct-2009 Andriy Gapon <avg@FreeBSD.org>

minor: fix sorting of some amd* entries in some makefiles

MFC after: 1 week


# 4507f02e 25-Sep-2009 Bjoern A. Zeeb <bz@FreeBSD.org>

lindev(4) [1] is supposed to be a collection of linux-specific pseudo
devices that we also support, just not by default (thus only LINT or
module builds by default).

While currently there is only "/dev/full" [2], we are planning to see more
in the future. We may decide to change the module/dependency logic in the
future should the list grow too long.

This is not part of linux.ko as also non-linux binaries like kFreeBSD
userland or ports can make use of this as well.

Suggested by: rwatson [1] (name)
Submitted by: ed [2]
Discussed with: markm, ed, rwatson, kib (weeks ago)
Reviewed by: rwatson, brueffer (prev. version)
PR: kern/68961
MFC after: 6 weeks


# a57707e7 21-Sep-2009 Xin LI <delphij@FreeBSD.org>

Build x86bios only for i386/amd64 for now. More work is required
to make these functional on other architectures, and the current
code breaks sparc64 and powerpc.

Spotted by: tinderbox via des


# 205d67b0 21-Sep-2009 Xin LI <delphij@FreeBSD.org>

Collapase interrupt supporting functions to a new module, and switch from
x86emu to this new module.

This changeset also brings a fix for bugs introduced with the initial
x86emu commit, which prevents the user from using some display mode or
cause instant reboots during mode switch.

Submitted by: paradox <ddkprog yahoo com>


# 372c7337 21-Sep-2009 Xin LI <delphij@FreeBSD.org>

Enable s3pci on amd64 which works on top of VESA, and allow
static building it into kernel on i386 and amd64.

Submitted by: swell.k at gmail.com


# ee5e90da 09-Sep-2009 Xin LI <delphij@FreeBSD.org>

- Teach vesa(4) and dpms(4) about x86emu. [1]
- Add vesa kernel options for amd64.
- Connect libvgl library and splash kernel modules to amd64 build.
- Connect manual page dpms(4) to amd64 build.
- Remove old vesa/dpms files.

Submitted by: paradox <ddkprog yahoo com> [1], swell k at gmail.com
(with some minor tweaks)


# efba048e 08-Sep-2009 Xin LI <delphij@FreeBSD.org>

- Port x86emu to FreeBSD.
- Connect x86emu to build.

Tested with: make universe
Submitted by: swell.k at gmail com


# 3132ad0d 28-Aug-2009 Warner Losh <imp@FreeBSD.org>

Connect bwi up to the build. While there are some problems with this
driver still, it generally works well for most people most of the
time. It is still too green for GENERIC, however.

Submitted by: many (latest being kwm@)
MFC after: 2 days (before RC1 if possible)


# f105c8be 28-Aug-2009 Ed Schouten <ed@FreeBSD.org>

Hook up the pty(4) module to the build.


# d0ea4743 25-Jul-2009 Bjoern A. Zeeb <bz@FreeBSD.org>

Update epair(4) to the new netisr implementation and polish
things a bit:
- use dpcpu data to track the ifps with packets queued up,
- per-cpu locking and driver flags
- along with .nh_drainedcpu and NETISR_POLICY_CPU.
- Put the mbufs in flight reference count, preventing interfaces
from going away, under INVARIANTS as this is a general problem
of the stack and should be solved in if.c/netisr but still good
to verify the internal queuing logic.
- Permit changing the MTU to virtually everythinkg like we do for loopback.

Hook epair(4) up to the build.

Approved by: re (kib)


# 67b87e44 20-Jul-2009 Alexander Motin <mav@FreeBSD.org>

Add `siis` CAM driver for SiliconImage SiI3124/3132/3531 SATA2 controllers.

Driver supports Serial ATA and ATAPI devices, Port Multipliers
(including FIS-based switching), hardware command queues (31 command
per port) and Native Command Queuing. This is probably the second on
popularity, after AHCI, type of SATA2 controllers, that benefits from
using CAM, because of hardware command queuing support.

Approved by: re (kib)


# 52c9ce25 10-Jul-2009 Scott Long <scottl@FreeBSD.org>

Separate the parallel scsi knowledge out of the core of the XPT, and
modularize it so that new transports can be created.

Add a transport for SATA

Add a periph+protocol layer for ATA

Add a driver for AHCI-compliant hardware.

Add a maxio field to CAM so that drivers can advertise their max
I/O capability. Modify various drivers so that they are insulated
from the value of MAXPHYS.

The new ATA/SATA code supports AHCI-compliant hardware, and will override
the classic ATA driver if it is loaded as a module at boot time or compiled
into the kernel. The stack now support NCQ (tagged queueing) for increased
performance on modern SATA drives. It also supports port multipliers.

ATA drives are accessed via 'ada' device nodes. ATAPI drives are
accessed via 'cd' device nodes. They can all be enumerated and manipulated
via camcontrol, just like SCSI drives. SCSI commands are not translated to
their ATA equivalents; ATA native commands are used throughout the entire
stack, including camcontrol. See the camcontrol manpage for further
details. Testing this code may require that you update your fstab, and
possibly modify your BIOS to enable AHCI functionality, if available.

This code is very experimental at the moment. The userland ABI/API has
changed, so applications will need to be recompiled. It may change
further in the near future. The 'ada' device name may also change as
more infrastructure is completed in this project. The goal is to
eventually put all CAM busses and devices until newbus, allowing for
interesting topology and management options.

Few functional changes will be seen with existing SCSI/SAS/FC drivers,
though the userland ABI has still changed. In the future, transports
specific modules for SAS and FC may appear in order to better support
the topologies and capabilities of these technologies.

The modularization of CAM and the addition of the ATA/SATA modules is
meant to break CAM out of the mold of being specific to SCSI, letting it
grow to be a framework for arbitrary transports and protocols. It also
allows drivers to be written to support discrete hardware without
jeopardizing the stability of non-related hardware. While only an AHCI
driver is provided now, a Silicon Image driver is also in the works.
Drivers for ICH1-4, ICH5-6, PIIX, classic IDE, and any other hardware
is possible and encouraged. Help with new transports is also encouraged.

Submitted by: scottl, mav
Approved by: re


# b16af7f1 05-Jul-2009 Edward Tomasz Napierala <trasz@FreeBSD.org>

When the kernel is configured without "options FFS", build UFS as a module
without requiring any special build flags.

Approved by: re (kib)


# 119051cb 15-Jun-2009 Marius Strobl <marius@FreeBSD.org>

Add cas(4), a driver for Sun Cassini/Cassini+ and National Semiconductor
DP83065 Saturn Gigabit Ethernet controllers. These are the successors
of the Sun GEM controllers and still have a similar but extended transmit
logic. As such this driver is based on gem(4).
Thanks to marcel@ for providing a Sun Quad GigaSwift Ethernet UTP (QGE)
card which was vital for getting this driver to work on architectures
not using Open Firmware.

Approved by: re (kib)
MFC after: 2 weeks


# d68875eb 09-Jun-2009 Pyun YongHyeon <yongari@FreeBSD.org>

Add alc(4), a driver for Atheros AR8131/AR8132 PCIe ethernet
controller. These controllers are also known as L1C(AR8131) and
L2C(AR8132) respectively. These controllers resembles the first
generation controller L1 but usage of different descriptor format
and new register mappings over L1 register space requires a new
driver. There are a couple of registers I still don't understand
but the driver seems to have no critical issues for performance and
stability. Currently alc(4) supports the following hardware
features.
o MSI
o TCP Segmentation offload
o Hardware VLAN tag insertion/stripping
o Tx/Rx interrupt moderation
o Hardware statistics counters(dev.alc.%d.stats)
o Jumbo frame
o WOL
AR8131/AR8132 also supports Tx checksum offloading but I disabled
it due to stability issues. I'm not sure this comes from broken
sample boards or hardware bugs. If you know your controller works
without problems you can still enable it. The controller has a
silicon bug for Rx checksum offloading, so the feature was not
implemented.
I'd like to say big thanks to Atheros. Atheros kindly sent sample
boards to me and answered several questions I had.

HW donated by: Atheros Communications, Inc.


# cf4c5a53 01-Jun-2009 Sam Leffler <sam@FreeBSD.org>

driver for Marvell 88W8363 Wireless LAN controller


# 9eb9db93 31-May-2009 Nathan Whitehorn <nwhitehorn@FreeBSD.org>

Introduce support for cpufreq on PowerPC with the dynamic frequency
switching capabilities of the MPC7447A and MPC7448.


# bcbdacdd 28-May-2009 Rick Macklem <rmacklem@FreeBSD.org>

Add the kernel build glue for the experimental NFS subsystem that
includes support for NFSv4. The subsystem can optionally be linked
into the kernel using the two options:
NFSCL - the client
NFSD - the server
It is also built as three modules:
nfscl - the client
nfsd - the server
nfscommon - functions shared by the client and server

Approved by: kib (mentor)


# 00a5db46 26-May-2009 Stacey Son <sson@FreeBSD.org>

Add the ksyms(4) pseudo driver. The ksyms driver allows a process to
get a quick snapshot of the kernel's symbol table including the symbols
from any loaded modules (the symbols are all merged into one symbol
table). Unlike like other implementations, this ksyms driver maps
memory in the process memory space to store the snapshot at the time
/dev/ksyms is opened. It also checks to see if the process has already
a snapshot open and won't allow it to open /dev/ksyms it again until it
closes first. This prevents kernel and process memory from being
exhausted. Note that /dev/ksyms is used by the lockstat(1) command.

Reviewed by: gallatin kib (freebsd-arch)
Approved by: gnn (mentor)


# cae597f3 01-May-2009 Sam Leffler <sam@FreeBSD.org>

add ralfw


# 37dd6c71 19-Apr-2009 Nathan Whitehorn <nwhitehorn@FreeBSD.org>

Build sound modules on PowerPC.


# 6cf6d557 16-Apr-2009 Robert Watson <rwatson@FreeBSD.org>

Garbage collect unbuildable and unusable non-MPSAFE network device
drivers that depended on the historic IFF_NEEDSGIANT compatibility
mechanism:

ar(4)
ray(4)
sr(4)

Discussed on: arch@


# 45452edc 12-Apr-2009 Rick Macklem <rmacklem@FreeBSD.org>

Change nfsserver so that it uses the nfssvc() system call provided
in sys/nfs/nfs_nfssvc.c by registering with it using the
nfsd_call_nfsserver function pointer. Also, add the build glue for
nfs_nfssvc.c optionally based on "nfsserver" and also as a loadable
module.

Submitted by: rmacklem
Reviewed by: kib
Approved by: kib (mentor)


# b82183f6 24-Mar-2009 Marius Strobl <marius@FreeBSD.org>

Revert unintended part of r190375.


# e145f329 24-Mar-2009 Marius Strobl <marius@FreeBSD.org>

Given that zfs.ko depends on opensolaris.ko also build the latter by
default on sparc64.


# e5adda3d 15-Mar-2009 Robert Watson <rwatson@FreeBSD.org>

Remove IFF_NEEDSGIANT, a compatibility infrastructure introduced
in FreeBSD 5.x to allow network device drivers to run with Giant
despite the network stack being Giant-free. This significantly
simplifies calls into ioctl() on network interfaces, especially
in the multicast code, as well as eliminates deferred invocation
of interface if_start routines.

Disable the build on device drivers still depending on
IFF_NEEDSGIANT as they no longer compile. They will be removed
in a few weeks if they haven't been made MPSAFE in that time.
Disabled drivers:

if_ar
if_axe
if_aue
if_cdce
if_cue
if_kue
if_ray
if_rue
if_rum
if_sr
if_udav
if_ural
if_zyd

Drivers that were already disabled because of tty changes:

if_ppp
if_sl

Discussed on: arch@


# fc1f75e5 13-Mar-2009 Rui Paulo <rpaulo@FreeBSD.org>

Rename the k8temp driver to amdtemp.

MFC after: 2 weeks


# 7d0d268b 23-Feb-2009 Andrew Thompson <thompsa@FreeBSD.org>

Hook up new USB modules.


# 3975e3a1 23-Feb-2009 Andrew Thompson <thompsa@FreeBSD.org>

Move usb to a graveyard location under sys/legacy/dev, it is intended that the
new USB2 stack will fully replace this for 8.0.

Remove kernel modules, a subsequent commit will update conf/files. Unhook
usbdevs from the build.


# 5c07a171 12-Feb-2009 Olivier Houchard <cognet@FreeBSD.org>

Unbreak build by making svr4 conditional on i386.


# 999d2584 12-Feb-2009 Nick Hibma <n_hibma@FreeBSD.org>

Fix a few problems related to building modules in /sys/modules (not
checked whether this applies to builds in /sys/*/compile/* as well):

- Create empty opt_*.h files were missing
- Hook up svr4 to the build. It compiles fine here, so no reason to
disconnect it in the Makefile. were missing
- Hook up svr4 to the build. It compiles fine here, so no reason to
disconnect it in the Makefile.


# 37af314c 23-Jan-2009 Weongyo Jeong <weongyo@FreeBSD.org>

urtw(4) works also on amd64.

Tested by: kevlo


# ac9b2052 22-Jan-2009 Weongyo Jeong <weongyo@FreeBSD.org>

Connect urtw(4) to the i386 build only because it's not tested on amd64
architecture but expect it'd work. In cases on other architectures it'd
not work yet.


# 9045c736 12-Jan-2009 Jung-uk Kim <jkim@FreeBSD.org>

Connect padlock(4) to amd64 build for VIA Nano processors.


# 2a8d8e7c 14-Dec-2008 Sam Leffler <sam@FreeBSD.org>

Combine ath rate control modules with ath after bringing ath_hal
src into the tree. The old split was balanced on module dependencies
and symbol exposure that no longer exists. Users that want a module
setup with rate control algorithm other than sample must override
ATH_RATE in the ath module Makefile.

Reviewed by: imp


# 33644623 01-Dec-2008 Sam Leffler <sam@FreeBSD.org>

Switch to ath hal source code. Note this removes the ath_hal
module; the ath module now brings in the hal support. Kernel
config files are almost backwards compatible; supplying

device ath_hal

gives you the same chip support that the binary hal did but you
must also include

options AH_SUPPORT_AR5416

to enable the extended format descriptors used by 11n parts.
It is now possible to control the chip support included in a
build by specifying exactly which chips are to be supported
in the config file; consult ath_hal(4) for information.


# 3c6e15bc 12-Nov-2008 Pyun YongHyeon <yongari@FreeBSD.org>

Add ale(4), a driver for Atheros AR8121/AR8113/AR8114 PCIe ethernet
controller. The controller is also known as L1E(AR8121) and
L2E(AR8113/AR8114). Unlike its predecessor Attansic L1,
AR8121/AR8113/AR8114 uses completely different Rx logic such that
it requires separate driver. Datasheet for AR81xx is not available
to open source driver writers but it shares large part of Tx and
PHY logic of L1. I still don't understand some part of register
meaning and some MAC statistics counters but the driver seems to
have no critical issues for performance and stability.

The AR81xx requires copy operation to pass received frames to upper
stack such that ale(4) consumes a lot of CPU cycles than that of
other controller. A couple of silicon bugs also adds more CPU
cycles to address the known hardware bug. However, if you have fast
CPU you can still saturate the link.
Currently ale(4) supports the following hardware features.
- MSI.
- TCP Segmentation offload.
- Hardware VLAN tag insertion/stripping with checksum offload.
- Tx TCP/UDP checksum offload and Rx IP/TCP/UDP checksum offload.
- Tx/Rx interrupt moderation.
- Hardware statistics counters.
- Jumbo frame.
- WOL.

AR81xx PCIe ethernet controllers are mainly found on ASUS EeePC or
P5Q series of ASUS motherboards. Special thanks to Jeremy Chadwick
who sent the hardware to me. Without his donation writing a driver
for AR81xx would never have been possible. Big thanks to all people
who reported feedback or tested patches.

HW donated by: koitsu
Tested by: bsam, Joao Barros <joao.barros <> gmail DOT com >
Jan Henrik Sylvester <me <> janh DOT de >
Ivan Brawley < ivan <> brawley DOT id DOT au >,
CURRENT ML


# 932ef5b5 05-Nov-2008 Ed Schouten <ed@FreeBSD.org>

Reintroduce the snp(4) driver.

Because the TTY hooks interface was not finished when I imported the
MPSAFE TTY layer, I had to disconnect the snp(4) driver. This snp(4)
implementation has been sitting in my P4 branch for some time now.
Unfortunately it still doesn't use the same error handling as snp(4)
(returning codes through FIONREAD), but it should already be usable.

I'm committing this to SVN, hoping someone else could polish off its
rough edges. It's always better than having a broken driver sitting in
the tree.


# eabe30fc 03-Nov-2008 Alfred Perlstein <alfred@FreeBSD.org>

Bring in USB4BSD, Hans Petter Selasky rework of the USB stack
that includes significant features and SMP safety.

This commit includes a more or less complete rewrite of the *BSD USB
stack, including Host Controller and Device Controller drivers and
updating all existing USB drivers to use the new USB API:

1) A brief feature list:

- A new and mutex enabled USB API.

- Many USB drivers are now running Giant free.

- Linux USB kernel compatibility layer.

- New UGEN backend and libusb library, finally solves the "driver
unloading" problem. The new BSD licensed libusb20 library is fully
compatible with libusb-0.1.12 from sourceforge.

- New "usbconfig" utility, for easy configuration of USB.

- Full support for Split transactions, which means you can use your
full speed USB audio device on a high speed USB HUB.

- Full support for HS ISOC transactions, which makes writing drivers
for various HS webcams possible, for example.

- Full support for USB on embedded platforms, mostly cache flushing
and buffer invalidating stuff.

- Safer parsing of USB descriptors.

- Autodetect of annoying USB install disks.

- Support for USB device side mode, also called USB gadget mode,
using the same API like the USB host side. In other words the new
USB stack is symmetric with regard to host and device side.

- Support for USB transfers like I/O vectors, means more throughput
and less interrupts.

- ... see the FreeBSD quarterly status reports under "USB project"

2) To enable the driver in the default kernel build:

2.a) Remove all existing USB device options from your kernel config
file.

2.b) Add the following USB device options to your kernel configuration
file:

# USB core support
device usb2_core

# USB controller support
device usb2_controller
device usb2_controller_ehci
device usb2_controller_ohci
device usb2_controller_uhci

# USB mass storage support
device usb2_storage
device usb2_storage_mass

# USB ethernet support, requires miibus
device usb2_ethernet
device usb2_ethernet_aue
device usb2_ethernet_axe
device usb2_ethernet_cdce
device usb2_ethernet_cue
device usb2_ethernet_kue
device usb2_ethernet_rue
device usb2_ethernet_dav

# USB wireless LAN support
device usb2_wlan
device usb2_wlan_rum
device usb2_wlan_ral
device usb2_wlan_zyd

# USB serial device support
device usb2_serial
device usb2_serial_ark
device usb2_serial_bsa
device usb2_serial_bser
device usb2_serial_chcom
device usb2_serial_cycom
device usb2_serial_foma
device usb2_serial_ftdi
device usb2_serial_gensa
device usb2_serial_ipaq
device usb2_serial_lpt
device usb2_serial_mct
device usb2_serial_modem
device usb2_serial_moscom
device usb2_serial_plcom
device usb2_serial_visor
device usb2_serial_vscom

# USB bluetooth support
device usb2_bluetooth
device usb2_bluetooth_ng

# USB input device support
device usb2_input
device usb2_input_hid
device usb2_input_kbd
device usb2_input_ms

# USB sound and MIDI device support
device usb2_sound

2) To enable the driver at runtime:

2.a) Unload all existing USB modules. If USB is compiled into the
kernel then you might have to build a new kernel.

2.b) Load the "usb2_xxx.ko" modules under /boot/kernel having the same
base name like the kernel device option.

Submitted by: Hans Petter Selasky hselasky at c2i dot net
Reviewed by: imp, alfred


# 831f5dcf 21-Oct-2008 Alexander Motin <mav@FreeBSD.org>

Import sdhci (PCI SD Host Controller) driver.
Driver supports PCI devices with class 8 and subclass 5 according to
SD Host Controller Specification.

Update NOTES, enable module and static build.
Enable related mmc and mmcsd modules build.

Discussed on: mobile@, current@


# d7f03759 19-Oct-2008 Ulf Lilleengen <lulf@FreeBSD.org>

- Import the HEAD csup code which is the basis for the cvsmode work.


# 483b9e47 09-Oct-2008 Nick Hibma <n_hibma@FreeBSD.org>

Say hello to the u3g driver, implementing support for 3G modems.

This was located in the ubsa driver, but should be moved into a separate
driver:

- 3G modems provide multiple serial ports to allow AT commands while the PPP
connection is up.
- 3G modems do not provide baud rate or other serial port settings.
- Huawei cards need specific initialisation.
- ubsa is for Belkin adapters, an Linuxy choice for another device like 3G.

Speeds achieved here with a weak signal at best is ~40kb/s (UMTS). No spooky
STALLED messages as well.

Next: Move over all entries for Sierra and Novatel cards once I have found
testers, and implemented serial port enumeration for Sierra (or rather have
Andrea Guzzo do it). They list all endpoints in 1 iface instead of 4 ifaces.

Submitted by: aguzzo@anywi.com
MFC after: 3 weeks


# 5d4621f4 09-Oct-2008 Nick Hibma <n_hibma@FreeBSD.org>

Add modules for the HCI part of USB. This is convenient when having a UHCI
controller in your laptop but inserting a (OHCI-based) Option Cardbus card.


# ba26d470 03-Oct-2008 Stanislav Sedov <stas@FreeBSD.org>

- Add driver for Attansic L2 FastEthernet controller found on
Asus EeePC and some Asus mainboards.

Reviewed by: yongari, rpaulo, jhb
Tested by: many
Approved by: kib (mentor)
MFC after: 1 week


# 6ac5bf90 11-Sep-2008 Takanori Watanabe <takawata@FreeBSD.org>

Connect ufoma(4) to build and,
disable handsfree interface that is not yet ported to newtty.


# 26e46883 10-Sep-2008 John Baldwin <jhb@FreeBSD.org>

Resurrect the sbni(4) driver. Someone finally tested the MPSAFE patches and
the driver worked ok with them.

Tested by: friends of yar


# 17a35b08 09-Sep-2008 Rui Paulo <rpaulo@FreeBSD.org>

Build k8temp on i386.


# 4cd8dc22 24-Aug-2008 Warner Losh <imp@FreeBSD.org>

Add uipaq. HTC smart phones use it, and it seems like a reasonable
thing to have laying around.


# aa7c1c05 23-Aug-2008 John Baldwin <jhb@FreeBSD.org>

Add a very simple dpms(4) driver that uses the VESA BIOS DPMS calls to
turn off the external display during suspend and restore it to its
original state on resume.

MFC after: 2 weeks


# a7842624 10-Aug-2008 Weongyo Jeong <weongyo@FreeBSD.org>

Connect upgt(4) to the build.


# a51aa5d1 09-Aug-2008 Philip Paeps <philip@FreeBSD.org>

Add glxsb(4) driver for the Security Block in AMD Geode LX processors (as
found in Soekris hardware, for instance). The hardware supports acceleration
of AES-128-CBC accessible through crypto(4) and supplies entropy to random(4).

TODO:

o Implement rndtest(4) support
o Performance enhancements

Submitted by: Patrick Lamaizière <patfbsd -at- davenulle.org>
Reviewed by: jhb, sam
MFC after: 1 week


# e085f869 08-Aug-2008 Stanislav Sedov <stas@FreeBSD.org>

- Add cpuctl(4) pseudo-device driver to provide access to some low-level
features of CPUs like reading/writing machine-specific registers,
retrieving cpuid data, and updating microcode.
- Add cpucontrol(8) utility, that provides userland access to
the features of cpuctl(4).
- Add subsequent manpages.

The cpuctl(4) device operates as follows. The pseudo-device node cpuctlX
is created for each cpu present in the systems. The pseudo-device minor
number corresponds to the cpu number in the system. The cpuctl(4) pseudo-
device allows a number of ioctl to be preformed, namely RDMSR/WRMSR/CPUID
and UPDATE. The first pair alows the caller to read/write machine-specific
registers from the correspondent CPU. cpuid data could be retrieved using
the CPUID call, and microcode updates are applied via UPDATE.

The permissions are inforced based on the pseudo-device file permissions.
RDMSR/CPUID will be allowed when the caller has read access to the device
node, while WRMSR/UPDATE will be granted only when the node is opened
for writing. There're also a number of priv(9) checks.

The cpucontrol(8) utility is intened to provide userland access to
the cpuctl(4) device features. The utility also allows one to apply
cpu microcode updates.

Currently only Intel and AMD cpus are supported and were tested.

Approved by: kib
Reviewed by: rpaulo, cokane, Peter Jeremy
MFC after: 1 month


# 200d80cd 03-Aug-2008 Ed Schouten <ed@FreeBSD.org>

Disconnect drivers that haven't been ported to MPSAFE TTY yet.

As clearly mentioned on the mailing lists, there is a list of drivers
that have not been ported to the MPSAFE TTY layer yet. Remove them from
the kernel configuration files. This means people can now still use
these drivers if they explicitly put them in their kernel configuration
file, which is good.

People should keep in mind that after August 10, these drivers will not
work anymore. Even though owners of the hardware are capable of getting
these drivers working again, I will see if I can at least get them to a
compilable state (if time permits).


# 744eaff7 18-Jul-2008 David Malone <dwmalone@FreeBSD.org>

Add an accept filter for TCP based DNS requests. It waits until the
whole first request is present before returning from accept.


# a78c3ed8 04-Jul-2008 John Baldwin <jhb@FreeBSD.org>

Remove the sbsh(4) driver. No one responded to requests for testing the
MPSAFE patches on current@ and stable@. This driver also has a fundamental
issue in that it sleeps when sending commands to the card including in the
if_init/if_start routines (which can be called from interrupt context). As
such, the driver shouldn't be working reliably even on 4.x.


# e9a31041 04-Jul-2008 John Baldwin <jhb@FreeBSD.org>

Remove the sbni(4) driver. No one responded to calls to test it on
current@ and stable@.


# 67c58e8a 04-Jul-2008 John Baldwin <jhb@FreeBSD.org>

Remove the cnw(4) driver. No one responded to calls to test it on current@
and stable@. It also is a driver for an older non-802.11 wireless PC card
that is quite slow in comparison to say, wi(4). I know Warner wants this
driver axed as well.


# 2c629857 04-Jul-2008 John Baldwin <jhb@FreeBSD.org>

Remove the oltr(4) driver. No one responded to calls for testing on
current@ and stable@ for the locking patches. The driver can always be
revived if someone tests it.

This driver also sleeps in its if_init routine, so it likely doesn't really
work at all anyway in modern releases.


# 94f923b6 04-Jul-2008 John Baldwin <jhb@FreeBSD.org>

Remove the arl(4) driver. It is reported to not work on 6.x or later
even though the driver hasn't changed since 4.x (last known working
release).


# 4d52a575 20-Jun-2008 Xin LI <delphij@FreeBSD.org>

Add et(4), a port of DragonFly's Agere ET1310 10/100/Gigabit
Ethernet device driver, written by sephe@

Obtained from: DragonFly
Sponsored by: iXsystems
MFC after: 2 weeks


# 53a609f0 13-Jun-2008 Wojciech A. Koszek <wkoszek@FreeBSD.org>

Remove obselete PECOFF image activator support.

PRs assigned at the time of removal: kern/80742

Discussed on: freebsd-current (silence), IRC
Tested by: make universe
Approved by: cognet (mentor)


# cf99524a 07-Jun-2008 Marcel Moolenaar <marcel@FreeBSD.org>

Add support for the Apple Big Mac (BMAC) Ethernet controller,
found on various Apple G3 models.

Submitted by: Nathan Whitehorn


# dddc2117 28-May-2008 John Baldwin <jhb@FreeBSD.org>

Add a module for cnw(4) and build it on i386.


# 75a1bf5f 26-May-2008 Pyun YongHyeon <yongari@FreeBSD.org>

Hook up jme(4) to the build.


# e4372ceb 25-May-2008 Robert Watson <rwatson@FreeBSD.org>

Remove netatm from HEAD as it is not MPSAFE and relies on the now removed
NET_NEEDS_GIANT. netatm has been disconnected from the build for ten
months in HEAD/RELENG_7. Specifics:

- netatm include files
- netatm command line management tools
- libatm
- ATM parts in rescue and sysinstall
- sample configuration files and documents
- kernel support as a module or in NOTES
- netgraph wrapper nodes for netatm
- ctags data for netatm.
- netatm-specific device drivers.

MFC after: 3 weeks
Reviewed by: bz
Discussed with: bms, bz, harti


# adab6548 23-May-2008 John Birrell <jb@FreeBSD.org>

Hook the DTrace kernel modules into the build.


# cfef026a 18-May-2008 Pyun YongHyeon <yongari@FreeBSD.org>

Hook up age(4) to the build.


# 53d68f00 05-May-2008 Kip Macy <kmacy@FreeBSD.org>

add rdma to build for i386 and amd64


# 3971d07b 29-Apr-2008 Sam Leffler <sam@FreeBSD.org>

Intel 4965 wireless driver (derived from openbsd driver of the same name)


# b032f27c 20-Apr-2008 Sam Leffler <sam@FreeBSD.org>

Multi-bss (aka vap) support for 802.11 devices.

Note this includes changes to all drivers and moves some device firmware
loading to use firmware(9) and a separate module (e.g. ral). Also there
no longer are separate wlan_scan* modules; this functionality is now
bundled into the wlan module.

Supported by: Hobnob and Marvell
Reviewed by: many
Obtained from: Atheros (some bits)


# f4463607 20-Apr-2008 Sam Leffler <sam@FreeBSD.org>

move awi to the Attic; it will not make the jump to the new world order

Reviewed by: imp


# 6f15a9e5 12-Apr-2008 Rui Paulo <rpaulo@FreeBSD.org>

Connect k8temp(4) to the build.


# 73c71cae 11-Apr-2008 Marius Strobl <marius@FreeBSD.org>

Hook up ZFS to the sparc64 build.

Approved by: pjd
MFC after: 2 weeks


# e76ee875 31-Mar-2008 Weongyo Jeong <weongyo@FreeBSD.org>

Add malo driver to the build

Approved by: thompsa (mentor)


# fa9d9930 27-Mar-2008 Doug Rabson <dfr@FreeBSD.org>

Add kernel module support for nfslockd and krpc. Use the module system
to detect (or load) kernel NLM support in rpc.lockd. Remove the '-k'
option to rpc.lockd and make kernel NLM the default. A user can still
force the use of the old user NLM by building a kernel without NFSLOCKD
and/or removing the nfslockd.ko module.


# 603d67ae 06-Mar-2008 Rink Springer <rink@FreeBSD.org>

Commit cmx(4), a driver for Omnikey CardMan 4040 PCMCIA smartcard readers.

PR: kern/114582
Submitted by: Daniel Roethlisberger <daniel@roe.ch>
Reviewed by: imp, myself
Tested by: johans, myself
MFC after: 2 weeks


# 2e7328e7 05-Mar-2008 Rink Springer <rink@FreeBSD.org>

Import uslcom(4) from OpenBSD - this is a driver for Silicon Laboratories
CP2101/CP2102 based USB serial adapters.

Reviewed by: imp, emaste
Obtained from: OpenBSD
MFC after: 2 weeks


# 57158a06 29-Feb-2008 Jack F Vogel <jfv@FreeBSD.org>

Last change was incomplete, instantiate the igb variable...


# 6f48e680 29-Feb-2008 Jack F Vogel <jfv@FreeBSD.org>

Add igb driver to the build


# 755d3f8a 29-Feb-2008 Paolo Pisati <piso@FreeBSD.org>

Hook ipfw_nat to the build.


# 869a4089 03-Feb-2008 Christian Brueffer <brueffer@FreeBSD.org>

Don't build the rr232x module, it has been removed.

Approved by: rwatson (mentor)


# bfa0795b 16-Dec-2007 Kip Macy <kmacy@FreeBSD.org>

Add back in cxgb now that the includes are believed to be fixed


# 3bd3bd76 16-Dec-2007 Kip Macy <kmacy@FreeBSD.org>

Remove cxgb module from build until I can compensate for the lack of header
pollution on architectures other than amd64


# b063a422 14-Dec-2007 Scott Long <scottl@FreeBSD.org>

Add the 'hptrr' driver for supporting the following Highpoint RocketRAID
cards:

o RocketRAID 172x series
o RocketRAID 174x series
o RocketRAID 2210
o RocketRAID 222x series
o RocketRAID 2240
o RocketRAID 230x series
o RocketRAID 231x series
o RocketRAID 232x series
o RocketRAID 2340
o RocketRAID 2522

Many thanks to Highpoint for their continued support of FreeBSD.

Submitted by: Highpoint


# 03734771 08-Nov-2007 Benjamin Close <benjsc@FreeBSD.org>

Link wpi(4) into the build.

This includes:
o mtree (for legal/intel_wpi)
o manpage for i386/amd64 archs
o module for i386/amd64 archs
o NOTES for i386/amd64 archs

Approved by: mlaier (comentor)


# e702bc74 07-Nov-2007 Rui Paulo <rpaulo@FreeBSD.org>

Connect asmc to the build infrastructure.

Approved by: njl (mentor)
Reviewed by: njl (mentor)


# 67154eb2 31-Oct-2007 Sam Leffler <sam@FreeBSD.org>

add zyd

MFC after: 3 days


# c2a6fe61 26-Oct-2007 Yoshihiro Takahashi <nyan@FreeBSD.org>

Disable the coretemp and nvram on pc98.


# d5566384 25-Oct-2007 Peter Wemm <peter@FreeBSD.org>

Split /dev/nvram driver out of isa/clock.c for i386 and amd64. I have not
refactored it to be a generic device.
Instead of being part of the standard kernel, there is now a 'nvram' device
for i386/amd64. It is in DEFAULTS like io and mem, and can be turned off
with 'nodevice nvram'. This matches the previous behavior when it was
first committed.


# 9ae66142 16-Oct-2007 Ruslan Ermilov <ru@FreeBSD.org>

Rescue whitespace nits.


# 9f05d312 15-Oct-2007 Alexander Leidinger <netchild@FreeBSD.org>

Backout sensors framework.

Requested by: phk
Discussed on: cvs-all


# 8c11b231 15-Oct-2007 Ruslan Ermilov <ru@FreeBSD.org>

Sort.


# 989500bf 14-Oct-2007 Alexander Leidinger <netchild@FreeBSD.org>

Import it(4) and lm(4), supporting most popular Super I/O Hardware Monitors.

Submitted by: Constantine A. Murenin <cnst@FreeBSD.org>
Sponsored by: Google Summer of Code 2007 (GSoC2007/cnst-sensors)
Mentored by: syrinx
Tested by: many
OKed by: kensmith
Obtained from: OpenBSD (parts)


# 1ed3fed7 26-Sep-2007 Marius Strobl <marius@FreeBSD.org>

o Revert the part of if_gem.c rev. 1.35 which added a call to gem_stop()
to gem_attach() as the former access softc members not yet initialized
at that time and gem_reset() actually is enough to stop the chip. [1]
o Revise the use of gem_bitwait(); add bus_barrier() calls before calling
gem_bitwait() to ensure the respective bit has been written before we
starting polling on it and poll for the right bits to change, f.e. even
though we only reset RX we have to actually wait for both GEM_RESET_RX
and GEM_RESET_TX to clear. Add some additional gem_bitwait() calls in
places we've been missing them according to the GEM documentation.
Along with this some excessive DELAYs, which probably only were added
because of bugs in gem_bitwait() and its use in the first place, as
well as as have of an gem_bitwait() reimplementation in gem_reset_tx()
were removed.
o Add gem_reset_rxdma() and use it to deal with GEM_MAC_RX_OVERFLOW errors
more gracefully as unlike gem_init_locked() it resets the RX DMA engine
only, causing no link loss and the FIFOs not to be cleared. Also use it
deal with GEM_INTR_RX_TAG_ERR errors, with previously were unhandled.
This was based on information obtained from the Linux GEM and OpenSolaris
ERI drivers.
o Turn on workarounds for silicon bugs in the Apple GMAC variants.
This was based on information obtained from the Darwin GMAC and Linux GEM
drivers.
o Turn on "infinite" (i.e. maximum 31 * 64 bytes in length) DMA bursts.
This greatly improves especially RX performance.
o Optimize the RX path, this consists of:
- kicking the receiver as soon as we've a spare descriptor in gem_rint()
again instead of just once after all the ready ones have been handled;
- kicking the receiver the right way, i.e. as outlined in the GEM
documentation in batches of 4 and by pointing it to the descriptor
after the last valid one;
- calling gem_rint() before gem_tint() in gem_intr() as gem_tint() may
take quite a while;
- doubling the size of the RX ring to 256 descriptors.
Overall the RX performance of a GEM in a 1GHz Sun Fire V210 was improved
from ~100Mbit/s to ~850Mbit/s.
o In gem_add_rxbuf() don't assign the newly allocated mbuf to rxs_mbuf
before calling bus_dmamap_load_mbuf_sg(), if bus_dmamap_load_mbuf_sg()
fails we'll free the newly allocated mbuf, unable to recycle the
previous one but a NULL pointer dereference instead.
o In gem_init_locked() honor the return value of gem_meminit().
o Simplify gem_ringsize() and dont' return garbage in the default case.
Based on OpenBSD.
o Don't turn on MAC control, MIF and PCS interrupts unless GEM_DEBUG is
defined as we don't need/use these interrupts for operation.
o In gem_start_locked() sync the DMA maps of the descriptor rings before
every kick of the transmitter and not just once after enqueuing all
packets as the NIC might instantly start transmitting after we kicked
it the first time.
o Keep state of the link state and use it to enable or disable the MAC
in gem_mii_statchg() accordingly as well as to return early from
gem_start_locked() in case the link is down. [3]
o Initialize the maximum frame size to a sane value.
o In gem_mii_statchg() enable carrier extension if appropriate.
o Increment if_ierrors in case of an GEM_MAC_RX_OVERFLOW error and in
gem_eint(). [3]
o Handle IFF_ALLMULTI correctly; don't set it if we've turned promiscuous
group mode on and don't clear the flag if we've disabled promiscuous
group mode (these were mostly NOPs though). [2]
o Let gem_eint() also report GEM_INTR_PERR errors.
o Move setting sc_variant from gem_pci_probe() to gem_pci_attach() as
device probe methods are not supposed to touch the softc.
o Collapse sc_inited and sc_pci into bits for sc_flags.
o Add CTASSERTs ensuring that GEM_NRXDESC and GEM_NTXDESC are set to
legal values.
o Correctly set up for 802.3x flow control, though #ifdef out the code
that actually enables it as this needs more testing and mainly a proper
framework to support it.
o Correct and add some conversions from hard-coded functions names to
__func__ which were borked or forgotten in if_gem.c rev. 1.42.
o Use PCIR_BAR instead of a homegrown macro.
o Replace sc_enaddr[6] with sc_enaddr[ETHER_ADDR_LEN].
o In gem_pci_attach() in case attaching fails release the resources in
the opposite order they were allocated.
o Make gem_reset() static to if_gem.c as it's not needed outside that
module.
o Remove the GEM_GIGABIT flag and the associated code; GEM_GIGABIT was
never set and the associated code was in the wrong place.
o Remove sc_mif_config; it was only used to cache the contents of the
respective register within gem_attach().
o Remove the #ifdef'ed out NetBSD/OpenBSD code for establishing a suspend
hook as it will never be used on FreeBSD.
o Also probe Apple Intrepid 2 GMAC and Apple Shasta GMAC, add support for
Apple K2 GMAC. Based on OpenBSD.
o Add support for Sun GBE/P cards, or in other words actually add support
for cards based on GEM to gem(4). This mainly consists of adding support
for the TBI of these chips. Along with this the PHY selection code was
rewritten to hardcode the PHY number for certain configurations as for
example the PHY of the on-board ERI of Blade 1000 shows up twice causing
no link as the second incarnation is isolated.
These changes were ported from OpenBSD with some additional improvements
and modulo some bugs.
o Add code to if_gem_pci.c allowing to read the MAC-address from the VPD on
systems without Open Firmware.
This is an improved version of my variant of the respective code in
if_hme_pci.c
o Now that gem(4) is MI enable it for all archs.

Pointed out by: yongari [1]
Suggested by: rwatson [2], yongari [3]
Tested on: i386 (GEM), powerpc (GMACs by marcel and yongari),
sparc64 (ERI and GEM)
Reviewed by: yongari
Approved by: re (kensmith)


# 83d18f22 15-Aug-2007 Dag-Erling Smørgrav <des@FreeBSD.org>

Add a driver for the on-die digital thermal sensor found on Intel Core
and newer CPUs (including Core 2 and Core / Core 2 based Xeons). The
driver attaches to each cpu device and creates a sysctl node in that
device's sysctl context (dev.cpu.N.temperature). When invoked, the
handler binds to the appropriate CPU to ensure a correct reading.

Submitted by: Rui Paulo <rpaulo@fnop.net>
Sponsored by: Google Summer of Code 2007
Tested by: des, marcus, Constantine A. Murenin, Ian FREISLICH
Approved by: re (kensmith)
MFC after: 3 weeks


# 05a4c1c1 24-Jul-2007 Scott Long <scottl@FreeBSD.org>

Attach the iscsi module build.

Approved by: re


# f9ae0280 19-Jul-2007 Andrew Gallatin <gallatin@FreeBSD.org>

- Enable static building of mxge(4) and its firmware.

- Add custom .c wrappers for the firmware, rather than the standard
firmware(9) generated firmware objects to work around toolchain
problems on ia64 involving linking objects produced by
ld -b -binary into the kernel.

- Move from using Myricom's ".dat" firmware blobs to using Myricom's
zlib compressed ".h" firmware header files. This is done to
facilitate the custom wrappers, and saves a fair amount of wired
memory in the case where the firmware is built in, or preloaded.

- Fix two compile issues in mxge which only appear on non-i386/amd64.

Reviewed by: mlaier, mav (earlier version with just zlib support)
Glanced at by: sam
Approved by: re (kensmith)


# 2b851aeb 14-Jul-2007 Robert Watson <rwatson@FreeBSD.org>

Disconnect netatm from the build as it is not MPSAFE and relies on
NET_NEEDS_GIANT, which will shortly be removed. This is done in a
away that it may be easily reattached to the build before 7.1 if
appropriate locking is added. Specifics:

- Don't install netatm include files
- Disconnect netatm command line management tools
- Don't build libatm
- Don't include ATM parts in rescue or sysinstall
- Don't install sample configuration files and documents
- Don't build kernel support as a module or in NOTES
- Don't build netgraph wrapper nodes for netatm

This removes the last remaining consumer of NET_NEEDS_GIANT.

Reviewed by: harti
Discussed with: bz, bms
Approved by: re (kensmith)


# 5091eab3 29-Jun-2007 Sam Leffler <sam@FreeBSD.org>

fix ia64 build

Approved by: re (followup to previous commit)


# fd3ddbd0 29-Jun-2007 Sam Leffler <sam@FreeBSD.org>

Neterion Xframe 10GbE Server/Storage adapter driver.

The nxge driver provides support for Neterion Xframe-I and Xframe-II
adapters. The driver supports TCP Segmentation Offload (TSO/LSO),
Jumbo frames (5 buffer mode), Header separation (2 and 3 Receive
buffer modes), VLAN, and Promiscuous mode.

Submitted by: Neterion
Reviewed by: rwatson
Approved by: re (kensmith)


# d1fa59e9 15-Jun-2007 Xin LI <delphij@FreeBSD.org>

MFp4: Add tmpfs, an efficient memory file system.

Please note that, this is currently considered as an
experimental feature so there could be some rough
edges. Consult http://wiki.freebsd.org/TMPFS for
more information.

For now, connect tmpfs to build on i386 and amd64
architectures only. Please let us know if you have
success with other platforms.

This work was developed by Julio M. Merino Vidal
for NetBSD as a SoC project; Rohit Jalan ported it
from NetBSD to FreeBSD. Howard Su and Glen Leeder
are worked on it to continue this effort.

Obtained from: NetBSD via p4
Submitted by: Howard Su (with some minor changes)
Approved by: re (kensmith)


# 68e8e04e 10-Jun-2007 Sam Leffler <sam@FreeBSD.org>

Update 802.11 wireless support:
o major overhaul of the way channels are handled: channels are now
fully enumerated and uniquely identify the operating characteristics;
these changes are visible to user applications which require changes
o make scanning support independent of the state machine to enable
background scanning and roaming
o move scanning support into loadable modules based on the operating
mode to enable different policies and reduce the memory footprint
on systems w/ constrained resources
o add background scanning in station mode (no support for adhoc/ibss
mode yet)
o significantly speedup sta mode scanning with a variety of techniques
o add roaming support when background scanning is supported; for now
we use a simple algorithm to trigger a roam: we threshold the rssi
and tx rate, if either drops too low we try to roam to a new ap
o add tx fragmentation support
o add first cut at 802.11n support: this code works with forthcoming
drivers but is incomplete; it's included now to establish a baseline
for other drivers to be developed and for user applications
o adjust max_linkhdr et. al. to reflect 802.11 requirements; this eliminates
prepending mbufs for traffic generated locally
o add support for Atheros protocol extensions; mainly the fast frames
encapsulation (note this can be used with any card that can tx+rx
large frames correctly)
o add sta support for ap's that beacon both WPA1+2 support
o change all data types from bsd-style to posix-style
o propagate noise floor data from drivers to net80211 and on to user apps
o correct various issues in the sta mode state machine related to handling
authentication and association failures
o enable the addition of sta mode power save support for drivers that need
net80211 support (not in this commit)
o remove old WI compatibility ioctls (wicontrol is officially dead)
o change the data structures returned for get sta info and get scan
results so future additions will not break user apps
o fixed tx rate is now maintained internally as an ieee rate and not an
index into the rate set; this needs to be extended to deal with
multi-mode operation
o add extended channel specifications to radiotap to enable 11n sniffing

Drivers:
o ath: add support for bg scanning, tx fragmentation, fast frames,
dynamic turbo (lightly tested), 11n (sniffing only and needs
new hal)
o awi: compile tested only
o ndis: lightly tested
o ipw: lightly tested
o iwi: add support for bg scanning (well tested but may have some
rough edges)
o ral, ural, rum: add suppoort for bg scanning, calibrate rssi data
o wi: lightly tested

This work is based on contributions by Atheros, kmacy, sephe, thompsa,
mlaier, kevlo, and others. Much of the scanning work was supported by
Atheros. The 11n work was supported by Marvell.


# f73e86c3 09-May-2007 Scott Long <scottl@FreeBSD.org>

It turns out that the hptiop driver isn't portable after all. Confine it to
amd64 and i386 for now.


# 4439f8b4 09-May-2007 Scott Long <scottl@FreeBSD.org>

Introduce a driver for the Highpoint RocketRAID 3xxx series of controllers.
The driver relies on CAM.

Many thanks to Highpoint for providing this driver.


# 0738dfc3 06-May-2007 Kevin Lo <kevlo@FreeBSD.org>

Add support for Ralink Technology RT2501USB/RT2601USB devices.

Reviewed by: sam, sephe
Obtained from: OpenBSD


# 18242d3b 16-Apr-2007 Andrew Thompson <thompsa@FreeBSD.org>

Rename the trunk(4) driver to lagg(4) as it is too similar to vlan trunking.

The name trunk is misused as the networking term trunk means carrying multiple
VLANs over a single connection. The IEEE standard for link aggregation (802.3
section 3) does not talk about 'trunk' at all while it is used throughout IEEE
802.1Q in describing vlans.

The lagg(4) driver provides link aggregation, failover and fault tolerance.

Discussed on: current@


# 75efd6fd 09-Apr-2007 Andrew Thompson <thompsa@FreeBSD.org>

Add trunk(4) module.


# 48be553b 07-Apr-2007 Dag-Erling Smørgrav <des@FreeBSD.org>

Build ZFS on amd64 and pc98.

Approved by: pjd@


# d330ae53 06-Apr-2007 Kip Macy <kmacy@FreeBSD.org>

back out last change

Requested by: ru


# 735d79b8 06-Apr-2007 Kip Macy <kmacy@FreeBSD.org>

make modules compile without updating etc


# ceef0c31 05-Apr-2007 Pawel Jakub Dawidek <pjd@FreeBSD.org>

Connect ZFS to the build.


# 63518ecc 25-Mar-2007 Yaroslav Tykhiy <ytykhiy@gmail.com>

Introduce a new toy interface, edsc(4). It's a discard interface
imitating an Ethernet device, so vlan(4) and if_bridge(4) can be
attached to it for testing and benchmarking purposes. Its source
can be an introduction to the anatomy of a network interface driver
due to its simplicity as well as to a bunch of comments in it.


# 2be4e471 22-Mar-2007 Jung-uk Kim <jkim@FreeBSD.org>

Catch up with ACPI-CA 20070320 import.


# 0b7f21b2 13-Mar-2007 Kip Macy <kmacy@FreeBSD.org>

add cxgb to modules Makefile


# 7bd6fde3 02-Mar-2007 Florent Thoumie <flz@FreeBSD.org>

- Add Intel firmwares for Intel PRO/Wireless LAN 2100/2200/2915 cards in a
uuencoded format along with their respective LICENSE files.
- Add new share/doc/legal directory to BSD.usr.dist mtree file. This is the
place we install LICENSE files for restricted firmwares.
- Teach firmware(9) and kmod.mk about licensed firmwares. Restricted firmwares
won't load properly unless legal.<name>.license_ack is set to 1, either
via kenv(1) or /boot/loader.conf.

Reviewed by: mlaier, sam
Permitted by: Intel (via Andrew Wilson)
MFC after: 1 month


# 3d14f937 28-Jan-2007 Sam Leffler <sam@FreeBSD.org>

ath and ath_rate_sample now have a compile-time dependency on the hal
so we need to build them only on architectures where there's a released
hal; this hack can be eliminated when an ia64 hal build is present


# 747e1464 18-Dec-2006 Takanori Watanabe <takawata@FreeBSD.org>

Remove stall comment.

Pointed out by:Ed Maste.


# 7b7b6f44 18-Dec-2006 Takanori Watanabe <takawata@FreeBSD.org>

Oops, I forget to add amd64 as ACPI arch.


# c9d21ce9 12-Dec-2006 Pyun YongHyeon <yongari@FreeBSD.org>

Hook up msk(4) to the build.


# f195f6a1 02-Dec-2006 Alexander Leidinger <netchild@FreeBSD.org>

Add the linux module to the amd64 build, all symbols can now be resolved.


# 74828f25 26-Nov-2006 Sam Leffler <sam@FreeBSD.org>

device-independent implementation of AMRR tx rate control algorithm

Obtained from: openbsd (w/ mods)
MFC after: 1 month


# 9aab0d96 15-Nov-2006 Maxim Konovalov <maxim@FreeBSD.org>

o Add uark(4), a driver for Arkmicro Technologies ARK3116 based serial
adapters.

Submitted by: Alex Rodin
Obtained from: OpenBSD
Reviewed by: -usb
MFC after: 6 weeks


# 5416cda8 11-Nov-2006 Tom Rhodes <trhodes@FreeBSD.org>

Re-enable module build for POSIX semaphores.
Update the manual page describe loading the sem module.

Approved by: silence on -arch and -standards


# 20a2cc13 09-Sep-2006 Alexander Leidinger <netchild@FreeBSD.org>

Build linprocfs and linsysfs as modules on amd64.

Sponsored by: Google SoC 2006
Submitted by: rdivacky


# 2054a074 08-Sep-2006 Ruslan Ermilov <ru@FreeBSD.org>

MF6: Attach if_bce.ko to the build.

Noticed by: davidch


# d4dc7a5c 01-Sep-2006 Christian Brueffer <brueffer@FreeBSD.org>

Don't build iwi(4) on amd64, there are problems with the firmware modules.

Reported by: sam
Approved by: rwatson (mentor)
MFC after: 3 days


# 820130bf 18-Aug-2006 Christian Brueffer <brueffer@FreeBSD.org>

Follow the lead of mxgb(4) and build the module for ixgb(4).

Originally it wasn't enabled since the hardware wasn't commonplace,
but as 10GE hardware is becoming more widely used, building the module
by default should be beneficial.

Approved by: rwatson (mentor)
MFC after: 2 weeks


# e5d34218 01-Aug-2006 Maxim Sobolev <sobomax@FreeBSD.org>

Add device to access and modify Open Firmware NVRAM settings in
PowerPC-based Apple's machines and small utility to do it from
userland modelled after the similar utility in Darwin/OSX.

Only tested on 1.25GHz G4 Mac Mini.

MFC after: 1 month


# 73b93591 27-Jul-2006 Marcel Moolenaar <marcel@FreeBSD.org>

Remove Alpha remnants.


# 8a33eee1 26-Jul-2006 Andrew Thompson <thompsa@FreeBSD.org>

Hook bridgestp up to the build.


# d497bdf1 24-Jul-2006 Pyun YongHyeon <yongari@FreeBSD.org>

Hook up stge(4) to the build.


# bfc788c2 26-Jun-2006 David E. O'Brien <obrien@FreeBSD.org>

Add a pure open source nForce Ethernet driver, under BSDL.
This driver was ported from OpenBSD by Shigeaki Tagashira
<shigeaki@se.hiroshima-u.ac.jp> and posted at
http://www.se.hiroshima-u.ac.jp/~shigeaki/software/freebsd-nfe.html
It was additionally cleaned up by me.
It is still a work-in-progress and thus is purposefully not in GENERIC.
And it conflicts with nve(4), so only one should be loaded.


# c69e06b1 17-Jun-2006 Marcel Moolenaar <marcel@FreeBSD.org>

Unconditionally enable ppc(4) and puc(4).


# e4251b04 15-Jun-2006 Yoshihiro Takahashi <nyan@FreeBSD.org>

Build the ppc module on pc98.


# 93ad18ec 16-Jun-2006 Konstantin Belousov <kib@FreeBSD.org>

Allow for ppc(4) to be built as module, initially
only for i386 and amd64.

MFC after: 1 month
Approved by: pjd (mentor)


# 6d87a65d 13-Jun-2006 Andrew Gallatin <gallatin@FreeBSD.org>

- Complete the myri10ge -> mxge name change by doing a mechanical
s/myri10ge/mxge/g replacement in the myri10ge files. A few contuation
lines were joined because of the regained columns.
- Hook the mxge driver back to the build.


# bea55ceb 08-Jun-2006 Sam Leffler <sam@FreeBSD.org>

enable build of ath_hal on sparc64 and powerpc

MFC after: 1 month


# a296dc3e 25-May-2006 Warner Losh <imp@FreeBSD.org>

wi works on amd64 laptops. Enable its building as a module.


# 03d9e830 24-May-2006 Warner Losh <imp@FreeBSD.org>

Add cbb, cardbus, pccard and exca to the list of modules. The appear
to work on the Turion64 laptop I have.


# 508c6d34 14-May-2006 Xin LI <delphij@FreeBSD.org>

Fix build (unhook lnc).

Submitted by: David H. Wolfskill <david catwhisker org>


# 656faadc 12-May-2006 Max Laier <mlaier@FreeBSD.org>

Remove ip6fw. Since ipfw has full functional IPv6 support now and - in
contrast to ip6fw - is properly lockes, it is time to retire ip6fw.


# 32397ce0 09-May-2006 Doug Ambrisko <ambrisko@FreeBSD.org>

Add in linsysfs. A linux 2.6 like sys filesystem to pacify the Linux
LSI MegaRAID SAS utility.

Sponsored by: IronPort Systems
Man page help from: brueffer


# 4577652f 09-May-2006 Alexander Leidinger <netchild@FreeBSD.org>

It seems I forgot to commit the removal of the linux and linprocfs
modules at the time I axed the linuxolator on Alpha.

Noticed by: kris


# 27aafcda 27-Apr-2006 Scott Long <scottl@FreeBSD.org>

Enable the rr232x driver for amd64.


# 9bcb2750 27-Apr-2006 Scott Long <scottl@FreeBSD.org>

Add the 'rr232x' driver for the HighPoint RocketRAID 2320 series of cards.
This driver was generously developed and donated by Highpoint.

It is enabled for i386 only at the moment. I will enable it for amd64
shortly.

Obtained from: HighPoint Technologies, Inc.


# c9e0c5b9 30-Mar-2006 Marcel Moolenaar <marcel@FreeBSD.org>

Build uart(4) on PowerPC.


# af2e25a6 30-Mar-2006 Marcel Moolenaar <marcel@FreeBSD.org>

o Add scc(4) to the build.
o Add the scc(4) manpage to the build.
o Update the uart(4) manpage to account for scc(4).
o Update the uart(4) module build to include support for scc(4).


# 7f631a41 29-Mar-2006 Scott Long <scottl@FreeBSD.org>

Hook the MFI driver up to the build.


# cea557ad 20-Mar-2006 Ruslan Ermilov <ru@FreeBSD.org>

Extend coverage of the MK_IPX build option to the following:

- <netipx> headers [1]
- IPX library (libipx)
- IPX support in ifconfig(8)
- IPXrouted(8)
- new MK_NCP option

New MK_NCP build option controls:

- <netncp> and <fs/nwfs> headers
- NCP library (libncp)
- ncplist(1) and ncplogin(1)
- mount_nwfs(8)
- ncp and nwfs kernel modules

User knobs: WITHOUT_IPX, WITHOUT_IPX_SUPPORT, WITHOUT_NCP.

[1] <netsmb/netbios.h> unconditionally uses <netipx> headers
so they are still installed. This needs to be dealt with.


# e1fe3dba 17-Mar-2006 Ruslan Ermilov <ru@FreeBSD.org>

Reimplementation of world/kernel build options. For details, see:

http://lists.freebsd.org/pipermail/freebsd-current/2006-March/061725.html

The src.conf(5) manpage is to follow in a few days.

Brought to you by: imp, jhb, kris, phk, ru (all bugs are mine)


# f28f001e 17-Mar-2006 Yoshihiro Takahashi <nyan@FreeBSD.org>

Don't build the ipw and iwi on pc98.


# b4c31113 15-Mar-2006 Damien Bergamini <damien@FreeBSD.org>

build ipw(4) and iwi(4) modules on i386 and amd64 only.


# 375ce679 03-Mar-2006 Yaroslav Tykhiy <ytykhiy@gmail.com>

Take the functionality contained in the former "options TDFX_LINUX"
into a separate module. Accordingly, convert the option into a device
named similarly.

Note for MFC: Perhaps the option should stay in RELENG_6 for POLA reasons.

Suggested by: scottl
Reviewed by: cokane
MFC after: 5 days


# cf62a08f 27-Feb-2006 Wojciech A. Koszek <wkoszek@FreeBSD.org>

Connect zlib to the build.

Approved by: cognet (mentor)


# 784daffb 22-Feb-2006 Andrew Gallatin <gallatin@FreeBSD.org>

Unhook myri10ge from build in preparation for rename


# 58d89e5c 19-Feb-2006 Yoshihiro Takahashi <nyan@FreeBSD.org>

Disable the myri10ge driver on pc98.


# 2790e25d 19-Feb-2006 Andrew Gallatin <gallatin@FreeBSD.org>

Hook the myri10ge driver to the i386 and amd64 module builds.

Sponsored by: Myricom Inc.
Reviewed by: scottl


# 42a64e53 13-Feb-2006 Yoshihiro Takahashi <nyan@FreeBSD.org>

Disable the ipmi driver on pc98.


# 1c204a57 13-Feb-2006 Doug Ambrisko <ambrisko@FreeBSD.org>

Tie the ipmi driver into the i386/amd64 builds.


# d87076c8 05-Feb-2006 Warner Losh <imp@FreeBSD.org>

an driver not endian clean, so don't enable on sparc64


# 5bba2114 05-Feb-2006 Max Laier <mlaier@FreeBSD.org>

Make pflog a seperate module. As a result pflog_packet() becomes a function
pointer that is declared in pf_ioctl.c

Requested by: yar (as part of the module build reorg)
MFC after: 1 week
X-MFC with: yar's module reorg


# f2ca64ca 31-Jan-2006 Roman Kurakin <rik@FreeBSD.org>

Attach ce(4) to the build.

MFC after: 3 days


# 44ac0964 31-Jan-2006 Marius Strobl <marius@FreeBSD.org>

Hook up le(4) to the build. For now it's only added to the sparc64 GENERIC
in order to support the on-board LANCE in Ultra 1 and to the MI NOTES as
it should work just fine with the AMD PCnet family of chips on all archs
but is not yet meant to replace lnc(4). If a kernel includes all of le(4),
lnc(4) and pcn(4) precedence is given to lnc(4)/pcn(4) for now.


# 6aec1278 28-Jan-2006 Max Laier <mlaier@FreeBSD.org>

firmware(9) is a subsystem to load binary data into the kernel via a
specially crafted module. There are several handrolled sollutions to this
problem in the tree already which will be replaced with this. They include
iwi(4), ipw(4), ispfw(4) and digi(4).

No objection from: arch
MFC after: 2 weeks
X-MFC after: some drivers have been converted


# 9f793d76 09-Jan-2006 Takanori Watanabe <takawata@FreeBSD.org>

Hook ufoma module to build.

Pointed out by:thompsa


# 8abb0189 23-Dec-2005 Warner Losh <imp@FreeBSD.org>

Build ed on amd64. The pci attachment works with qemu on amd64.

I'm holding off on building on sparc64 and others because I don't know
if this driver has had all the inb/outb removed (I think it has). Nor
do I know if there are byte ordering issues. There are very few word
operations on an NE2000, but I've not had time to audit them all.

Suggested by: Daniel O'Connor


# 6a901529 22-Dec-2005 Yoshihiro Takahashi <nyan@FreeBSD.org>

Enable the cs and disable the amdsmb and nfsmb on pc98.


# 80d8e896 11-Dec-2005 Craig Rodrigues <rodrigc@FreeBSD.org>

Build xfs before xl.

Noticed by: pjd


# 5518f0df 11-Dec-2005 Craig Rodrigues <rodrigc@FreeBSD.org>

Add xfs to list of modules which are built.


# 6c597554 25-Nov-2005 David Xu <davidxu@FreeBSD.org>

Compile mqueue module.


# 1a9e52fb 16-Nov-2005 Ruslan Ermilov <ru@FreeBSD.org>

Remove vestiges of oldcard and owi.


# 6d8200ff 11-Nov-2005 Ruslan Ermilov <ru@FreeBSD.org>

Add /dev/speaker support to amd64.

The following repo-copies were made (by Mark Murray):

sys/i386/isa/spkr.c -> sys/dev/speaker/spkr.c
sys/i386/include/speaker.h -> sys/dev/speaker/speaker.h
share/man/man4/man4.i386/spkr.4 -> share/man/man4/spkr.4


# 8baab09e 09-Nov-2005 Pyun YongHyeon <yongari@FreeBSD.org>

Connect em(4) build on sparc64.


# 9b229abc 28-Oct-2005 Joerg Wunsch <joerg@FreeBSD.org>

Finally complete some work on generalizing the PCF8584-based I2C
drivers I started quite some time before.

Retire the old i386-only pcf driver, and activate the new general
driver that has been sitting in the tree already for quite some
time.

Build the i2c modules for sparc64 architectures as well (where I've
been developing all this on).


# d4df4850 14-Oct-2005 Ruslan Ermilov <ru@FreeBSD.org>

Sort SUBDIR and surrounding definitions.


# 2bc6081c 03-Oct-2005 Scott Long <scottl@FreeBSD.org>

Reintroduce the lmc T1/E1/T3 WAN driver. This version is locked, supports
interface polling, compiles on 64-bit platforms, and compiles on NetBSD,
OpenBSD, BSD/OS, and Linux. Woo! Thanks to David Boggs for providing this
driver.

Altq, sppp, netgraph, and bpf are required for this driver to operate.
Userland tools and man pages will be committed next.

Submitted by: David Boggs


# b6de9e91 27-Sep-2005 Max Laier <mlaier@FreeBSD.org>

Remove bridge(4) from the tree. if_bridge(4) is a full functional
replacement and has additional features which make it superior.

Discussed on: -arch
Reviewed by: thompsa
X-MFC-after: never (RELENG_6 as transition period)


# 81976679 27-Sep-2005 Yoshihiro Takahashi <nyan@FreeBSD.org>

Switch from OLDCARD to NEWCARD on pc98.


# 59fa7082 19-Sep-2005 R. Imura <imura@FreeBSD.org>

Connect smbfs build on powerpc.


# dc8540a9 07-Sep-2005 Scott Long <scottl@FreeBSD.org>

Hook up the hptmv driver for amd64.

MFC After: 3 days


# 721be80c 26-Aug-2005 John Baldwin <jhb@FreeBSD.org>

Remove the el(4) driver for 3Com 3c501 ISA NICs from HEAD as threatened
earlier as no one has stepped up to test recent changes to the driver.
Oddly, the module was actually turned on on ia64 though I'm fairly certain
that no ia64 machine has ever had or will ever have an ISA slot.

Axe borrowed from: phk


# ef0a6e20 17-Aug-2005 Pawel Jakub Dawidek <pjd@FreeBSD.org>

Add VIA/ACE "PadLock" support as a crypto(9) driver.

HW donated by: Mike Tancsa <mike@sentex.net>
Most of the code obtained from: OpenBSD
MFC after: 3 days


# f9e56677 14-Jul-2005 Maksim Yevmenkin <emax@FreeBSD.org>

kbdmux(4) keyboard multiplexer integration

o Add minimal kbdmux(4) man page to the source tree (more details to follow);

o Hook up kbdmux(4) to the build.

This concludes the first part of the kbdmux(4) keyboard multiplexer
integration. It now should be possible to use kbdmux(4), however one
must configure kbdmux(4) by hand (i.e. load kbdmux(4) module and use
kbdcontrol(1) to add/remove slave keyboards to/from kbdmux(4)).

MFC after: 1 week


# 716dfa4c 10-Jul-2005 Marius Strobl <marius@FreeBSD.org>

Build blank_saver.ko, fade_saver.ko and green_saver.ko on sparc64
now that they work with creator(4) and machfb(4).

Reviewed by: ru (style)
Approved by: re (scottl)


# 0ed48524 29-Jun-2005 Peter Wemm <peter@FreeBSD.org>

i386->amd64 sync
Add ath_hal and ichwd modules

Approved by: re (blanked i386<->amd64 sync)


# e0afbb58 21-Jun-2005 Jean-Sébastien Pédron <dumbbell@FreeBSD.org>

Buid reiserifs.ko on every platforms, not only i386 and pc98.

Reviewed by: mux (mentor)
Approved by: re (dougb)


# 7afc53b8 04-Jun-2005 Andrew Thompson <thompsa@FreeBSD.org>

Connect if_bridge to the build.

Approved by: mlaier (mentor)


# 398ae531 23-May-2005 Jean-Sébastien Pédron <dumbbell@FreeBSD.org>

Connect the ReiserFS filesystem to the modules build (i386 only).

Approved by: mux (mentor)


# 6cd047a0 06-May-2005 Gleb Smirnoff <glebius@FreeBSD.org>

Attach ng_nat and libalias to build.


# 96b50ea3 24-Apr-2005 Bill Paul <wpaul@FreeBSD.org>

Throw the switch on the new driver generation/loading mechanism. From
here on in, if_ndis.ko will be pre-built as a module, and can be built
into a static kernel (though it's not part of GENERIC). Drivers are
created using the new ndisgen(8) script, which uses ndiscvt(8) under
the covers, along with a few other tools. The result is a driver module
that can be kldloaded into the kernel.

A driver with foo.inf and foo.sys files will be converted into
foo_sys.ko (and foo_sys.o, for those who want/need to make static
kernels). This module contains all of the necessary info from the
.INF file and the driver binary image, converted into an ELF module.
You can kldload this module (or add it to /boot/loader.conf) to have
it loaded automatically. Any required firmware files can be bundled
into the module as well (or converted/loaded separately).

Also, add a workaround for a problem in NdisMSleep(). During system
bootstrap (cold == 1), msleep() always returns 0 without actually
sleeping. The Intel 2200BG driver uses NdisMSleep() to wait for
the NIC's firmware to come to life, and fails to load if NdisMSleep()
doesn't actually delay. As a workaround, if msleep() (and hence
ndis_thsuspend()) returns 0, use a hard DELAY() to sleep instead).
This is not really the right thing to do, but we can't really do much
else. At the very least, this makes the Intel driver happy.

There are probably other drivers that fail in this way during bootstrap.
Unfortunately, the only workaround for those is to avoid pre-loading
them and kldload them once the system is running instead.


# c4bb0466 22-Apr-2005 Warner Losh <imp@FreeBSD.org>

Add sio and puc to i386 build.
Remove ray from ia64 build since it hasn't been tested there.


# 9c3a1281 20-Apr-2005 Marcel Moolenaar <marcel@FreeBSD.org>

Revert previous commit: build hwpmc(4) on all architectures.

Ok'd by: jkoshy@


# 058279d2 19-Apr-2005 Joseph Koshy <jkoshy@FreeBSD.org>

Only compile for the hwpmc module for supported architectures.

Submitted by: grehan


# ebccf1e3 18-Apr-2005 Joseph Koshy <jkoshy@FreeBSD.org>

Bring a working snapshot of hwpmc(4), its associated libraries, userland utilities
and documentation into -CURRENT.

Bump FreeBSD_version.

Reviewed by: alc, jhb (kernel changes)


# ceaec73d 18-Apr-2005 Damien Bergamini <damien@FreeBSD.org>

Initial import of ipw, iwi, ral and ural drivers:

ipw - Intel PRO/Wireless 2100
iwi - Intel PRO/Wireless 2200BG/2225BG/2915ABG
ral - Ralink Technology RT2500
ural - Ralink Technology RT2500USB

Approved by: silby (mentor)


# f6126e7b 12-Apr-2005 Marcel Moolenaar <marcel@FreeBSD.org>

Build cpufreq on ia64. The upcoming Montecito processor supports the
Enhanced SpeedStep (that is, a follow-up of it called Foxton). Until
we actually have support for that, we build to catch regressions in
the framework.

Triggered by: njl


# 9dd18bb0 01-Apr-2005 Warner Losh <imp@FreeBSD.org>

Don't build arcmsr on pc98. The card either won't fit/work in the
pc98 machines because (a) it is PCIe or PCI-X (b) there's a BIOS that
must run at boot which assumes IBM-AT compatible boot environment.

Noticed by: scottl


# d0885ac3 31-Mar-2005 Scott Long <scottl@FreeBSD.org>

Glue the arcmsr driver into the tree.


# 8ca4df32 29-Mar-2005 Søren Schmidt <sos@FreeBSD.org>

This is the much rumoured ATA mkIII update that I've been working on.

o ATA is now fully newbus'd and split into modules.
This means that on a modern system you just load "atapci and ata"
to get the base support, and then one or more of the device
subdrivers "atadisk atapicd atapifd atapist ataraid".
All can be loaded/unloaded anytime, but for obvious reasons you
dont want to unload atadisk when you have mounted filesystems.

o The device identify part of the probe has been rewritten to fix
the problems with odd devices the old had, and to try to remove
so of the long delays some HW could provoke. Also probing is done
without the need for interrupts, making earlier probing possible.

o SATA devices can be hot inserted/removed and devices will be created/
removed in /dev accordingly.
NOTE: only supported on controllers that has this feature:
Promise and Silicon Image for now.
On other controllers the usual atacontrol detach/attach dance is
still needed.

o Support for "atomic" composite ATA requests used for RAID.

o ATA RAID support has been rewritten and and now supports these
metadata formats:
"Adaptec HostRAID"
"Highpoint V2 RocketRAID"
"Highpoint V3 RocketRAID"
"Intel MatrixRAID"
"Integrated Technology Express"
"LSILogic V2 MegaRAID"
"LSILogic V3 MegaRAID"
"Promise FastTrak"
"Silicon Image Medley"
"FreeBSD PseudoRAID"

o Update the ioctl API to match new RAID levels etc.

o Update atacontrol to know about the new RAID levels etc
NOTE: you need to recompile atacontrol with the new sys/ata.h,
make world will take care of that.
NOTE2: that rebuild is done differently from the old system as
the rebuild is now done piggybacked on read requests to the
array, so atacontrol simply starts a background "dd" to rebuild
the array.

o The reinit code has been worked over to be much more robust.

o The timeout code has been overhauled for races.

o Support of new chipsets.

o Lots of fixes for bugs found while doing the modulerization and
reviewing the old code.

Missing or changed features from current ATA:

o atapi-cd no longer has support for ATAPI changers. Todays its
much cheaper and alot faster to copy those CD images to disk
and serve them from there. Besides they dont seem to be made
anymore, maybe for that exact reason.

o ATA RAID can only read metadata from all the above metadata formats,
not write all of them (Promise and Highpoint V2 so far). This means
that arrays can be picked up from the BIOS, but they cannot be
created from FreeBSD. There is more to it than just the missing
write metadata support, those formats are not unique to a given
controller like Promise and Highpoint formats, instead they exist
for several types, and even worse, some controllers can have
different formats and its impossible to tell which one.
The outcome is that we cannot reliably create the metadata of those
formats and be sure the controller BIOS will understand it.
However write support is needed to update/fail/rebuild the arrays
properly so it sits fairly high on the TODO list.

o So far atapicam is not supported with these changes. When/if this
will change is up to the maintainer of atapi-cam so go there for
questions.

HW donated by: Webveveriet AS
HW donated by: Frode Nordahl
HW donated by: Yahoo!
HW donated by: Sentex
Patience by: Vife and my boys (and even the cats)


# 6bcf0032 22-Mar-2005 Maxim Sobolev <sobomax@FreeBSD.org>

Add USB Communication Device Class Ethernet driver. Originally written for
FreeBSD based on aue(4) it was picked by OpenBSD, then from OpenBSD ported
to NetBSD and finally NetBSD version merged with original one goes into
FreeBSD.

Obtained from: http://www.gank.org/freebsd/cdce/
NetBSD
OpenBSD


# 0b07d9aa 12-Mar-2005 Yoshihiro Takahashi <nyan@FreeBSD.org>

Don't build the nve on pc98.


# 1b1a07ad 11-Mar-2005 David E. O'Brien <obrien@FreeBSD.org>

FreeBSD consumer bits of the nForce MCP NIC binary blob.

Demanded by: DES
Encouraged by: scottl
Obtained from: q@onthenet.com.au (partially)
KNF'ed by: obrien


# e7d0dbae 11-Mar-2005 Sam Leffler <sam@FreeBSD.org>

reorder ath_rate_onoe to after ath_rate_sample so it gets used as the
default rate control algorithm; this should be done differently but for
now use this simple solution


# fa20c234 10-Mar-2005 Sam Leffler <sam@FreeBSD.org>

SampleRate rate control algorithm for the ath driver

Submitted by: John Bicket


# 95ef8c71 09-Mar-2005 Sam Leffler <sam@FreeBSD.org>

connect wlan_acl to the build

Submitted by: Alexey Zelkin


# d8f2dda7 15-Feb-2005 Bill Paul <wpaul@FreeBSD.org>

Add support for Windows/x86-64 binaries to Project Evil.
Ville-Pertti Keinonen (will at exomi dot comohmygodnospampleasekthx)
deserves a big thanks for submitting initial patches to make it
work. I have mangled his contributions appropriately.

The main gotcha with Windows/x86-64 is that Microsoft uses a different
calling convention than everyone else. The standard ABI requires using
6 registers for argument passing, with other arguments on the stack.
Microsoft uses only 4 registers, and requires the caller to leave room
on the stack for the register arguments incase the callee needs to
spill them. Unlike x86, where Microsoft uses a mix of _cdecl, _stdcall
and _fastcall, all routines on Windows/x86-64 uses the same convention.
This unfortunately means that all the functions we export to the
driver require an intermediate translation wrapper. Similarly, we have
to wrap all calls back into the driver binary itself.

The original patches provided macros to wrap every single routine at
compile time, providing a secondary jump table with a customized
wrapper for each exported routine. I decided to use a different approach:
the call wrapper for each function is created from a template at
runtime, and the routine to jump to is patched into the wrapper as
it is created. The subr_pe module has been modified to patch in the
wrapped function instead of the original. (On x86, the wrapping
routine is a no-op.)

There are some minor API differences that had to be accounted for:

- KeAcquireSpinLock() is a real function on amd64, not a macro wrapper
around KfAcquireSpinLock()
- NdisFreeBuffer() is actually IoFreeMdl(). I had to change the whole
NDIS_BUFFER API a bit to accomodate this.

Bugs fixed along the way:
- IoAllocateMdl() always returned NULL
- kern_windrv.c:windrv_unload() wasn't releasing private driver object
extensions correctly (found thanks to memguard)

This has only been tested with the driver for the Broadcom 802.11g
chipset, which was the only Windows/x86-64 driver I could find.


# 6ab93aca 05-Feb-2005 Scott Long <scottl@FreeBSD.org>

Only compile the cpufreq driver on i386 and amd64.


# 335e4ff3 03-Feb-2005 Nate Lawson <njl@FreeBSD.org>

Hook up the cpufreq framework, acpi_perf(4), and cpufreq(4) drivers.


# 2f533ec0 03-Feb-2005 Ruslan Ermilov <ru@FreeBSD.org>

Fix alignment in the last commit.


# 042bbe55 02-Feb-2005 Peter Grehan <grehan@FreeBSD.org>

Don't build syscons, uart or vpo on PPC.


# 40c37838 30-Jan-2005 Ruslan Ermilov <ru@FreeBSD.org>

Build "digi" on i386, pc98, and amd64 only.


# 330179a4 29-Jan-2005 Maxim Sobolev <sobomax@FreeBSD.org>

Remove local hack which cowardly slipped into previous commit.

MFC after: 2 weeks


# 610ecfe0 29-Jan-2005 Maxim Sobolev <sobomax@FreeBSD.org>

o Split out kernel part of execve(2) syscall into two parts: one that
copies arguments into the kernel space and one that operates
completely in the kernel space;

o use kernel-only version of execve(2) to kill another stackgap in
linuxlator/i386.

Obtained from: DragonFlyBSD (partially)
MFC after: 2 weeks


# 4f05e3fa 27-Jan-2005 Ruslan Ermilov <ru@FreeBSD.org>

"pst" is not 64-bit clean for reasons specified in sys/amd64/conf/NOTES.


# 0ec24a91 27-Jan-2005 Ruslan Ermilov <ru@FreeBSD.org>

Comment out "lnc" on amd64 for reasons specified in sys/amd64/conf/NOTES.


# fe9ec267 26-Jan-2005 Warner Losh <imp@FreeBSD.org>

ar and sr (and their netgraph cousins) don't appear to be 64-bit clean, so
disable them on all but i386.


# 614dbcfb 26-Jan-2005 Warner Losh <imp@FreeBSD.org>

The ar driver appears to do naughty things with pointers and integers
and so appears to not be 64-bit clean. disable it on ia64 for the moment.


# 659522d8 26-Jan-2005 Warner Losh <imp@FreeBSD.org>

pcic is gone


# 17d56bdd 26-Jan-2005 Warner Losh <imp@FreeBSD.org>

Add cs module. It has built in my tree for ages, and it just never
made it into FreeBSD's tree.


# ba2e5903 19-Jan-2005 Wes Peters <wes@FreeBSD.org>

Provide a WITHOUT_MODULES variable that specifies a list of modules
to elide. This is a somewhat more convenient way of specifying in
e.g. make.conf a list of modules you know you will never need.

PR: kern/76225
Submitted by: David Yeske <dyeske@yahoo.com>
MFC after: 2 weeks


# a2161735 21-Dec-2004 Ruslan Ermilov <ru@FreeBSD.org>

NOCRYPT -> NO_CRYPT


# 6c5c0a5a 12-Dec-2004 Warner Losh <imp@FreeBSD.org>

Separate mse driver into a core driver and a bus attachments. Separate out
the ISA and CBUS (called isa on pc98) attachments. Eliminate all PC98
ifdefs in the process (the driver in pc98/pc98/mse.c was a copy of the one
in i386/isa/mse.c with PC98 ifdefs). Create a module for this driver.

I've tested this my PC-9821RaS40 with moused. I've not tested this on i386
because I have no InPort cards, or similar such things. NEC standardized
on bus mice very early, long before ps/2 mice ports apeared, so all PC-98
machines supported by FreeBSD/pc98 have bus mice, I believe.

Reviewed by: nyan-san


# 63f9a4cb 08-Dec-2004 Sam Leffler <sam@FreeBSD.org>

Update/new modules for net80211 and ath changes.


# 6e81ac21 16-Nov-2004 Maksim Yevmenkin <emax@FreeBSD.org>

Add vkdb(4) man page and connect vkbd(4) to the build.


# f5c56019 15-Nov-2004 Warner Losh <imp@FreeBSD.org>

Put _ray back, as appropriate.


# 0d171ad8 14-Nov-2004 Warner Losh <imp@FreeBSD.org>

Add comment about why amd64 and ia64 don't build acpi modules.


# c9472fb2 10-Nov-2004 Mark Murray <markm@FreeBSD.org>

Remove at request of author, perhaps to be re-added later.


# f12ea43d 08-Nov-2004 Poul-Henning Kamp <phk@FreeBSD.org>

Remove the obsolete gx driver.

All the hardware is supported by the better maintained if_em driver.

Absentmindedly nodded vertical by: people on #that_channel


# 84bb6a2e 25-Oct-2004 Andre Oppermann <andre@FreeBSD.org>

IPDIVERT is a module now and tell the other parts of the kernel about it.
IPDIVERT depends on IPFIREWALL being loaded or compiled into the kernel.


# 7a7386a3 25-Oct-2004 Pyun YongHyeon <yongari@FreeBSD.org>

Device driver for onboard CS4231 audio controller which is found
on UltraSPARC workstations. The driver is based on OpenBSD's SBus
cs4231 driver and heavily modified to incorporate into sound(4)
infrastructure. Due to the lack of APCDMA documentation, the DMA
code of SBus cs4231 came from OpenBSD's driver.
The driver runs without Giant lock and supports both SBus and EBus
based CS4231 audio controller. Special thanks to marius for providing
feedbacks during the driver writing. His feedback made it possible
to write hiccup free playback code under high system loads.

Approved by: jake (mentor)
Reviewed by: marius (initial version)
Tested by: marius, kwm, Julian C. Dunn(jdunn AT opentrend DOT net)


# 085f35d6 24-Oct-2004 Scott Long <scottl@FreeBSD.org>

Hook the hptmv driver up to the build.


# e60fc88f 09-Oct-2004 Pyun YongHyeon <yongari@FreeBSD.org>

Port NetBSD auxio driver. The driver was modified to use led(4) and can
be used to announce various system activity.
The auxio device provides auxiliary I/O functions and is found on various
SBus/EBus UltraSPARC models. At present, only front panel LED is
controlled by this driver.

Approved by: jake (mentor)
Reviewed by: joerg
Tested by: joerg


# 08d0c00b 23-Sep-2004 Poul-Henning Kamp <phk@FreeBSD.org>

Per recent HEADSUP: Disconnect (old)vinum from the kernel build.

Users should move to the new geom_vinum implementation instead.

The refcount logic which is being added to devices to enable safe module
unloading and the buf/vm work also in progress would require a major rework
of the (old)-vinum code to comply with the new semantics.

The actual source files will not be removed until I have coordinated with
the geomvinum people if they need any bits repo-copied etc.


# a07bd003 10-Sep-2004 Bill Paul <wpaul@FreeBSD.org>

Add device driver support for the VIA Networking Technologies
VT6122 gigabit ethernet chip and integrated 10/100/1000 copper PHY.
The vge driver has been added to GENERIC for i386, pc98 and amd64,
but not to sparc or ia64 since I don't have the ability to test
it there. The vge(4) driver supports VLANs, checksum offload and
jumbo frames.

Also added the lge(4) and nge(4) drivers to GENERIC for i386 and
pc98 since I was in the neighborhood. There's no reason to leave them
out anymore.


# 8985c52b 05-Sep-2004 Dag-Erling Smørgrav <des@FreeBSD.org>

Device driver for the Cypress CY7C637xx and CY7C640/1xx families of USB
to RS232 bridges, such as the one found in the DeLorme Earthmate USB GPS
receiver (which is the only device currently supported by this driver).

While other USB to serial drivers in the tree rely heavily on ucom, this
one is self-contained. The reason for that is that ucom assumes that
the bridge uses bulk pipes for I/O, while the Cypress parts actually
register as human interface devices and use HID reports for configuration
and I/O.

The driver is not entirely complete: there is no support yet for flow
control, and output doesn't seem to work, though I don't know if that is
because of a bug in the code, or simply because the Earthmate is a read-
only device.


# 0793d4d1 02-Sep-2004 Alfred Perlstein <alfred@FreeBSD.org>

Hook autofs to the build.


# fffdbac7 29-Aug-2004 Scott Long <scottl@FreeBSD.org>

Enable aac(4) module build for amd64


# 6d272d3c 29-Aug-2004 David E. O'Brien <obrien@FreeBSD.org>

Enable more modules on AMD64:
ciss em ext2fs i2c ida iir ips lnc mly safe scsi_low smbfs sppp twa


# 231cd70b 29-Aug-2004 David E. O'Brien <obrien@FreeBSD.org>

Enable sound modules.


# 657d1848 18-Aug-2004 Ruslan Ermilov <ru@FreeBSD.org>

Enable build of Netgraph modules on all architectures.

Tested by: make universe


# 3c749e3f 15-Aug-2004 David E. O'Brien <obrien@FreeBSD.org>

AMD64 on-CPU GART support.
This also applies to AMD64 HW running 'i386' OS.

Submitted by: Jung-uk Kim <jkim@niksun.com>
Integration by: obrien


# ac341582 14-Aug-2004 Marius Strobl <marius@FreeBSD.org>

Now that hme(4) is MI build its module on all platforms.

Tested by: `make universe` and powerpc cross-build on i386


# d23a262f 03-Aug-2004 Mark Murray <markm@FreeBSD.org>

Making a loadable null.ko for /dev/(null|zero) proved rather
unpopular, so remove this (mis)feature.

Encouragement provided by: jhb (and others)


# 9004f894 02-Aug-2004 David E. O'Brien <obrien@FreeBSD.org>

Really back out rev 1.388.


# c658f763 02-Aug-2004 David E. O'Brien <obrien@FreeBSD.org>

Don't build and install a mem.ko module.
Currently one cannot load the mem.ko module without panicing if mem is
compiled into the kernel and one cannot build a kernel w/o "device mem"
right now either. Thus it is too dangerous to install mem.ko right now
because if one puts 'mem_load="YES"' in /etc/loader.conf they cannot
boot an "old" kernel (at the time that a kernel doesn't have to be built
with "device mem).


# 8ab2f5ec 01-Aug-2004 Mark Murray <markm@FreeBSD.org>

Break out the MI part of the /dev/[k]mem and /dev/io drivers into
their own directory and module, leaving the MD parts in the MD
area (the MD parts _are_ part of the modules). /dev/mem and /dev/io
are now loadable modules, thus taking us one step further towards
a kernel created entirely out of modules. Of course, there is nothing
preventing the kernel from having these statically compiled.


# 1f00798b 30-Jun-2004 Yoshihiro Takahashi <nyan@FreeBSD.org>

The ahb module is not needed for pc98.


# 1c534ada 29-Jun-2004 Warner Losh <imp@FreeBSD.org>

Add ahb module for i386 and alpha (the onlt two platforms that have eisa
bus)


# 74fcfc4f 22-Jun-2004 David E. O'Brien <obrien@FreeBSD.org>

Enable 'vinum' on AMD64.


# a306c902 16-Jun-2004 Max Laier <mlaier@FreeBSD.org>

Prepare for pf 3.5 import:
- Remove pflog and pfsync modules. Things will change in such a fashion
that there will be one module with pf+pflog that can be loaded into
GENERIC without problems (which is what most people want). pfsync is no
longer possible as a module.
- Add multicast address for in-kernel multicast pfsync protocol. Protocol
glue will follow once the import is done.
- Add one more mbuf tag


# 4dba35d1 17-May-2004 Roman Kurakin <rik@FreeBSD.org>

Connect Cronyx Tau-PCI to the system.


# 1c4a1c34 16-May-2004 Peter Wemm <peter@FreeBSD.org>

Disable ndis module on amd64. It doesn't compile. For example,
hal_raise_irql(void) doesn't take an argument, but it is called with one.
eg: irql = FASTCALL1(hal_raise_irql, DISPATCH_LEVEL);
This is hidden by the macros on i386, but becomes a compile error on amd64
since the arguments are actually checked.


# 278d864b 16-May-2004 Ruslan Ermilov <ru@FreeBSD.org>

Fixed the disordering from rev. 1.371.


# 2621fd00 13-May-2004 Yoshihiro Takahashi <nyan@FreeBSD.org>

Move the ichwd to i386 only.


# cae8da61 11-May-2004 Dag-Erling Smørgrav <des@FreeBSD.org>

Add a driver for the watchdog timer function present on the LPC interface
bridge in Intel ICH-series chipsets.

The original implementation was by W. Daryl Hawkins of Texas A&M, but I
have made substantial modifications.


# b4fa702e 05-May-2004 Joerg Wunsch <joerg@FreeBSD.org>

Enable the build of the vinum KLD on sparc64. It is known to work so
there's no reason to not build it.


# 3c12ea23 27-Apr-2004 Vinod Kashyap <vkashyap@FreeBSD.org>

Added 3ware's twa.

Reviewed by: ps


# b21126c6 29-Mar-2004 Peter Wemm <peter@FreeBSD.org>

Clean up the stub fake vnode locking implemenations. The main reason this
stuff was here (NFS) was fixed by Alfred in November. The only remaining
consumer of the stub functions was umapfs, which is horribly horribly
broken. It has missed out on about the last 5 years worth of maintenence
that was done on nullfs (from which umapfs is derived). It needs major
work to bring it up to date with the vnode locking protocol. umapfs really
needs to find a caretaker to bring it into the 21st century.

Functions GC'ed:
vop_noislocked, vop_nolock, vop_nounlock, vop_sharedlock.


# 6ca77a6f 25-Mar-2004 Roman Kurakin <rik@FreeBSD.org>

Connect ctau driver (Cronyx-Tau/ISA) to modules build process.

Approved by: imp (mentor)


# c069ddf1 15-Mar-2004 Yoshihiro Takahashi <nyan@FreeBSD.org>

Move the arl to i386 only.


# 36254177 15-Mar-2004 Scott Long <scottl@FreeBSD.org>

Remove the module reference for RAIDframe


# 798f0e16 15-Mar-2004 Max Khon <fjoe@FreeBSD.org>

Add arl(4): driver for Aironet Arlan 655 wireless adapters.

MFC after: 2 weeks


# 8d69c48b 08-Mar-2004 Max Laier <mlaier@FreeBSD.org>

Link pf to the build and install:
This adds the former ports registered groups: proxy and authpf as well as
the proxy user. Make sure to run mergemaster -p in oder to complete make
installworld without errors.

This also provides the passive OS fingerprints from OpenBSD (pf.os) and an
example pf.conf.

For those who want to go without pf; it provides a NO_PF knob to make.conf.

__FreeBSD_version will be bumped soon to reflect this and to be able to
change ports accordingly.

Approved by: bms(mentor)


# 7de87783 29-Feb-2004 Bernd Walter <ticso@FreeBSD.org>

add driver for BWCT console management serials


# cdd40f3b 27-Feb-2004 MIHIRA Sanpei Yoshiro <sanpei@FreeBSD.org>

add support DM9601(DAVICOM USB to Ethernet MAC Controller with Integrated 10/100 PHY)
- Corega FEther USB-TXC

PR: kern/62932
Submitted by: HASHI Hiroaki <hashiz@tomba.cskk-sv.co.jp>
Obtained from: NetBSD


# 126a20d4 14-Feb-2004 Roman Kurakin <rik@FreeBSD.org>

Adding missing cx (cronyx/Sigma) entry.
Approved by: imp (mentor)


# 66c59e75 27-Jan-2004 David E. O'Brien <obrien@FreeBSD.org>

Always build ext2fs module. There is no written policy preventing the
building of GPL'ed modules.


# 848b79de 27-Jan-2004 David E. O'Brien <obrien@FreeBSD.org>

Enable ndis for AMD64 (for the time that modules are supported)...


# b8eaa978 16-Jan-2004 Ruslan Ermilov <ru@FreeBSD.org>

- Build things in pure alphabetical dictionary order.

- Unify the conditional assignments section so that architectural
exclusions come first, sorted, then options and !options, sorted
by the option name, also in directory order, then architecture
specific sections, sorted by the architecture name, with i386
being a traditional exception.

Prodded by: bde


# 8d6649fe 11-Jan-2004 Yoshihiro Takahashi <nyan@FreeBSD.org>

The ida module is not needed for pc98.


# 99e5f60a 11-Jan-2004 Matthew N. Dodd <mdodd@FreeBSD.org>

ida(4) module. PCI only for now.


# c42411d5 11-Dec-2003 Bill Paul <wpaul@FreeBSD.org>

Turn off build of if_ndis.ko by default, since it depends on an
autogenerated file (ndis_driver_data.h) which by definition can't
be available unless the user creates it.


# 940311dc 11-Dec-2003 Bill Paul <wpaul@FreeBSD.org>

Ack! Only build if_ndis.ko and ndis.ko if arch == i386.


# c854fc10 11-Dec-2003 Bill Paul <wpaul@FreeBSD.org>

Commit the first cut of Project Evil, also known as the NDISulator.

Yes, it's what you think it is. Yes, you should run away now.

This is a special compatibility module for allowing Windows NDIS
miniport network drivers to be used with FreeBSD/x86. This provides
_binary_ NDIS compatibility (not source): you can run NDIS driver
code, but you can't build it. There are three main parts:

sys/compat/ndis: the NDIS compat API, which provides binary
compatibility functions for many routines in NDIS.SYS, HAL.dll
and ntoskrnl.exe in Windows (these are the three modules that
most NDIS miniport drivers use). The compat module also contains
a small PE relocator/dynalinker which relocates the Windows .SYS
image and then patches in our native routines.

sys/dev/if_ndis: the if_ndis driver wrapper. This module makes
use of the ndis compat API and can be compiled with a specially
prepared binary image file (ndis_driver_data.h) containing the
Windows .SYS image and registry key information parsed out of the
accompanying .INF file. Once if_ndis.ko is built, it can be loaded
and unloaded just like a native FreeBSD kenrel module.

usr.sbin/ndiscvt: a special utility that converts foo.sys and foo.inf
into an ndis_driver_data.h file that can be compiled into if_ndis.o.
Contains an .inf file parser graciously provided by Matt Dodd (and
mercilessly hacked upon by me) that strips out device ID info and
registry key info from a .INF file and packages it up with a binary
image array. The ndiscvt(8) utility also does some manipulation of
the segments within the .sys file to make life easier for the kernel
loader. (Doing the manipulation here saves the kernel code from having
to move things around later, which would waste memory.)

ndiscvt is only built for the i386 arch. Only files.i386 has been
updated, and none of this is turned on in GENERIC. It should probably
work on pc98. I have no idea about amd64 or ia64 at this point.

This is still a work in progress. I estimate it's about %85 done, but
I want it under CVS control so I can track subsequent changes. It has
been tested with exactly three drivers: the LinkSys LNE100TX v4 driver
(Lne100v4.sys), the sample Intel 82559 driver from the Windows DDK
(e100bex.sys) and the Broadcom BCM43xx wireless driver (bcmwl5.sys). It
still needs to have a net80211 stuff added to it. To use it, you would
do something like this:

# cd /sys/modules/ndis
# make; make load
# cd /sys/modules/if_ndis
# ndiscvt -i /path/to/foo.inf -s /path/to/foo.sys -o ndis_driver_data.h
# make; make load
# sysctl -a | grep ndis

All registry keys are mapped to sysctl nodes. Sometimes drivers refer
to registry keys that aren't mentioned in foo.inf. If this happens,
the NDIS API module creates sysctl nodes for these keys on the fly so
you can tweak them.

An example usage of the Broadcom wireless driver would be:

# sysctl hw.ndis0.EnableAutoConnect=1
# sysctl hw.ndis0.SSID="MY_SSID"
# sysctl hw.ndis0.NetworkType=0 (0 for bss, 1 for adhoc)
# ifconfig ndis0 <my ipaddr> netmask 0xffffff00 up

Things to be done:

- get rid of debug messages
- add in ndis80211 support
- defer transmissions until after a status update with
NDIS_STATUS_CONNECTED occurs
- Create smarter lookaside list support
- Split off if_ndis_pci.c and if_ndis_pccard.c attachments
- Make sure PCMCIA support works
- Fix ndiscvt to properly parse PCMCIA device IDs from INF files
- write ndisapi.9 man page


# a0b7a7df 07-Dec-2003 Warner Losh <imp@FreeBSD.org>

hea is gone, remove its module


# f33a379b 07-Dec-2003 Warner Losh <imp@FreeBSD.org>

Remove hea module.


# 8eca42d5 03-Dec-2003 John Baldwin <jhb@FreeBSD.org>

- Reenable building of the ACPI module on i386.
- Remove 'device acpi' from i386 GENERIC and revert back to using ACPI as
a module by default.

Approved by: re (scottl / blanket)


# 77730021 07-Nov-2003 Scott Long <scottl@FreeBSD.org>

Add the Makefile glue for the udf_iconv module.

Submitted by: imura@ryu16.org


# eb57864f 06-Nov-2003 Warner Losh <imp@FreeBSD.org>

List the three modules that I have that aren't connected to the build.


# 75556f82 03-Nov-2003 John Baldwin <jhb@FreeBSD.org>

Temporarily disable the acpi(4) module on i386 until issues revolving
SMP probing and the MADT table can be sorted out. For now, if you want
ACPI, you must compile it into your kernel statically using 'device acpi'.


# 869093b1 24-Oct-2003 Hidetoshi Shimokawa <simokawa@FreeBSD.org>

Add dumb console driver and related bits.

dcons(4): very simple console and gdb port driver
dcons_crom(4): FireWire attachment
dconschat(8): User interface to dcons

Tested with: i386, i386-PAE, and sparc64.


# c4f02a89 26-Sep-2003 Max Khon <fjoe@FreeBSD.org>

- Support for multibyte charsets in LIBICONV.
- CD9660_ICONV, NTFS_ICONV and MSDOSFS_ICONV kernel options
(with corresponding modules).
- kiconv(3) for loadable charset conversion tables support.

Submitted by: Ryuichiro Imura <imura@ryu16.org>


# b9f78d2b 09-Sep-2003 Bill Paul <wpaul@FreeBSD.org>

Add a device driver for the Broadcom BCM4401 ethernet controller,
written by Stuart Walsh and Duncan Barclay (with some kibbitzing by
me). I'm checking it in on Stuart's behalf.

The BCM4401 is built into several x86 laptop and desktop systems. For the
moment, I have only enabled it in the x86 kernel config because although
it's a PCI device, I haven't heard of any standalone NICs that use it. If
somebody knows of one, we can easily add it to the other arches.

This driver uses register/structure data gleaned from the Linux
driver released by Broadcom, but does not contain any of the code
from the Linux driver itself. It uses busdma.


# a94100fa 07-Sep-2003 Bill Paul <wpaul@FreeBSD.org>

Take the support for the 8139C+/8169/8169S/8110S chips out of the
rl(4) driver and put it in a new re(4) driver. The re(4) driver shares
the if_rlreg.h file with rl(4) but is a separate module. (Ultimately
I may change this. For now, it's convenient.)

rl(4) has been modified so that it will never attach to an 8139C+
chip, leaving it to re(4) instead. Only re(4) has the PCI IDs to
match the 8169/8169S/8110S gigE chips. if_re.c contains the same
basic code that was originally bolted onto if_rl.c, with the
following updates:

- Added support for jumbo frames. Currently, there seems to be
a limit of approximately 6200 bytes for jumbo frames on transmit.
(This was determined via experimentation.) The 8169S/8110S chips
apparently are limited to 7.5K frames on transmit. This may require
some more work, though the framework to handle jumbo frames on RX
is in place: the re_rxeof() routine will gather up frames than span
multiple 2K clusters into a single mbuf list.

- Fixed bug in re_txeof(): if we reap some of the TX buffers,
but there are still some pending, re-arm the timer before exiting
re_txeof() so that another timeout interrupt will be generated, just
in case re_start() doesn't do it for us.

- Handle the 'link state changed' interrupt

- Fix a detach bug. If re(4) is loaded as a module, and you do
tcpdump -i re0, then you do 'kldunload if_re,' the system will
panic after a few seconds. This happens because ether_ifdetach()
ends up calling the BPF detach code, which notices the interface
is in promiscuous mode and tries to switch promisc mode off while
detaching the BPF listner. This ultimately results in a call
to re_ioctl() (due to SIOCSIFFLAGS), which in turn calls re_init()
to handle the IFF_PROMISC flag change. Unfortunately, calling re_init()
here turns the chip back on and restarts the 1-second timeout loop
that drives re_tick(). By the time the timeout fires, if_re.ko
has been unloaded, which results in a call to invalid code and
blows up the system.

To fix this, I cleared the IFF_UP flag before calling ether_ifdetach(),
which stops the ioctl routine from trying to reset the chip.

- Modified comments in re_rxeof() relating to the difference in
RX descriptor status bit layout between the 8139C+ and the gigE
chips. The layout is different because the frame length field
was expanded from 12 bits to 13, and they got rid of one of the
status bits to make room.

- Add diagnostic code (re_diag()) to test for the case where a user
has installed a broken 32-bit 8169 PCI NIC in a 64-bit slot. Some
NICs have the REQ64# and ACK64# lines connected even though the
board is 32-bit only (in this case, they should be pulled high).
This fools the chip into doing 64-bit DMA transfers even though
there is no 64-bit data path. To detect this, re_diag() puts the
chip into digital loopback mode and sets the receiver to promiscuous
mode, then initiates a single 64-byte packet transmission. The
frame is echoed back to the host, and if the frame contents are
intact, we know DMA is working correctly, otherwise we complain
loudly on the console and abort the device attach. (At the moment,
I don't know of any way to work around the problem other than
physically modifying the board, so until/unless I can think of a
software workaround, this will have do to.)

- Created re(4) man page

- Modified rlphy.c to allow re(4) to attach as well as rl(4).

Note that this code works for the sample 8169/Marvell 88E1000 NIC
that I have, but probably won't work for the 8169S/8110S chips.
RealTek has sent me some sample NICs, but they haven't arrived yet.
I will probably need to add an rlgphy driver to handle the on-board
PHY in the 8169S/8110S (it needs special DSP initialization).


# d14e51c9 07-Sep-2003 Tim J. Robbins <tjr@FreeBSD.org>

Add support for the Coda 6.x venus<->kernel interface. This extends
FIDs to be 128-bits wide and adds support for realms.

Add a new CODA_COMPAT_5 option, which requests support for the old
Coda 5.x interface instead of the new one.

Create a new coda5.ko module that supports the 5.x interface, and make
the existing coda.ko module use the new 6.x interface. These modules
cannot both be loaded at the same time.

Obtained from: Jan Harkes & the coda-6.0.2 distribution,
NetBSD (drochner) (CODA_COMPAT_5 option).


# 2bec1c89 06-Sep-2003 Marcel Moolenaar <marcel@FreeBSD.org>

Hook-up the uart(4) driver to the build. For a detailed description
of what uart(4) is and/or is not see the initial commit log of one
of the files in sys/dev/uart (or see share/man/man4/uart.4).

Note that currently pc98 shares the MD file with i386. This needs
to change when pc98 support is fleshed-out to properly support the
various UARTs. A good example is sparc64 in this respect.

We build uart(4) as a module on all platforms. This may break
the ppc port. That depends on whether they do actually build
modules.

To use uart(4) on alpha, one must use the NO_SIO option.


# d7d54aa1 30-Aug-2003 Søren Schmidt <sos@FreeBSD.org>

Add pst as a module


# 782f7255 21-Aug-2003 Robert Watson <rwatson@FreeBSD.org>

Hook up mac_stub to the modules Makefile.
Hook up mac_stub in files and options.
Reference mac_stub in NOTES.


# 96e934df 09-Aug-2003 David E. O'Brien <obrien@FreeBSD.org>

Re-enable pcfclock in the build.


# a35b3386 22-Jul-2003 Peter Wemm <peter@FreeBSD.org>

Initiate de-orbit burn for fpu-less operation. 386+387 is still
theoretically supportable, but you'd really be happier with FreeBSD 2.1.8
on it.


# 35ba56ec 21-Jul-2003 Sam Leffler <sam@FreeBSD.org>

hook safe driver to the build


# 58aa55ef 21-Jul-2003 Hartmut Brandt <harti@FreeBSD.org>

This is a pseudo physical interface for the HARP ATM stack. When loaded
it attaches to all existing NATM network interfaces in the system
and creates a HARP physical interface for each of them. This allows
us to use the same set of ATM drivers for all ATM stuff. It is
possible to use the same interface for HARP, NATM and netgraph at the
same time.


# 8dd4275c 15-Jul-2003 Hartmut Brandt <harti@FreeBSD.org>

This is a driver for IDT77252 based ATM interfaces. It has been tested
with a ProATM-155 and an IDT evaluation board and should also work
with a ProATM-25 (it seems to work at least, I cannot really measure
what the card emits). The driver has been tested on i386 and sparc64,
but should work an other archs also. It supports UBR, CBR, ABR and VBR;
AAL0, AAL5 and AALraw. As an additional feature VCI/VPI 0/0 can be
opened for receiving in AALraw mode and receives all cells not claimed
by other open VCs (even cells with invalid GFC, VPI and VCI fields and
OAM cells).

Thanks to Christian Bucari from ProSum for lending two cards and answering
my questions.


# 7e9024cd 15-Jul-2003 Hartmut Brandt <harti@FreeBSD.org>

Add a facility for devices, specifically network interfaces, that require
large to huge amounts of small or medium sized receive buffers. The problem
with these situations is that they eat up the available DMA address space
very quickly when using mbufs or even mbuf clusters. Additionally this
facility provides a direct mapping between 32-bit integers and these buffers.
This is needed for devices originally designed for 32-bit systems. Ususally
the virtual address of the buffer is used as a handle to find the buffer as
soon as it is returned by the card. This does not work for 64-bit machines
and hence this mapping is needed.


# cf8603ce 28-Jun-2003 Ruslan Ermilov <ru@FreeBSD.org>

Attach the amd(4) module to the i386 and pc98 builds only;
untested on other platforms.

Not objected to by: scottl


# 81e151e4 28-Jun-2003 Sam Leffler <sam@FreeBSD.org>

hookup ath and ath_hal to the build


# c31c8523 27-Jun-2003 Scott Long <scottl@FreeBSD.org>

Hook umct up to the module tree.


# 61340e72 26-Jun-2003 Ruslan Ermilov <ru@FreeBSD.org>

Attach the "null" module to the LINT build.

Reviewed by: markm


# 7a07b896 24-Jun-2003 Ian Dowse <iedowse@FreeBSD.org>

The ext2fs module needs a machine-dependent bitops.h file, so only
build it on the i386 and alpha architectures, where this has been
set up (there is also a sparc64-bitops.h in sys/gnu/ext2fs, but it
appears to be broken and it is not linked up).

This should unbreak the sparc64 LINT build.


# ce3ae5c7 23-Jun-2003 Ian Dowse <iedowse@FreeBSD.org>

Include the ufs module if ALL_MODULES is defined so that it gets
built by LINT. Also override a number of knobs for enabling and
disabling various modules in the ALL_MODULES case to further increase
LINT's module coverage.

Submitted by: ru


# 26a9ce3e 23-Jun-2003 Matthew N. Dodd <mdodd@FreeBSD.org>

Hook up scd(4) to the build.

Noticed by: ru


# fb24f088 23-Jun-2003 Hartmut Brandt <harti@FreeBSD.org>

This is a driver for Fore PCA200E cards that uses busdma and works on
little endian and big endian and with 32 and 64 bit pointers. It already
has the hooks to be used for HARP, NATM and ngATM.


# c594298b 17-Jun-2003 Hartmut Brandt <harti@FreeBSD.org>

This is a driver for Fore/Marconi HE155 and HE622 ATM cards. It is full
busdma and has extensively been tested on i386 and sparc64.


# 7d361237 16-Jun-2003 Hartmut Brandt <harti@FreeBSD.org>

Fix the breakage introduced by rev. 1.43 of sys/dev/midway.c (don't commit
on friday 13th and without making a universe). This adds struct and
constant definitions for ATM traffic parameters and re-enables the
build of the midway driver.

Tested by: make universe


# e45d184c 14-Jun-2003 Warner Losh <imp@FreeBSD.org>

The en module has been broken for the last 40 hours. Disconnect it
from the tree until it is fixed. Since it is an atm driver, it isn't
commonly used so this will not negatively impact too many people.
harti can reconnect it when he resurfaces and corrects the en module
problems. This should allow snapshots to start succeeding again.

Reported by: lots of people


# 49336098 14-Jun-2003 Nicolas Souchu <nsouch@FreeBSD.org>

Add i2c to the list of modules to build.


# 591f4054 12-Jun-2003 Hartmut Brandt <harti@FreeBSD.org>

This is a driver for the physical layer chips used in ATM interfaces.
It currently supports the PMC Sierra Lite, Ultra and 622 chips and
the IDT 77105. The driver handles media options and state in a consistent
manner for ATM drivers. The next commit to the midway driver will make
it use utopia.


# 68bf8b56 09-Jun-2003 Poul-Henning Kamp <phk@FreeBSD.org>

remove old CCD module


# 5d9bef64 31-May-2003 Poul-Henning Kamp <phk@FreeBSD.org>

Add GEOM module compilation shims.


# 3e4e4849 13-May-2003 Yoshihiro Takahashi <nyan@FreeBSD.org>

Move the ips driver from ${MACHINE_ARCH} == "i386" to ${MACHINE} == "i386".

Approved by: re (scottl)


# 3bd9d6f5 11-May-2003 Scott Long <scottl@FreeBSD.org>

Hook up the ips module


# 11e04b05 03-May-2003 Shunsuke Akiyama <akiyama@FreeBSD.org>

Add RealTek RTL8150 USB to fast Ethernet controller driver.
This driver now supports the Melco LUA-KTX and the GREEN HOUSE
GH-USB100B.

Reviewed by: imp
MFC after: 2 weeks


# 33cfde03 25-Apr-2003 Hartmut Brandt <harti@FreeBSD.org>

Convert the midway driver to use busdma. Except for this conversion the
following changes have been done:

- stylify. The original code was too hard to read.
- get rid of a number of compilation options (Adaptec-only, Eni-only, no-DMA).
- more debugging features.
- locking. This is not correct yet in the absence of interface layer locking,
but is correct enough to not to cause lock order reversals.
- remove RAW mode. There are no users of this in the tree and I doubt that
there are any.
- remove NetBSD compatibility code. There was no way to keep NetBSD non-busdma
and FreeBSD busdma code together.
- if_en now buildable as a module.

This has been actively tested on sparc64 and i386 with ENI server and
client cards and an Adaptec card (thanks to kjc).

Reviewed by: mdodd, arr


# 87b4a259 20-Apr-2003 Bill Paul <wpaul@FreeBSD.org>

Add device driver support for the ASIX Electronics AX88172 USB 2.0
ethernet controller. The driver has been tested with the LinkSys
USB200M adapter. I know for a fact that there are other devices out
there with this chip but don't have all the USB vendor/device IDs.

Note: I'm not sure if this will force the driver to end up in the
install kernel image or not. Special magic needs to be done to exclude
it to keep the boot floppies from bloating again, someone please
advise.


# 7d0de413 13-Apr-2003 Max Khon <fjoe@FreeBSD.org>

Driver for Granch SBNI16 SHDSL modem

Submitted by: Denis I. Timofeev <timofeev@granch.ru>
MFC after: 1 week


# ba32bfe2 12-Apr-2003 Yoshihiro Takahashi <nyan@FreeBSD.org>

The dpt, ex and idt modules are for i386 only.


# 991aa7bf 29-Mar-2003 Matthew N. Dodd <mdodd@FreeBSD.org>

Add 'idt' driver to module build.


# 56376071 29-Mar-2003 Matthew N. Dodd <mdodd@FreeBSD.org>

Add module infrastructure for 'dpt' driver.


# 79ac92f8 29-Mar-2003 Matthew N. Dodd <mdodd@FreeBSD.org>

Add module infrastructure for 'if_ex'.


# 81d9009a 29-Mar-2003 Matthew N. Dodd <mdodd@FreeBSD.org>

Add module infrastructure for 'vpd' and 'smbios' and move 'smbios'
to new home.


# 187e120c 29-Mar-2003 Matthew N. Dodd <mdodd@FreeBSD.org>

Add module infrastructure for elink.


# dd4cb1b8 29-Mar-2003 Matthew N. Dodd <mdodd@FreeBSD.org>

Add module infrastructure for if_ie.


# a71a3073 29-Mar-2003 Matthew N. Dodd <mdodd@FreeBSD.org>

Retire 'atspeaker' and 'pcspeaker'. We'll use 'speaker' which
is the same as the config device directive.

Reminded by: Takahashi Yoshihiro <nyan@jp.FreeBSD.org>


# 99bca506 12-Mar-2003 Ruslan Ermilov <ru@FreeBSD.org>

Simplify the assignment statement.


# 484be8ea 09-Mar-2003 Yoshihiro Takahashi <nyan@FreeBSD.org>

Build the drm module also on pc98.


# 03d03162 02-Mar-2003 Robert Watson <rwatson@FreeBSD.org>

A cute yet small MAC policy that provides a simple ACL mechanism to
permit users and groups to bind ports for TCP or UDP, and is intended
to be combined with the recently committed support for
net.inet.ip.portrange.reservedhigh. The policy is twiddled using
sysctl(8). To use this module, you will need to compile in MAC
support, and probably set reservedhigh to 0, then twiddle
security.mac.portacl.rules to set things as desired. This policy
module only restricts ports explicitly bound using bind(), not
implicitly bound ports where the port number is selected by the
IP stack. It appears to work properly in my local configuration,
but needs more broad testing.

A sample policy might be:

# sysctl security.mac.portacl.rules="uid:425:tcp:80,uid:425:tcp:79"

This permits uid 425 to bind TCP sockets to ports 79 and 80. Currently
no distinction is made for incoming vs. outgoing ports with TCP,
although that would probably be easy to add.

Obtained from: TrustedBSD Project
Sponsored by: DARPA, Network Associates Laboratories


# e4de92ce 27-Feb-2003 Ruslan Ermilov <ru@FreeBSD.org>

Hook up the if_my module to the build.


# ef9e45dd 27-Feb-2003 Tim J. Robbins <tjr@FreeBSD.org>

Build the ncp and nwfs modules again, but only on i386 for now.


# 05d1e23a 13-Feb-2003 Eric Anholt <anholt@FreeBSD.org>

Split the arch-specific AGP files into the appropriate files.* and do the same
for the agp module, and add agp to the list of modules to compile for alpha.
Add an alpha_mb() to agp_flush_cache for alpha -- it's not correct but may
improve the situation, and it's what linux and NetBSD do.


# f801952a 13-Feb-2003 Peter Wemm <peter@FreeBSD.org>

We only provide agp drivers for the intel chipsets, move the agp
subdir to the i386-only section.


# 83536948 03-Feb-2003 Yoshihiro Takahashi <nyan@FreeBSD.org>

Add CanBe power management controller support.

Submitted by: KIYOHARA Takashi <kiyohara@kk.iij4u.or.jp>


# 4875819c 20-Jan-2003 Jake Burkholder <jake@FreeBSD.org>

Run kldxref on sparc64, it works now.


# 7534ac7a 17-Jan-2003 Matthew N. Dodd <mdodd@FreeBSD.org>

A driver for the System Management Application Program
Interface (SMAPI) BIOS, which is present on some IBM
Thinkpad models (560, 600, 770 to name a few.)

The SMAPI BIOS provides access to System Information,
System Configuration, and Power Management.


# 0ac19bd5 15-Jan-2003 Sam Leffler <sam@FreeBSD.org>

hookup wlan and rcv4 modules to the build

Reviewed by: imp


# 73badb24 09-Jan-2003 David E. O'Brien <obrien@FreeBSD.org>

Build gem(4) on powerpc also.


# d16723e8 09-Jan-2003 David E. O'Brien <obrien@FreeBSD.org>

Moved if_hme to hme.
(I need a score card to keep track of the /sys layout fights)


# 28d187c6 08-Jan-2003 Thomas Moestl <tmm@FreeBSD.org>

Build a gem module, for sparc64 only for now.


# b1c519de 08-Jan-2003 David E. O'Brien <obrien@FreeBSD.org>

Add an hme(4) module.

PR: 46871
Submitted by: Hartmut Brandt <brandt@fokus.gmd.de>


# f2de1393 12-Dec-2002 Jake Burkholder <jake@FreeBSD.org>

Don't run kldxref when installing modules on sparc64. kldxref and the whole
module dependency system rely on linker behaviour that is machine dependent
and not part of the elf spec, and only work by accident on other platforms.

Approved by: re


# f7883a79 08-Dec-2002 Robert Watson <rwatson@FreeBSD.org>

Correct alphabetization of awi entry.

Inane act of: re
Spotted by: bde


# e6f88402 07-Dec-2002 Robert Watson <rwatson@FreeBSD.org>

Move the awi module build dependency into the MACHINE_ARCH=i386 entry.


# 3358dbd0 07-Dec-2002 Robert Watson <rwatson@FreeBSD.org>

Hook up the awi module for build on i386 and pc98, which appear to be
the supported platforms. We build it into GENERIC, and it is currently
listed on the supported module list for drivers.conf on i386, which
breaks the release build. This may fix the release build for RC1 on
i386.

Conspiracy of: re


# c3a04e1e 03-Dec-2002 Robert Watson <rwatson@FreeBSD.org>

Unhook the old LOMAC module, now replaced with mac_lomac.

Approved by: re (jhb)
Obtained from: TrustedBSD Project
Sponsored by: DARPA, Network Associates Laboratories


# fe5f892d 26-Nov-2002 Robert Watson <rwatson@FreeBSD.org>

Unhook LOMAC kernel module since the functionality is now provided by
the smaller, cleaner, less bit-rotted mac_lomac module.

Approved by: re
Obtained from: TrustedBSD Project
Sponsored by: DARPA, Network Associates Laboratories


# 5773cccf 26-Nov-2002 Robert Watson <rwatson@FreeBSD.org>

Hook up the mac_lomac module build.

Approved by: re
Obtained from: TrustedBSD Project
Sponsored by: DARPA, Network Associates Laboratories


# 147e2e20 21-Nov-2002 Scott Long <scottl@FreeBSD.org>

Hook the RAIDFrame module up to the build

Approved by: re


# f6af4ff6 08-Nov-2002 John Baldwin <jhb@FreeBSD.org>

Make 3dfx i386-only. The memrange API it uses may be defined in an MI
header, but it is only implemented on i386.


# 787f1498 08-Nov-2002 John Baldwin <jhb@FreeBSD.org>

Move rc(4) over to MI notes and enable it as a MI module.


# 7d2ba89b 07-Nov-2002 John Baldwin <jhb@FreeBSD.org>

Move firewire back to being MI.


# 01c8945c 07-Nov-2002 John Baldwin <jhb@FreeBSD.org>

Create a MACHINE_ARCH == i386 section that first lists modules common
to both i386 and pc98 and then uses MACHINE subsections to list modules
specific to i386/i386 and i386/pc98.


# 246d578c 06-Nov-2002 John Baldwin <jhb@FreeBSD.org>

lnc(4) uses kvtop() and is thus i386-only for now.


# c8341b3e 06-Nov-2002 John Baldwin <jhb@FreeBSD.org>

Make firewire i386-only for now. It doesn't quite handle machines with
64-bit address spaces yet. Pointy hat to myself for sticking it in the MI
NOTES file to begin with.


# b76c5a11 06-Nov-2002 John Baldwin <jhb@FreeBSD.org>

ed(4) uses kvtop() and is thus i386-only. It has several other warnings
related to sizeof(int) != sizeof(void *), but kvtop() is much harder to
fix.

Approved by: imp


# fb404d6f 03-Nov-2002 Scott Long <scottl@FreeBSD.org>

Hook the aic7xxx modules up. This requires some extra care since aicasm
is a compiler tool and needs to be compiled by the host compiler. I've
tested this in i386->sparc cross-build, 4.7->current upgrade, normal
buildkernel target, and normal /sys/i386/compile/GENERIC configurations.

Submitted by: ru


# 97af632b 31-Oct-2002 John Baldwin <jhb@FreeBSD.org>

Add an isp(4) module. sbus support is only compiled in on sparc64.
pci support is always compiled in.


# bc96e1c7 31-Oct-2002 John Baldwin <jhb@FreeBSD.org>

Add a module for mpt(4).


# d2f53986 30-Oct-2002 Yoshihiro Takahashi <nyan@FreeBSD.org>

Rename the speaker device for pc98 to 'pcspeaker'.


# 8c7cf505 24-Oct-2002 Marcel Moolenaar <marcel@FreeBSD.org>

Build the following modules on ia64 as well:
ar, asr, bktr, cardbus, cbb, ep, exca, hea, hfa, ipfilter, lomac,
netgraph, pccard, rc, sound, sppp, vinum.


# 51363000 23-Oct-2002 Robert Watson <rwatson@FreeBSD.org>

Provide a simple sample labeled access control policy, mac_partition.
This policy can be loaded dynamically, and assigns each process a
partition number, as well as permitting processes to operate outside
the partition. Processes contained in a partition can only "see"
processes inside the same partition, so it's a little like jail.
The partition of a user can be set using the label mechanisms in
login.conf. This sample policy is a good starting point for developers
wanting to learn about how to produce labeled policies, as it labels
only one kernel object, the process credential.

PR:
Submitted by:
Reviewed by:
Approved by:
Obtained from: TrustedBSD Project
Sponsored by: DARPA, Network Associates Laboratories


# 599c57a9 23-Oct-2002 John Baldwin <jhb@FreeBSD.org>

- New-bussify the rc(4) device driver.
- Add detach support to the driver so that you can kldunload the module.
Note that currently rc_detach() fails to detach a unit if any of its
child devices are open, thus a kldunload will fail if any of the tty
devices are currently open.
- sys/i386/isa/ic/cd180.h was moved to sys/dev/ic/cd180.h as part of
this change.

Requested by: rwatson
Tested by: rwatson


# 42d6ed03 20-Oct-2002 Bruce Evans <bde@FreeBSD.org>

Fixed some unsorting.


# 51d123d6 20-Oct-2002 Alexander Kabaev <kan@FreeBSD.org>

Connect ubsa module to build.

Forgotten by: kan


# f544a528 16-Oct-2002 Mark Murray <markm@FreeBSD.org>

Module-ize the 'core' crypto stuff. This may still need to be compiled
into the kernel by default (if required), but other modules can now
depend() on this.

Fix inter-module dependancy.

Earlier version OK'ed by: sam


# 0921c98b 14-Oct-2002 Yoshihiro Takahashi <nyan@FreeBSD.org>

The ep and pccard modules build on pc98.


# f3d92b26 13-Oct-2002 Olivier Houchard <cognet@FreeBSD.org>

Connect trm(4) to the build.

Reviewed by: mux (mentor)
Approved by: mux (mentor)


# 34c3b2ca 06-Oct-2002 Alfred Perlstein <alfred@FreeBSD.org>

Disconnect "sem" module from the build.


# 86597d47 06-Oct-2002 Maxime Henrion <mux@FreeBSD.org>

Oops. Actually connect back msdosfs to the build for every platform.

Spotted by: bde


# ba7fd983 05-Oct-2002 Maxime Henrion <mux@FreeBSD.org>

The msdosfs module now builds on sparc64. No idea if it works
though.


# 8b7ce2ff 04-Oct-2002 Sam Leffler <sam@FreeBSD.org>

hookup new crypto support to the config/build process


# e73b093a 04-Oct-2002 Matthew N. Dodd <mdodd@FreeBSD.org>

Turn on the mcd(4) module.


# aa980888 01-Oct-2002 Jake Burkholder <jake@FreeBSD.org>

Moved the cam and cd9660 modules to the MI list. Don't build msdosfs or
syscons on sparc64; msdosfs will likely never work, syscons needs work.


# 9d3b5ef8 01-Oct-2002 Warner Losh <imp@FreeBSD.org>

need exca too


# 4e54e04e 25-Sep-2002 Warner Losh <imp@FreeBSD.org>

Add cardbus, cbb, ep and pccard. These can likely be moved to the MI
section, but I've not had a chance to build them on other
architectures recently enough to add them.


# bddcb995 21-Sep-2002 Hidetoshi Shimokawa <simokawa@FreeBSD.org>

Firewire can be built on other than i386 after sbp.c fix.

Tested on: Alpha (beast.freebsd.org)


# 6d5dec35 18-Sep-2002 Alfred Perlstein <alfred@FreeBSD.org>

Add the rest of the kernel support for the sem_ API in kern/uipc_sem.c.

Option 'P1003_1B_SEMAPHORES' to compile them in, or load the "sem" module
to activate them.

Have kern/makesyscalls.sh emit an include for sys/_semaphore.h into sysproto.h
to pull in the typedef for semid_t.

Add the syscalls to the syscall table as module stubs.


# 3729f1a5 16-Sep-2002 Yoshihiro Takahashi <nyan@FreeBSD.org>

Don't build unneeded modules for pc98.


# 9fb11714 13-Sep-2002 Matt Jacob <mjacob@FreeBSD.org>

Put firewire under architectures it actually might conceivably
build on, let alone actually do some useful work on real hardware.

Namely, put it in i386/pc98. There is no bus_dma.h on the other architecures,
tra la.


# f3a49419 12-Sep-2002 Katsushi Kobayashi <ikob@FreeBSD.org>

Add firewire module


# 7edc0640 06-Sep-2002 Peter Wemm <peter@FreeBSD.org>

Add the aout module subdir for the i386.


# b5e8c7d7 06-Sep-2002 Maxim Sobolev <sobomax@FreeBSD.org>

Connect if_gre module to the build.


# 3251b398 03-Sep-2002 Justin T. Gibbs <gibbs@FreeBSD.org>

Remove aic7xxx from the module build framework until all bootstrapping
issues are resolved.


# 02b8bc80 31-Aug-2002 Justin T. Gibbs <gibbs@FreeBSD.org>

Complete the hookup of ahd/ahc module building.


# 48093d33 20-Aug-2002 Yoshihiro Takahashi <nyan@FreeBSD.org>

Remove duplicate vinum entry.


# 31f48889 11-Aug-2002 Josef Karthauser <joe@FreeBSD.org>

Add the uftdi ucom driver which supports the following adapters:

Inland UAS111
QVS USC-1000
HP USB-Serial adapter shipped with some HP laptops

Submitted by: takawata
MFC After: 7 days


# ebbd4fa8 01-Aug-2002 Robert Watson <rwatson@FreeBSD.org>

Introduce support for Mandatory Access Control and extensible
kernel access control.

Hook up various policy modules to the kernel build.

Note that a number of these modules require futher entry point commits
in the remainder of the kernel to become fully functional, but enough
of the pieces are in place to allow experimentation.

Note also that it would be desirable to not build the mac_*.ko modules
if 'options MAC' is not defined in the kernel configuration, because
the resulting modules are not useful without the kernel option. There
doesn't appear to be precedent for a way to do this -- for example,
we allow ipfw.ko to be built even if 'options NETINET' isn't defined.
Suggests welcomed on the "best" way to do this.

Obtained from: TrustedBSD Project
Sponsored by: DARPA, NAI Labs


# ca095220 30-Jul-2002 Josef Karthauser <joe@FreeBSD.org>

Commit a version of the uvisor driver for connecting Handspring
Visors via USB.

Submitted by: Chia-liang Kao <clkao@clkao.org>


# 3a6cbf01 03-Jun-2002 Matthew N. Dodd <mdodd@FreeBSD.org>

- Add 'hea'.
- Compile 'hfa' only on i386 (for now).


# ea71f12b 28-May-2002 Marcel Moolenaar <marcel@FreeBSD.org>

Remove bktr for ia64. Same problem as vinum. See PR 38678.


# ed323145 28-May-2002 Marcel Moolenaar <marcel@FreeBSD.org>

Vinum doesn't build on ia64.
See PR: 38678


# 2cbf3dd1 18-May-2002 Marcel Moolenaar <marcel@FreeBSD.org>

Remove asr from the ia64 build. Its use of KERNBASE appears i386
specific by way of which headers are being included (and headers
not included).


# be1d673d 14-May-2002 Ruslan Ermilov <ru@FreeBSD.org>

Check that kldxref(8) exists before running it.


# afe18bfe 28-Apr-2002 Dag-Erling Smørgrav <des@FreeBSD.org>

Move drm to the i386-only section.


# 67a2a28f 27-Apr-2002 Eric Anholt <anholt@FreeBSD.org>

Hook the DRM up to the build and add it to NOTES.

Approved by: des


# 3adcb4ce 19-Apr-2002 Marcel Moolenaar <marcel@FreeBSD.org>

Build modules on ia64:
o Make the cam, cd9660 lomac and sound modules i386 and alpha
specific due to link problems (@gprel relocation when @ltoff
is required). Once resolved, these can be moved back to the
generic list.
o Build linprocfs only on those architectures that have the
linux module.
o Make the sppp module i386 and alpha specific due to compile
problems (pointers as switch cases). Once resolved, this can
be moved back to the generic list.
o Build all i386 specific modules, with the exception of those
mentioned above as being moved from the generic list to the
i386 list and those with dependencies on the linux module (aac)
or i386 dependent (ar, apm, atspeaker, fpu, gnufpu, ibcs2,
linux, ncv, nsp, netgraph, oltr, pecoff, s3, sbni, stg and
vesa).
o Don't build acpi as a module yet. It most be ported first.
Once ported, it can be added to the ia64 list.
o Don't build ipfilter yet due to compile errors (osreldate.h
not found).


# 906cf752 16-Apr-2002 Matthew N. Dodd <mdodd@FreeBSD.org>

- Convert the 'hfa' ATM interface driver to newbus.
- Add stubs for EISA and SBUS cards.
(VME, FutureBUS, and TurboChannel stubs not provided.)
- Add infrastructure to build driver and bus front-end modules.


# df263cbd 14-Apr-2002 Scott Long <scottl@FreeBSD.org>

Add a filesystem driver for the Universal Disk Format. For more info,
see http://people.freebsd.org/~scottl/udf

MFC after: when asmodai gets the backport done
Prodded by: phk asmodai des


# 7a43a96a 21-Mar-2002 Ruslan Ermilov <ru@FreeBSD.org>

Replaced hacks in sbin/Makefile,v 1.99 and usr.sbin/Makefile,v 1.217
with the NO_IPFILTER make.conf(5) knob.

(So that we can "make the-rest-of-the-world" again.)


# 916e6e02 18-Mar-2002 Josef Karthauser <joe@FreeBSD.org>

Add a USB comm driver.

Ported from NetBSD by: akiyama


# 63c6b757 03-Mar-2002 Alfred Perlstein <alfred@FreeBSD.org>

Support for USB fm radio.

Submitted by: David Yeske <dyeske@yahoo.com>


# 550acacb 20-Feb-2002 Takeshi Shibagaki <shiba@FreeBSD.org>

Add a module of xe driver.

Approved by: imp


# 5a7ed3fb 17-Feb-2002 Poul-Henning Kamp <phk@FreeBSD.org>

Always build all modules for LINT


# 3fd18735 04-Feb-2002 Dag-Erling Smørgrav <des@FreeBSD.org>

Move the pseudofs, procfs and linprocfs modules out from the fs directory.
Keeping them there seemed like a good idea at the time, but it annoys bde
and confuses people who do not understand how MODULES_OVERRIDE works.


# a245737c 20-Jan-2002 Mike Smith <msmith@FreeBSD.org>

Add the 'iir' driver, for the Intel Integrated RAID controllers and
prior ICP Vortex models. This driver was developed by Achim Leubner
of Intel (previously with ICP Vortex) and Boji Kannanthanam of Intel.

Submitted by: "Kannanthanam, Boji T" <boji.t.kannanthanam@intel.com>
MFC after: 2 weeks


# eda6ecb2 08-Jan-2002 Max Khon <fjoe@FreeBSD.org>

- generic Arcnet framework
- device driver for SMC COM90cx6 Arcnet network adapters

Obtained from: NetBSD


# 21d56e9c 29-Dec-2001 Alfred Perlstein <alfred@FreeBSD.org>

Make AIO a loadable module.

Remove the explicit call to aio_proc_rundown() from exit1(), instead AIO
will use at_exit(9).

Add functions at_exec(9), rm_at_exec(9) which function nearly the
same as at_exec(9) and rm_at_exec(9), these functions are called
on behalf of modules at the time of execve(2) after the image
activator has run.

Use a modified version of tegge's suggestion via at_exec(9) to close
an exploitable race in AIO.

Fix SYSCALL_MODULE_HELPER such that it's archetecuterally neutral,
the problem was that one had to pass it a paramater indicating the
number of arguments which were actually the number of "int". Fix
it by using an inline version of the AS macro against the syscall
arguments. (AS should be available globally but we'll get to that
later.)

Add a primative system for dynamically adding kqueue ops, it's really
not as sophisticated as it should be, but I'll discuss with jlemon when
he's around.


# 8bf402ad 20-Dec-2001 Prafulla Deuskar <pdeuskar@FreeBSD.org>

-Remove unneeded include stddef.h
-Modify modules Makefile so that em driver compiles only on
i386 platform. (Alpha not supported yet)

PR: kern/32993
MFC after: 1


# 1e83e65c 14-Dec-2001 Noriaki Mitsunaga <non@FreeBSD.org>

Add modules of scsi_low based SCSI drivers ncv, nsp, stg, and common
part scsi_low.

Submitted-by: takawata


# 0e3b6d50 12-Dec-2001 Sheldon Hearn <sheldonh@FreeBSD.org>

Connect libiconv to the build.

Recent work by fjoe and bp has fixed smbfs. The smbfs module
can now be loaded once libiconv and libmchain have been loaded,
and works!


# 3a669c52 03-Dec-2001 Dag-Erling Smørgrav <des@FreeBSD.org>

Pseudofsize procfs(5).


# 2985f572 02-Dec-2001 Boris Popov <bp@FreeBSD.org>

Enable build of smbfs. It works now as before on both UP and MP machines.


# e6770f4c 02-Dec-2001 Prafulla Deuskar <pdeuskar@FreeBSD.org>

This is the first commit of the Intel gigabit driver for
PRO/1000 cards.

Submitted by:Prafulla Deuskar
Reviewed by: Paul Saab
MFC after:1 week


# bd21bbea 01-Dec-2001 Mike Smith <msmith@FreeBSD.org>

Re-enable the ciss driver, now that it should be building again.


# ddecf579 28-Nov-2001 Warner Losh <imp@FreeBSD.org>

Remove ciss from the modules build until the build issues are resolved.


# 3a31b7eb 27-Nov-2001 Mike Smith <msmith@FreeBSD.org>

Add the 'ciss' driver, which supports the Compaq SmartRAID 5* family of
RAID controllers (5300, 532, 5i, etc.)

Thanks to Compaq and Yahoo! for support during the development of this
driver.

MFC after: 1 week


# ea38b939 21-Nov-2001 Max Khon <fjoe@FreeBSD.org>

Add driver for Granch SBNI12-xx ISA and PCI network adapters.

MFC after: 1 week


# 6fba85a0 19-Nov-2001 Brian Feldman <green@FreeBSD.org>

The "lomac" module compiles fine on Alpha, too.

Tested by: wilko


# a066b1c1 19-Nov-2001 Brian Feldman <green@FreeBSD.org>

Add module "lomac" to the modules Makefile, i386 section. If someone on
Alpha can verify that it compiles fine there, too, this should be moved
to the MI section (or that problem fixed); I've only had x86 hardware to
est with.

Sponsored by: DARPA, NAI Labs (CBOSS project)


# 1b6c2589 03-Nov-2001 Poul-Henning Kamp <phk@FreeBSD.org>

Add modules for lpt, plip, ppbus, ppi and pps.

Submitted by: j mckitrick <jcm@freebsd-uk.eu.org>


# f4d25d1d 27-Oct-2001 Yoshihiro Takahashi <nyan@FreeBSD.org>

Remove duplicate apm entry for pc98


# 888ef2d9 24-Oct-2001 Matt Jacob <mjacob@FreeBSD.org>

Unbreak alpha builds.


# a55dfa2a 24-Oct-2001 Hajimu UMEMOTO <ume@FreeBSD.org>

Make apm a module.
We need further work to be able to specify an equivalence of `flags 0x20'.
Many PCs should work for now. But, some PCs need `flags 0x20'.


# 6cac8914 24-Oct-2001 Yoshihiro Takahashi <nyan@FreeBSD.org>

Added the pmc driver which supports power management controller of
old NEC PC-98NOTE.

Submitted by: chi@bd.mbn.or.jp (Chiharu Shibata)
MFC after: 1 week


# 0ba15d27 20-Oct-2001 Matt Jacob <mjacob@FreeBSD.org>

Oops. Remove wx.


# 0a622d82 19-Oct-2001 Marcel Moolenaar <marcel@FreeBSD.org>

Build the linux module on Alpha again. Note that the linux module
is not added to the MI list of modules. The current state of
affairs is such that the linux module is the exception, not the
common case.


# f1ef0a68 18-Oct-2001 Matt Jacob <mjacob@FreeBSD.org>

Linux compiles broken on alpha again. Remove.


# f8a984ed 18-Oct-2001 Jonathan Lemon <jlemon@FreeBSD.org>

Hook the gx module up to the build.


# 8c4026b5 05-Oct-2001 Paul Saab <ps@FreeBSD.org>

Activate the bridge/dummynet modules.

Reminded by: ru


# 95d67482 27-Sep-2001 Bill Paul <wpaul@FreeBSD.org>

Add device driver support for the Broadcom BCM570x family of gigabit
ethernet controllers. This adds support for the 3Com 3c996-T, the
SysKonnect SK-9D21 and SK-9D41, and the built-in gigE NICs on
Dell PowerEdge 2550 servers. The latter configuration hauls ass:
preliminary measurements show TCP speeds of over 900Mbps using
only normal size frames.

TCP/IP checksum offload, jumbo frames and VLAN tag insertion/stripping
are supported, as well as interrupt moderation.

Still need to fix autonegotiation support for 1000baseSX NICs, but
beyond that, driver is pretty solid.


# 9494d596 25-Sep-2001 Brooks Davis <brooks@FreeBSD.org>

Make faith loadable, unloadable, and clonable.


# 5e82ed7b 21-Sep-2001 Ruslan Ermilov <ru@FreeBSD.org>

Only call kldxref(8) once, after installing all modules.

OK'ed by: peter


# eb25edbd 18-Sep-2001 Peter Wemm <peter@FreeBSD.org>

Cleanup and split of nfs client and server code.
This builds on the top of several repo-copies.


# 87954c66 15-Sep-2001 Michael Reifenberger <mr@FreeBSD.org>

Conditionalize building of ex2fs module by WANT_EXT2FS_MODULE


# 1956b8f9 13-Sep-2001 Michael Reifenberger <mr@FreeBSD.org>

Add ext2fs module


# b40ce416 12-Sep-2001 Julian Elischer <julian@FreeBSD.org>

KSE Milestone 2
Note ALL MODULES MUST BE RECOMPILED
make the kernel aware that there are smaller units of scheduling than the
process. (but only allow one thread per process at this time).
This is functionally equivalent to teh previousl -current except
that there is a thread associated with each process.

Sorry john! (your next MFC will be a doosie!)

Reviewed by: peter@freebsd.org, dillon@freebsd.org

X-MFC after: ha ha ha ha


# 214bfc97 05-Sep-2001 Brooks Davis <brooks@FreeBSD.org>

Attach if_vlan to the build process.


# daee21d1 02-Sep-2001 Takeshi Shibagaki <shiba@FreeBSD.org>

Make the fe driver kernel object module to compile in default.

Reviewed by: imp


# 3ca509ea 29-Aug-2001 Mike Smith <msmith@FreeBSD.org>

Build the ACPI module by default.


# fffcbbcd 25-Jul-2001 Bill Fenner <fenner@FreeBSD.org>

Unbreak ip_mroute_mod


# d567d618 24-Jul-2001 Matt Jacob <mjacob@FreeBSD.org>

Move netgraph to i386 only. Which is where it works only.


# 362c5c1e 23-Jul-2001 Bill Paul <wpaul@FreeBSD.org>

You were knocked senseless by the Boomerang, spun around by the Cyclone,
blown over by the Hurricane and had a house dropped on you by the Tornado.
Now it's time to have your parade rained on by... the Typhoon!

This commit adds driver support for 3Com 3cR990 10/100 ethernet
adapters based on the Typhoon I and Typhoon II chipsets. This is actually
a port of the OpenBSD driver with many hacks by me.

No Virginia, there isn't any support for the hardware crypto yet. However
there is support for TCP/IP checksum offload and VLANs.

Special thanks go to Jason Wright, Aaron Campbell and Theo de Raadt for
squeezing enough info out of 3Com to get this written, and for doing
most of the hard work.

Manual page is included. Compiled as a module and included in GENERIC.


# 09261c4f 14-Jul-2001 Brooks Davis <brooks@FreeBSD.org>

Put module directories one per line so adding new modules creates readable
diffs and produces less conflicts with local source trees.


# 8ff09ab3 07-Jul-2001 Julian Elischer <julian@FreeBSD.org>

turn on the null-modem device.
(I've been using it with vmware for over a year now.)


# 53dab5fe 02-Jul-2001 Brooks Davis <brooks@FreeBSD.org>

gif(4) and stf(4) modernization:

- Remove gif dependencies from stf.
- Make gif and stf into modules
- Make gif cloneable.

PR: kern/27983
Reviewed by: ru, ume
Obtained from: NetBSD
MFC after: 1 week


# e219897a 29-Jun-2001 Joerg Wunsch <joerg@FreeBSD.org>

First stab at fixing resource deallocation, and implementing fdc(4) as
a KLD. Still doesn't work well except in the PCMCIA case (now if only
pccardd(8) could load and unload drivers dynamically...). Mainly, it
tries to find fdc0 on the PCI bus for whatever obscure reasons, but i
need someone who understands driver(9) to fix this. However, it's at least
already better than before, and i'm tired of maintaining too many private
changes in my tree, given the large patches bde submitted. :)

Idea of a KLD triggered by: Michael Reifenberger <root@nihil.plaut.de>


# dc9ffb12 28-Jun-2001 Dima Dorfman <dd@FreeBSD.org>

Remove dgm module.

Forgotten by: brian


# c45b4c1e 14-Jun-2001 Joerg Wunsch <joerg@FreeBSD.org>

Implement a loadable module for the oltr Olicom Token Ring driver. I
could only get a chance of testing it under 4.3, but together with the
if_oltr.c fixes at least it seems to work now. If someone has the chance
to test this under -current, please do.

Unfortunaltey, the TR code itself (if_iso88025subr.c) is not written
in a way that would allow to make a seaparate KLD out of it. By now,
just link it directly into the oltr KLD since it's probably the POLA
to be able to load the TR code together with the only TR hardware
driver we've got by now.

I've got one single unexplained panic (in doreti_switch or somewhere
there, calling a 0xc1XXXXXX address that did no longer belong to the
kernel at all) after unloading the modules once, thus i don't propose
a MFC of this module despite my testing has been done solely on 4.3,
unless someone is really going to test this stuff in -current.


# 1d6286d8 10-Jun-2001 Dag-Erling Smørgrav <des@FreeBSD.org>

Disconnect linprocfs prior to moving it.


# 373c5169 10-Jun-2001 Dag-Erling Smørgrav <des@FreeBSD.org>

Connect the fs directory to the build.


# c678bc4f 31-May-2001 Bill Paul <wpaul@FreeBSD.org>

Add device driver support for the Level 1 LXT1001 NetCellerator
gigabit ethernet controller chip. This device is used on some
fiber optic gigE cards from SMC, D-Link and Addtron. Jumbograms and
TCP/IP checksum offload on receive are supported. Hardware VLAN
filtering is not, because it doesn't play well with our existing
VLAN code. Also add manual page.

There is a 4.x version of this driver available at
http://www.freebsd.org/~wpaul/Level1/4.x if anyone feels adventurous
and wants to test it. I still need to do performance testing and
tuning with this device.

(For my next trick, I will make the 3Com 3cR990 sit up and beg.)


# 3259d3fb 30-May-2001 Doug Barton <dougb@FreeBSD.org>

Don't ask to build something that doesn't exist anymore.


# 1166fb51 25-May-2001 Ruslan Ermilov <ru@FreeBSD.org>

- sys/msdosfs moved to sys/fs/msdosfs
- msdos.ko renamed to msdosfs.ko
- /usr/include/msdosfs moved to /usr/include/fs/msdosfs


# 636b9e70 23-May-2001 Dima Dorfman <dd@FreeBSD.org>

Build snp(4) as a module.


# 99d300a1 23-May-2001 Ruslan Ermilov <ru@FreeBSD.org>

- FDESC, FIFO, NULL, PORTAL, PROC, UMAP and UNION file
systems were repo-copied from sys/miscfs to sys/fs.

- Renamed the following file systems and their modules:
fdesc -> fdescfs, portal -> portalfs, union -> unionfs.

- Renamed corresponding kernel options:
FDESC -> FDESCFS, PORTAL -> PORTALFS, UNION -> UNIONFS.

- Install header files for the above file systems.

- Removed bogus -I${.CURDIR}/../../sys CFLAGS from userland
Makefiles.


# ce4946da 11-May-2001 Bill Paul <wpaul@FreeBSD.org>

Add support for gigabit ethernet cards based on the NatSemi DP83820
and DP83821 gigabit ethernet MAC chips and the NatSemi DP83861 10/100/1000
copper PHY. There are a whole bunch of very low cost cards available with
this chipset selling for $150USD or less. This includes the SMC9462TX,
D-Link DGE-500T, Asante GigaNIX 1000TA and 1000TPC, and a couple cards
from Addtron.

This chip supports TCP/IP checksum offload, VLAN tagging/insertion.
2048-bit multicast filter, jumbograms and has 8K TX and 32K RX FIFOs.
I have not done serious performance testing with this driver. I know
it works, and I want it under CVS control so I can keep tabs on it.
Note that there's no serious mutex stuff in here yet either: I need
to talk more with jhb to figure out the right way to do this. That
said, I don't think there will be any problems.

This driver should also work on the alpha. It's not turned on in
GENERIC.


# ad01e0c8 01-May-2001 Brian Somers <brian@FreeBSD.org>

Add a ``digi'' driver.

This driver supports PCI Xr-based and ISA Xem Digiboard cards.
dgm will go away soon if there are no problems reported. For now,
configuring dgm into your kernel warns that you should be using
digi. This driver is probably close to supporting Xi, Xe and Xeve
cards, but I wouldn't expect them to work properly (hardware
donations welcome).

The digi_* pseudo-drivers are not drivers themselves but contain
the BIOS and FEP/OS binaries for various digiboard cards and are
auto-loaded and auto-unloaded by the digi driver at initialisation
time. They *may* be configured into the kernel, but waste a lot
of space if they are. They're intended to be left as modules.

The digictl program is (mainly) used to re-initialise cards that
have external port modules attached such as the PC/Xem.


# 4721e8a8 23-Apr-2001 Sheldon Hearn <sheldonh@FreeBSD.org>

Revert previous delta, which was completely bogus.

The perceived problem was the symptom of a local error.


# da82ff05 24-Apr-2001 Sheldon Hearn <sheldonh@FreeBSD.org>

Disconnect linux from the build. The buildkernel target has been
breaking on linux for more than two days because sys_exit_args
referenced in linux_sysent.c does not exist.


# fa9a4c8a 14-Apr-2001 Brian Somers <brian@FreeBSD.org>

dgm now builds as a module


# e59572b5 12-Apr-2001 Boris Popov <bp@FreeBSD.org>

Add smbfs module. Currently it includes smbfs, netsmb and DES parts.
Kernel should be compiled with options LIBMCHAIN and LIBICONV.


# 581a68a2 02-Apr-2001 Warner Losh <imp@FreeBSD.org>

Add support for MODULES_OVERRIDE. This is a list of modules to build
instead of all of them. You can put this in /etc/make.conf or in
makeoptions.

Reviewed by: arch@

# docs to follow.


# a3e862d9 09-Mar-2001 Poul-Henning Kamp <phk@FreeBSD.org>

Remove vn(4) driver.


# d8589bd5 24-Feb-2001 Boris Popov <bp@FreeBSD.org>

Introduce API for sequential reads/writes (build/dissect) of mbuf chains.

Reviewed by: Ian Dowse <iedowse@maths.tcd.ie>,
Bosko Milekic <bmilekic@technokratis.com>,
Julian Elischer <julian@elischer.org> and arch@/net@
Obtained from: smbfs


# da33b5e7 19-Feb-2001 Jonathan Lemon <jlemon@FreeBSD.org>

Hook up the linux module for alpha again.

Approved by: beast


# 28b2e256 19-Feb-2001 Matt Jacob <mjacob@FreeBSD.org>

Move linux to i386 only until it gets fixed for alpha (again).


# fa20d783 01-Feb-2001 Dag-Erling Smørgrav <des@FreeBSD.org>

KLDify the "speaker" device (which calls itself atspeaker internally, and
is i386-specific, so name the module atspeaker rather than speaker).


# 01b96fdf 30-Jan-2001 John Hay <jhay@FreeBSD.org>

Make klds for the ar and sr devices and hook them up.

The normal versions are called if_ar.ko and if_sr.ko and the netgraph
versions ng_sync_ar.ko and ng_sync_sr.ko.


# 7dd1f91a 08-Jan-2001 Brian Feldman <green@FreeBSD.org>

Evidently, svr4 is broken at the moment. Disconnect the build to prevent
Bad Things from unsuspecting module loaders.


# c05aa33c 05-Jan-2001 Nicolas Souchu <nsouch@FreeBSD.org>

Add the VESA S3 linear framebuffer driver. It works on top of VESA by replacing
the video switch by another. Exactly as VESA does on top of VGA.

It adds linear framebuffer to S3 VESA 1.2 cards.

Obtained from: The original S3 ISA code comes from
Peter Horton <pdh@colonel-panic.com>


# 121a47e2 03-Jan-2001 John Hay <jhay@FreeBSD.org>

Make sppp a kld.


# dd488b6d 27-Dec-2000 Dag-Erling Smørgrav <des@FreeBSD.org>

Retire kernfs (kernel part).


# 45c27b72 22-Dec-2000 David E. O'Brien <obrien@FreeBSD.org>

*sigh* The `pecoff' module was added to all arches w/out testing a compile
on all arches. This fixes the Alpha kernel build.


# 6ef9f30d 21-Dec-2000 Takanori Watanabe <takawata@FreeBSD.org>

Add pecoff directory.

Submitted by:nyan


# a4563d08 18-Dec-2000 Alexander Langer <alex@FreeBSD.org>

Enable the sym module.


# 5d2dea72 15-Dec-2000 Paul Richards <paul@FreeBSD.org>

Enable building of lnc module.


# b1df743d 15-Dec-2000 Bill Paul <wpaul@FreeBSD.org>

Whups: only build the if_el module on the x86 platform for now, until
I can confirm it works on the alpha.


# 1b497104 15-Dec-2000 Bill Paul <wpaul@FreeBSD.org>

Newbus the if_el (3Com 3c501) driver. Use bus_space_X() functions.
Add detach routine and turn driver into a module so it can be loaded
and unloaded. Also take a stab at implementing multicast packet
reception so that this NIC will work with IPv6. Promiscuous mode
doesn't seem to work, but I'm not sure why. It works well enough that
I can run dhclient on it and put it on the office network though.
Also ripped out spl stuff and replaced it with mutexes.


# 026527e5 13-Dec-2000 Dag-Erling Smørgrav <des@FreeBSD.org>

Reconnect linprocfs.


# 641d2fdd 12-Dec-2000 Warner Losh <imp@FreeBSD.org>

Add aic and ray modules. I've been building these for a while now on
i386.


# 2b3d269b 12-Dec-2000 Dag-Erling Smørgrav <des@FreeBSD.org>

Temporarily disconnect linprocfs from the build, until I fix it so it builds
with Kirk's big proc patch.


# 07b219e2 01-Dec-2000 Alfred Perlstein <alfred@FreeBSD.org>

Revert disconnect of sysvipc now that there's a makefile available


# b8b5f462 30-Nov-2000 Dag-Erling Smørgrav <des@FreeBSD.org>

Disconnect sysvipc, since it doesn't build.


# 78525ce3 01-Dec-2000 Alfred Perlstein <alfred@FreeBSD.org>

sysvipc loadable.

new syscall entry lkmressys - "reserved loadable syscall"

Make syscall_register allow overwriting of such entries (lkmressys).


# 7d1fae05 06-Nov-2000 Bill Paul <wpaul@FreeBSD.org>

The vortex driver can be compiled as a KLD now. The EISA attachment
is only built on the i386 platform for now, since it depends on symbols
which I'm pretty sure won't be present in the alpha build.


# e84f2add 04-Nov-2000 David E. O'Brien <obrien@FreeBSD.org>

Now have the `linux' module on the Alpha too.


# f7261d9c 30-Oct-2000 Mark Murray <markm@FreeBSD.org>

Convert the de driver into a loadable module. Still missing is an
unload method. Lots of old cruft is removed.

Thanks to WPaul for large clue-injection and debugging services.

Reviewed by: wpaul


# 23104303 27-Oct-2000 David E. O'Brien <obrien@FreeBSD.org>

Hook ipfilter back up as it compiles now.


# 9d70d033 26-Oct-2000 Andrey A. Chernov <ache@FreeBSD.org>

Remove ipfilter and mark it as broken until it will be fixed by maintainer.
Not compiles under -current


# 2fd84f56 25-Oct-2000 Nick Hibma <n_hibma@FreeBSD.org>

The USB scanner driver. To be used together with SANE.


# a6278a2a 14-Oct-2000 Mark Murray <markm@FreeBSD.org>

After some complaints about the dir names, the random device is
now in dirs called sys/*/random/ instead of sys/*/randomdev/*.

Introduce blocking, but only at startup; the random device will
block until the first reseed happens to prevent clients from
using untrustworthy output.

Provide a read_random() call for the rest of the kernel so that
the entropy device does not need to be present. This means that
things like IPX no longer need to have "device random" hardcoded
into thir kernel config. The downside is that read_random() will
provide very poor output until the entropy device is loaded and
reseeded. It is recommended that developers do NOT use the
read_random() call; instead, they should use arc4random() which
internally uses read_random().

Clean up the mutex and locking code a bit; this makes it possible
to unload the module again.


# d7a4332c 06-Oct-2000 Alexander Langer <alex@FreeBSD.org>

Enable the if_ed module.


# 0a917604 02-Oct-2000 Yoshihiro Takahashi <nyan@FreeBSD.org>

Added NEC PC-9801-83, 84, PC-9801-103, 104, PC-9801N-25 and PC-9801N-J02R
support which use National Semiconductor DP8393X (SONIC) as ethernet
controller. Currently, this driver is used on only PC-98.

Submitted by: Motomichi Matsuzaki <mzaki@e-mail.ne.jp>
Obtained from: NetBSD/pc98


# 20cb9f9e 23-Sep-2000 Hajimu UMEMOTO <ume@FreeBSD.org>

Make ip6fw as loadable module.


# 73334a43 20-Sep-2000 Bill Paul <wpaul@FreeBSD.org>

Add a new driver for the AMD PCnet/FAST, FAST+ and Home PCI adapters.
Previously, these cards were supported by the lnc driver (and they
still are, but the pcn driver will claim them first), which is fine
except the lnc driver runs them in 16-bit LANCE compatibility mode.
The pcn driver runs these chips in 32-bit mode and uses the RX alignment
feature to achieve zero-copy receive. (Which puts it in the same
class as the xl, fxp and tl chipsets.) This driver is also MI, so it
will work on the x86 and alpha platforms. (The lnc driver is still
needed to support non-PCI cards. At some point, I'll need to newbusify
it so that it too will me MI.)

The Am79c978 HomePNA adapter is also supported.


# 35863739 12-Sep-2000 Mike Smith <msmith@FreeBSD.org>

A new driver for PCI:SCSI RAID controllers based on the Adaptec FSA
design. This includes integrated Dell RAID controllers, the Dell
PERC 2/QC and the HP NetRAID-4M.


# ef137fd3 01-Sep-2000 Mike Smith <msmith@FreeBSD.org>

Add the 'asr' driver, supplied by Mark Salyzyn of Adaptec (nee DPT).
This provides support for the Adaptec SCSI RAID controller family,
as well as the DPT SmartRAID V and VI families.

The driver will be maintained by Mark and Adaptec, and any changes
should be referred to the MAINTAINER.


# dd7650a8 30-Aug-2000 Mike Smith <msmith@FreeBSD.org>

Only build 'mly' on i386, as it doesn't build and hasn't been tested on
Alpha.


# 7e207ea1 30-Aug-2000 Warner Losh <imp@FreeBSD.org>

Remove pcic and oldcard from files built. Oldcard desn't work, so
shouldn't be built by default. pcic and pccard are going to go
through some changes and I'll not be testing them on the alpha so I
don't want to break them for the FreeBSD/alpha folks.


# e07acca5 22-Aug-2000 Mike Smith <msmith@FreeBSD.org>

This is the initial import of a new driver for the current family of
PCI:SCSI RAID controllers from Mylex.


# c0c32537 19-Aug-2000 Warner Losh <imp@FreeBSD.org>

Don't build pccard for now until I can resolve the linker interaction
issue that I'm seeing.


# 74bd1c10 13-Aug-2000 Nick Hibma <n_hibma@FreeBSD.org>

CAM, the module: scbus, da, cd, and st wrapped in one module.

Make the umass driver depend on this module.

Makes it possible to compile the kernel without SCSI support and load it
when for example a USB floppy is conencted.


# a1ce91d5 20-Jul-2000 Nick Sayer <nsayer@FreeBSD.org>

Oops. Activate tap in man4 and modules makefiles


# fd8b5fb2 07-Jul-2000 Mark Murray <markm@FreeBSD.org>

Honour appropriate no-crypto flags.


# 05861de6 04-Jul-2000 Cameron Grant <cg@FreeBSD.org>

enable newpcm module building


# 56d13962 26-Jun-2000 Coleman Kane <cokane@FreeBSD.org>

Add 3dfx to the makefile, the new home for the kmod to interface /dev/3dfx.


# dc478487 25-Jun-2000 Mark Murray <markm@FreeBSD.org>

Build the entropy device (/dev/random) as a module. This may not
be a permanent rule, because this device may eventually be deemed
"effectively compulsory", and built by default directly into the
kernel. For the moment, however, this is useful for debugging and
development.

Reviewed by: dfr


# e2781083 23-Jun-2000 Archie Cobbs <archie@FreeBSD.org>

Back out previous commit until the build of the 'tdfx' module is unbroken.


# 92e873e8 23-Jun-2000 Coleman Kane <cokane@FreeBSD.org>

Add tdfx to modules Makefile, so it gets made.


# a79b7128 19-Jun-2000 Alfred Perlstein <alfred@FreeBSD.org>

return of the accept filter part II

accept filters are now loadable as well as able to be compiled into
the kernel.

two accept filters are provided, one that returns sockets when data
arrives the other when an http request is completed (doesn't work
with 0.9 requests)

Reviewed by: jmg


# b24d8193 17-Jun-2000 Warner Losh <imp@FreeBSD.org>

Add oldcard, pccard, pcic and sn modules to the build.


# 1249f27c 17-Jun-2000 Matt Jacob <mjacob@FreeBSD.org>

Add if_wx && ispfw modules


# 1f82d2d7 11-Jun-2000 Seigo Tanimura <tanimura@FreeBSD.org>

1. Update Comtrol RocketPort driver(rp) to version 3.02.
2. Newbusify the driver.
3. Build as a module.

4. Use correct minor numbers when creating device files.
5. Correctly lock control characters.
6. Return ENXIO when device not configured.
Submitted by: Tor Egge <Tor.Egge@fast.no>

7. Fix the baud_table.
Submitted by: Elliot Dierksen <ebd@oau.org>

Note:
- the old driver still lives in src/sys/i386/isa, so that you can
revert to it if something goes wrong.
- The module does not detach very well. Attaching works fine.


# 571ce5b1 09-Jun-2000 Doug Rabson <dfr@FreeBSD.org>

Add agp.


# a79bb513 24-May-2000 Archie Cobbs <archie@FreeBSD.org>

Fix typo.


# b2c30096 24-May-2000 Mike Smith <msmith@FreeBSD.org>

Build the twe module with the rest.


# 9098c77a 05-May-2000 David E. O'Brien <obrien@FreeBSD.org>

All the screen savers other than "apm" build on the Alpha. daemon.ko has
been tested to work.


# b5ea1f0c 01-May-2000 Nick Hibma <n_hibma@FreeBSD.org>

The USB double bulk pipe driver (Host to host cables). Currently there
are two supported chips, the NetChip 1080 (only prototypes available)
and the EzLink cable. Any other cable should be supported however as they
are all very much alike (there is a difference between them wrt
performance).

It uses Netgraph.

This driver was mostly written by Doug Ambrisko and Julian Elischer and
I would like to thank Whistle for yet another contribution. And my
aplogies to them for me sitting on the driver for so long (2 months).

Also, many thanks to Reid Augustin from NetChip for providing me with a
prototype of their 1080 chip.

Be aware of the fact that this driver is very immature and has only been
tested very lightly. If someone feels like learning about Netgraph however
this is an excellent driver to start playing with.


# 7a1d9495 12-Apr-2000 Greg Lehey <grog@FreeBSD.org>

Enable building Vinum on alpha.

Submitted-by: Bernd Walter <ticso@cicely.de>
Reminded-by: Pedro A M Vazquez <vazquez@iqm.unicamp.br>


# 5f045e1e 11-Apr-2000 Semen Ustimenko <semenu@FreeBSD.org>

As tx driver was patched for newbus, we can now build it as module!
Add it to Makefile.


# ad88c634 30-Mar-2000 Peter Wemm <peter@FreeBSD.org>

Move linprocfs to the i386-only section so the Alpha buildworld has a
chance at finishing..


# 8deca17b 25-Mar-2000 Dag-Erling Smørgrav <des@FreeBSD.org>

Linux /proc filesystem.

Submitted by: pb


# e2dbd15f 16-Mar-2000 Nick Hibma <n_hibma@FreeBSD.org>

Please welcome the URio driver. Written by
Iwasa Kazmi <kzmi\@ca2.so-net.ne.jp>


# 7a4cd69f 01-Mar-2000 Sheldon Hearn <sheldonh@FreeBSD.org>

Disconnect pcfclock from the build until it works on the Alpha.


# cb166ce4 29-Feb-2000 Sheldon Hearn <sheldonh@FreeBSD.org>

Enable pcfclock as a kernel loadable module.

PR: 16804
Submitted by: sascha@schumann.cx
Approved by: jkh (release engineer)


# fca569ab 27-Jan-2000 Peter Wemm <peter@FreeBSD.org>

Move if_tun back to the common section now that it works on the Alpha.

Tested by: make world


# 13ba9040 26-Jan-2000 Peter Wemm <peter@FreeBSD.org>

Re-add vpo. I've just re-tested this in a 'make world' on a December
vintage system, well before the ppbus changes. When I called it an
"example" module, I meant as an example for the rest of the ppbus client
drivers, not that it was worthless. I'll mail my 5.8MB world.log to
anybody who doesn't believe me.

Wrongly accused by: obrien


# 2fff5850 25-Jan-2000 David E. O'Brien <obrien@FreeBSD.org>

Remove `vpo' with a vengeance -- "EXAMPLE" modules have *NO* business
being hooked up to the build system, *COMPILABLE WORKING* modules do.

Not `make' tested by: Peter


# 2e3fb309 25-Jan-2000 David E. O'Brien <obrien@FreeBSD.org>

if_tun is out of here -- it can come back with it stops breaking the
Alpha build.


# 53310816 23-Jan-2000 Peter Wemm <peter@FreeBSD.org>

Add an example vpo module. I don't have a zip drive to test it, but it
behaves the normal way when loaded at runtime versus being statically
compiled. (normal == print garbage on the printer :-).


# 261b9b30 14-Jan-2000 Bill Paul <wpaul@FreeBSD.org>

Add driver support for the Aironet 4500/4800 series wireless 802.11
NICs. (Finally!) The PCMCIA, ISA and PCI varieties are all supported,
though only the ISA and PCI ones will work on the alpha for now.
PCCARD, ISA and PCI attachments are all provided. Also provided an
ancontrol(8) utility for configuring the NIC, man pages, and updated
pccard.conf.sample. ISA cards are supported in both ISA PnP and hard-wired
mode, although you must configure the kernel explicitly to support the
hardwired mode since you have to know the I/O address and port ahead
of time.

Special thanks to Doug Ambrisko for doing the initial newbus hackery
and getting it to work in infrastructure mode.


# 01779872 13-Jan-2000 Bill Paul <wpaul@FreeBSD.org>

Add device driver support for USB ethernet adapters based on the CATC
USB-EL1202A chipset. Between this and the other two drivers, we should
have support for pretty much every USB ethernet adapter on the market.
The only other USB chip that I know of is the SMC USB97C196, and right
now I don't know of any adapters that use it (including the ones made
by SMC :/ ).

Note that the CATC chip supports a nifty feature: read and write combining.
This allows multiple ethernet packets to be transfered in a single USB
bulk in/out transaction. However I'm again having trouble with large
bulk in transfers like I did with the ADMtek chip, which leads me to
believe that our USB stack needs some work before we can really make
use of this feature. When/if things improve, I intend to revisit the
aue and cue drivers. For now, I've lost enough sanity points.


# dfd1e98e 04-Jan-2000 Bill Paul <wpaul@FreeBSD.org>

Add device driver support for USB ethernet adapters based on the
Kawasaki LSI KL5KUSB101B chip, including the LinkSys USB10T, the
Entrega NET-USB-E45, the Peracom USB Ethernet Adapter, the 3Com
3c19250 and the ADS Technologies USB-10BT. This device is 10mbs
half-duplex only, so there's miibus or ifmedia support. This device
also requires firmware to be loaded into it, however KLSI allows
redistribution of the firmware images (I specifically asked about
this; they said it was ok).

Special thanks to Annelise Anderson for getting me in touch with
KLSI (eventually) and thanks to KLSI for providing the necessary
programming info.

Highlights:
- Add driver files to /sys/dev/usb
- update usbdevs and regenerate attendate files
- update usb_quirks.c
- Update HARDWARE.TXT and RELNOTES.TXT for i386 and alpha
- Update LINT, GENERIC and others for i386, alpha and pc98
- Add man page
- Add module
- Update sysinstall and userconfig.c


# ed63a7aa 27-Dec-1999 Bill Paul <wpaul@FreeBSD.org>

This commit adds device driver support for the ADMtek AN986 Pegasus
USB ethernet chip. Adapters that use this chip include the LinkSys
USB100TX. There are a few others, but I'm not certain of their
availability in the U.S. I used an ADMtek eval board for development.
Note that while the ADMtek chip is a 100Mbps device, you can't really
get 100Mbps speeds over USB. Regardless, this driver uses miibus to
allow speed and duplex mode selection as well as autonegotiation.
Building and kldloading the driver as a module is also supported.

Note that in order to make this driver work, I had to make what some
may consider an ugly hack to sys/dev/usb/usbdi.c. The usbd_transfer()
function will use tsleep() for synchronous transfers that don't complete
right away. This is a problem since there are times when we need to
do sync transfers from an interrupt context (i.e. when reading registers
from the MAC via the control endpoint), where tsleep() us a no-no.
My hack allows the driver to have the code poll for transfer completion
subject to the xfer->timeout timeout rather that calling tsleep().
This hack is controlled by a quirk entry and is only enabled for the
ADMtek device.

Now, I'm sure there are a few of you out there ready to jump on me
and suggest some other approach that doesn't involve a busy wait. The
only solution that might work is to handle the interrupts in a kernel
thread, where you may have something resembling a process context that
makes it okay to tsleep(). This is lovely, except we don't have any
mechanism like that now, and I'm not about to implement such a thing
myself since it's beyond the scope of driver development. (Translation:
I'll be damned if I know how to do it.) If FreeBSD ever aquires such
a mechanism, I'll be glad to revisit the driver to take advantage of
it. In the meantime, I settled for what I perceived to be the solution
that involved the least amount of code changes. In general, the hit
is pretty light.

Also note that my only USB test box has a UHCI controller: I haven't
I don't have a machine with an OHCI controller available.

Highlights:

- Updated usb_quirks.* to add UQ_NO_TSLEEP quirk for ADMtek part.
- Updated usbdevs and regenerated generated files
- Updated HARDWARE.TXT and RELNOTES.TXT files
- Updated sysinstall/device.c and userconfig.c
- Updated kernel configs -- device aue0 is commented out by default
- Updated /sys/conf/files
- Added new kld module directory


# 6c1029b1 15-Dec-1999 Andrew Gallatin <gallatin@FreeBSD.org>

Enable building of the OSF/1 compat module.


# 5e045869 13-Dec-1999 Boris Popov <bp@FreeBSD.org>

Add module for if_ef driver and make it compile.


# de8708ac 12-Dec-1999 Peter Wemm <peter@FreeBSD.org>

Move mlx, ncp and nwfs to the common area, they build on the Alpha and
are marked cross-platform in conf/files..


# 7c229969 12-Dec-1999 Peter Wemm <peter@FreeBSD.org>

Move amr from x86-specific to generic. (it's in the generic conf/files
in the main kernel and builds fine on the alpha here...)


# 484fa03f 12-Dec-1999 Peter Wemm <peter@FreeBSD.org>

Fix joy and put it back in the MI section. (yes, it works on Alpha)


# 106bc72b 05-Dec-1999 Bruce Evans <bde@FreeBSD.org>

Sorted SUBDIR.


# 96f2e892 04-Dec-1999 Bill Paul <wpaul@FreeBSD.org>

Add the if_dc driver and remove all of the al, ax, dm, pn and mx drivers
which it replaces. The new driver supports all of the chips supported
by the ones it replaces, as well as many DEC/Intel 21143 10/100 cards.

This also completes my quest to convert things to miibus and add
Alpha support.


# dda0e6f5 25-Nov-1999 Bill Paul <wpaul@FreeBSD.org>

Update the WaveLAN/IEEE driver:

- Convert to new bus attachment scheme. Thanks to Blaz Zupan for doing
the initial work here. One thing I changed was to have the attach
and detach routines work like the PCI drivers, which means that in
theory you should be able to load and unload the driver like the PCI
NIC drivers, however the pccard support for this hasn't settled down
yet so it doesn't quite work. Once the pccard work is done, I'll have
to revisit this.

- Add device wi0 to PCCARD. If we're lucky, people should be able to
install via their WaveLAN cards now.

- Add support for signal strength caching. The wicontrol utility has
also been updated to allow zeroing and displaying the signal strength
cache.

- Add a /sys/modules/wi directory and fix a Makefile to builf if_wi.ko.
Currently this module is only built for the i386 platform, though once
the pccard stuff is done it should be able to work on the alpha too.
(Theoretically you should be able to plug one of the WaveLAN/IEEE ISA
cards into an alpha with an ISA slot, but we'll see how that turns out.

- Update LINT to use only device wi0. There is no true ISA version of
the WaveLAN/IEEE so we'll never use an ISA attachment.

- Update files.i386 so that if_wi is dependent on card.


# 5cb2cd94 23-Nov-1999 Guido van Rooij <guido@FreeBSD.org>

Add ipfilter kld and wire it in.


# 256c4043 21-Nov-1999 Nick Hibma <n_hibma@FreeBSD.org>

Add the usb module and move the USB related modules into the generic section
USB seems to compile on Alpha's as well.


# 5460e55f 18-Nov-1999 Brian Feldman <green@FreeBSD.org>

Reenable "umodem", as its build is not broken anymore.


# b4ee0d49 17-Nov-1999 Brian Feldman <green@FreeBSD.org>

For now, disable umodem module building, because it doesn't. Don't
want to break the snapshots :)


# 4cf49a43 21-Oct-1999 Julian Elischer <julian@FreeBSD.org>

Whistle's Netgraph link-layer (sometimes more) networking infrastructure.
Been in production for 3 years now. Gives Instant Frame relay to if_sr
and if_ar drivers, and PPPOE support soon. See:
ftp://ftp.whistle.com/pub/archie/netgraph/index.html
for on-line manual pages.

Reviewed by: Doug Rabson (dfr@freebsd.org)
Obtained from: Whistle CVS tree


# 2592a725 07-Oct-1999 Nick Hibma <n_hibma@FreeBSD.org>

The Makefiles for the modules for the USB device drivers.

Finally.


# 6ac4727a 06-Oct-1999 Mike Smith <msmith@FreeBSD.org>

Connect the 'amr' and 'mlx' drivers. They can be built as modules or
integrated into a static kernel as the user wishes.


# ff8444f2 02-Oct-1999 Boris Popov <bp@FreeBSD.org>

ncplib modules: bring up new ncp.ko and nwfs.ko


# 810b4d75 28-Sep-1999 Peter Wemm <peter@FreeBSD.org>

Reconnect 'bktr' now that world won't (I hope) break again from it.
'make depend' was falling over in it before.


# 7cbb6373 27-Sep-1999 Warner Losh <imp@FreeBSD.org>

/tmp/cvswGS523


# 8182b2bf 26-Sep-1999 Peter Wemm <peter@FreeBSD.org>

bktr (as a module) doesn't build.


# 9811e1f1 22-Sep-1999 Brian Feldman <green@FreeBSD.org>

Add phk's m(4) Memory Disk driver as a KLD. I don't believe it
works properly after unloading, however.


# 1088f6c7 21-Sep-1999 Bill Paul <wpaul@FreeBSD.org>

Spruce up the ADMtek driver: conver to newbus, miibus and add support
for the AN985 "Centaur" chip, which is apparently the next genetation
of the "Comet." The AN985 is also a tulip clone and is similar to the
AL981 except that it uses a 99C66 EEPROM and a serial MII interface
(instead of direct access to the PHY registers).

Also updated various documentation to mention the AN985 and created
a loadable module.

I don't think there are any cards that use this chip on the market yet:
the datasheet I got from ADMtek has boxes with big X's in them where the
diagrams should be, and the sample boards I got have chips without any
artwork on them.


# 977f4ed1 19-Sep-1999 Bill Paul <wpaul@FreeBSD.org>

RealTek driver module wasn't being built; add it to the Makefile.


# e5a9fd54 06-Sep-1999 Bill Paul <wpaul@FreeBSD.org>

This commit adds driver support for PCI fast ethernet NICs based on
the Davicom DM9100 and DM9102 chipsets, including the Jaton Corporation
XPressNet. Datasheet is available from www.davicom8.com.

The DM910x chips are still more tulip clones. The API is reproduced
pretty faithfully, unfortunately the performance is pretty bad. The
transmitter seems to have a lot of problems DMAing multi-fragment
packets. The only way to make it work reliably is to coalesce transmitted
packets into a single contiguous buffer. The Linux driver (written by
Davicom) actually does something similar to this. I can't recomment this
NIC as anything more than a "connectivity solution."

This driver uses newbus and miibus and is supported on both i386
and alpha platforms.


# 9555e59a 05-Sep-1999 Bill Paul <wpaul@FreeBSD.org>

This commit adds driver support for the Silicon Integrated Systems
SiS 900 and SiS 7016 PCI fast ethernet chipsets. Full manuals for the
SiS chips can be found at www.sis.com.tw.

This is a fairly simple chipset. The receiver uses a 128-bit multicast
hash table and single perfect entry for the station address. Transmit and
receive DMA and FIFO thresholds are easily tuneable. Documentation is
pretty decent and performance is not bad, even on my crufty 486. This
driver uses newbus and miibus and is supported on both the i386 and
alpha architectures.


# c3aac50f 27-Aug-1999 Peter Wemm <peter@FreeBSD.org>

$Id$ -> $FreeBSD$


# 23e4757c 21-Aug-1999 Bill Paul <wpaul@FreeBSD.org>

This commit adds device driver support for the Sundance Technologies ST201
PCI fast ethernet controller. Currently, the only card I know that uses
this chip is the D-Link DFE-550TX. (Don't ask me where to buy these: the
only cards I have are samples sent to me by D-Link.)

This driver is the first to make use of the miibus code once I'm sure
it all works together nicely, I'll start converting the other drivers.

The Sundance chip is a clone of the 3Com 3c90x Etherlink XL design
only with its own register layout. Support is provided for ifmedia,
hardware multicast filtering, bridging and promiscuous mode.


# d0027533 21-Aug-1999 Bill Paul <wpaul@FreeBSD.org>

This commit adds support for the NetBSD MII abstraction layer and
MII-compliant PHY drivers. Many 10/100 ethernet NICs available today
either use an MII transceiver or have built-in transceivers that can
be programmed using an MII interface. It makes sense then to separate
this support out into common code instead of duplicating it in all
of the NIC drivers. The mii code also handles all of the media
detection, selection and reporting via the ifmedia interface.

This is basically the same code from NetBSD's /sys/dev/mii, except
it's been adapted to FreeBSD's bus architecture. The advantage to this
is that it automatically allows everything to be turned into a
loadable module. There are some common functions for use in drivers
once an miibus has been attached (mii_mediachg(), mii_pollstat(),
mii_tick()) as well as individual PHY drivers. There is also a
generic driver for all PHYs that aren't handled by a specific driver.
It's possible to do this because all 10/100 PHYs implement the same
general register set in addition to their vendor-specific register
sets, so for the most part you can use one driver for pretty much
any PHY. There are a couple of oddball exceptions though, hence
the need to have specific drivers.

There are two layers: the generic "miibus" layer and the PHY driver
layer. The drivers are child devices of "miibus" and the "miibus" is
a child of a given NIC driver. The "miibus" code and the PHY drivers
can actually be compiled and kldoaded as completely separate modules
or compiled together into one module. For the moment I'm using the
latter approach since the code is relatively small.

Currently there are only three PHY drivers here: the generic driver,
the built-in 3Com XL driver and the NS DP83840 driver. I'll be adding
others later as I convert various NIC drivers to use this code.

I realize that I'm cvs adding this stuff instead of importing it
onto a separate vendor branch, but in my opinion the import approach
doesn't really offer any significant advantage: I'm going to be
maintaining this stuff and writing my own PHY drivers one way or
the other.


# 8674aa45 10-Aug-1999 Bill Paul <wpaul@FreeBSD.org>

Convert the Winbond driver to newbus and have it compiled as a module.


# 08339b4f 10-Aug-1999 Bill Paul <wpaul@FreeBSD.org>

Convert the VIA Rhine driver to newbus and set it up to be compiled as
a module. Also modified the code to work on FreeBSD/alpha and added
device vr0 to the alpha GENERIC config.

While I was in the neighborhood, I noticed that I was still using
#define NFPX 1 in all of the Makefiles that I'd copied from the fxp
module. I don't really use #define Nfoo X so it didn't matter, but
I decided to customize this correctly anyway.


# 74432d0d 27-Jul-1999 Bill Paul <wpaul@FreeBSD.org>

Add a module Makefile for the PNIC driver.


# 691c1528 24-Jul-1999 Bill Paul <wpaul@FreeBSD.org>

This commit adds device driver support for Adaptec Duralink PCI fast
ethernet controllers based on the AIC-6915 "Starfire" controller chip.
There are single port, dual port and quad port cards, plus one 100baseFX
card. All are 64-bit PCI devices, except one single port model.

The Starfire would be a very nice chip were it not for the fact that
receive buffers have to be longword aligned. This requires buffer
copying in order to achieve proper payload alignment on the alpha.
Payload alignment is enforced on both the alpha and x86 platforms.
The Starfire has several different DMA descriptor formats and transfer
mechanisms. This driver uses frame descriptors for transmission which
can address up to 14 packet fragments, and a single fragment descriptor
for receive. It also uses the producer/consumer model and completion
queues for both transmit and receive. The transmit ring has 128
descriptors and the receive ring has 256.

This driver supports both FreeBSD/i386 and FreeBSD/alpha, and uses newbus
so that it can be compiled as a loadable kernel module. Support for BPF
and hardware multicast filtering is included.


# 8b1b6ae5 24-Jul-1999 Bill Paul <wpaul@FreeBSD.org>

Add mx and ax modules for the Macronix and ASIX drivers and update the
modules Makefile so they get built.


# 98edb3e1 22-Jul-1999 Bill Paul <wpaul@FreeBSD.org>

Create module directories for the xl, ti, tl and sk drivers and add
them to the Makefile so that modules will be generated for /modules.


# 9e045040 23-Jun-1999 Greg Lehey <grog@FreeBSD.org>

Reenable Vinum build


# 05da1d91 12-Jun-1999 Roger Hardiman <roger@FreeBSD.org>

Add bktr (Bt848/Bt878 driver loadable module) to the Makefile i386 only section


# c27d843b 02-Jun-1999 John Birrell <jb@FreeBSD.org>

Remove vinum from the build until Greg reviews phk's cdevsw changes.

Preferred by: phk (rather than committing the patch without review).


# 2ca1fa6c 15-May-1999 Greg Lehey <grog@FreeBSD.org>

Reenable vinum build.


# 2c7723a7 13-May-1999 Poul-Henning Kamp <phk@FreeBSD.org>

Vinum doesn't compile right now.


# 54ab20b1 05-May-1999 Bruce Evans <bde@FreeBSD.org>

Fixed bitrot in comments.


# 025998c7 05-May-1999 David E. O'Brien <obrien@FreeBSD.org>

MFS: don't build the pcic.ko module.


# bd43a21c 19-Apr-1999 Peter Wemm <peter@FreeBSD.org>

Kill joy for the time being, it used lkm unconditionally, breaking world.

Submitted by: "Steven G. Kargl" <kargl@troutmask.apl.washington.edu>


# dc107713 17-Apr-1999 Bruce Evans <bde@FreeBSD.org>

Actually build the new fxp module.

Updated comments about rotten modules.

Fixed disorder and English errors.


# 6a6aebc8 17-Apr-1999 Peter Wemm <peter@FreeBSD.org>

Disconnect lkm subdir so we don't build a lkm module, in case something
I do breaks world or the nightly snapshots. (you can still do it by hand
though for the moment)


# 4962041b 13-Apr-1999 Peter Wemm <peter@FreeBSD.org>

Drop the atapi module from the build, it's just wasting time.


# accde249 14-Mar-1999 Julian Elischer <julian@FreeBSD.org>

quick BDE premption


# 0237469f 14-Mar-1999 Julian Elischer <julian@FreeBSD.org>

A bit of a hack, but allows the vn device to be a module again.

Submitted by: Matt Dillon <dillon@freebsd.org>


# a5296b05 14-Mar-1999 Julian Elischer <julian@FreeBSD.org>

Submitted by: Matt Dillon <dillon@freebsd.org>
The old VN device broke in -4.x when the definition of B_PAGING
changed. This patch fixes this plus implements additional capabilities.
The new VN device can be backed by a file ( as per normal ), or it can
be directly backed by swap.

Due to dependencies in VM include files (on opt_xxx options) the new
vn device cannot be a module yet. This will be fixed in a later commit.
This commit delimitted by tags {PRE,POST}_MATT_VNDEV


# 86e9118b 22-Feb-1999 Mark Newton <newton@FreeBSD.org>

Converted "streams" pseudo-device into a KLD


# b4b8aedf 02-Feb-1999 Semen Ustimenko <semenu@FreeBSD.org>

Added ntfs subdirectory.
Reviewed by: David O'Brien <obrien@NUXI.com>


# 7f84fa45 29-Jan-1999 Mark Newton <newton@FreeBSD.org>

Activate svr4 module


# 7ed6908f 21-Jan-1999 Peter Wemm <peter@FreeBSD.org>

Add vn module to build list.


# afce5719 18-Jan-1999 Peter Wemm <peter@FreeBSD.org>

Update for pcic for kld modules and activate


# 72a3f9e4 17-Jan-1999 Peter Wemm <peter@FreeBSD.org>

Add the lkm module


# 1243dad0 10-Jan-1999 Kazutaka YOKOTA <yokota@FreeBSD.org>

Add splash screen module. This version has rather limited
capabilities, but should be a good start... Well, sort of.

It can handle W*ndows 256 color BMP file. (Other color depth probably
won't work.) The size of the image must be 320x200 or less. *sigh*


# 9dd98e24 01-Jan-1999 Bruce Evans <bde@FreeBSD.org>

Fixed bitrot in comments.


# 13e05026 30-Dec-1998 Kazutaka YOKOTA <yokota@FreeBSD.org>

Make the VESA KLD module work!


# 8b26ae02 27-Dec-1998 Peter Wemm <peter@FreeBSD.org>

Reconnect vinum KLD module and have it build from sys/dev/vinum rather than
from outside the src/sys tree like before.


# 380366f2 27-Dec-1998 Søren Schmidt <sos@FreeBSD.org>

Temporaryly disable vinum, awaiting repository copy of misplaced files.


# b31f6ba1 27-Dec-1998 Søren Schmidt <sos@FreeBSD.org>

Remove depricated wcd module.


# 68d0b83d 04-Nov-1998 John Polstra <jdp@FreeBSD.org>

Fix make world breakage: "$MACHINE_ARCH" -> "${MACHINE_ARCH}".


# 28cc91d8 04-Nov-1998 Mike Smith <msmith@FreeBSD.org>

Don't try to build i386-centric modules on non-i386 systems.


# cabb29ec 03-Nov-1998 Peter Wemm <peter@FreeBSD.org>

Reactivate coda. Also, KLD isn't just for i386, it will work on all
architectures since it is a key part of the configuration mechanism. The
exact same code runs in the kernel as it does in a kld module.


# 3b49cbc6 03-Nov-1998 Peter Wemm <peter@FreeBSD.org>

The union kld module is now fully functional.


# d679319f 02-Nov-1998 Peter Wemm <peter@FreeBSD.org>

Update comments on status of modules


# a654d072 15-Oct-1998 Peter Wemm <peter@FreeBSD.org>

Sample initial set of kld-ified modules. Not all have been completely
converted yet. These are more of a starting point. This is NOT connected
to the parent Makefile.

OK'ed by jkh (who is ever so patiently waiting)


# 3d8357b4 27-Sep-1998 Greg Lehey <grog@FreeBSD.org>

Include vinum in SUBDIR


# 34b01b8c 25-Sep-1998 Robert V. Baron <rvb@FreeBSD.org>

lkm for coda


# e0b10547 15-Sep-1998 Søren Schmidt <sos@FreeBSD.org>

Add the vesa module to the list


# 6e19590c 15-May-1998 John Birrell <jb@FreeBSD.org>

The FreeBSD lkm design is aout specific.


# 34ec3b3c 18-Feb-1998 Mike Smith <msmith@FreeBSD.org>

Don't reference (nonesxistent) qcam module.


# ad47cbca 28-Aug-1997 Jonathan Lemon <jlemon@FreeBSD.org>

Remove the vm86 LKM.


# 9b9d503b 08-Aug-1997 John Dyson <dyson@FreeBSD.org>

Add VM86 to the lkm build.


# 4a0f765f 21-Feb-1997 Peter Wemm <peter@FreeBSD.org>

Revert $FreeBSD$ back to $Id$


# 1130b656 14-Jan-1997 Jordan K. Hubbard <jkh@FreeBSD.org>

Make the long-awaited change from $Id$ to $FreeBSD$

This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore. This update would have been
insane otherwise.


# a24ed116 23-Jun-1996 Bruce Evans <bde@FreeBSD.org>

Disabled unusable union lkm.


# d02dcfb3 11-Jun-1996 Satoshi Asami <asami@FreeBSD.org>

Add ccd.


# c3c185a3 23-Mar-1996 Paul Traina <pst@FreeBSD.org>

Add in qcam module (forgot)


# f1d4e1ee 15-Mar-1996 Jean-Marc Zucconi <jmz@FreeBSD.org>

Add joy to the SUBDIR list.


# 659f340c 06-Jan-1996 Peter Wemm <peter@FreeBSD.org>

Detach fpu and gnufpu from Makefile.. These lkm's build (or used to)
but are not quite useable. (fpu is used by init, and process switch
apparently..)


# 7f31c0b6 16-Dec-1995 Bruce Evans <bde@FreeBSD.org>

Reformatted the list of broken modules and added ip_mroute_mod to it.


# e531deae 14-Dec-1995 Poul-Henning Kamp <phk@FreeBSD.org>

Two x87 emulators as LKMs.
If somebody with the right HW would make the change to /etc/rc to use
this, we could rip MATH_EMULATE from GENERIC...


# a4991dc2 28-Oct-1995 Peter Wemm <peter@FreeBSD.org>

Reattach atapi and wcd to the lkm Makefile, these compile for me now.


# 6667e247 28-Oct-1995 Peter Wemm <peter@FreeBSD.org>

Sorry.. I didn't mean to re-enable wcd yet


# 8e6b0117 27-Oct-1995 Peter Wemm <peter@FreeBSD.org>

Do a pass over the broken LKM's and update them to use the "new"
convention of having their entry point named "<modname>_mod"".
Symorder is enforcing this when the current bsd.kmod.mk is installed.

I've not tested all these, but at least they all compile now.

Reattach them to the makefile.

Note that the change that I made to symorder needs to be compiled and
installed before any LKM's will work - the last version was corrupting
the relocation tables. A "make world" will to this, but if you
manually run a make on the lkm's you'll need to take care of it by
hand.


# 75b65495 27-Oct-1995 Andrey A. Chernov <ache@FreeBSD.org>

Temp. disable following modules:
atapi coff ibcs2 ipfw linux syscons wcd
(until they will be fixed)
It allows to build/install other modules from top


# 0730bc35 10-Oct-1995 Steven Wallace <swallace@FreeBSD.org>

Remove socksys lkm from makefile list.


# f37f4df1 24-Aug-1995 Poul-Henning Kamp <phk@FreeBSD.org>

pcic lkm for the pccard stuff.


# c21dee17 25-Jun-1995 Søren Schmidt <sos@FreeBSD.org>

First incarnation of our Linux emulator or rather compatibility code.
This first shot only incorporaties so much functionality that DOOM
can run (the X version), signal handling is VERY weak, so is many
other things. But it meets my milestone number one (you guessed it
- running DOOM).

Uses /compat/linux as prefix for loading shared libs, so it won't
conflict with our own libs.

Kernel must be compiled with "options COMPAT_LINUX" for this to work.


# ca78a2a8 13-Jun-1995 Garrett Wollman <wollman@FreeBSD.org>

I was wrong. I thought that the ip_mroute lkm would still compile, but it
seems to have stopped working on me. Disable it until I get a chance to
fix it.


# f065639f 20-Mar-1995 Garrett Wollman <wollman@FreeBSD.org>

The discard, tunnel, SLIP, and PPP network interface pseudo-devices
are now dynamically loadable. It doesn't make sense to do the same
for the loopback.


# 17ee9d00 22-Feb-1995 Søren Schmidt <sos@FreeBSD.org>

Next syscons update (given up on numbering :)

Removed screensavers from syscons, they are now LKM's. This makes it
possible to do some really "interesting" screensavers...
Fixed bug that sometimes caused garbage to appear when leaving
"scroll-lock" history.
Reformattet indentation, it got too deep for a normal 80 pos screen.
Split up in syscons.c & syscons.h for use with the saver-lkm's.
Temporarily removed -s option from vidcontrol, savers should now
be loaded with modload.


# 89209d35 30-Jan-1995 Ugen J.S. Antsilevich <ugen@FreeBSD.org>

Add ipfw to /lkm Makefile..uups..


# afc889a2 16-Oct-1994 Søren Schmidt <sos@FreeBSD.org>

Added socksys module


# 5828b66e 14-Oct-1994 Søren Schmidt <sos@FreeBSD.org>

Added coff & ibcs2 modules.
Reviewed by:
Submitted by:
Obtained from:


# cd5bc368 28-Sep-1994 Garrett Wollman <wollman@FreeBSD.org>

Disable MFS as loadable until someone figures out how to make it work.


# 42477d75 22-Sep-1994 Garrett Wollman <wollman@FreeBSD.org>

Create NFS LKM.


# 4b1e44f1 21-Sep-1994 Garrett Wollman <wollman@FreeBSD.org>

Build LKMs for all ``easy'' filesystems. (lfs can be done, but it's more
work; ditto NFS and it's even more work.)


# 0eec3684 16-Sep-1994 Garrett Wollman <wollman@FreeBSD.org>

Per discussion on the mailing-lists, move LKMs from /sbin to /lkm, and
arrange for that directory to get created by mtree. Also, process secure
directory after all the others, because the programs there may overlay
ones installed from the main part of the tree.