sync with OpenBSD -current

This commit is contained in:
purplerain 2023-11-24 03:38:59 +00:00
parent 10cf24ada0
commit dde71458ae
Signed by: purplerain
GPG key ID: F42C07F07E2E35B7
28 changed files with 813 additions and 112 deletions

View file

@ -1,4 +1,4 @@
/* $OpenBSD: cpu.c,v 1.99 2023/10/24 13:20:09 claudio Exp $ */
/* $OpenBSD: cpu.c,v 1.101 2023/11/23 19:54:30 patrick Exp $ */
/*
* Copyright (c) 2016 Dale Rahn <drahn@dalerahn.com>
@ -17,6 +17,8 @@
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#include "kstat.h"
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/proc.h>
@ -25,6 +27,7 @@
#include <sys/sysctl.h>
#include <sys/task.h>
#include <sys/user.h>
#include <sys/kstat.h>
#include <uvm/uvm.h>
@ -250,6 +253,11 @@ void cpu_psci_init(struct cpu_info *);
void cpu_flush_bp_noop(void);
void cpu_flush_bp_psci(void);
#if NKSTAT > 0
void cpu_kstat_attach(struct cpu_info *ci);
void cpu_opp_kstat_attach(struct cpu_info *ci);
#endif
void
cpu_identify(struct cpu_info *ci)
{
@ -937,6 +945,10 @@ cpu_attach(struct device *parent, struct device *dev, void *aux)
}
cpu_init();
#if NKSTAT > 0
cpu_kstat_attach(ci);
#endif
#ifdef MULTIPROCESSOR
}
#endif
@ -1181,6 +1193,10 @@ cpu_init_secondary(struct cpu_info *ci)
spllower(IPL_NONE);
#if NKSTAT > 0
cpu_kstat_attach(ci);
#endif
sched_toidle();
}
@ -1534,6 +1550,10 @@ cpu_opp_mountroot(struct device *self)
if (ot == NULL)
continue;
#if NKSTAT > 0
cpu_opp_kstat_attach(ci);
#endif
/* Skip if this table is shared and we're not the master. */
if (ot->ot_master && ot->ot_master != ci)
continue;
@ -1817,3 +1837,157 @@ cpu_psci_init(struct cpu_info *ci)
ci->ci_psci_suspend_param =
OF_getpropint(node, "arm,psci-suspend-param", 0);
}
#if NKSTAT > 0
struct cpu_kstats {
struct kstat_kv ck_impl;
struct kstat_kv ck_part;
struct kstat_kv ck_rev;
};
void
cpu_kstat_attach(struct cpu_info *ci)
{
struct kstat *ks;
struct cpu_kstats *ck;
uint64_t midr, impl, part;
const char *impl_name = NULL, *part_name = NULL;
const struct cpu_cores *coreselecter = cpu_cores_none;
size_t i;
ks = kstat_create(ci->ci_dev->dv_xname, 0, "mach", 0, KSTAT_T_KV, 0);
if (ks == NULL) {
printf("%s: unable to create cpu kstats\n",
ci->ci_dev->dv_xname);
/* printf? */
return;
}
ck = malloc(sizeof(*ck), M_DEVBUF, M_WAITOK);
midr = READ_SPECIALREG(midr_el1);
impl = CPU_IMPL(midr);
part = CPU_PART(midr);
for (i = 0; cpu_implementers[i].name; i++) {
if (impl == cpu_implementers[i].id) {
impl_name = cpu_implementers[i].name;
coreselecter = cpu_implementers[i].corelist;
break;
}
}
if (impl_name) {
kstat_kv_init(&ck->ck_impl, "impl", KSTAT_KV_T_ISTR);
strlcpy(kstat_kv_istr(&ck->ck_impl), impl_name,
sizeof(kstat_kv_istr(&ck->ck_impl)));
} else
kstat_kv_init(&ck->ck_impl, "impl", KSTAT_KV_T_NULL);
for (i = 0; coreselecter[i].name; i++) {
if (part == coreselecter[i].id) {
part_name = coreselecter[i].name;
break;
}
}
if (part_name) {
kstat_kv_init(&ck->ck_part, "part", KSTAT_KV_T_ISTR);
strlcpy(kstat_kv_istr(&ck->ck_part), part_name,
sizeof(kstat_kv_istr(&ck->ck_part)));
} else
kstat_kv_init(&ck->ck_part, "part", KSTAT_KV_T_NULL);
kstat_kv_init(&ck->ck_rev, "rev", KSTAT_KV_T_ISTR);
snprintf(kstat_kv_istr(&ck->ck_rev), sizeof(kstat_kv_istr(&ck->ck_rev)),
"r%llup%llu", CPU_VAR(midr), CPU_REV(midr));
ks->ks_softc = ci;
ks->ks_data = ck;
ks->ks_datalen = sizeof(*ck);
ks->ks_read = kstat_read_nop;
kstat_install(ks);
/* XXX should we have a ci->ci_kstat = ks? */
}
struct cpu_opp_kstats {
struct kstat_kv coppk_freq;
struct kstat_kv coppk_supply_v;
};
int
cpu_opp_kstat_read(struct kstat *ks)
{
struct cpu_info *ci = ks->ks_softc;
struct cpu_opp_kstats *coppk = ks->ks_data;
struct opp_table *ot = ci->ci_opp_table;
struct cpu_info *oci;
struct timespec now, diff;
/* rate limit */
getnanouptime(&now);
timespecsub(&now, &ks->ks_updated, &diff);
if (diff.tv_sec < 1)
return (0);
if (ot == NULL)
return (0);
oci = ot->ot_master;
if (oci == NULL)
oci = ci;
kstat_kv_freq(&coppk->coppk_freq) =
clock_get_frequency(oci->ci_node, NULL);
if (oci->ci_cpu_supply) {
kstat_kv_volts(&coppk->coppk_supply_v) =
regulator_get_voltage(oci->ci_cpu_supply);
}
ks->ks_updated = now;
return (0);
}
void
cpu_opp_kstat_attach(struct cpu_info *ci)
{
struct kstat *ks;
struct cpu_opp_kstats *coppk;
struct opp_table *ot = ci->ci_opp_table;
struct cpu_info *oci = ot->ot_master;
if (oci == NULL)
oci = ci;
ks = kstat_create(ci->ci_dev->dv_xname, 0, "dt-opp", 0,
KSTAT_T_KV, 0);
if (ks == NULL) {
printf("%s: unable to create cpu dt-opp kstats\n",
ci->ci_dev->dv_xname);
return;
}
coppk = malloc(sizeof(*coppk), M_DEVBUF, M_WAITOK);
kstat_kv_init(&coppk->coppk_freq, "freq", KSTAT_KV_T_FREQ);
kstat_kv_init(&coppk->coppk_supply_v, "supply",
oci->ci_cpu_supply ? KSTAT_KV_T_VOLTS_DC : KSTAT_KV_T_NULL);
ks->ks_softc = oci;
ks->ks_data = coppk;
ks->ks_datalen = sizeof(*coppk);
ks->ks_read = cpu_opp_kstat_read;
kstat_install(ks);
/* XXX should we have a ci->ci_opp_kstat = ks? */
}
#endif /* NKSTAT > 0 */

