diff --git a/feed/atenl/files/iwpriv.sh b/feed/atenl/files/iwpriv.sh
index 7046d71..183b079 100755
--- a/feed/atenl/files/iwpriv.sh
+++ b/feed/atenl/files/iwpriv.sh
@@ -803,6 +803,9 @@
             new_cmd="stop_sounding"
             new_param="0"
             ;;
+        "TxBfTxCmd")
+            new_cmd="txcmd"
+            ;;
         "ATEConTxETxBfGdProc")
             local tx_rate_mode=$(convert_tx_mode ${new_param:0:2})
             local tx_rate_idx=${new_param:3:2}
@@ -830,10 +833,10 @@
             local tx_rate_nss=${new_param:9:2}
             local tx_stream=${new_param:12:2}
             local tx_power=${new_param:15:2}
-            local channel=${new_param:18:3}
+            local channel=$(echo ${new_param:18:3} | sed 's/^0//')
             local channel2=${new_param:22:3}
             local band=${new_param:26:1}
-            local tx_length=${new_param:28:5}
+            local tx_length=$(echo ${new_param:28:5} | sed 's/^0//')
 
             new_cmd="ebf_init"
             do_ate_work "ATESTART"
@@ -1249,7 +1252,7 @@
             ;;
         "ATETxBfInit"|"ATETxBfGdInit"|"ATEIBFPhaseComp"|"ATEEBfProfileConfig"|"ATEIBfProfileConfig"| \
         "TxBfTxApply"|"ATETxPacketWithBf"|"TxBfProfileData20MAllWrite"|"ATEIBfInstCal"| \
-        "ATEIBfGdCal"|"ATEIBFPhaseE2pUpdate"|"TriggerSounding"|"StopSounding"| \
+        "ATEIBfGdCal"|"ATEIBFPhaseE2pUpdate"|"TriggerSounding"|"StopSounding"|"TxBfTxCmd"| \
         "StaRecBfRead"|"TxBfProfileTagInValid"|"TxBfProfileTagWrite"|"TxBfProfileTagRead"| \
         "ATEIBFPhaseVerify"|"ATEConTxETxBfGdProc"|"ATEConTxETxBfInitProc")
             convert_ibf ${cmd} ${param}
diff --git a/feed/atenl/src/atenl.h b/feed/atenl/src/atenl.h
index 9f8b796..1286c55 100644
--- a/feed/atenl/src/atenl.h
+++ b/feed/atenl/src/atenl.h
@@ -233,6 +233,9 @@
 	ATENL_PHY_TYPE_HE_EXT_SU,
 	ATENL_PHY_TYPE_HE_TB,
 	ATENL_PHY_TYPE_HE_MU,
+	ATENL_PHY_TYPE_EHT_SU = 13,
+	ATENL_PHY_TYPE_EHT_TRIG,
+	ATENL_PHY_TYPE_EHT_MU,
 };
 
 enum atenl_e2p_mode {
@@ -306,8 +309,9 @@
 	TEST_CBW_5MHZ,
 	TEST_CBW_160MHZ,
 	TEST_CBW_8080MHZ,
+	TEST_CBW_320MHZ = 12,
 
-	TEST_CBW_MAX = TEST_CBW_8080MHZ - 1,
+	TEST_CBW_MAX = TEST_CBW_320MHZ,
 };
 
 struct atenl_rx_info_hdr {
diff --git a/feed/atenl/src/eeprom.c b/feed/atenl/src/eeprom.c
index f63bc9e..0182187 100644
--- a/feed/atenl/src/eeprom.c
+++ b/feed/atenl/src/eeprom.c
@@ -329,6 +329,9 @@
 	if (get_band_val(an, 1, valid))
 		set_band_val(an, 1, phy_idx, phy_idx + 1);
 
+	if (get_band_val(an, 2, valid))
+		set_band_val(an, 2, phy_idx, phy_idx + 2);
+
 	return 0;
 }
 
