<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in majors</title>
    <link>http://nxr.netbsd.org/rss/src/sys/conf/majors</link>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2005</copyright>
    <generator>Java</generator>
    
<item>
    <title>A driver and userland utility for a couple of families of the<br/>Microchip Technology / SMSC fan controller chips.<br/><br/>The driver and utility supports the:<br/><br/>o EMC2101 and EMC2101-R<br/>o EMC2103-1, EMC2102-2 and EMC2103-4<br/>o EMC2104<br/>o EMC2106<br/>o EMC2301<br/>o EMC2302<br/>o EMC2303<br/>o EMC2305<br/><br/>The EMC210X family supports 1 or 2 fans with tachometer.  Depending on<br/>the chip, it may support 2 additional fans without tach and might<br/>support a high side attachment (i.e. a fan, usually 5v, driven<br/>directly from the chip and not PWM or DAC).  All versions of EMC210X<br/>support internal temperature measurements, and depending on the chip,<br/>may support up to 5 additional temperature zones.  The tachometers and<br/>temperature measurements are provided to the system via the envsys(4)<br/>framework.  Some chip types support GPIO pins and support is provided<br/>via the gpio(4) framework.<br/><br/>The EMC230X family supports 1, 2, 3 or 5 fans with the same number of<br/>tachometers.  No temperature zone or GPIO support.  The tachometers<br/>are provided to the system via the envsys(4) framework.  The fan<br/>support can be provided by PWM signaling or DAC.<br/><br/>The two chip families mostly do PWM signaling for the fan speed, but a<br/>number of them support DAC output, a 0 to 3v or so voltage.  When the<br/>chip supports external temperature zones, this is done usually by a<br/>bipolar NPN or PNP transister configured as a diode, but some of the<br/>chip varients support thermistors.<br/><br/>The emcfan(4) kernel driver provides a simple read / write / seek<br/>device in /dev/ to the register set in the chip.  The heavy lifting is<br/>done in the userland utility emcfanctl(8) which provides the ability<br/>to read and write to any valid register and provides some basic higher<br/>level commands to control fan behavior.  The output is simple text<br/>lines, or JSON.<br/><br/>The kernel driver does not reset or other mess with the chip, aside<br/>from reading registers.  It is entirely possible that something else<br/>in any particular system is the major manager of the fan controller<br/>and it would not do for the kernel driver to mess too much with the<br/>attached device.  All interactions are intentional via the userland<br/>utility.<br/><br/>It is known that a EMC2301 is present on the Raspberry PI 4 Compute IO<br/>module (not to be confused with the Raspberry PI 4 Compute module<br/>itself) and there is a breakout board from Adafruit with a EMC2101 on<br/>it.  The chips themselves are pretty inexpensive from Mouser or<br/>Digi-key and can be soldered using the simpler SMD soldering<br/>techniques.  A number of the variants are QFN packages, but the pads<br/>are exposed to the side of the chip.  No other external components are<br/>required to use these fan controllers.</title>
    <description>/src/sys/conf/majors - 1.105</description>
    <pubDate>Tue Mar 11 13:56:46 UTC 2025</pubDate>
    <dc:creator>brad</dc:creator>
</item>