View file

@ -1,4 +1,4 @@
/* $OpenBSD: ofw_thermal.c,v 1.7 2020/12/31 11:11:22 kettenis Exp $ */
/* $OpenBSD: ofw_thermal.c,v 1.8 2023/11/23 00:47:13 dlg Exp $ */
/*
* Copyright (c) 2019 Mark Kettenis
*
@ -15,12 +15,16 @@
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#include "kstat.h"
#include <sys/types.h>
#include <sys/systm.h>
#include <sys/malloc.h>
#include <sys/stdint.h>
#include <sys/task.h>
#include <sys/timeout.h>
#include <sys/sched.h>
#include <sys/kstat.h>
#include <machine/bus.h>
@ -36,6 +40,7 @@ LIST_HEAD(, cooling_device) cooling_devices =
struct taskq *tztq;
struct trippoint {
int tp_node;
int32_t tp_temperature;
uint32_t tp_hysteresis;
int tp_type;
@ -48,6 +53,14 @@ struct trippoint {
#define THERMAL_HOT 3
#define THERMAL_CRITICAL 4
static const char *trip_types[] = {
[THERMAL_NONE] = "none",
[THERMAL_ACTIVE] = "active",
[THERMAL_PASSIVE] = "passive",
[THERMAL_HOT] = "hot",
[THERMAL_CRITICAL] = "critical",
};
struct cmap {
uint32_t *cm_cdev;
uint32_t *cm_cdevend;
@ -82,8 +95,16 @@ struct thermal_zone {
LIST_HEAD(, cdev) tz_cdevs;
int32_t tz_temperature;
struct rwlock tz_lock;
struct kstat *tz_kstat;
};
#if NKSTAT > 0
static void thermal_zone_kstat_attach(struct thermal_zone *);
static void thermal_zone_kstat_update(struct thermal_zone *);
#endif /* NKSTAT > 0 */
LIST_HEAD(, thermal_zone) thermal_zones =
LIST_HEAD_INITIALIZER(thermal_zones);
@ -324,6 +345,9 @@ thermal_zone_poll(void *arg)
out:
tz->tz_temperature = temp;
#if NKSTAT > 0
thermal_zone_kstat_update(tz);
#endif
if (tz->tz_tp && tz->tz_tp->tp_type == THERMAL_PASSIVE)
polling_delay = tz->tz_polling_delay_passive;
else
@ -331,6 +355,23 @@ out:
timeout_add_msec(&tz->tz_poll_to, polling_delay);
}
static int
thermal_zone_triptype(const char *prop)
{
size_t i;
for (i = 0; i < nitems(trip_types); i++) {
const char *name = trip_types[i];
if (name == NULL)
continue;
if (strcmp(name, prop) == 0)
return (i);
}
return (THERMAL_NONE);
}
void
thermal_zone_init(int node)
{
@ -351,6 +392,7 @@ thermal_zone_init(int node)
tz = malloc(sizeof(struct thermal_zone), M_DEVBUF, M_ZERO | M_WAITOK);
tz->tz_node = node;
rw_init(&tz->tz_lock, "tzlk");
OF_getprop(node, "name", &tz->tz_name, sizeof(tz->tz_name));
tz->tz_name[sizeof(tz->tz_name) - 1] = 0;
@ -394,17 +436,11 @@ thermal_zone_init(int node)
break;
}
tp = &tz->tz_trips[i];
tp->tp_node = node;
tp->tp_temperature = temp;
tp->tp_hysteresis = OF_getpropint(node, "hysteresis", 0);
OF_getprop(node, "type", type, sizeof(type));
if (strcmp(type, "active") == 0)
tp->tp_type = THERMAL_ACTIVE;
else if (strcmp(type, "passive") == 0)
tp->tp_type = THERMAL_PASSIVE;
else if (strcmp(type, "hot") == 0)
tp->tp_type = THERMAL_HOT;
else if (strcmp(type, "critical") == 0)
tp->tp_type = THERMAL_CRITICAL;
tp->tp_type = thermal_zone_triptype(type);
tp->tp_phandle = OF_getpropint(node, "phandle", 0);
tp++;
}
@ -465,6 +501,10 @@ thermal_zone_init(int node)
if (tz->tz_polling_delay > 0)
timeout_add_msec(&tz->tz_poll_to, tz->tz_polling_delay);
LIST_INSERT_HEAD(&thermal_zones, tz, tz_list);
#if NKSTAT > 0
thermal_zone_kstat_attach(tz);
#endif
}
void
@ -480,3 +520,109 @@ thermal_init(void)
for (node = OF_child(node); node != 0; node = OF_peer(node))
thermal_zone_init(node);
}
#if NKSTAT > 0
static const char *
thermal_zone_tripname(int type)
{
if (type >= nitems(trip_types))
return (NULL);
return (trip_types[type]);
}
struct thermal_zone_kstats {
struct kstat_kv tzk_name; /* istr could be short */
struct kstat_kv tzk_temp;
struct kstat_kv tzk_tp;
struct kstat_kv tzk_tp_type;
struct kstat_kv tzk_cooling;
};
static void
thermal_zone_kstat_update(struct thermal_zone *tz)
{
struct kstat *ks = tz->tz_kstat;
struct thermal_zone_kstats *tzk;
if (ks == NULL)
return;
tzk = ks->ks_data;
rw_enter_write(&tz->tz_lock);
if (tz->tz_temperature == THERMAL_SENSOR_MAX)
tzk->tzk_temp.kv_type = KSTAT_KV_T_NULL;
else {
tzk->tzk_temp.kv_type = KSTAT_KV_T_TEMP;
kstat_kv_temp(&tzk->tzk_temp) = 273150000 +
1000 * tz->tz_temperature;
}
if (tz->tz_tp == NULL) {
kstat_kv_u32(&tzk->tzk_tp) = 0;
strlcpy(kstat_kv_istr(&tzk->tzk_tp_type), "none",
sizeof(kstat_kv_istr(&tzk->tzk_tp_type)));
} else {
int triptype = tz->tz_tp->tp_type;
const char *tripname = thermal_zone_tripname(triptype);
kstat_kv_u32(&tzk->tzk_tp) = tz->tz_tp->tp_node;
if (tripname == NULL) {
snprintf(kstat_kv_istr(&tzk->tzk_tp_type),
sizeof(kstat_kv_istr(&tzk->tzk_tp_type)),
"%u", triptype);
} else {
strlcpy(kstat_kv_istr(&tzk->tzk_tp_type), tripname,
sizeof(kstat_kv_istr(&tzk->tzk_tp_type)));
}
}
kstat_kv_bool(&tzk->tzk_cooling) = (tz->tz_cm != NULL);
getnanouptime(&ks->ks_updated);
rw_exit_write(&tz->tz_lock);
}
static void
thermal_zone_kstat_attach(struct thermal_zone *tz)
{
struct kstat *ks;
struct thermal_zone_kstats *tzk;
static unsigned int unit = 0;
ks = kstat_create("dt", 0, "thermal-zone", unit++, KSTAT_T_KV, 0);
if (ks == NULL) {
printf("unable to create thermal-zone kstats for %s",
tz->tz_name);
return;
}
tzk = malloc(sizeof(*tzk), M_DEVBUF, M_WAITOK|M_ZERO);
kstat_kv_init(&tzk->tzk_name, "name", KSTAT_KV_T_ISTR);
strlcpy(kstat_kv_istr(&tzk->tzk_name), tz->tz_name,
sizeof(kstat_kv_istr(&tzk->tzk_name)));
kstat_kv_init(&tzk->tzk_temp, "temperature", KSTAT_KV_T_NULL);
/* XXX dt node is not be the most useful info here. */
kstat_kv_init(&tzk->tzk_tp, "trip-point-node", KSTAT_KV_T_UINT32);
kstat_kv_init(&tzk->tzk_tp_type, "trip-type", KSTAT_KV_T_ISTR);
strlcpy(kstat_kv_istr(&tzk->tzk_tp_type), "unknown",
sizeof(kstat_kv_istr(&tzk->tzk_tp_type)));
kstat_kv_init(&tzk->tzk_cooling, "active-cooling", KSTAT_KV_T_BOOL);
kstat_kv_bool(&tzk->tzk_cooling) = 0;
ks->ks_softc = tz;
ks->ks_data = tzk;
ks->ks_datalen = sizeof(*tzk);
ks->ks_read = kstat_read_nop;
kstat_set_rlock(ks, &tz->tz_lock);
tz->tz_kstat = ks;
kstat_install(ks);
}
#endif /* NKSTAT > 0 */