diff --git a/feed/atenl/src/hqa.c b/feed/atenl/src/hqa.c
index eabfce5..2f25043 100644
--- a/feed/atenl/src/hqa.c
+++ b/feed/atenl/src/hqa.c
@@ -16,6 +16,8 @@
 	/* center ch */
 	u16 ch_80;
 	u16 ch_160;
+	u16 ch_320_1;
+	u16 ch_320_2;
 	/* only use for channels that don't have 80 but has 40 */
 	u16 ch_40;
 };
@@ -72,65 +74,65 @@
 
 static const struct atenl_channel atenl_channels_6ghz[] = {
 	/* UNII-5 */
-	CHAN(1, 5955, 7, 15),
-	CHAN(5, 5975, 7, 15),
-	CHAN(9, 5995, 7, 15),
-	CHAN(13, 6015, 7, 15),
-	CHAN(17, 6035, 23, 15),
-	CHAN(21, 6055, 23, 15),
-	CHAN(25, 6075, 23, 15),
-	CHAN(29, 6095, 23, 15),
-	CHAN(33, 6115, 39, 47),
-	CHAN(37, 6135, 39, 47),
-	CHAN(41, 6155, 39, 47),
-	CHAN(45, 6175, 39, 47),
-	CHAN(49, 6195, 55, 47),
-	CHAN(53, 6215, 55, 47),
-	CHAN(57, 6235, 55, 47),
-	CHAN(61, 6255, 55, 47),
-	CHAN(65, 6275, 71, 79),
-	CHAN(69, 6295, 71, 79),
-	CHAN(73, 6315, 71, 79),
-	CHAN(77, 6335, 71, 79),
-	CHAN(81, 6355, 87, 79),
-	CHAN(85, 6375, 87, 79),
-	CHAN(89, 6395, 87, 79),
-	CHAN(93, 6415, 87, 79),
+	CHAN(1, 5955, 7, 15, .ch_320_1 = 31),
+	CHAN(5, 5975, 7, 15, .ch_320_1 = 31),
+	CHAN(9, 5995, 7, 15, .ch_320_1 = 31),
+	CHAN(13, 6015, 7, 15, .ch_320_1 = 31),
+	CHAN(17, 6035, 23, 15, .ch_320_1 = 31),
+	CHAN(21, 6055, 23, 15, .ch_320_1 = 31),
+	CHAN(25, 6075, 23, 15, .ch_320_1 = 31),
+	CHAN(29, 6095, 23, 15, .ch_320_1 = 31),
+	CHAN(33, 6115, 39, 47, .ch_320_1 = 31, .ch_320_2 = 63),
+	CHAN(37, 6135, 39, 47, .ch_320_1 = 31, .ch_320_2 = 63),
+	CHAN(41, 6155, 39, 47, .ch_320_1 = 31, .ch_320_2 = 63),
+	CHAN(45, 6175, 39, 47, .ch_320_1 = 31, .ch_320_2 = 63),
+	CHAN(49, 6195, 55, 47, .ch_320_1 = 31, .ch_320_2 = 63),
+	CHAN(53, 6215, 55, 47, .ch_320_1 = 31, .ch_320_2 = 63),
+	CHAN(57, 6235, 55, 47, .ch_320_1 = 31, .ch_320_2 = 63),
+	CHAN(61, 6255, 55, 47, .ch_320_1 = 31, .ch_320_2 = 63),
+	CHAN(65, 6275, 71, 79, .ch_320_1 = 95, .ch_320_2 = 63),
+	CHAN(69, 6295, 71, 79, .ch_320_1 = 95, .ch_320_2 = 63),
+	CHAN(73, 6315, 71, 79, .ch_320_1 = 95, .ch_320_2 = 63),
+	CHAN(77, 6335, 71, 79, .ch_320_1 = 95, .ch_320_2 = 63),
+	CHAN(81, 6355, 87, 79, .ch_320_1 = 95, .ch_320_2 = 63),
+	CHAN(85, 6375, 87, 79, .ch_320_1 = 95, .ch_320_2 = 63),
+	CHAN(89, 6395, 87, 79, .ch_320_1 = 95, .ch_320_2 = 63),
+	CHAN(93, 6415, 87, 79, .ch_320_1 = 95, .ch_320_2 = 63),
 	/* UNII-6 */
-	CHAN(97, 6435, 103, 111),
-	CHAN(101, 6455, 103, 111),
-	CHAN(105, 6475, 103, 111),
-	CHAN(109, 6495, 103, 111),
-	CHAN(113, 6515, 119, 111),
-	CHAN(117, 6535, 119, 111),
+	CHAN(97, 6435, 103, 111, .ch_320_1 = 95, .ch_320_2 = 127),
+	CHAN(101, 6455, 103, 111, .ch_320_1 = 95, .ch_320_2 = 127),
+	CHAN(105, 6475, 103, 111, .ch_320_1 = 95, .ch_320_2 = 127),
+	CHAN(109, 6495, 103, 111, .ch_320_1 = 95, .ch_320_2 = 127),
+	CHAN(113, 6515, 119, 111, .ch_320_1 = 95, .ch_320_2 = 127),
+	CHAN(117, 6535, 119, 111, .ch_320_1 = 95, .ch_320_2 = 127),
 	/* UNII-7 */
-	CHAN(121, 6555, 119, 111),
-	CHAN(125, 6575, 119, 111),
-	CHAN(129, 6595, 135, 143),
-	CHAN(133, 6615, 135, 143),
-	CHAN(137, 6635, 135, 143),
-	CHAN(141, 6655, 135, 143),
-	CHAN(145, 6675, 151, 143),
-	CHAN(149, 6695, 151, 143),
-	CHAN(153, 6715, 151, 143),
-	CHAN(157, 6735, 151, 143),
-	CHAN(161, 6755, 167, 175),
-	CHAN(165, 6775, 167, 175),
-	CHAN(169, 6795, 167, 175),
-	CHAN(173, 6815, 167, 175),
-	CHAN(177, 6835, 183, 175),
-	CHAN(181, 6855, 183, 175),
-	CHAN(185, 6875, 183, 175),
+	CHAN(121, 6555, 119, 111, .ch_320_1 = 95, .ch_320_2 = 127),
+	CHAN(125, 6575, 119, 111, .ch_320_1 = 95, .ch_320_2 = 127),
+	CHAN(129, 6595, 135, 143, .ch_320_1 = 159, .ch_320_2 = 127),
+	CHAN(133, 6615, 135, 143, .ch_320_1 = 159, .ch_320_2 = 127),
+	CHAN(137, 6635, 135, 143, .ch_320_1 = 159, .ch_320_2 = 127),
+	CHAN(141, 6655, 135, 143, .ch_320_1 = 159, .ch_320_2 = 127),
+	CHAN(145, 6675, 151, 143, .ch_320_1 = 159, .ch_320_2 = 127),
+	CHAN(149, 6695, 151, 143, .ch_320_1 = 159, .ch_320_2 = 127),
+	CHAN(153, 6715, 151, 143, .ch_320_1 = 159, .ch_320_2 = 127),
+	CHAN(157, 6735, 151, 143, .ch_320_1 = 159, .ch_320_2 = 127),
+	CHAN(161, 6755, 167, 175, .ch_320_1 = 159, .ch_320_2 = 191),
+	CHAN(165, 6775, 167, 175, .ch_320_1 = 159, .ch_320_2 = 191),
+	CHAN(169, 6795, 167, 175, .ch_320_1 = 159, .ch_320_2 = 191),
+	CHAN(173, 6815, 167, 175, .ch_320_1 = 159, .ch_320_2 = 191),
+	CHAN(177, 6835, 183, 175, .ch_320_1 = 159, .ch_320_2 = 191),
+	CHAN(181, 6855, 183, 175, .ch_320_1 = 159, .ch_320_2 = 191),
+	CHAN(185, 6875, 183, 175, .ch_320_1 = 159, .ch_320_2 = 191),
 	/* UNII-8 */
-	CHAN(189, 6895, 183, 175),
-	CHAN(193, 6915, 199, 207),
-	CHAN(197, 6935, 199, 207),
-	CHAN(201, 6955, 199, 207),
-	CHAN(205, 6975, 199, 207),
-	CHAN(209, 6995, 215, 207),
-	CHAN(213, 7015, 215, 207),
-	CHAN(217, 7035, 215, 207),
-	CHAN(221, 7055, 215, 207),
+	CHAN(189, 6895, 183, 175, .ch_320_1 = 159, .ch_320_2 = 191),
+	CHAN(193, 6915, 199, 207, .ch_320_2 = 191),
+	CHAN(197, 6935, 199, 207, .ch_320_2 = 191),
+	CHAN(201, 6955, 199, 207, .ch_320_2 = 191),
+	CHAN(205, 6975, 199, 207, .ch_320_2 = 191),
+	CHAN(209, 6995, 215, 207, .ch_320_2 = 191),
+	CHAN(213, 7015, 215, 207, .ch_320_2 = 191),
+	CHAN(217, 7035, 215, 207, .ch_320_2 = 191),
+	CHAN(221, 7055, 215, 207, .ch_320_2 = 191),
 	CHAN(225, 7075, 0, 0, .ch_40 = 227),
 	CHAN(229, 7095, 0, 0, .ch_40 = 227),
 	CHAN(233, 7115, 0, 0),
@@ -158,7 +160,6 @@
 			/* set a special-defined country */
 			sprintf(cmd, "iw reg set VV");
 			system(cmd);
-			atenl_nl_set_state(an, i, MT76_TM_STATE_IDLE);
 		} else {
 			atenl_nl_set_state(an, i, MT76_TM_STATE_OFF);
 			sprintf(cmd, "iw reg set 00");
@@ -170,6 +171,9 @@
 		}
 	}
 
