mirror of
https://git.proxmox.com/git/mirror_ubuntu-kernels.git
synced 2026-01-27 08:20:26 +00:00
Since 4.30 firmware exposes internal thermal sensor reading via admin
queue commands. Expose those readouts via hwmon API when supported.
Datasheet:
Get Sensor Reading Command (Opcode: 0x0632)
+--------------------+--------+--------------------+-------------------------+
| Name | Bytes | Value | Remarks |
+--------------------+--------+--------------------+-------------------------+
| Flags | 1-0 | | |
| Opcode | 2-3 | 0x0632 | Command opcode |
| Datalen | 4-5 | 0 | No external buffer. |
| Return value | 6-7 | | Return value. |
| Cookie High | 8-11 | Cookie | |
| Cookie Low | 12-15 | Cookie | |
| Sensor | 16 | | 0x00: Internal temp |
| | | | 0x01-0xFF: Reserved. |
| Format | 17 | Requested response | Only 0x00 is supported. |
| | | format | 0x01-0xFF: Reserved. |
| Reserved | 18-23 | | |
| Data Address high | 24-27 | Response buffer | |
| | | address | |
| Data Address low | 28-31 | Response buffer | |
| | | address | |
+--------------------+--------+--------------------+-------------------------+
Get Sensor Reading Response (Opcode: 0x0632)
+--------------------+--------+--------------------+-------------------------+
| Name | Bytes | Value | Remarks |
+--------------------+--------+--------------------+-------------------------+
| Flags | 1-0 | | |
| Opcode | 2-3 | 0x0632 | Command opcode |
| Datalen | 4-5 | 0 | No external buffer |
| Return value | 6-7 | | Return value. |
| | | | EINVAL: Invalid |
| | | | parameters |
| | | | ENOENT: Unsupported |
| | | | sensor |
| | | | EIO: Sensor access |
| | | | error |
| Cookie High | 8-11 | Cookie | |
| Cookie Low | 12-15 | Cookie | |
| Sensor Reading | 16-23 | | Format of the reading |
| | | | is dependent on request |
| Data Address high | 24-27 | Response buffer | |
| | | address | |
| Data Address low | 28-31 | Response buffer | |
| | | address | |
+--------------------+--------+--------------------+-------------------------+
Sensor Reading for Sensor 0x00 (Internal Chip Temperature):
+--------------------+--------+--------------------+-------------------------+
| Name | Bytes | Value | Remarks |
+--------------------+--------+--------------------+-------------------------+
| Thermal Sensor | 0 | | Reading in degrees |
| reading | | | Celsius. Signed int8 |
| Warning High | 1 | | Warning High threshold |
| threshold | | | in degrees Celsius. |
| | | | Unsigned int8. |
| | | | 0xFF when unsupported |
| Critical High | 2 | | Critical High threshold |
| threshold | | | in degrees Celsius. |
| | | | Unsigned int8. |
| | | | 0xFF when unsupported |
| Fatal High | 3 | | Fatal High threshold |
| threshold | | | in degrees Celsius. |
| | | | Unsigned int8. |
| | | | 0xFF when unsupported |
| Reserved | 4-7 | | |
+--------------------+--------+--------------------+-------------------------+
Driver provides current reading from HW as well as device specific
thresholds for thermal alarm (Warning, Critical, Fatal) events.
$ sensors
Output
=========================================================
ice-pci-b100
Adapter: PCI adapter
temp1: +62.0°C (high = +95.0°C, crit = +105.0°C)
(emerg = +115.0°C)
Tested on Intel Corporation Ethernet Controller E810-C for SFP
Co-developed-by: Marcin Domagala <marcinx.domagala@intel.com>
Signed-off-by: Marcin Domagala <marcinx.domagala@intel.com>
Co-developed-by: Eric Joyner <eric.joyner@intel.com>
Signed-off-by: Eric Joyner <eric.joyner@intel.com>
Reviewed-by: Marcin Szycik <marcin.szycik@linux.intel.com>
Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Signed-off-by: Konrad Knitter <konrad.knitter@intel.com>
Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pucha@intel.com> (A Contingent worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
53 lines
1.2 KiB
Makefile
53 lines
1.2 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
# Copyright (c) 2018, Intel Corporation.
|
|
|
|
#
|
|
# Makefile for the Intel(R) Ethernet Connection E800 Series Linux Driver
|
|
#
|
|
|
|
obj-$(CONFIG_ICE) += ice.o
|
|
|
|
ice-y := ice_main.o \
|
|
ice_controlq.o \
|
|
ice_common.o \
|
|
ice_nvm.o \
|
|
ice_switch.o \
|
|
ice_sched.o \
|
|
ice_base.o \
|
|
ice_lib.o \
|
|
ice_txrx_lib.o \
|
|
ice_txrx.o \
|
|
ice_fltr.o \
|
|
ice_irq.o \
|
|
ice_pf_vsi_vlan_ops.o \
|
|
ice_vsi_vlan_ops.o \
|
|
ice_vsi_vlan_lib.o \
|
|
ice_fdir.o \
|
|
ice_ethtool_fdir.o \
|
|
ice_vlan_mode.o \
|
|
ice_flex_pipe.o \
|
|
ice_flow.o \
|
|
ice_idc.o \
|
|
ice_devlink.o \
|
|
ice_ddp.o \
|
|
ice_fw_update.o \
|
|
ice_lag.o \
|
|
ice_ethtool.o \
|
|
ice_repr.o \
|
|
ice_tc_lib.o
|
|
ice-$(CONFIG_PCI_IOV) += \
|
|
ice_sriov.o \
|
|
ice_virtchnl.o \
|
|
ice_virtchnl_allowlist.o \
|
|
ice_virtchnl_fdir.o \
|
|
ice_vf_mbx.o \
|
|
ice_vf_vsi_vlan_ops.o \
|
|
ice_vf_lib.o
|
|
ice-$(CONFIG_PTP_1588_CLOCK) += ice_ptp.o ice_ptp_hw.o ice_dpll.o
|
|
ice-$(CONFIG_DCB) += ice_dcb.o ice_dcb_nl.o ice_dcb_lib.o
|
|
ice-$(CONFIG_RFS_ACCEL) += ice_arfs.o
|
|
ice-$(CONFIG_XDP_SOCKETS) += ice_xsk.o
|
|
ice-$(CONFIG_ICE_SWITCHDEV) += ice_eswitch.o ice_eswitch_br.o
|
|
ice-$(CONFIG_GNSS) += ice_gnss.o
|
|
ice-$(CONFIG_ICE_HWMON) += ice_hwmon.o
|