View file

@ -1,4 +1,4 @@
/* $OpenBSD: azalia.c,v 1.284 2023/07/30 08:46:03 yasuoka Exp $ */
/* $OpenBSD: azalia.c,v 1.285 2023/11/23 14:24:06 jsg Exp $ */
/* $NetBSD: azalia.c,v 1.20 2006/05/07 08:31:44 kent Exp $ */
/*-
@ -475,6 +475,7 @@ azalia_configure_pci(azalia_t *az)
case PCI_PRODUCT_INTEL_GLK_HDA:
case PCI_PRODUCT_INTEL_JSL_HDA:
case PCI_PRODUCT_INTEL_EHL_HDA:
case PCI_PRODUCT_INTEL_ADL_N_HDA:
reg = azalia_pci_read(az->pc, az->tag,
INTEL_PCIE_NOSNOOP_REG);
reg &= INTEL_PCIE_NOSNOOP_MASK;
@ -498,6 +499,7 @@ const struct pci_matchid azalia_pci_devices[] = {
{ PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_GLK_HDA },
{ PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_JSL_HDA },
{ PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_EHL_HDA },
{ PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_HDA },
};
int

View file

@ -142,7 +142,8 @@ static const struct pci_matchid amdgpu_devices[] = {
{0x1002, 0x73BF },
/* Van Gogh */
{0x1002, 0x163F },
{0x1002, 0x1435 }, /* Custom GPU 0932 */
{0x1002, 0x163F }, /* Custom GPU 0405 */
/* Yellow Carp */
{0x1002, 0x164D },