+	for (i = 0; i < MAX_BAND_NUM; i++)
+		atenl_nl_set_state(an, i, MT76_TM_STATE_IDLE);
+
 	return 0;
 }
 
@@ -566,6 +570,9 @@
 static void atenl_get_bw_string(u8 bw, char *buf)
 {
 	switch (bw) {
+	case TEST_CBW_320MHZ:
+		sprintf(buf, "320");
+		break;
 	case TEST_CBW_160MHZ:
 		sprintf(buf, "160");
 		break;
@@ -627,7 +634,8 @@
 	if (band >= MAX_BAND_NUM)
 		return -EINVAL;
 
-	if ((bw == TEST_CBW_160MHZ && pri_sel > 7) ||
+	if ((bw == TEST_CBW_320MHZ && pri_sel > 15) ||
+	    (bw == TEST_CBW_160MHZ && pri_sel > 7) ||
 	    (bw == TEST_CBW_80MHZ && pri_sel > 3) ||
 	    (bw == TEST_CBW_40MHZ && pri_sel > 1)) {
 		atenl_err("%s: ctrl channel select error\n", __func__);
@@ -664,7 +672,17 @@
 			ch_num = ARRAY_SIZE(atenl_channels_5ghz);
 		}
 
-		if (bw == TEST_CBW_160MHZ) {
+		if (bw == TEST_CBW_320MHZ) {
+			for (i = 0; i < ch_num; i++) {
+				if (ch1 == ch_list[i].ch_320_1) {
+					chan = &ch_list[i];
+					break;
+				} else if (ch1 == ch_list[i].ch_320_2) {
+					chan = &ch_list[i];
+					break;
+				}
+			}
+		} else if (bw == TEST_CBW_160MHZ) {
 			for (i = 0; i < ch_num; i++) {
 				if (ch1 == ch_list[i].ch_160) {
 					chan = &ch_list[i];
diff --git a/feed/atenl/src/nl.c b/feed/atenl/src/nl.c
index a8e2ea9..def663f 100644
--- a/feed/atenl/src/nl.c
+++ b/feed/atenl/src/nl.c
@@ -101,6 +101,9 @@
 		[ATENL_PHY_TYPE_HE_EXT_SU] = MT76_TM_TX_MODE_HE_EXT_SU,
 		[ATENL_PHY_TYPE_HE_TB] = MT76_TM_TX_MODE_HE_TB,
 		[ATENL_PHY_TYPE_HE_MU] = MT76_TM_TX_MODE_HE_MU,
+		[ATENL_PHY_TYPE_EHT_SU] = MT76_TM_TX_MODE_EHT_SU,
+		[ATENL_PHY_TYPE_EHT_TRIG] = MT76_TM_TX_MODE_EHT_TRIG,
+		[ATENL_PHY_TYPE_EHT_MU] = MT76_TM_TX_MODE_EHT_MU,
 	};
 
 	if (phy_type >= ARRAY_SIZE(phy_type_to_attr))
@@ -287,7 +290,7 @@
 		if (get_band_val(an, band, use_tx_time))
 			nla_put_u32(msg, MT76_TM_ATTR_TX_TIME,
 				    get_band_val(an, band, tx_time));
-		else
+		else if (get_band_val(an, band, tx_mpdu_len))
 			nla_put_u32(msg, MT76_TM_ATTR_TX_LENGTH,
 				    get_band_val(an, band, tx_mpdu_len));
 
@@ -304,7 +307,7 @@
 			atenl_set_attr_antenna(an, msg, tx_antenna);
 		}
 
-		if (tx_rate_mode >= MT76_TM_TX_MODE_HE_SU) {
+		if (!is_mt7996(an) && tx_rate_mode >= MT76_TM_TX_MODE_HE_SU) {
 			u8 ofs = sgi;
 			size_t i;
 
@@ -364,7 +367,14 @@
 		v = (u32 *)(hdr->data + 18);
 
 		atenl_set_attr_antenna(an, msg, ntohl(v[0]));
-		nla_put_u8(msg, MT76_TM_ATTR_AID, ntohl(v[1]));
+		if (is_mt7996(an)) {
+			nla_put_u8(msg, MT76_TM_ATTR_TX_RATE_MODE,
+				   phy_type_to_attr(ntohl(v[2])));
+			nla_put_u8(msg, MT76_TM_ATTR_TX_RATE_SGI, ntohl(v[3]));
+			nla_put_u8(msg, MT76_TM_ATTR_AID, ntohl(v[4]));
+		} else {
+			nla_put_u8(msg, MT76_TM_ATTR_AID, ntohl(v[1]));
+		}
 		atenl_set_attr_state(an, msg, band, MT76_TM_STATE_RX_FRAMES);
 
 		anb->reset_rx_cnt = false;
@@ -901,7 +911,10 @@
 	case TXBF_ACT_TX_PKT:
 		nla_put_u8(msg, MT76_TM_ATTR_AID, val[1]);
 		nla_put_u8(msg, MT76_TM_ATTR_TXBF_ACT, MT76_TM_TXBF_ACT_TX_PREP);
-		nla_put_u32(msg, MT76_TM_ATTR_TX_COUNT, 10000000);
+		if (!val[2])
+			nla_put_u32(msg, MT76_TM_ATTR_TX_COUNT, 0xFFFFFFFF);
+		else
+			nla_put_u32(msg, MT76_TM_ATTR_TX_COUNT, val[2]);
 		nla_put_u32(msg, MT76_TM_ATTR_TX_LENGTH, 1024);
 		a = nla_nest_start(msg, MT76_TM_ATTR_TXBF_PARAM);
 		if (!a)
diff --git a/feed/atenl/src/nl.h b/feed/atenl/src/nl.h
index b76abfe..bfd8fb8 100644
--- a/feed/atenl/src/nl.h
+++ b/feed/atenl/src/nl.h
@@ -241,6 +241,9 @@
 	MT76_TM_TX_MODE_HE_EXT_SU,
 	MT76_TM_TX_MODE_HE_TB,
 	MT76_TM_TX_MODE_HE_MU,
+	MT76_TM_TX_MODE_EHT_SU,
+	MT76_TM_TX_MODE_EHT_TRIG,
+	MT76_TM_TX_MODE_EHT_MU,
 
 	/* keep last */
 	NUM_MT76_TM_TX_MODES,
