Commit Graph

222 Commits

Author SHA1 Message Date
jmcneill 161b30af53 acpi: add character device for accessing ACPI tables
The /dev/acpi character device gives an aperture into physical memory
that allows only read access to known ACPI tables: RSDP, XSDT/RSDT, and
the root tables. Adapt acpidump(8) to use this interface by default,
falling back to the old /dev/mem method if it is not available or if
ACPIDUMP_USE_DEVMEM=1 is set in the environment. The user visible benefit
of this change is that "options INSECURE" is no longer required to
dump ACPI tables.
2020-12-06 02:57:29 +00:00
jdolecek b763920b00 add support for wwanc(4) device nodes (xmm[0-9]) 2020-07-26 15:47:27 +00:00
maxv 857941dbf5 Add fault(4). 2020-06-07 09:45:19 +00:00
maxv 9259199775 Register eight vHCI buses, and use separate KCOV mailboxes for them. 2020-06-05 17:20:56 +00:00
jdolecek 30f38bbb3f remove nsmb(4) 2020-04-04 16:04:36 +00:00
gson eacfd1aef9 Create the qemufwcfg device as part of "all". Discussed with jmcneill.
Also, include it in the list of special purpose devices.
2020-04-01 15:32:21 +00:00
riastradh db3a54e6ae Create /dev/ipmi0 in `MAKEDEV all'.
Works on my machine with sysutils/ipmitool if the latter is built
with CONFIGURE_ARGS+= --enable-intf-open.
2020-03-02 15:49:30 +00:00
riastradh ca00c5f3fd Create some more cgd device nodes. 2020-02-27 16:59:23 +00:00
maya 5e031685d6 remove urio(4), a driver for the Rio500 MP3 player.
At this point it is highly unlikely this 1999 device still has users,
but it still comes up in the context of maxv's USB-fuzzing (and any device
could pretend to be a urio(4)), so it's best to get rid of it.

Renamed all major entries to obsolete, as was done in previous removals.

This still requires an update to sanitizers, but they're located in
"external", perhaps it should be first committed upstream?

Proposed on tech-kern a month ago.
2020-01-29 18:39:00 +00:00
riastradh 08a157de6e Remove filemon(4).
Discussed on tech-kern:
https://mail-index.NetBSD.org/tech-kern/2020/01/13/msg025938.html

This was never (intentionally) enabled by default, and the design has
some shortcomings.  You can get mostly the same results with ktrace,
as in usr.bin/make/filemon/filemon_ktrace.c which is now used instead
of filemon for make's meta mode.

If applications require higher performance than ktrace, or nesting
that ktrace doesn't support, we might consider adding something back
into the vfs system calls themselves, without hijacking the syscall
table.  (Might want a more reliable output format too, e.g. one that
can handle newlines in file names.)
2020-01-19 20:41:17 +00:00
maxv 87107185b5 Revert the removal of filemon. 2019-12-23 06:45:36 +00:00
maxv e67f51b8f7 Retire filemon, discussed on tech-kern@. 2019-12-18 07:37:17 +00:00
ozaki-r 9dfe0beae9 MAKEDEV: add entry for vio9p(4) 2019-11-01 02:58:50 +00:00
maxv a6418236ed Add the "nvmm" group, and make nvmm_init() public. Sent to tech-kern@ a few
days ago.
2019-10-27 07:08:15 +00:00
thorpej f4659c41ae Create the character device for spiflash, in addition to the block device.
This is needed for getdiskrawname() to DTRT (for installboot(8)).

XXX pullup-9
2019-09-19 01:44:48 +00:00
ryoon 2fe677174a Replace major number in MAKEDEV for vhci 2019-09-15 12:54:21 +00:00
maxv 250ccf12c0 Add vHCI, a driver which allows to send and receive USB packets directly
from userland via /dev/vhci. Using this, it becomes possible to test and
fuzz the USB stack and all the USB drivers without having the associated
hardware.

The vHCI device has four ports independently addressable.

For each xfer on each port, we create two packets: a setup packet (which
indicates mostly the type of request) and a data packet (which contains
the raw data). These packets are processed by read and write operations
on /dev/vhci: userland poll-reads it to fetch usb_device_request_t
structures, and dispatches the requests depending on bRequest and
bmRequestType.

A few ioctls are available:

	VHCI_IOC_GET_INFO   - Get the current status
	VHCI_IOC_SET_PORT   - Choose a vHCI port
	VHCI_IOC_USB_ATTACH - Attach a USB device on the current port
	VHCI_IOC_USB_DETACH - Detach the USB device on the current port

vHCI has already allowed me to automatically find several bugs in the USB
stack and its drivers.
2019-09-14 06:57:51 +00:00
gdt e08f564969 MAKEDEV.tmpl: Create nodes for 16 USB hubs
As proposed on current-users, but with better formatting.
2019-07-29 17:53:20 +00:00
nia de9162c0be Raise the number of uhid nodes from 4 to 16.
My keyboard and mouse use multiple device nodes each. I can't use
any other devices once they're attached. With my keyboard, mouse,
and two game controllers attached, a total of 9 nodes are required.

Particularly, high-end keyboards with N-key rollover support require
more device nodes, since they pretend to be multiple keyboards to work
around limitations in the uhid compat spec.

My original intention was to raise it from 4 to 12, but martin
suggested increasing it to 16.

"somewhat insane, but so is reality" - mlelstv
2019-05-31 13:15:00 +00:00
mlelstv b1f23fc946 Add experimental userland interface to IPMI driver. Currently, transactions
(like sensor readout) are locked, so that a userland program may interfere with
envsys operation.

To use this you need a program like ipmitool built with OpenIPMI support.
2019-05-18 08:38:00 +00:00
martin 926b978a87 Double the number of wedge device nodes 2019-04-01 13:08:24 +00:00
mlelstv bdeb5b75c5 Actually use unit number for iscsi device. 2019-03-27 06:55:09 +00:00
pgoyette b23bf74cc4 Add srt(4) to /etc/MAKEDEV and corresponding update to MAKEDEV.8 man page. 2019-03-26 09:13:55 +00:00
mlelstv 975ce0ba8d Add userland driver to spi framework.
Previously spi would configure the controller to use the lowest speed of
all connected devices since the kernel started and to fail attempted mode
changes. This is now improved to keep individual modes and speeds for each
slave and to reconfigure the controller as necessary for each transfer.

Added man page for spi(9).
2019-02-23 10:43:25 +00:00
kamil 0fe7e51662 Add KCOV - kernel code coverage tracing device
The KCOV driver implements collection of code coverage inside the kernel.
It can be enabled on a per process basis from userland, allowing the kernel
program counter to be collected during syscalls triggered by the same
process.

The device is oriented towards kernel fuzzers, in particular syzkaller.

Currently the only supported coverage type is -fsanitize-coverage=trace-pc.

The KCOV driver was initially developed in Linux. A driver based on the
same concept was then implemented in FreeBSD and OpenBSD.

Documentation is borrowed from OpenBSD and ATF tests from FreeBSD.

This patch has been prepared by Siddharth Muralee, improved by <maxv>
and polished by myself before importing into the mainline tree.

All ATF tests pass.
2019-02-23 03:10:05 +00:00
maxv 65d06f3f0e Remove the satlink driver. It was disabled everywhere, had no man page and
no use either. Spotted by thorpej in PR/21345, ok christos.
2019-01-27 08:53:28 +00:00
maxv f3a4baf748 Add NVMM - for NetBSD Virtual Machine Monitor -, a kernel driver that
provides support for hardware-accelerated virtualization on NetBSD.

It is made of an MI frontend, to which MD backends can be plugged. One
MD backend is implemented, x86-SVM, for x86 AMD CPUs.

We install

	/usr/include/dev/nvmm/nvmm.h
	/usr/include/dev/nvmm/nvmm_ioctl.h
	/usr/include/dev/nvmm/{arch}/nvmm_{arch}.h

And the kernel module. For now, the only architecture where we do that
is amd64 (arch=x86).

NVMM is not enabled by default in amd64-GENERIC, but is instead easily
modloadable.

Sent to tech-kern@ a month ago. Validated with kASan, and optimized
with tprof.
2018-11-07 07:43:07 +00:00
maxv 8f30df5465 Add tprof in MAKEDEV.tmpl, and regen MAKEDEV.8. 2018-11-04 12:48:01 +00:00
maxv ebec90347e Remove ISDN from the kernel. It has remained unmaintained for a long time,
is of poor quality, and is now an obstacle to MP-ification. It was removed
ten years ago from FreeBSD for the same reason.

This retires a big user of the mbuf API, and will ease maintenance of the
kernel.
2018-09-23 09:20:57 +00:00
kre f8f3c1e1aa Avoid use of test -o for when this is used as part of an INSTALL system
and the SMALL test does not support -o
2018-09-22 13:48:22 +00:00
sevan e01538f90d Create fw(4) & fwmem(4) device nodes by default so fwctl(8) works out of the
box.
2018-07-28 14:13:13 +00:00
maxv b6a911a673 Create /dev/ksyms as "440 $g_kmem". This prevents unprivileged users from
reading the kernel symbols. Discussed in January 2018 on tech-kern@,
reported by maya@, tested by tih@.
2018-07-21 07:46:56 +00:00
thorpej 266bca89c9 Add a 1PPS-over-GPIO driver, originally by Brad Spencer, with changes by
me to adapt to the new GPIO interrupt interface and support a wider variety
of GPIO pin configuations.

PR kern/51676
2018-05-20 14:08:32 +00:00
christos b985414b8f Merge autofs support from: Tomohiro Kusumi
XXX: Does not work yet
2018-01-09 03:31:12 +00:00
jmcneill 2dbf225c9a make a few more drm nodes 2017-12-05 19:17:11 +00:00
jmcneill fb651b612c Add driver for QEMU Firmware Configuration device.
This interface allows the host to pass various data items and files to
the guest OS.
2017-11-25 16:31:03 +00:00
sevan eb0a13ec2a veriexec is enabled by default in most kernel configs but the lack of device
node results in a non working config, despite following manual to get setup.
Remove a step for the user by creating a device node for veriexec by default.


ok mrg jakllsch
2017-08-28 01:34:52 +00:00
jmcneill 40fab7550d add dial-out device node for plcom 2017-08-12 11:41:21 +00:00
kre b5294c7318 As (briefly) discussed on current-users, change the way that MAKEDEV checks
for more than one of the  -m -p -s -t args (and checks whether any were given
to pick one if not) to be more shell friendly.

Note that while the method here is the same as was discussed on the list,
the actual implementation is free of the typos, and just pure lunacy that
was in the code that was shown there.

Also note these changes are intended to be completely internal, there
should be no visible impact upon the way that MAKEDEV works.

ok:christos.   Thanks to pgoyette for the code review.
2017-06-08 03:42:37 +00:00
nonaka 4a15838ffa Fix to cannnot be opened a nvme(4) namespace device file. 2016-09-08 15:00:08 +00:00
kre 04e8d55d65 Always define MKNOD, even if we don't think we need it (turns out we do,
sometimes...)   Noticed by Michael Plass reported on current-users.
2016-07-23 06:48:27 +00:00
kre 93bca39382 As discussed at the biginning of last week (June 6 & 7, 2016) on
tech-kern in messages with a Subject starting [Re:] /dev/sdN -> /dev/sdN[cd]
and in PR port-amd64/51216 :

Create bare (no letter suffix) device names (block & raw) that
refer to the raw device ('c' or 'd' partition as appropriate).

This commit was delayed waiting to see if there was to be any more
discussion - there wasn't a lot.

Caution: this is going to consume 2 more inodes per disc device
configured, everywhere that devices are configured using MAKEDEV
2016-06-16 15:33:38 +00:00
nonaka e7c0cc5d9a Add NVMe command passthrough support. 2016-06-04 16:11:50 +00:00
riz 4145877bea Create dtrace device as part of "all" 2016-01-28 19:06:39 +00:00
christos 9f840dd1f7 Add /dev/full 2016-01-17 23:18:18 +00:00
pgoyette b094e9b9cd Add the filemon(4) device. 2015-11-21 12:11:56 +00:00
joerg 7eb0a13dae Translate requests for ucom into ttyU. 2015-11-08 23:23:30 +00:00
macallan 97dca9d210 create tty* entries for wsdisplay1-3 2015-11-05 16:46:22 +00:00
jmcneill 57d12b8828 add hdmicec 2015-08-01 21:30:09 +00:00
matt 59f16e16f4 add random/urandom to MAKEDEV std 2014-09-19 09:00:23 +00:00