View file

@ -1963,6 +1963,7 @@ static const struct pci_device_id pciidlist[] = {
{0x1002, 0x73BF, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SIENNA_CICHLID},
/* Van Gogh */
{0x1002, 0x1435, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_VANGOGH|AMD_IS_APU},
{0x1002, 0x163F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_VANGOGH|AMD_IS_APU},
/* Yellow Carp */

View file

@ -1,4 +1,4 @@
/* $OpenBSD: dwiic_pci.c,v 1.23 2023/02/05 02:26:02 jsg Exp $ */
/* $OpenBSD: dwiic_pci.c,v 1.24 2023/11/23 14:24:06 jsg Exp $ */
/*
* Synopsys DesignWare I2C controller
* PCI attachment
@ -166,6 +166,12 @@ const struct pci_matchid dwiic_pci_ids[] = {
{ PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_EHL_SIO_I2C_5 },
{ PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_EHL_SIO_I2C_6 },
{ PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_EHL_SIO_I2C_7 },
{ PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_I2C_0 },
{ PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_I2C_1 },
{ PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_I2C_2 },
{ PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_I2C_3 },
{ PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_I2C_4 },
{ PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_I2C_5 },
};
int

View file

@ -1,4 +1,4 @@
/* $OpenBSD: ichiic.c,v 1.51 2023/02/05 02:26:02 jsg Exp $ */
/* $OpenBSD: ichiic.c,v 1.52 2023/11/23 14:24:06 jsg Exp $ */
/*
* Copyright (c) 2005, 2006 Alexander Yurchenko <grange@openbsd.org>
@ -139,6 +139,7 @@ const struct pci_matchid ichiic_ids[] = {
{ PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_700SERIES_SMB },
{ PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_JSL_SMB },
{ PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_EHL_SMB },
{ PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_SMB },
};
int

View file

@ -1,4 +1,4 @@
$OpenBSD: pcidevs,v 1.2053 2023/11/14 02:25:48 jsg Exp $
$OpenBSD: pcidevs,v 1.2055 2023/11/23 14:21:47 jsg Exp $
/* $NetBSD: pcidevs,v 1.30 1997/06/24 06:20:24 thorpej Exp $ */
/*
@ -1277,6 +1277,7 @@ product ATI KAVERI_20 0x131b Kaveri Radeon R4
product ATI KAVERI_21 0x131c Kaveri Radeon R7
product ATI KAVERI_22 0x131d Kaveri Radeon R6
product ATI CYAN_SKILLFISH_1 0x13fe Cyan Skillfish
product ATI VANGOGH_0932 0x1435 Van Gogh
product ATI CYAN_SKILLFISH_2 0x143f Cyan Skillfish
product ATI PPB_1 0x1478 PCIE
product ATI PPB_2 0x1479 PCIE
@ -1290,7 +1291,7 @@ product ATI BARCELO 0x15e7 Barcelo
product ATI RENOIR 0x1636 Renoir
product ATI RENOIR_HDA 0x1637 Renoir HD Audio
product ATI CEZANNE 0x1638 Cezanne
product ATI VANGOGH 0x163f Van Gogh
product ATI VANGOGH_0405 0x163f Van Gogh
product ATI VANGOGH_HDA 0x1640 Van Gogh HD Audio
product ATI LUCIENNE 0x164c Lucienne
product ATI YELLOW_CARP_1 0x164d Rembrandt
@ -5601,8 +5602,11 @@ product INTEL ADL_U9_HB_2 0x460a Core 12G Host
product INTEL ADL_S_PCIE_1 0x460d Core 12G PCIE
product INTEL ADL_XDCI 0x460e Core 12G xDCI
product INTEL ADL_S_HB_6 0x4610 Core 12G Host
product INTEL ADL_N_HB_1 0x4617 ADL-N Host
product INTEL ADL_U15_HB_2 0x4619 Core 12G Host
product INTEL ADL_U9_HB_3 0x461a Core 12G Host
product INTEL ADL_N_HB_2 0x461b N200 Host
product INTEL ADL_N_HB_3 0x461c N100 Host
product INTEL ADL_S_DTT 0x461d Core 12G DTT
product INTEL ADL_XHCI 0x461e Core 12G xHCI
product INTEL ADL_TBT_PCIE3 0x461f Core 12G PCIE
@ -5895,7 +5899,49 @@ product INTEL 600SERIES_LP_ISH 0x51fc 600 Series ISH
product INTEL 600SERIES_LP_UFS 0x51ff 600 Series UFS
product INTEL 80960RD 0x5200 i960 RD
product INTEL PRO_100_SERVER 0x5201 PRO 100 Server
product INTEL ADL_N_ESPI 0x5481 ADL-N eSPI
product INTEL ADL_N_P2SB 0x54a0 ADL-N P2SB
product INTEL ADL_N_PMC 0x54a1 ADL-N PMC
product INTEL ADL_N_SMB 0x54a3 ADL-N SMBus
product INTEL ADL_N_SPI 0x54a4 ADL-N SPI
product INTEL ADL_N_TH 0x54a6 ADL-N TH
product INTEL ADL_N_UART_0 0x54a8 ADL-N UART
product INTEL ADL_N_UART_1 0x54a9 ADL-N UART
product INTEL ADL_N_GSPI_0 0x54aa ADL-N GSPI
product INTEL ADL_N_GSPI_1 0x54ab ADL-N GSPI
product INTEL ADL_N_PCIE_9 0x54b0 ADL-N PCIE
product INTEL ADL_N_PCIE_10 0x54b1 ADL-N PCIE
product INTEL ADL_N_PCIE_11 0x54b2 ADL-N PCIE
product INTEL ADL_N_PCIE_12 0x54b3 ADL-N PCIE
product INTEL ADL_N_PCIE_1 0x54b8 ADL-N PCIE
product INTEL ADL_N_PCIE_2 0x54b9 ADL-N PCIE
product INTEL ADL_N_PCIE_3 0x54ba ADL-N PCIE
product INTEL ADL_N_PCIE_4 0x54bb ADL-N PCIE
product INTEL ADL_N_PCIE_7 0x54be ADL-N PCIE
product INTEL ADL_N_EMMC 0x54c4 ADL-N eMMC
product INTEL ADL_N_I2C_4 0x54c5 ADL-N I2C
product INTEL ADL_N_I2C_5 0x54c6 ADL-N I2C
product INTEL ADL_N_UART_2 0x54c7 ADL-N UART
product INTEL ADL_N_HDA 0x54c8 ADL-N HD Audio
product INTEL ADL_N_THC_0 0x54d0 ADL-N THC
product INTEL ADL_N_THC_1 0x54d1 ADL-N THC
product INTEL ADL_N_AHCI 0x54d3 ADL-N AHCI
product INTEL ADL_N_UART_3 0x54da ADL-N UART
product INTEL ADL_N_HECI_1 0x54e0 ADL-N HECI
product INTEL ADL_N_HECI_2 0x54e1 ADL-N HECI
product INTEL ADL_N_HECI_3 0x54e4 ADL-N HECI
product INTEL ADL_N_HECI_4 0x54e5 ADL-N HECI
product INTEL ADL_N_I2C_0 0x54e8 ADL-N I2C
product INTEL ADL_N_I2C_1 0x54e9 ADL-N I2C
product INTEL ADL_N_I2C_2 0x54ea ADL-N I2C
product INTEL ADL_N_I2C_3 0x54eb ADL-N I2C
product INTEL ADL_N_XHCI 0x54ed ADL-N xHCI
product INTEL ADL_N_XDCI 0x54ee ADL-N xDCI
product INTEL ADL_N_SRAM 0x54ef ADL-N SRAM
product INTEL WL_22500_16 0x54f0 Wi-Fi 6 AX211
product INTEL ADL_N_GSPI_2 0x54fb ADL-N GSPI
product INTEL ADL_N_ISH 0x54fc ADL-N ISH
product INTEL ADL_N_UFS 0x54ff ADL-N UFS
product INTEL I225_LMVP 0x5502 I225-LMvP
product INTEL I226_K 0x5504 I226-K
product INTEL I219_LM18 0x550a I219-LM

View file

@ -2,7 +2,7 @@
* THIS FILE AUTOMATICALLY GENERATED. DO NOT EDIT.
*
* generated from:
* OpenBSD: pcidevs,v 1.2053 2023/11/14 02:25:48 jsg Exp
* OpenBSD: pcidevs,v 1.2055 2023/11/23 14:21:47 jsg Exp
*/
/* $NetBSD: pcidevs,v 1.30 1997/06/24 06:20:24 thorpej Exp $ */
@ -1282,6 +1282,7 @@
#define PCI_PRODUCT_ATI_KAVERI_21 0x131c /* Kaveri Radeon R7 */
#define PCI_PRODUCT_ATI_KAVERI_22 0x131d /* Kaveri Radeon R6 */
#define PCI_PRODUCT_ATI_CYAN_SKILLFISH_1 0x13fe /* Cyan Skillfish */
#define PCI_PRODUCT_ATI_VANGOGH_0932 0x1435 /* Van Gogh */
#define PCI_PRODUCT_ATI_CYAN_SKILLFISH_2 0x143f /* Cyan Skillfish */
#define PCI_PRODUCT_ATI_PPB_1 0x1478 /* PCIE */
#define PCI_PRODUCT_ATI_PPB_2 0x1479 /* PCIE */
@ -1295,7 +1296,7 @@
#define PCI_PRODUCT_ATI_RENOIR 0x1636 /* Renoir */
#define PCI_PRODUCT_ATI_RENOIR_HDA 0x1637 /* Renoir HD Audio */
#define PCI_PRODUCT_ATI_CEZANNE 0x1638 /* Cezanne */
#define PCI_PRODUCT_ATI_VANGOGH 0x163f /* Van Gogh */
#define PCI_PRODUCT_ATI_VANGOGH_0405 0x163f /* Van Gogh */
#define PCI_PRODUCT_ATI_VANGOGH_HDA 0x1640 /* Van Gogh HD Audio */
#define PCI_PRODUCT_ATI_LUCIENNE 0x164c /* Lucienne */
#define PCI_PRODUCT_ATI_YELLOW_CARP_1 0x164d /* Rembrandt */
@ -5606,8 +5607,11 @@
#define PCI_PRODUCT_INTEL_ADL_S_PCIE_1 0x460d /* Core 12G PCIE */
#define PCI_PRODUCT_INTEL_ADL_XDCI 0x460e /* Core 12G xDCI */
#define PCI_PRODUCT_INTEL_ADL_S_HB_6 0x4610 /* Core 12G Host */
#define PCI_PRODUCT_INTEL_ADL_N_HB_1 0x4617 /* ADL-N Host */
#define PCI_PRODUCT_INTEL_ADL_U15_HB_2 0x4619 /* Core 12G Host */
#define PCI_PRODUCT_INTEL_ADL_U9_HB_3 0x461a /* Core 12G Host */
#define PCI_PRODUCT_INTEL_ADL_N_HB_2 0x461b /* N200 Host */
#define PCI_PRODUCT_INTEL_ADL_N_HB_3 0x461c /* N100 Host */
#define PCI_PRODUCT_INTEL_ADL_S_DTT 0x461d /* Core 12G DTT */
#define PCI_PRODUCT_INTEL_ADL_XHCI 0x461e /* Core 12G xHCI */
#define PCI_PRODUCT_INTEL_ADL_TBT_PCIE3 0x461f /* Core 12G PCIE */
@ -5900,7 +5904,49 @@
#define PCI_PRODUCT_INTEL_600SERIES_LP_UFS 0x51ff /* 600 Series UFS */
#define PCI_PRODUCT_INTEL_80960RD 0x5200 /* i960 RD */
#define PCI_PRODUCT_INTEL_PRO_100_SERVER 0x5201 /* PRO 100 Server */
#define PCI_PRODUCT_INTEL_ADL_N_ESPI 0x5481 /* ADL-N eSPI */
#define PCI_PRODUCT_INTEL_ADL_N_P2SB 0x54a0 /* ADL-N P2SB */
#define PCI_PRODUCT_INTEL_ADL_N_PMC 0x54a1 /* ADL-N PMC */
#define PCI_PRODUCT_INTEL_ADL_N_SMB 0x54a3 /* ADL-N SMBus */
#define PCI_PRODUCT_INTEL_ADL_N_SPI 0x54a4 /* ADL-N SPI */
#define PCI_PRODUCT_INTEL_ADL_N_TH 0x54a6 /* ADL-N TH */
#define PCI_PRODUCT_INTEL_ADL_N_UART_0 0x54a8 /* ADL-N UART */
#define PCI_PRODUCT_INTEL_ADL_N_UART_1 0x54a9 /* ADL-N UART */
#define PCI_PRODUCT_INTEL_ADL_N_GSPI_0 0x54aa /* ADL-N GSPI */
#define PCI_PRODUCT_INTEL_ADL_N_GSPI_1 0x54ab /* ADL-N GSPI */
#define PCI_PRODUCT_INTEL_ADL_N_PCIE_9 0x54b0 /* ADL-N PCIE */
#define PCI_PRODUCT_INTEL_ADL_N_PCIE_10 0x54b1 /* ADL-N PCIE */
#define PCI_PRODUCT_INTEL_ADL_N_PCIE_11 0x54b2 /* ADL-N PCIE */
#define PCI_PRODUCT_INTEL_ADL_N_PCIE_12 0x54b3 /* ADL-N PCIE */
#define PCI_PRODUCT_INTEL_ADL_N_PCIE_1 0x54b8 /* ADL-N PCIE */
#define PCI_PRODUCT_INTEL_ADL_N_PCIE_2 0x54b9 /* ADL-N PCIE */
#define PCI_PRODUCT_INTEL_ADL_N_PCIE_3 0x54ba /* ADL-N PCIE */
#define PCI_PRODUCT_INTEL_ADL_N_PCIE_4 0x54bb /* ADL-N PCIE */
#define PCI_PRODUCT_INTEL_ADL_N_PCIE_7 0x54be /* ADL-N PCIE */
#define PCI_PRODUCT_INTEL_ADL_N_EMMC 0x54c4 /* ADL-N eMMC */
#define PCI_PRODUCT_INTEL_ADL_N_I2C_4 0x54c5 /* ADL-N I2C */
#define PCI_PRODUCT_INTEL_ADL_N_I2C_5 0x54c6 /* ADL-N I2C */
#define PCI_PRODUCT_INTEL_ADL_N_UART_2 0x54c7 /* ADL-N UART */
#define PCI_PRODUCT_INTEL_ADL_N_HDA 0x54c8 /* ADL-N HD Audio */
#define PCI_PRODUCT_INTEL_ADL_N_THC_0 0x54d0 /* ADL-N THC */
#define PCI_PRODUCT_INTEL_ADL_N_THC_1 0x54d1 /* ADL-N THC */
#define PCI_PRODUCT_INTEL_ADL_N_AHCI 0x54d3 /* ADL-N AHCI */
#define PCI_PRODUCT_INTEL_ADL_N_UART_3 0x54da /* ADL-N UART */
#define PCI_PRODUCT_INTEL_ADL_N_HECI_1 0x54e0 /* ADL-N HECI */
#define PCI_PRODUCT_INTEL_ADL_N_HECI_2 0x54e1 /* ADL-N HECI */
#define PCI_PRODUCT_INTEL_ADL_N_HECI_3 0x54e4 /* ADL-N HECI */
#define PCI_PRODUCT_INTEL_ADL_N_HECI_4 0x54e5 /* ADL-N HECI */
#define PCI_PRODUCT_INTEL_ADL_N_I2C_0 0x54e8 /* ADL-N I2C */
#define PCI_PRODUCT_INTEL_ADL_N_I2C_1 0x54e9 /* ADL-N I2C */
#define PCI_PRODUCT_INTEL_ADL_N_I2C_2 0x54ea /* ADL-N I2C */
#define PCI_PRODUCT_INTEL_ADL_N_I2C_3 0x54eb /* ADL-N I2C */
#define PCI_PRODUCT_INTEL_ADL_N_XHCI 0x54ed /* ADL-N xHCI */
#define PCI_PRODUCT_INTEL_ADL_N_XDCI 0x54ee /* ADL-N xDCI */
#define PCI_PRODUCT_INTEL_ADL_N_SRAM 0x54ef /* ADL-N SRAM */
#define PCI_PRODUCT_INTEL_WL_22500_16 0x54f0 /* Wi-Fi 6 AX211 */
#define PCI_PRODUCT_INTEL_ADL_N_GSPI_2 0x54fb /* ADL-N GSPI */
#define PCI_PRODUCT_INTEL_ADL_N_ISH 0x54fc /* ADL-N ISH */
#define PCI_PRODUCT_INTEL_ADL_N_UFS 0x54ff /* ADL-N UFS */
#define PCI_PRODUCT_INTEL_I225_LMVP 0x5502 /* I225-LMvP */
#define PCI_PRODUCT_INTEL_I226_K 0x5504 /* I226-K */
#define PCI_PRODUCT_INTEL_I219_LM18 0x550a /* I219-LM */

View file

@ -2,7 +2,7 @@
* THIS FILE AUTOMATICALLY GENERATED. DO NOT EDIT.
*
* generated from:
* OpenBSD: pcidevs,v 1.2053 2023/11/14 02:25:48 jsg Exp
* OpenBSD: pcidevs,v 1.2055 2023/11/23 14:21:47 jsg Exp
*/
/* $NetBSD: pcidevs,v 1.30 1997/06/24 06:20:24 thorpej Exp $ */
@ -3247,6 +3247,10 @@ static const struct pci_known_product pci_known_products[] = {
PCI_VENDOR_ATI, PCI_PRODUCT_ATI_CYAN_SKILLFISH_1,
"Cyan Skillfish",
},
{
PCI_VENDOR_ATI, PCI_PRODUCT_ATI_VANGOGH_0932,
"Van Gogh",
},
{
PCI_VENDOR_ATI, PCI_PRODUCT_ATI_CYAN_SKILLFISH_2,
"Cyan Skillfish",
@ -3300,7 +3304,7 @@ static const struct pci_known_product pci_known_products[] = {
"Cezanne",
},
{
PCI_VENDOR_ATI, PCI_PRODUCT_ATI_VANGOGH,
PCI_VENDOR_ATI, PCI_PRODUCT_ATI_VANGOGH_0405,
"Van Gogh",
},
{
@ -19763,6 +19767,10 @@ static const struct pci_known_product pci_known_products[] = {
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_S_HB_6,
"Core 12G Host",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_HB_1,
"ADL-N Host",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_U15_HB_2,
"Core 12G Host",
@ -19771,6 +19779,14 @@ static const struct pci_known_product pci_known_products[] = {
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_U9_HB_3,
"Core 12G Host",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_HB_2,
"N200 Host",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_HB_3,
"N100 Host",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_S_DTT,
"Core 12G DTT",
@ -20939,10 +20955,178 @@ static const struct pci_known_product pci_known_products[] = {
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_PRO_100_SERVER,
"PRO 100 Server",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_ESPI,
"ADL-N eSPI",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_P2SB,
"ADL-N P2SB",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_PMC,
"ADL-N PMC",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_SMB,
"ADL-N SMBus",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_SPI,
"ADL-N SPI",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_TH,
"ADL-N TH",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_UART_0,
"ADL-N UART",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_UART_1,
"ADL-N UART",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_GSPI_0,
"ADL-N GSPI",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_GSPI_1,
"ADL-N GSPI",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_PCIE_9,
"ADL-N PCIE",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_PCIE_10,
"ADL-N PCIE",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_PCIE_11,
"ADL-N PCIE",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_PCIE_12,
"ADL-N PCIE",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_PCIE_1,
"ADL-N PCIE",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_PCIE_2,
"ADL-N PCIE",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_PCIE_3,
"ADL-N PCIE",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_PCIE_4,
"ADL-N PCIE",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_PCIE_7,
"ADL-N PCIE",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_EMMC,
"ADL-N eMMC",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_I2C_4,
"ADL-N I2C",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_I2C_5,
"ADL-N I2C",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_UART_2,
"ADL-N UART",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_HDA,
"ADL-N HD Audio",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_THC_0,
"ADL-N THC",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_THC_1,
"ADL-N THC",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_AHCI,
"ADL-N AHCI",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_UART_3,
"ADL-N UART",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_HECI_1,
"ADL-N HECI",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_HECI_2,
"ADL-N HECI",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_HECI_3,
"ADL-N HECI",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_HECI_4,
"ADL-N HECI",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_I2C_0,
"ADL-N I2C",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_I2C_1,
"ADL-N I2C",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_I2C_2,
"ADL-N I2C",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_I2C_3,
"ADL-N I2C",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_XHCI,
"ADL-N xHCI",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_XDCI,
"ADL-N xDCI",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_SRAM,
"ADL-N SRAM",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_WL_22500_16,
"Wi-Fi 6 AX211",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_GSPI_2,
"ADL-N GSPI",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_ISH,
"ADL-N ISH",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_UFS,
"ADL-N UFS",
},
{
PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_I225_LMVP,
"I225-LMvP",

View file

@ -1,4 +1,4 @@
/* $OpenBSD: wskbd.c,v 1.116 2023/11/22 18:19:25 tobhe Exp $ */
/* $OpenBSD: wskbd.c,v 1.117 2023/11/23 15:02:57 deraadt Exp $ */
/* $NetBSD: wskbd.c,v 1.80 2005/05/04 01:52:16 augustss Exp $ */
/*
@ -94,6 +94,7 @@
#include <sys/errno.h>
#include <sys/fcntl.h>
#include <sys/vnode.h>
#include <sys/task.h>
#include <ddb/db_var.h>
@ -113,7 +114,6 @@
#if NWSDISPLAY > 0
#include <sys/atomic.h>
#include <sys/task.h>
#endif
#ifdef WSKBD_DEBUG

View file

@ -1,4 +1,4 @@
/* $OpenBSD: kern_physio.c,v 1.47 2020/02/20 16:26:01 krw Exp $ */
/* $OpenBSD: kern_physio.c,v 1.48 2023/11/24 00:15:42 asou Exp $ */
/* $NetBSD: kern_physio.c,v 1.28 1997/05/19 10:43:28 pk Exp $ */
/*-
@ -113,8 +113,8 @@ physio(void (*strategy)(struct buf *), dev_t dev, int flags,
/*
* Because iov_len is size_t (unsigned) but b_bcount is
* long (signed), an overflow is possible. Therefore
* limit b_bcount to LONG_MAX before calling the provided
* minphys.
* limit b_bcount to LONG_MAX before calling the
* provided minphys.
*/
if (iovp->iov_len > LONG_MAX)
bp->b_bcount = LONG_MAX;

View file

@ -1,4 +1,4 @@
/* $OpenBSD: if_veb.c,v 1.31 2023/05/16 14:32:54 jan Exp $ */
/* $OpenBSD: if_veb.c,v 1.32 2023/11/23 23:45:10 dlg Exp $ */
/*
* Copyright (c) 2021 David Gwynne <dlg@openbsd.org>
@ -612,6 +612,7 @@ veb_pf(struct ifnet *ifp0, int dir, struct mbuf *m)
{
struct ether_header *eh, copy;
const struct veb_pf_ip_family *fam;
int hlen;
/*
* pf runs on vport interfaces when they enter or leave the
@ -640,11 +641,9 @@ veb_pf(struct ifnet *ifp0, int dir, struct mbuf *m)
copy = *eh;
m_adj(m, sizeof(*eh));
if (dir == PF_IN) {
m = (*fam->ip_check)(ifp0, m);
if (m == NULL)
return (NULL);
}
m = (*fam->ip_check)(ifp0, m);
if (m == NULL)
return (NULL);
if (pf_test(fam->af, dir, ifp0, &m) != PF_PASS) {
m_freem(m);
@ -660,12 +659,14 @@ veb_pf(struct ifnet *ifp0, int dir, struct mbuf *m)
return (NULL);
}
m = m_prepend(m, sizeof(*eh), M_DONTWAIT);
hlen = roundup(sizeof(*eh), sizeof(long));
m = m_prepend(m, hlen, M_DONTWAIT);
if (m == NULL)
return (NULL);
/* checksum? */
m_adj(m, hlen - sizeof(*eh));
eh = mtod(m, struct ether_header *);
*eh = copy;