<item>
    <title>A driver for the MCP-2221 / 2221A multi-io chip.  This is a USB to<br/>UART / GPIO / I2C multi-io chip probably based upon a programmed PIC.<br/>The end result is that simple gpio and i2c can exist on any system<br/>that provides a USB port.  This is everything from a RPI to a<br/>Virtualbox VM.<br/><br/><br/>o The UART presents itself as a umodem(4) device and pretty much works<br/>as one would expect.<br/><br/>o There are 4 simple GPIO pins with multiple functions that attach to<br/>gpio(4).  Support for basic GPIO input and output exists with gpioctl,<br/>the ADC, DAC and clock pulse functions exist as ALT functions.  For<br/>the ADC and DAC /dev/ devices are provided such that simple reads and<br/>writes interact with the ADC and DAC.  The IRQ function on pin GP1 and<br/>bit banging the GPIO with gpiopps(4) and gpioow(4) are not really<br/>supported.  The short answer is that a spin lock is held while trying<br/>to do USB transfers and that isn't allowed.<br/><br/>o There is a simple I2C engine that attaches to iic(4).  This mostly<br/>works as expected, except that a READ without STOP is not supported by<br/>the engine which causes problems for some drivers.  Most drivers do<br/>not seem to use READ without STOP and seem to work as expected.<br/>Support for changing the I2C speed is not supported, but nothing much<br/>really does that.<br/><br/>o A userland utility called umcpmioctl(8) is provided that allows the<br/>query of the status of the chip and allows for the query of the flash<br/>memory and the setting of some of the flash memory parameters mostly<br/>related to gpio.  This utility interacts with a control device in<br/>/dev/.  The flash memory contents is copied to the sram on boot up of<br/>the chip and can be used to adjust how the chip sets up the gpio pins,<br/>among other things.  Support for setting or entering the chip password<br/>is not provided.<br/><br/>o A number of sysctls are provided to mess with various settings.<br/>These are detailed in the man page.<br/><br/><br/>While not perfect, the chip is reasonable, cheap, and has at least one<br/>vendor making a breakout board.  It is also one of the only ones in<br/>this space that has enough documentation to write a driver.<br/><br/>Support for a related chip, the MCP-2210, which provides SPI and GPIO<br/>may exist some day as the programming interface is very simular.</title>
    <description>/src/sys/conf/majors - 1.104</description>
    <pubDate>Mon Dec 16 16:37:38 UTC 2024</pubDate>
    <dc:creator>brad</dc:creator>
</item>

<item>
    <title>branches:  1.103.6;<br/><br/><br/>gpioirq(4) version 2<br/><br/>This update makes this driver more than just an example and allows for:<br/><br/>o More than one pin to be attached to a gpioirq instance.  That is,<br/>  the mask parameter can be greater than 0x01 now.<br/><br/>o A /dev/gpioirqN device that allows GPIO pin interrupts to be<br/>  transported into userland.  This is a device that can be opened for<br/>  reading with a simple fixed output indicating the device unit, pin<br/>  number and current pin state.<br/><br/><br/>This update was used as part of a physical intrusion detection system<br/>where multiple switches (i.e. window magnetic reed switches and etc.)<br/>are tied to a bunch of GPIO inputs with userland software that reacts<br/>to the pins changing state.</title>
    <description>/src/sys/conf/majors - 1.103</description>
    <pubDate>Mon Nov 06 00:35:05 UTC 2023</pubDate>
    <dc:creator>brad</dc:creator>
</item>

<item>
    <title>branches:  1.102.4;<br/>viocon(4): New virtio tty driver imported from OpenBSD.<br/><br/>viocon* at virtio?<br/><br/>/dev/ttyVI??<br/><br/>Tested under qemu with:<br/><br/>qemu-system-aarch64 ... \<br/>  -device virtio-serial \<br/>  -chardev socket,path=/tmp/ttyVI00,server=on,wait=off,id=ttyVI00 \<br/>  -device virtconsole,chardev=ttyVI00,name=org.NetBSD.dev.ttyVI00 \<br/>  ...<br/><br/>I updated MAKEDEV.conf to create /dev/ttyVI?? on all ports where it<br/>looks likely to work based on:<br/>(a) having pci or a non-pci virtio attachment,<br/>(b) `qemu-system-$ARCH -M ?' mentioned something resembling the port,<br/>    and<br/>(c) `qemu-system-$ARCH -device virtio-serial' launched without<br/>    complaining about the virtio-serial device.<br/><br/>(Criterion (c) excluded sparc and sparc64.)</title>
    <description>/src/sys/conf/majors - 1.102</description>
    <pubDate>Fri Aug 12 11:15:42 UTC 2022</pubDate>
    <dc:creator>riastradh</dc:creator>
</item>

<item>
    <title>A driver and user land utility for the Sparkfun Serial Controlled Motor<br/>Driver module as illustrated here:<br/><br/>https://www.sparkfun.com/products/13911<br/><br/>A SCMD module is a ARM SOC simular to a Arduino in front of a motor<br/>driver chip.  The single SCMD module can control two motors and up to<br/>16 additional modules can be chained together using an internal I2C<br/>bus.  One can interface with the SCMD using tty uart commands, SPI or<br/>I2C.  The driver in this commit adds a kernel driver for the I2C and<br/>SPI interfaces.  The command line utility provides a set of<br/>convenience commands that support most of the functions of the SCMD<br/>and is able to use the tty uart mode, SPI user land or the included<br/>kernel driver in a uniform manor.<br/><br/>The use of the SCMD module is mostly for small robots and the like,<br/>but it can control anything that is controllable by voltage.</title>
    <description>/src/sys/conf/majors - 1.101</description>
    <pubDate>Tue Dec 07 17:39:54 UTC 2021</pubDate>
    <dc:creator>brad</dc:creator>
