summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorStefan Sperling <stsp@cvs.openbsd.org>2023-03-06 10:16:18 +0000
committerStefan Sperling <stsp@cvs.openbsd.org>2023-03-06 10:16:18 +0000
commit4f35793dff4e08849383878739aa47e2329dea25 (patch)
tree00f99d61dbed279036eb0fdaaea0a88d256309da /sys
parent0c5cb6a66633f991d1c0d9e1f806f8a2e897c6d6 (diff)
recognize more iwx ucode TLV sections which are present in newer fw images
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/pci/if_iwx.c14
-rw-r--r--sys/dev/pci/if_iwxreg.h7
-rw-r--r--sys/dev/pci/if_iwxvar.h4
3 files changed, 21 insertions, 4 deletions
diff --git a/sys/dev/pci/if_iwx.c b/sys/dev/pci/if_iwx.c
index a91a0d85b38..858367f1613 100644
--- a/sys/dev/pci/if_iwx.c
+++ b/sys/dev/pci/if_iwx.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_iwx.c,v 1.153 2023/02/19 12:23:27 stsp Exp $ */
+/* $OpenBSD: if_iwx.c,v 1.154 2023/03/06 10:16:16 stsp Exp $ */
/*
* Copyright (c) 2014, 2016 genua gmbh <info@genua.de>
@@ -1537,6 +1537,7 @@ iwx_read_firmware(struct iwx_softc *sc)
case IWX_UCODE_TLV_FW_FSEQ_VERSION:
case IWX_UCODE_TLV_PHY_INTEGRATION_VERSION:
case IWX_UCODE_TLV_FW_NUM_STATIONS:
+ case IWX_UCODE_TLV_FW_NUM_BEACONS:
break;
/* undocumented TLVs found in iwx-cc-a0-46 image */
@@ -1556,12 +1557,23 @@ iwx_read_firmware(struct iwx_softc *sc)
case IWX_UCODE_TLV_TYPE_REGIONS:
case IWX_UCODE_TLV_TYPE_TRIGGERS:
case IWX_UCODE_TLV_TYPE_CONF_SET:
+ case IWX_UCODE_TLV_SEC_TABLE_ADDR:
+ case IWX_UCODE_TLV_D3_KEK_KCK_ADDR:
+ case IWX_UCODE_TLV_CURRENT_PC:
break;
/* undocumented TLV found in iwx-cc-a0-67 image */
case 0x100000b:
break;
+ /* undocumented TLV found in iwx-ty-a0-gf-a0-73 image */
+ case 0x101:
+ break;
+
+ /* undocumented TLV found in iwx-ty-a0-gf-a0-77 image */
+ case 0x100000c:
+ break;
+
default:
err = EINVAL;
goto parse_out;
diff --git a/sys/dev/pci/if_iwxreg.h b/sys/dev/pci/if_iwxreg.h
index 3b9cbde8fc5..681d2945bd1 100644
--- a/sys/dev/pci/if_iwxreg.h
+++ b/sys/dev/pci/if_iwxreg.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_iwxreg.h,v 1.41 2023/02/14 12:14:07 stsp Exp $ */
+/* $OpenBSD: if_iwxreg.h,v 1.42 2023/03/06 10:16:16 stsp Exp $ */
/*-
* Based on BSD-licensed source modules in the Linux iwlwifi driver,
@@ -1574,8 +1574,13 @@ struct iwx_ucode_header {
#define IWX_UCODE_TLV_PNVM_VERSION 62
#define IWX_UCODE_TLV_PNVM_SKU 64
+#define IWX_UCODE_TLV_SEC_TABLE_ADDR 66
+#define IWX_UCODE_TLV_D3_KEK_KCK_ADDR 67
+#define IWX_UCODE_TLV_CURRENT_PC 68
+
#define IWX_UCODE_TLV_CONST_BASE 0x100
#define IWX_UCODE_TLV_FW_NUM_STATIONS (IWX_UCODE_TLV_CONST_BASE + 0)
+#define IWX_UCODE_TLV_FW_NUM_BEACONS (IWX_UCODE_TLV_CONST_BASE + 2)
#define IWX_UCODE_TLV_DEBUG_BASE 0x1000005
#define IWX_UCODE_TLV_TYPE_DEBUG_INFO (IWX_UCODE_TLV_DEBUG_BASE + 0)
diff --git a/sys/dev/pci/if_iwxvar.h b/sys/dev/pci/if_iwxvar.h
index 6468bfec46e..13dc72e83b0 100644
--- a/sys/dev/pci/if_iwxvar.h
+++ b/sys/dev/pci/if_iwxvar.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_iwxvar.h,v 1.37 2022/05/14 05:48:44 stsp Exp $ */
+/* $OpenBSD: if_iwxvar.h,v 1.38 2023/03/06 10:16:17 stsp Exp $ */
/*
* Copyright (c) 2014 genua mbh <info@genua.de>
@@ -123,7 +123,7 @@ struct iwx_tx_radiotap_header {
(1 << IEEE80211_RADIOTAP_RATE) | \
(1 << IEEE80211_RADIOTAP_CHANNEL))
-#define IWX_UCODE_SECT_MAX 54
+#define IWX_UCODE_SECT_MAX 57
/*
* fw_status is used to determine if we've already parsed the firmware file