Page MenuHomeFreeBSD

D16537.id46118.diff
No OneTemporary

D16537.id46118.diff

Index: head/UPDATING
===================================================================
--- head/UPDATING
+++ head/UPDATING
@@ -31,6 +31,12 @@
disable the most expensive debugging functionality run
"ln -s 'abort:false,junk:false' /etc/malloc.conf".)
+20180731:
+ The jedec_ts(4) driver has been removed. A superset of its functionality
+ is available in the jedec_dimm(4) driver, and the manpage for that
+ driver includes migration instructions. If you have "device jedec_ts"
+ in your kernel configuration file, it must be removed.
+
20180730:
amd64/GENERIC now has EFI runtime services, EFIRT, enabled by default.
This should have no effect if the kernel is booted via BIOS/legacy boot.
Index: head/share/man/man4/Makefile
===================================================================
--- head/share/man/man4/Makefile
+++ head/share/man/man4/Makefile
@@ -241,7 +241,6 @@
ixl.4 \
ixlv.4 \
jedec_dimm.4 \
- jedec_ts.4 \
jme.4 \
joy.4 \
kbdmux.4 \
Index: head/share/man/man4/jedec_dimm.4
===================================================================
--- head/share/man/man4/jedec_dimm.4
+++ head/share/man/man4/jedec_dimm.4
@@ -27,7 +27,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd July 24, 2018
+.Dd July 31, 2018
.Dt JEDEC_DIMM 4
.Os
.Sh NAME
@@ -164,7 +164,7 @@
.Ed
.Sh COMPATIBILITY
.Nm
-implements a superset of the functionality of
+implements a superset of the functionality of the now-deleted
.Xr jedec_ts 4 .
Hints for
.Xr jedec_ts 4
@@ -199,7 +199,6 @@
.Sh SEE ALSO
.Xr iicbus 4 ,
.Xr iicsmb 4 ,
-.Xr jedec_ts 4 ,
.Xr smbus 4 ,
.Xr sysctl 8
.Sh STANDARDS
@@ -237,7 +236,7 @@
.Nm
driver and this manual page were written by
.An Ravi Pokala Aq Mt rpokala@freebsd.org .
-They are both based in part on the
+They are both based in part on the now-deleted
.Xr jedec_ts 4
driver and manual page, written by
.An Andriy Gapon Aq Mt avg@FreeBSD.org .
Index: head/share/man/man4/jedec_ts.4
===================================================================
--- head/share/man/man4/jedec_ts.4
+++ head/share/man/man4/jedec_ts.4
@@ -1,142 +0,0 @@
-.\"
-.\" Copyright (c) 2016 Andriy Gapon <avg@FreeBSD.org>
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd July 24, 2018
-.Dt JEDEC_TS 4
-.Os
-.Sh NAME
-.Nm jedec_ts
-.Nd driver for temperature sensors on memory modules
-.Sh SYNOPSIS
-.Bd -ragged -offset indent
-.Cd "device jedec_ts"
-.Cd "device smbus"
-.Ed
-.Pp
-Alternatively, to load the driver as a
-module at boot time, place the following line in
-.Xr loader.conf 5 :
-.Bd -literal -offset indent
-jedec_ts_load="YES"
-.Ed
-.Pp
-In
-.Pa /boot/device.hints :
-.Bd -literal -offset indent
-.Cd hint.jedec_ts.0.at="smbus0"
-.Cd hint.jedec_ts.0.addr="0x30"
-.Cd hint.jedec_ts.1.at="smbus0"
-.Cd hint.jedec_ts.1.addr="0x32"
-.Cd hint.jedec_ts.2.at="smbus0"
-.Cd hint.jedec_ts.2.addr="0x34"
-.Cd hint.jedec_ts.3.at="smbus0"
-.Cd hint.jedec_ts.3.addr="0x36"
-.Cd hint.jedec_ts.4.at="smbus0"
-.Cd hint.jedec_ts.4.addr="0x38"
-.Cd hint.jedec_ts.5.at="smbus0"
-.Cd hint.jedec_ts.5.addr="0x3A"
-.Cd hint.jedec_ts.6.at="smbus0"
-.Cd hint.jedec_ts.6.addr="0x3C"
-.Cd hint.jedec_ts.7.at="smbus0"
-.Cd hint.jedec_ts.7.addr="0x3E"
-.Ed
-.Sh DEPRECATION NOTICE
-The
-.Nm
-driver is not present in
-.Fx 12.0
-and later.
-A superset of its functionality is available in the
-.Xr jedec_dimm 4
-driver.
-That driver's manpage includes instructions on updating
-.Pa /boot/device.hints
-accordingly.
-.Sh DESCRIPTION
-The
-.Nm
-driver provides access to sensor data over the
-.Xr smbus 4 .
-The driver supports temperature sensors on memory modules that conform
-to JEDEC Standard 21-C, TSE2002 Specification.
-.Pp
-The access to
-.Nm
-data is made via the
-.Xr sysctl 8
-interface:
-.Bl -tag -width "dev.jedec_ts.%d.temp"
-.It Va dev.jedec_ts.%d.temp
-read-only value of the current temperature read by the sensor.
-.El
-.Pp
-On a system using
-.Xr device.hints 5 ,
-these values are configurable for
-.Nm :
-.Bl -tag -width "hint.jedec_ts.%d.addr"
-.It Va hint.jedec_ts.%d.at
-target
-.Xr smbus 4 .
-.It Va hint.jedec_ts.%d.addr
-.Nm
-SMBus address on the
-.Xr smbus 4 .
-.El
-.Pp
-.Nm
-temperature sensors can be wired to eight different addresses,
-allowing up to eight sensors on the same
-.Xr smbus 4 .
-.Pp
-If the sensors are on an I2C bus behind an
-.Xr iicbus 4
-controller, then the
-.Xr iicsmb 4
-bridge driver can be used to attach the
-.Xr smbus 4 .
-.Sh EXAMPLES
-.Ss Sensor read out for two memory modules:
-.Bd -literal
-dev.jedec_ts.0.temp: 40.2500C
-dev.jedec_ts.1.temp: 40.7500C
-.Ed
-.Sh SEE ALSO
-.Xr iicbus 4 ,
-.Xr iicsmb 4 ,
-.Xr smbus 4 ,
-.Xr sysctl 8
-.Sh HISTORY
-The
-.Nm
-driver first appeared in
-.Fx 11.1 .
-.Sh AUTHORS
-.An -nosplit
-The
-.Nm
-driver and this manual page were written by
-.An Andriy Gapon Aq Mt avg@FreeBSD.org .
Index: head/sys/conf/NOTES
===================================================================
--- head/sys/conf/NOTES
+++ head/sys/conf/NOTES
@@ -2478,10 +2478,8 @@
# SMBus peripheral devices
#
# jedec_dimm Asset and temperature reporting for DDR3 and DDR4 DIMMs
-# jedec_ts Temperature Sensor compliant with JEDEC Standard 21-C
#
device jedec_dimm
-device jedec_ts
# I2C Bus
#
Index: head/sys/conf/files
===================================================================
--- head/sys/conf/files
+++ head/sys/conf/files
@@ -2308,7 +2308,6 @@
dev/ixgbe/ixgbe_dcb_82599.c optional ix inet | ixv inet \
compile-with "${NORMAL_C} -I$S/dev/ixgbe"
dev/jedec_dimm/jedec_dimm.c optional jedec_dimm smbus
-dev/jedec_ts/jedec_ts.c optional jedec_ts smbus
dev/jme/if_jme.c optional jme pci
dev/joy/joy.c optional joy
dev/joy/joy_isa.c optional joy isa
Index: head/sys/dev/jedec_dimm/jedec_dimm.c
===================================================================
--- head/sys/dev/jedec_dimm/jedec_dimm.c
+++ head/sys/dev/jedec_dimm/jedec_dimm.c
@@ -32,9 +32,9 @@
*/
/*
- * This driver is a super-set of jedec_ts(4), and most of the code for reading
- * and reporting the temperature is either based on that driver, or copied
- * from it verbatim.
+ * This driver is a super-set of the now-deleted jedec_ts(4), and most of the
+ * code for reading and reporting the temperature is either based on that driver,
+ * or copied from it verbatim.
*/
#include <sys/param.h>
Index: head/sys/dev/jedec_ts/jedec_ts.c
===================================================================
--- head/sys/dev/jedec_ts/jedec_ts.c
+++ head/sys/dev/jedec_ts/jedec_ts.c
@@ -1,283 +0,0 @@
-/*-
- * Copyright (c) 2016 Andriy Gapon <avg@FreeBSD.org>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/param.h>
-#include <sys/kernel.h>
-#include <sys/bus.h>
-#include <sys/endian.h>
-#include <sys/module.h>
-#include <sys/rman.h>
-#include <sys/sysctl.h>
-#include <sys/systm.h>
-
-#include <dev/smbus/smbconf.h>
-#include <dev/smbus/smbus.h>
-
-#include "smbus_if.h"
-
-
-/*
- * General device identification notes.
- *
- * The JEDEC TSE2004av specification defines the device ID that all compliant
- * devices should use, but very few do in practice. Maybe that's because
- * TSE2002av was rather vague about that.
- * Rare examples are IDT TSE2004GB2B0 and Atmel AT30TSE004A, not sure if
- * they are TSE2004av compliant by design or by accident.
- * Also, the specification mandates that PCI SIG manufacturer IDs are to be
- * used, but in practice the JEDEC manufacturer IDs are often used.
- */
-
-const struct ts_dev {
- uint16_t vendor_id;
- uint8_t device_id;
- const char *description;
-} known_devices[] = {
- /*
- * Analog Devices ADT7408.
- * http://www.analog.com/media/en/technical-documentation/data-sheets/ADT7408.pdf
- */
- { 0x11d4, 0x08, "Analog Devices DIMM temperature sensor" },
-
- /*
- * Atmel AT30TSE002B, AT30TSE004A.
- * http://www.atmel.com/images/doc8711.pdf
- * http://www.atmel.com/images/atmel-8868-dts-at30tse004a-datasheet.pdf
- * Note how one chip uses the JEDEC Manufacturer ID while the other
- * uses the PCI SIG one.
- */
- { 0x001f, 0x82, "Atmel DIMM temperature sensor" },
- { 0x1114, 0x22, "Atmel DIMM temperature sensor" },
-
- /*
- * Integrated Device Technology (IDT) TS3000B3A, TSE2002B3C,
- * TSE2004GB2B0 chips and their variants.
- * http://www.idt.com/sites/default/files/documents/IDT_TSE2002B3C_DST_20100512_120303152056.pdf
- * http://www.idt.com/sites/default/files/documents/IDT_TS3000B3A_DST_20101129_120303152013.pdf
- * https://www.idt.com/document/dst/tse2004gb2b0-datasheet
- */
- { 0x00b3, 0x29, "IDT DIMM temperature sensor" },
- { 0x00b3, 0x22, "IDT DIMM temperature sensor" },
-
- /*
- * Maxim Integrated MAX6604.
- * Different document revisions specify different Device IDs.
- * Document 19-3837; Rev 0; 10/05 has 0x3e00 while
- * 19-3837; Rev 3; 10/11 has 0x5400.
- * http://datasheets.maximintegrated.com/en/ds/MAX6604.pdf
- */
- { 0x004d, 0x3e, "Maxim Integrated DIMM temperature sensor" },
- { 0x004d, 0x54, "Maxim Integrated DIMM temperature sensor" },
-
- /*
- * Microchip Technology MCP9805, MCP9843, MCP98242, MCP98243
- * and their variants.
- * http://ww1.microchip.com/downloads/en/DeviceDoc/21977b.pdf
- * Microchip Technology EMC1501.
- * http://ww1.microchip.com/downloads/en/DeviceDoc/00001605A.pdf
- */
- { 0x0054, 0x00, "Microchip DIMM temperature sensor" },
- { 0x0054, 0x20, "Microchip DIMM temperature sensor" },
- { 0x0054, 0x21, "Microchip DIMM temperature sensor" },
- { 0x1055, 0x08, "Microchip DIMM temperature sensor" },
-
- /*
- * NXP Semiconductors SE97 and SE98.
- * http://www.nxp.com/docs/en/data-sheet/SE97B.pdf
- */
- { 0x1131, 0xa1, "NXP DIMM temperature sensor" },
- { 0x1131, 0xa2, "NXP DIMM temperature sensor" },
-
- /*
- * ON Semiconductor CAT34TS02 revisions B and C, CAT6095 and compatible.
- * https://www.onsemi.com/pub/Collateral/CAT34TS02-D.PDF
- * http://www.onsemi.com/pub/Collateral/CAT6095-D.PDF
- */
- { 0x1b09, 0x08, "ON Semiconductor DIMM temperature sensor" },
- { 0x1b09, 0x0a, "ON Semiconductor DIMM temperature sensor" },
-
- /*
- * ST[Microelectronics] STTS424E02, STTS2002 and others.
- * http://www.st.com/resource/en/datasheet/cd00157558.pdf
- * http://www.st.com/resource/en/datasheet/stts2002.pdf
- */
- { 0x104a, 0x00, "ST DIMM temperature sensor" },
- { 0x104a, 0x03, "ST DIMM temperature sensor" },
-};
-
-static const char *
-ts_match_device(uint16_t vid, uint16_t did)
-{
- const struct ts_dev *d;
- int i;
-
- for (i = 0; i < nitems(known_devices); i++) {
- d = &known_devices[i];
- if (vid == d->vendor_id && (did >> 8) == d->device_id)
- return (d->description);
- }
-
- /*
- * If no match for a specific device, then check
- * for a generic TSE2004av compliant device.
- */
- if ((did >> 8) == 0x22)
- return ("TSE2004av compliant DIMM temperature sensor");
- return (NULL);
-}
-
-/*
- * SMBus specification defines little-endian byte order,
- * but it seems that the JEDEC devices expect it to
- * be big-endian.
- */
-static int
-ts_readw_be(device_t dev, uint8_t reg, uint16_t *val)
-{
- device_t bus = device_get_parent(dev);
- uint8_t addr = smbus_get_addr(dev);
- int err;
-
- err = smbus_readw(bus, addr, reg, val);
- if (err != 0)
- return (err);
- *val = be16toh(*val);
- return (0);
-}
-
-static int
-ts_temp_sysctl(SYSCTL_HANDLER_ARGS)
-{
- device_t dev = arg1;
- int err;
- int temp;
- uint16_t val;
-
- err = ts_readw_be(dev, 5, &val);
- if (err != 0)
- return (EIO);
-
- /*
- * Convert the reading to temperature in 0.0001 Kelvins.
- * Three most significant bits are flags, the next
- * most significant bit is a sign bit.
- * Each step is 0.0625 degrees.
- */
- temp = val & 0xfff;
- if ((val & 0x1000) != 0)
- temp = -temp;
- temp = temp * 625 + 2731500;
- err = sysctl_handle_int(oidp, &temp, 0, req);
- return (err);
-}
-
-static int
-ts_probe(device_t dev)
-{
- const char *match;
- int err;
- uint16_t vendorid;
- uint16_t devid;
- uint8_t addr;
-
- addr = smbus_get_addr(dev);
- if ((addr & 0xf0) != 0x30) {
- /* Up to 8 slave devices starting at 0x30. */
- return (ENXIO);
- }
-
- err = ts_readw_be(dev, 6, &vendorid);
- if (err != 0) {
- device_printf(dev, "failed to read Manufacturer ID\n");
- return (ENXIO);
- }
- err = ts_readw_be(dev, 7, &devid);
- if (err != 0) {
- device_printf(dev, "failed to read Device ID\n");
- return (ENXIO);
- }
-
- match = ts_match_device(vendorid, devid);
- if (match == NULL) {
- if (bootverbose) {
- device_printf(dev, "Unknown Manufacturer and Device IDs"
- ", 0x%x and 0x%x\n", vendorid, devid);
- }
- return (ENXIO);
- }
-
- device_set_desc(dev, match);
- return (BUS_PROBE_DEFAULT);
-}
-
-static int
-ts_attach(device_t dev)
-{
- struct sysctl_ctx_list *ctx;
- struct sysctl_oid_list *tree;
-
- ctx = device_get_sysctl_ctx(dev);
- tree = SYSCTL_CHILDREN(device_get_sysctl_tree(dev));
- SYSCTL_ADD_PROC(ctx, tree, OID_AUTO, "temp",
- CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_MPSAFE, dev, 0,
- ts_temp_sysctl, "IK4", "Current temperature");
-
- gone_in_dev(dev, 12,
- "jedec_ts(4) driver; see COMPATIBILITY section of jedec_dimm(4)");
-
- return (0);
-}
-
-static int
-ts_detach(device_t dev)
-{
- return (0);
-}
-
-
-static device_method_t jedec_ts_methods[] = {
- /* Methods from the device interface */
- DEVMETHOD(device_probe, ts_probe),
- DEVMETHOD(device_attach, ts_attach),
- DEVMETHOD(device_detach, ts_detach),
-
- /* Terminate method list */
- { 0, 0 }
-};
-
-static driver_t jedec_ts_driver = {
- "jedec_ts",
- jedec_ts_methods,
- 0 /* no softc */
-};
-
-static devclass_t jedec_ts_devclass;
-
-DRIVER_MODULE(jedec_ts, smbus, jedec_ts_driver, jedec_ts_devclass, 0, 0);
-MODULE_DEPEND(jedec_ts, smbus, SMBUS_MINVER, SMBUS_PREFVER, SMBUS_MAXVER);
-MODULE_VERSION(jedec_ts, 1);
Index: head/sys/modules/i2c/Makefile
===================================================================
--- head/sys/modules/i2c/Makefile
+++ head/sys/modules/i2c/Makefile
@@ -16,7 +16,6 @@
isl \
isl12xx \
jedec_dimm \
- jedec_ts \
nxprtc \
rtc8583 \
s35390a \
Index: head/sys/modules/i2c/jedec_ts/Makefile
===================================================================
--- head/sys/modules/i2c/jedec_ts/Makefile
+++ head/sys/modules/i2c/jedec_ts/Makefile
@@ -1,7 +0,0 @@
-# $FreeBSD$
-
-.PATH: ${SRCTOP}/sys/dev/jedec_ts
-KMOD = jedec_ts
-SRCS = jedec_ts.c bus_if.h device_if.h smbus_if.h
-
-.include <bsd.kmod.mk>

File Metadata

Mime Type
text/plain
Expires
Mon, Feb 9, 7:21 AM (1 h, 46 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28552490
Default Alt Text
D16537.id46118.diff (16 KB)

Event Timeline