</item>

<item>
    <title>Driver for the Sensirion SHT30/SHT31/SHT35 temperature and humidity<br/>sensor such as:<br/><br/>https://www.adafruit.com/product/2857<br/><br/>This is a higher priced sensor with a lot of features, including the<br/>ability to do sub-second periodic updates.  The driver supports<br/>everything about the sensor except for the alert pin.</title>
    <description>/src/sys/conf/majors - 1.100</description>
    <pubDate>Sat Nov 06 13:34:39 UTC 2021</pubDate>
    <dc:creator>brad</dc:creator>
</item>

<item>
    <title>efi: Add /dev/efi character device<br/><br/>Introduce a /dev/efi character device that provides a means for accessing<br/>UEFI RT variable services from userland. Compatible with the FreeBSD ioctl<br/>interface for ease of porting their libefivar and associated tools.<br/><br/>The ioctl interface is defined in sys/efiio.h.<br/><br/>To enable support for this on an arch, the kernel needs `pseudo-device efi`<br/>and the MD EFI implementation needs to register its backend by calling<br/>efi_ops_register(). This commit includes an implementation for Arm.</title>
    <description>/src/sys/conf/majors - 1.99</description>
    <pubDate>Sun Oct 10 13:03:09 UTC 2021</pubDate>
    <dc:creator>jmcneill</dc:creator>
</item>

<item>
    <title>smbios: Add character device for accessing SMBIOS tables<br/><br/>The /dev/smbios character device gives an aperture into physical memory<br/>that allows read-only access to the SMBIOS header and tables.</title>
    <description>/src/sys/conf/majors - 1.98</description>
    <pubDate>Sat Jul 24 11:39:19 UTC 2021</pubDate>
    <dc:creator>jmcneill</dc:creator>
</item>

<item>
    <title>branches:  1.97.4;<br/>acpi: add character device for accessing ACPI tables<br/><br/>The /dev/acpi character device gives an aperture into physical memory<br/>that allows only read access to known ACPI tables: RSDP, XSDT/RSDT, and<br/>the root tables. Adapt acpidump(8) to use this interface by default,<br/>falling back to the old /dev/mem method if it is not available or if<br/>ACPIDUMP_USE_DEVMEM=1 is set in the environment. The user visible benefit<br/>of this change is that "options INSECURE" is no longer required to<br/>dump ACPI tables.</title>
    <description>/src/sys/conf/majors - 1.97</description>
    <pubDate>Sun Dec 06 02:57:30 UTC 2020</pubDate>
    <dc:creator>jmcneill</dc:creator>
</item>

<item>
    <title>branches:  1.96.2;<br/>Nix trailing whitespace.</title>
    <description>/src/sys/conf/majors - 1.96</description>
    <pubDate>Fri Aug 28 14:58:25 UTC 2020</pubDate>
    <dc:creator>riastradh</dc:creator>
</item>

<item>
    <title>Add driver for Intel XMM7360 LTE modem, based upon Linux driver available<br/>at https://github.com/xmm7360/xmm7360-pci<br/><br/>This version works on Linux, OpenBSD, and NetBSD.<br/><br/>OpenBSD port written for genua GmbH<br/><br/>Modem requires python script from the master site to initialize the network,<br/>it will be added to pkgsrc shortly</title>
    <description>/src/sys/conf/majors - 1.95</description>
    <pubDate>Sun Jul 26 14:51:18 UTC 2020</pubDate>
    <dc:creator>jdolecek</dc:creator>
</item>

<item>
    <title>Add fault(4).</title>
    <description>/src/sys/conf/majors - 1.94</description>
    <pubDate>Sun Jun 07 09:45:19 UTC 2020</pubDate>
    <dc:creator>maxv</dc:creator>
</item>

