xradio: remove driver and firmware

this module was build only for arm 32bit arch.

Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
This commit is contained in:
Arne Fitzenreiter
2023-02-12 12:09:06 +00:00
committed by Michael Tremer
parent a4a39bb97d
commit 8e28bbc067
9 changed files with 0 additions and 379 deletions

View File

@@ -1,24 +0,0 @@
diff -Naur a/debug.h b/debug.h
--- a/debug.h 2020-05-02 17:17:06.000000000 +0000
+++ b/debug.h 2021-05-26 06:42:41.347972240 +0000
@@ -21,13 +21,13 @@
#define XRADIO_DBG_DEV 0x40 /* current dev */
/* debug levels, default 0x07 */
-#define XRADIO_DBG_LEV_AP 0x47 /* ap */
-#define XRADIO_DBG_LEV_PM 0x47 /* pm */
-#define XRADIO_DBG_LEV_SCAN 0x47 /* scan */
-#define XRADIO_DBG_LEV_STA 0x47 /* sta, keys */
-#define XRADIO_DBG_LEV_TXRX 0x47 /* tx, rx, ht, p2p, queue */
-#define XRADIO_DBG_LEV_WSM 0x47 /* wsm */
-#define XRADIO_DBG_LEV_XR 0x47 /* xradio, fwio, sdio, bh */
+#define XRADIO_DBG_LEV_AP 0x03 /* ap */
+#define XRADIO_DBG_LEV_PM 0x03 /* pm */
+#define XRADIO_DBG_LEV_SCAN 0x03 /* scan */
+#define XRADIO_DBG_LEV_STA 0x03 /* sta, keys */
+#define XRADIO_DBG_LEV_TXRX 0x03 /* tx, rx, ht, p2p, queue */
+#define XRADIO_DBG_LEV_WSM 0x03 /* wsm */
+#define XRADIO_DBG_LEV_XR 0x03 /* xradio, fwio, sdio, bh */
#define ap_printk(level, ...) \
do { \

View File

@@ -1,41 +0,0 @@
diff -Naur xradio-354e8c32e7948d46a63796d0ca266b1f702999b0.org/main.c xradio-354e8c32e7948d46a63796d0ca266b1f702999b0/main.c
--- xradio-354e8c32e7948d46a63796d0ca266b1f702999b0.org/main.c 2020-05-02 17:17:06.000000000 +0000
+++ xradio-354e8c32e7948d46a63796d0ca266b1f702999b0/main.c 2021-11-07 10:30:26.153851399 +0000
@@ -12,7 +12,7 @@
#include <linux/firmware.h>
#include <net/cfg80211.h>
-#include <linux/of_net.h>
+#include <linux/etherdevice.h>
#include <linux/mmc/sdio_func.h>
#include "xradio.h"
@@ -501,9 +501,8 @@
u8 b; /* MRK 5.5a */
struct ieee80211_hw *dev;
struct xradio_common *hw_priv;
- unsigned char randomaddr[ETH_ALEN];
- const unsigned char *addr = NULL;
-
+ unsigned char addr[ETH_ALEN];
+ int ret;
//init xradio_common
dev = xradio_init_common(sizeof(struct xradio_common));
if (!dev) {
@@ -517,12 +516,12 @@
// fill in mac addresses
if (hw_priv->pdev->of_node) {
- addr = of_get_mac_address(hw_priv->pdev->of_node);
+ ret = eth_platform_get_mac_address(hw_priv->pdev, addr);
}
- if (!addr) {
+
+ if (ret<0) {
dev_warn(hw_priv->pdev, "no mac address provided, using random\n");
- eth_random_addr(randomaddr);
- addr = randomaddr;
+ eth_random_addr(addr);
}
for (b = 0; b < XRWL_MAX_VIFS; b++) { /* MRK 5.5a */
memcpy(hw_priv->addresses[b].addr, addr, ETH_ALEN);

View File

@@ -1,76 +0,0 @@
From 70307b17ea3bd388d608bf77d0d0dd2058d05d3f Mon Sep 17 00:00:00 2001
From: Arne Fitzenreiter <arne_f@ipfire.org>
Date: Wed, 7 Mar 2018 23:23:39 +0100
Subject: [PATCH 116/144] xradio: fix missing wpa1/2 sequence numbers for group
rekeying
Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
---
drivers/net/wireless/xradio/keys.c | 26 ++++++++++++++++++++++----
1 file changed, 22 insertions(+), 4 deletions(-)
diff --git a/keys.c b/keys.c
index 20050e1e75c2..1d95410932e1 100644
--- a/keys.c
+++ b/keys.c
@@ -56,6 +56,7 @@ int xradio_set_key(struct ieee80211_hw *dev, enum set_key_cmd cmd,
int ret = -EOPNOTSUPP;
struct xradio_common *hw_priv = dev->priv;
struct xradio_vif *priv = xrwl_get_vif_from_ieee80211(vif);
+ struct ieee80211_key_seq seq;
wiphy_dbg(dev->wiphy, "vif %d: set_key cmd %d\n", priv->if_id, (int) cmd);
@@ -103,6 +104,7 @@ int xradio_set_key(struct ieee80211_hw *dev, enum set_key_cmd cmd,
}
break;
case WLAN_CIPHER_SUITE_TKIP:
+ ieee80211_get_key_rx_seq(key, 0, &seq);
if (pairwise) {
wsm_key->type = WSM_KEY_TYPE_TKIP_PAIRWISE;
memcpy(wsm_key->tkipPairwiseKey.peerAddress, peer_addr, ETH_ALEN);
@@ -115,12 +117,20 @@ int xradio_set_key(struct ieee80211_hw *dev, enum set_key_cmd cmd,
memcpy(wsm_key->tkipGroupKey.tkipKeyData,&key->key[0], 16);
memcpy(wsm_key->tkipGroupKey.rxMicKey, &key->key[mic_offset], 8);
- /* TODO: Where can I find TKIP SEQ? */
- memset(wsm_key->tkipGroupKey.rxSeqCounter, 0, 8);
+ wsm_key->tkipGroupKey.rxSeqCounter[0] = seq.tkip.iv16 & 0xff;
+ wsm_key->tkipGroupKey.rxSeqCounter[1] = (seq.tkip.iv16>>8) & 0xff;
+ wsm_key->tkipGroupKey.rxSeqCounter[2] = seq.tkip.iv32 & 0xff;
+ wsm_key->tkipGroupKey.rxSeqCounter[3] = (seq.tkip.iv32>> 8) & 0xff;
+ wsm_key->tkipGroupKey.rxSeqCounter[4] = (seq.tkip.iv32>>16) & 0xff;
+ wsm_key->tkipGroupKey.rxSeqCounter[5] = (seq.tkip.iv32>>24) & 0xff;
+ wsm_key->tkipGroupKey.rxSeqCounter[6] = 0;
+ wsm_key->tkipGroupKey.rxSeqCounter[7] = 0;
+
wsm_key->tkipGroupKey.keyId = key->keyidx;
}
break;
case WLAN_CIPHER_SUITE_CCMP:
+ ieee80211_get_key_rx_seq(key, 0, &seq);
if (pairwise) {
wsm_key->type = WSM_KEY_TYPE_AES_PAIRWISE;
memcpy(wsm_key->aesPairwiseKey.peerAddress, peer_addr, ETH_ALEN);
@@ -130,8 +140,16 @@ int xradio_set_key(struct ieee80211_hw *dev, enum set_key_cmd cmd,
} else {
wsm_key->type = WSM_KEY_TYPE_AES_GROUP;
memcpy(wsm_key->aesGroupKey.aesKeyData, &key->key[0], 16);
- /* TODO: Where can I find AES SEQ? */
- memset(wsm_key->aesGroupKey.rxSeqCounter, 0, 8);
+
+ wsm_key->aesGroupKey.rxSeqCounter[0] = seq.ccmp.pn[5];
+ wsm_key->aesGroupKey.rxSeqCounter[1] = seq.ccmp.pn[4];
+ wsm_key->aesGroupKey.rxSeqCounter[2] = seq.ccmp.pn[3];
+ wsm_key->aesGroupKey.rxSeqCounter[3] = seq.ccmp.pn[2];
+ wsm_key->aesGroupKey.rxSeqCounter[4] = seq.ccmp.pn[1];
+ wsm_key->aesGroupKey.rxSeqCounter[5] = seq.ccmp.pn[0];
+ wsm_key->aesGroupKey.rxSeqCounter[6] = 0;
+ wsm_key->aesGroupKey.rxSeqCounter[7] = 0;
+
wsm_key->aesGroupKey.keyId = key->keyidx;
}
break;
--
2.31.0

View File

@@ -1,17 +0,0 @@
diff -Naur a/tx.c b/tx.c
--- a/tx.c 2020-05-02 19:17:06.000000000 +0200
+++ b/tx.c 2021-05-26 12:33:36.117730336 +0200
@@ -707,8 +707,11 @@
memmove(p, &p[offset], t->skb->len - offset);
skb_trim(t->skb, t->skb->len - offset);
}
- /* ccmp pkt from umac to driver,it has iv room,,so ccmp pkt do not add iv room */
- if (t->tx_info->control.hw_key->cipher != WLAN_CIPHER_SUITE_CCMP){
+
+ /* ccmp/tkip pkt from umac to driver,it has iv room,,so ccmp/tkip pkt do not add iv room */
+ if ( (t->tx_info->control.hw_key->cipher != WLAN_CIPHER_SUITE_CCMP) &&
+ (t->tx_info->control.hw_key->cipher != WLAN_CIPHER_SUITE_TKIP) )
+ {
u8 *newhdr;
newhdr = skb_push(t->skb, iv_len);
memmove(newhdr, newhdr + iv_len, t->hdrlen);

View File

@@ -1,41 +0,0 @@
From dd2f835ae8a634794c4bf6b7fce1f778ae925e25 Mon Sep 17 00:00:00 2001
From: Arne Fitzenreiter <arne_f@ipfire.org>
Date: Sun, 18 Mar 2018 10:55:00 +0100
Subject: [PATCH 120/144] xradio: report mic fails to kernel and correct iv
stripping.
Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
---
drivers/net/wireless/xradio/rx.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/rx.c b/rx.c
index 271632c96baa..5a2466edf534 100644
--- a/rx.c
+++ b/rx.c
@@ -269,7 +269,8 @@ void xradio_rx_cb(struct xradio_vif *priv,
/* Firmware strips ICV in case of MIC failure. */
if (arg->status == WSM_STATUS_MICFAILURE) {
icv_len = 0;
- hdr->flag |= RX_FLAG_IV_STRIPPED;
+ hdr->flag |= RX_FLAG_IV_STRIPPED |
+ RX_FLAG_MMIC_ERROR;
}
if (skb->len < hdrlen + iv_len + icv_len) {
@@ -285,10 +286,8 @@ void xradio_rx_cb(struct xradio_vif *priv,
skb->data + skb->len-icv_len+8, 4);
skb_trim(skb, skb->len - 8);
hdr->flag |= RX_FLAG_MMIC_STRIPPED;
- } else if (unlikely(WSM_RX_STATUS_ENCRYPTION(arg->flags) ==
- WSM_RX_STATUS_WAPI)) {
- /* Protocols not defined in mac80211 should be
- stripped/crypted in driver/firmware */
+ }
+ if (hdr->flag & RX_FLAG_IV_STRIPPED) {
/* Remove IV, ICV and MIC */
skb_trim(skb, skb->len - icv_len);
memmove(skb->data + iv_len, skb->data, hdrlen);
--
2.31.0