<item>
    <title>Remove filemon(4).<br/><br/>Discussed on tech-kern:<br/>https://mail-index.NetBSD.org/tech-kern/2020/01/13/msg025938.html<br/><br/>This was never (intentionally) enabled by default, and the design has<br/>some shortcomings.  You can get mostly the same results with ktrace,<br/>as in usr.bin/make/filemon/filemon_ktrace.c which is now used instead<br/>of filemon for make's meta mode.<br/><br/>If applications require higher performance than ktrace, or nesting<br/>that ktrace doesn't support, we might consider adding something back<br/>into the vfs system calls themselves, without hijacking the syscall<br/>table.  (Might want a more reliable output format too, e.g. one that<br/>can handle newlines in file names.)</title>
    <description>/src/sys/conf/majors - 1.93</description>
    <pubDate>Sun Jan 19 20:41:18 UTC 2020</pubDate>
    <dc:creator>riastradh</dc:creator>
</item>

<item>
    <title>branches:  1.92.2;<br/>Revert the removal of filemon.</title>
    <description>/src/sys/conf/majors - 1.92</description>
    <pubDate>Mon Dec 23 06:45:37 UTC 2019</pubDate>
    <dc:creator>maxv</dc:creator>
</item>

<item>
    <title>Retire filemon, discussed on tech-kern@.</title>
    <description>/src/sys/conf/majors - 1.91</description>
    <pubDate>Wed Dec 18 07:37:18 UTC 2019</pubDate>
    <dc:creator>maxv</dc:creator>
</item>

<item>
    <title>Implement a front-end driver of virtio-9p called vio9p<br/><br/>In conjunction with mount_9p, it enables a NetBSD system running as a VM guest<br/>to mount an exported filesystem by the host via virtio-9p.  It exports a 9p<br/>end-point of virtio-9p via a character device file for mount_9p.<br/><br/>Reviewed by yamaguchi@</title>
    <description>/src/sys/conf/majors - 1.90</description>
    <pubDate>Mon Oct 28 02:56:40 UTC 2019</pubDate>
    <dc:creator>ozaki-r</dc:creator>
</item>

<item>
    <title>Wrong major.</title>
    <description>/src/sys/conf/majors - 1.89</description>
    <pubDate>Sun Sep 15 11:45:47 UTC 2019</pubDate>
    <dc:creator>maxv</dc:creator>
</item>

<item>
    <title>Add vHCI, a driver which allows to send and receive USB packets directly<br/>from userland via /dev/vhci. Using this, it becomes possible to test and<br/>fuzz the USB stack and all the USB drivers without having the associated<br/>hardware.<br/><br/>The vHCI device has four ports independently addressable.<br/><br/>For each xfer on each port, we create two packets: a setup packet (which<br/>indicates mostly the type of request) and a data packet (which contains<br/>the raw data). These packets are processed by read and write operations<br/>on /dev/vhci: userland poll-reads it to fetch usb_device_request_t<br/>structures, and dispatches the requests depending on bRequest and<br/>bmRequestType.<br/><br/>A few ioctls are available:<br/><br/>	VHCI_IOC_GET_INFO   - Get the current status<br/>	VHCI_IOC_SET_PORT   - Choose a vHCI port<br/>	VHCI_IOC_USB_ATTACH - Attach a USB device on the current port<br/>	VHCI_IOC_USB_DETACH - Detach the USB device on the current port<br/><br/>vHCI has already allowed me to automatically find several bugs in the USB<br/>stack and its drivers.</title>
    <description>/src/sys/conf/majors - 1.88</description>
    <pubDate>Sat Sep 14 06:57:52 UTC 2019</pubDate>
    <dc:creator>maxv</dc:creator>
</item>

<item>
    <title>Add experimental userland interface to IPMI driver. Currently, transactions<br/>(like sensor readout) are locked, so that a userland program may interfere with<br/>envsys operation.<br/><br/>To use this you need a program like ipmitool built with OpenIPMI support.</title>
    <description>/src/sys/conf/majors - 1.87</description>
    <pubDate>Sat May 18 08:38:00 UTC 2019</pubDate>
    <dc:creator>mlelstv</dc:creator>
</item>

<item>
    <title>Now the real number for ipmi</title>
    <description>/src/sys/conf/majors - 1.86</description>
    <pubDate>Sun May 05 17:24:00 UTC 2019</pubDate>
    <dc:creator>mlelstv</dc:creator>
</item>
</channel></rss>

