I am not getting the throughput I am expecting with the quectel fgh100m-h.
My questions are:
is the throughput I am seeing expected for a SPI clk at 40MHz ?
What should I check to make sure I have the module configured correctly?
what I have done so far:
I initially had the spi clock at 25MHz and was seeing throughputs of 8mbps. so almost doubling the spi clock to 40mhz I would have expected an almost double of throughput, but only saw a 25% increase.
I also tested with tx rate fixed and saw no improvement.
these are the morse kernel module params I am using:
boot.kernelModules = lib.mkAfter [ "morse" "dot11ah" ];
boot.extraModprobeConfig = ''
options morse country=US spi_clock_speed=40000000 test_mode=6
'';
here is the derivation I am using to compile the morse driver modules:
relevant part should just the makeFlags.
drv = stdenv.mkDerivation rec {
pname = "morse_driver";
inherit version;
outputs = [ "out" "modules" ];
# 6d1b281ae79ff51b6e03b0f34f95f4f7c701aac3 version 1.15.3
# 33f0092d5c859d8589b99c6e9a77abc58c093648 version 1.14.1
# sha256-sha256-VNw5OdxkP8GltYU2kDYdBUGKWIlPhr3tkzqtW+3MigE=
src = fetchFromGitHub {
owner = "MorseMicro";
repo = "morse_driver";
rev = "6d1b281ae79ff51b6e03b0f34f95f4f7c701aac3";
sha256 = "sha256-dKs4CRpzJxzUVls1ovqgm9oBEwQxTS1vLz5x2xpbiSw=";
fetchSubmodules = true;
};
nativeBuildInputs = [ gnumake ];
buildInputs = [ kernel.dev ];
# Disable -Werror to ignore type mismatch warning
postPatch = ''
substituteInPlace Makefile \
--replace "-Werror" ""
'';
makeFlags = [
"V=1"
"KBUILD_VERBOSE=1"
"quiet=" # Disable quiet mode
"Q=" # Disable @ prefix
"MORSE_TRACE_PATH=."
"ARCH=arm64"
"KERNEL_SRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
"CONFIG_WLAN_VENDOR_MORSE=m"
"CONFIG_MORSE_SPI=y"
"CONFIG_MORSE_USER_ACCESS=y"
"CONFIG_MORSE_VENDOR_COMMAND=y"
"CONFIG_MORSE_MONITOR=y"
"CONFIG_MORSE_ENABLE_TEST_MODES=y"
"CONFIG_ANDROID=n"
] ++ lib.optionals shouldCross [
# nix-repl> outputs.legacyPackages.aarch64-linux.stdenv.hostPlatform.config
# "aarch64-unknown-linux-gnu"
"CROSS_COMPILE=${stdenv.hostPlatform.config}-"
];
installPhase = ''
# Install kernel modules into the "modules" output
mkdir -p "$modules/lib/modules/${kernel.modDirVersion}/extra"
cp morse.ko "$modules/lib/modules/${kernel.modDirVersion}/extra/"
cp dot11ah/dot11ah.ko "$modules/lib/modules/${kernel.modDirVersion}/extra/"
mkdir -p "$out"
echo "morse_driver ${version}" > $out/README
'';
};
my morse fw blobs are here:
let
inherit version;
fw_bins = fetchurl {
# url = "https://github.com/MorseMicro/firmware_binaries/releases/download/v${version}/morsemicro-fw-rel_1_14_1_2024_Dec_05.tar";
url = "https://github.com/MorseMicro/firmware_binaries/releases/download/v1.15.3/morsemicro-fw-rel_1_15_3_2025_Apr_16.tar";
# hash = "sha256-VufNPsal8TIbm+PTVRyWW3di1PGA+kFaOKNl3bL0PNE=";
hash = "sha256-3n4+nxt7l6/51jaHxNPpn+JUT8/H5VZ98asNoZRlZGk=";
};
quectel_bcf = fetchFromGitHub {
owner = "MorseMicro";
repo = "morse-firmware";
# v14.1
# rev = "b5f4c765eb90524e8b1d378ac9ef155a54f73ffa";
# sha256 = "sha256-LZj7pPKtEt27470JVN/dG4bKBkuw8yLqcGs8DemzrR8=";
# v15.3
rev = "b5a18499b605cfb3e783eccbb64a210d88d1ee69";
sha256 = "sha256-m1Z40oIAj1IKW5KhCYVRBqtqBiWdEkVrmpyHzkOe+po=";
};
in
stdenv.mkDerivation {
pname = "morse_fw_blobs";
inherit version mm_module;
unpackPhase = "true";
patchPhase = "true";
configurePhase = "true";
buildPhase = "true";
checkPhase = "true";
installPhase = ''
mkdir -p $out/lib/firmware/morse
tar -xf ${fw_bins} -C $out/lib/firmware/morse --strip-components=3 --wildcards '*/${mm_module}.bin'
cp ${quectel_bcf}/bcf/quectel/bcf_fgh100mhaamd.bin $out/lib/firmware/morse/bcf_quectel_fgh100mhaamd.bin
'';
}
and the wpa_supplicant I use has the following config:
stdenv.mkDerivation rec {
pname = "wpa_supplicant_s1g";
inherit version;
src = fetchFromGitHub {
owner = "MorseMicro";
repo = "hostap";
# v14.1
# rev = "415d1757c25357e0d5423fe5f025e4384be7cb1b";
# sha256 = "sha256-NusuRWG99v6AJUOpfsKY7xFSikfrt8ke8eSmH/eQ0sI=";
# v15.3
rev = "e8b2e339ac11fdf8861930f2a7b0f1f67d9a82f2";
sha256 = "sha256-IOJore8wkMGcNFZ+87QuEZLJOmf2yo33jE2zhKTCaKE=";
};
nativeBuildInputs = [ gnumake pkg-config ];
buildInputs = [ openssl libnl ];
preBuild = ''
cd wpa_supplicant
cat > .config <<EOF
CONFIG_DRIVER_NL80211=y
CONFIG_CTRL_IFACE=y
CONFIG_SME=y
CONFIG_AP=y
CONFIG_P2P=y
CONFIG_IEEE80211AH=y
CONFIG_SAE=y
EOF
'';
installPhase = ''
mkdir -p "$(dirname "$out/wpa_supplicant_s1g")"
cp wpa_supplicant_s1g $out/wpa_supplicant_s1g
mkdir -p "$(dirname "$out/wpa_supplicant_s1g.conf")"
cp ${./wpa_supplicant_s1g.conf} $out/wpa_supplicant_s1g.conf
'';
}
I ran the spi test mode as suggested here: what-is-maximum-speed-of-mm6108
[ 22.402469] Morse Micro Dot11ah driver registration. Version 0-rel_1_15_3_2025_Apr_16
[ 22.416465] morse micro driver registration. Version 0-rel_1_15_3_2025_Apr_16
[ 22.416717] morse_spi spi0.0: morse_of_probe: Reading gpio pins configuration from device tree
[ 22.416789] uaccess char driver major number is 234
[ 22.416930] morse_io: Device node '/dev/morse_io' created successfully
[ 22.425562] morse_spi spi0.0: Loaded firmware from mm6108.bin, size 444304, crc32 0x1c6a0f92
[ 22.426193] morse_spi spi0.0: Loaded BCF from bcf_default.bin, size 1251, crc32 0x941b2a82
[ 22.836275] morse_spi spi0.0: Bus IO write estimator
[ 22.836289] morse_spi spi0.0: packet size (bytes): 1460
[ 22.836296] morse_spi spi0.0: overhead (bytes): 102
[ 22.836301] morse_spi spi0.0: padding (bytes): 2
[ 22.836307] morse_spi spi0.0: batch(es): 16
[ 22.836312] morse_spi spi0.0: rounds: 10
[ 22.954776] morse_spi spi0.0: Wrote 233600 bytes in 118 ms
[ 22.954821] morse_spi spi0.0: Estimated IO upper bound: 15832 kbps
[ 22.954860] morse_spi spi0.0: Bus timing profiler
[ 22.954881] morse_spi spi0.0: packet size (bytes): 1460
[ 22.954900] morse_spi spi0.0: overhead (bytes): 102
[ 22.954919] morse_spi spi0.0: padding (bytes): 2
[ 22.954938] morse_spi spi0.0: rounds: 16
[ 22.988964] morse_spi spi0.0: timing (us)
[ 22.989032] morse_spi spi0.0: bus claim : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[ 22.989125] morse_spi spi0.0: bus release: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[ 22.989166] morse_spi spi0.0: read 32 : 56 47 44 43 43 43 43 43 44 44 43 45 45 51 50 50
[ 22.989204] morse_spi spi0.0: read bulk : 1086 1069 1071 1070 1057 1067 1142 1223 1062 936 1070 1064 1044 1115 1057 1085
[ OK ] Finished Load Kernel Modules.
[ 22.989242] morse_spi spi0.0: write 32 : 85 78 76 76 76 79 76 217 85 110 73 63 63 62 62 61
[ 22.989279] morse_spi spi0.0: write bulk : 699 659 844 916 910 908 1137 918 910 900 906 894 1136 914 1064 920
Starting Apply Kernel Variables...
[ 22.989468] morse_spi spi0.0: SKB allocation profiler (100 skbs w/ 1562 bytes)
[ 22.989492] morse_spi spi0.0: alloc: 72 us
[ 22.989510] morse_spi spi0.0: free: 79 us
how can I interpret these results.
I see: [ 22.954821] morse_spi spi0.0: Estimated IO upper bound: 15832 kbps
I also saw a note about the mmrc_table. I checked that here:
sudo cat /sys/kernel/debug/ieee80211/phy0/morse/mmrc_table
Morse Micro S1G RC Algorithm Statistics
Peer: 94:bb:43:dc:f8:6a
--------------Rate-------------- Throughput Probability ---------Last--------- ---------Total--------- ----MPDU-----
BW Guard Evidence Selection MCS SS Index Airtime Max Avg Average Retry Success Attempt Success Attempt Success Fail
1MHz LGI 0 MCS0 1 0 34880 0.00 0.00 0 0 0 0 0 0 0 0
1MHz SGI 0 MCS0 1 1 31371 0.00 0.00 0 0 0 0 0 0 0 0
2MHz LGI 0 MCS0 1 2 16000 0.00 0.00 0 0 0 0 0 0 0 0
2MHz SGI 0 MCS0 1 3 14390 0.00 0.00 0 0 0 0 0 0 0 0
4MHz LGI 0 MCS0 1 4 7680 0.00 0.00 0 0 0 0 0 0 0 0
4MHz SGI 0 MCS0 1 5 6907 0.00 0.00 0 0 0 0 0 0 0 0
8MHz LGI 0 MCS0 1 6 3520 0.00 0.00 0 0 0 0 0 0 0 0
8MHz SGI 0 C MCS0 1 7 3165 0.00 0.00 0 0 0 0 0 0 0 0
1MHz LGI 0 MCS1 1 8 24000 0.00 0.00 0 0 0 0 0 0 0 0
1MHz SGI 0 MCS1 1 9 21585 0.00 0.00 0 0 0 0 0 0 0 0
2MHz LGI 0 MCS1 1 10 10640 0.00 0.00 0 0 0 0 0 0 0 0
2MHz SGI 0 MCS1 1 11 9569 0.00 0.00 0 0 0 0 0 0 0 0
4MHz LGI 0 MCS1 1 12 5120 0.00 0.00 0 0 0 0 0 0 0 0
4MHz SGI 0 MCS1 1 13 4605 0.00 0.00 0 0 0 0 0 0 0 0
8MHz LGI 0 MCS1 1 14 2360 0.00 0.00 0 0 0 0 0 0 0 0
8MHz SGI 0 MCS1 1 15 2122 0.00 0.00 0 0 0 0 0 0 0 0
1MHz LGI 0 MCS2 1 16 17440 0.00 0.00 0 0 0 0 0 0 0 0
1MHz SGI 0 MCS2 1 17 15685 0.00 0.00 0 0 0 0 0 0 0 0
2MHz LGI 0 MCS2 1 18 8000 0.00 0.00 0 0 0 0 0 0 0 0
2MHz SGI 0 MCS2 1 19 7195 0.00 0.00 0 0 0 0 0 0 0 0
4MHz LGI 0 MCS2 1 20 3840 0.00 0.00 0 0 0 0 0 0 0 0
4MHz SGI 0 MCS2 1 21 3453 0.00 0.00 0 0 0 0 0 0 0 0
8MHz LGI 0 MCS2 1 22 1760 0.00 0.00 0 0 0 0 0 0 0 0
8MHz SGI 0 MCS2 1 23 1582 0.00 0.00 0 0 0 0 0 0 0 0
1MHz LGI 0 MCS3 1 24 11600 0.00 0.00 0 0 0 0 0 0 0 0
1MHz SGI 0 MCS3 1 25 10433 0.00 0.00 0 0 0 0 0 0 0 0
2MHz LGI 0 MCS3 1 26 5320 0.00 0.00 0 0 0 0 0 0 0 0
2MHz SGI 0 MCS3 1 27 4784 0.00 0.00 0 0 0 0 0 0 0 0
4MHz LGI 0 MCS3 1 28 2520 0.00 0.00 0 0 0 0 0 0 0 0
4MHz SGI 0 MCS3 1 29 2266 0.00 0.00 0 0 0 0 0 0 0 0
8MHz LGI 0 MCS3 1 30 1160 0.00 0.00 0 0 0 0 0 0 0 0
8MHz SGI 0 MCS3 1 31 1043 0.00 0.00 0 0 0 0 0 0 0 0
1MHz LGI 0 MCS4 1 32 8720 0.00 0.00 0 0 0 0 0 0 0 0
1MHz SGI 0 MCS4 1 33 7842 0.00 0.00 0 0 0 0 0 0 0 0
2MHz LGI 0 MCS4 1 34 4000 0.00 0.00 0 0 0 0 0 0 0 0
2MHz SGI 0 MCS4 1 35 3597 0.00 0.00 0 0 0 0 0 0 0 0
4MHz LGI 0 MCS4 1 36 1880 0.00 0.00 0 0 0 0 0 0 0 0
4MHz SGI 0 MCS4 1 37 1690 0.00 0.00 0 0 0 0 0 0 0 0
8MHz LGI 0 MCS4 1 38 880 0.00 0.00 0 0 0 0 0 0 0 0
8MHz SGI 0 P MCS4 1 39 791 19.50 19.49 100 0 0 0 23 24 0 0
1MHz LGI 0 MCS5 1 40 5800 0.00 0.00 0 0 0 0 0 0 0 0
1MHz SGI 0 MCS5 1 41 5216 0.00 0.00 0 0 0 0 0 0 0 0
2MHz LGI 0 MCS5 1 42 2640 0.00 0.00 0 0 0 0 0 0 0 0
2MHz SGI 0 MCS5 1 43 2374 0.00 0.00 0 0 0 0 0 0 0 0
4MHz LGI 0 MCS5 1 44 1240 0.00 0.00 0 0 0 0 0 0 0 0
4MHz SGI 0 MCS5 1 45 1115 0.00 0.00 0 0 0 0 0 0 0 0
8MHz LGI 0 MCS5 1 46 560 23.40 22.69 97 0 0 0 464 492 0 0
8MHz SGI 0 B MCS5 1 47 503 27.56 24.43 94 0 0 0 26367 27598 0 0
1MHz LGI 0 MCS6 1 48 4360 0.00 0.00 0 0 0 0 0 0 0 0
1MHz SGI 0 MCS6 1 49 3921 0.00 0.00 0 0 0 0 0 0 0 0
2MHz LGI 0 MCS6 1 50 2000 0.00 0.00 0 0 0 0 0 0 0 0
2MHz SGI 0 MCS6 1 51 1798 0.00 0.00 0 0 0 0 0 0 0 0
4MHz LGI 0 MCS6 1 52 920 0.00 0.00 0 0 0 0 0 0 0 0
4MHz SGI 0 MCS6 1 53 827 0.00 0.00 0 0 0 0 0 0 0 0
8MHz LGI 0 L MCS6 1 54 440 26.32 26.32 100 0 0 0 2006 2566 0 0
8MHz SGI 0 A MCS6 1 55 395 30.71 30.12 100 0 0 0 7008 8525 0 0
1MHz LGI 0 MCS7 1 56 3840 0.00 0.00 0 0 0 0 0 0 0 0
1MHz SGI 0 MCS7 1 57 3453 0.00 0.00 0 0 0 0 0 0 0 0
2MHz LGI 0 MCS7 1 58 1760 0.00 0.00 0 0 0 0 0 0 0 0
2MHz SGI 0 MCS7 1 59 1582 0.00 0.00 0 0 0 0 0 0 0 0
4MHz LGI 0 MCS7 1 60 840 0.00 0.00 0 0 0 0 0 0 0 0
4MHz SGI 0 MCS7 1 61 755 0.00 0.00 0 0 0 0 0 0 0 0
8MHz LGI 0 MCS7 1 62 360 29.25 0.00 0 0 0 0 367 697 0 0
8MHz SGI 0 MCS7 1 63 323 32.50 32.49 100 0 0 0 1609 3864 0 0
1MHz LGI 0 MCS10 1 64 64000 0.00 0.00 0 0 0 0 0 0 0 0
1MHz SGI 0 MCS10 1 65 57562 0.00 0.00 0 0 0 0 0 0 0 0
Amount of packets sent: 43596 including: 170 look-around packets
and my device tree is configured as follows:
diff --git a/arch/arm64/boot/dts/rockchip/overlay/rk3588-mm6108-spi0.dts b/arch/arm64/boot/dts/rockchip/overlay/rk3588-mm6108-spi0.dts
new file mode 100644
index 000000000000..fbc22e91eb8f
--- /dev/null
+++ b/arch/arm64/boot/dts/rockchip/overlay/rk3588-mm6108-spi0.dts
@@ -0,0 +1,27 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+ fragment@0 {
+ target = <&spi0>;
+
+ __overlay__ {
+ status = "okay";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi0m2_cs0 &spi0m2_pins>;
+ max-freq = <50000000>; // Max supported bus frequency (controller limit)
+
+ morse_wifi@0 {
+ compatible = "morse,mm610x-spi";
+ reg = <0>; // Chip Select 0
+ spi-max-frequency = <50000000>; // Morse Wi-Fi device max freq = 31.25 MHz
+ reset-gpios = <&gpio1 7 0>;
+ power-gpios = <&gpio3 17 0>, <&gpio1 15 0>;
+ spi-irq-gpios = <&gpio1 4 0>;
+ status = "okay";
+ };
+ };
+ };
+};
here are some iperf results I ran:
[nix-shell:~]$ iperf3 -c 192.168.13.226 -u -b 20M -t 10
Connecting to host 192.168.13.226, port 5201
[ 5] local 192.168.13.175 port 42900 connected to 192.168.13.226 port 5201
[ ID] Interval Transfer Bitrate Total Datagrams
[ 5] 0.00-1.00 sec 1.14 MBytes 9.60 Mbits/sec 830
[ 5] 1.00-2.00 sec 1.18 MBytes 9.85 Mbits/sec 851
[ 5] 2.00-3.00 sec 1.07 MBytes 8.97 Mbits/sec 774
[ 5] 3.00-4.00 sec 1.09 MBytes 9.11 Mbits/sec 786
[ 5] 4.00-5.00 sec 1.09 MBytes 9.11 Mbits/sec 786
[ 5] 5.00-6.00 sec 1.17 MBytes 9.81 Mbits/sec 847
[ 5] 6.00-7.00 sec 1.09 MBytes 9.11 Mbits/sec 787
[ 5] 7.00-8.00 sec 1.16 MBytes 9.71 Mbits/sec 838
[ 5] 8.00-9.00 sec 1.09 MBytes 9.16 Mbits/sec 791
[ 5] 9.00-10.01 sec 1.17 MBytes 9.73 Mbits/sec 845
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-10.01 sec 11.2 MBytes 9.42 Mbits/sec 0.000 ms 0/8135 (0%) sender
[ 5] 0.00-10.06 sec 11.2 MBytes 9.34 Mbits/sec 1.086 ms 0/8110 (0%) receiver
iperf Done.
[nix-shell:~]$ iperf3 -c 192.168.13.226 -b 20M -t 10
Connecting to host 192.168.13.226, port 5201
[ 5] local 192.168.13.175 port 33346 connected to 192.168.13.226 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 2.50 MBytes 20.9 Mbits/sec 3 272 KBytes
[ 5] 1.00-2.00 sec 2.38 MBytes 19.9 Mbits/sec 0 263 KBytes
[ 5] 2.00-3.00 sec 2.38 MBytes 19.9 Mbits/sec 0 277 KBytes
[ 5] 3.00-4.00 sec 896 KBytes 7.34 Mbits/sec 0 280 KBytes
[ 5] 4.00-5.00 sec 0.00 Bytes 0.00 bits/sec 0 280 KBytes
[ 5] 5.00-6.00 sec 1.75 MBytes 14.7 Mbits/sec 0 266 KBytes
[ 5] 6.00-7.00 sec 1.62 MBytes 13.6 Mbits/sec 0 263 KBytes
[ 5] 7.00-8.00 sec 0.00 Bytes 0.00 bits/sec 0 260 KBytes
[ 5] 8.00-9.00 sec 1.62 MBytes 13.6 Mbits/sec 0 288 KBytes
[ 5] 9.00-10.00 sec 0.00 Bytes 0.00 bits/sec 0 255 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 13.1 MBytes 11.0 Mbits/sec 3 sender
[ 5] 0.00-10.09 sec 9.50 MBytes 7.89 Mbits/sec receiver
iperf Done.
[nix-shell:~]$ iperf3 -c 192.168.13.226 -b 15M -t 10
Connecting to host 192.168.13.226, port 5201
[ 5] local 192.168.13.175 port 48426 connected to 192.168.13.226 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 1.88 MBytes 15.7 Mbits/sec 47 209 KBytes
[ 5] 1.00-2.00 sec 1.75 MBytes 14.7 Mbits/sec 32 252 KBytes
[ 5] 2.00-3.00 sec 1.75 MBytes 14.7 Mbits/sec 0 263 KBytes
[ 5] 3.00-4.00 sec 1.88 MBytes 15.7 Mbits/sec 0 257 KBytes
[ 5] 4.00-5.00 sec 1.75 MBytes 14.7 Mbits/sec 0 255 KBytes
[ 5] 5.00-6.00 sec 1.25 MBytes 10.5 Mbits/sec 0 255 KBytes
[ 5] 6.00-7.00 sec 0.00 Bytes 0.00 bits/sec 0 269 KBytes
[ 5] 7.00-8.00 sec 1.75 MBytes 14.7 Mbits/sec 0 269 KBytes
[ 5] 8.00-9.00 sec 0.00 Bytes 0.00 bits/sec 0 263 KBytes
[ 5] 9.00-10.00 sec 1.62 MBytes 13.6 Mbits/sec 0 5.66 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 13.6 MBytes 11.4 Mbits/sec 79 sender
[ 5] 0.00-10.06 sec 9.50 MBytes 7.92 Mbits/sec receiver
iperf Done.
[nix-shell:~]$ iperf3 -c 192.168.13.226 -u -b 15M -t 10
Connecting to host 192.168.13.226, port 5201
[ 5] local 192.168.13.175 port 49385 connected to 192.168.13.226 port 5201
[ ID] Interval Transfer Bitrate Total Datagrams
[ 5] 0.00-1.00 sec 1.15 MBytes 9.62 Mbits/sec 832
[ 5] 1.00-2.00 sec 1.17 MBytes 9.82 Mbits/sec 848
[ 5] 2.00-3.00 sec 1.08 MBytes 9.04 Mbits/sec 780
[ 5] 3.00-4.00 sec 1.26 MBytes 10.5 Mbits/sec 910
[ 5] 4.00-5.00 sec 1.16 MBytes 9.76 Mbits/sec 842
[ 5] 5.00-6.00 sec 1.16 MBytes 9.73 Mbits/sec 840
[ 5] 6.00-7.00 sec 1.09 MBytes 9.10 Mbits/sec 786
[ 5] 7.00-8.00 sec 1.15 MBytes 9.66 Mbits/sec 833
[ 5] 8.00-9.00 sec 1.08 MBytes 9.08 Mbits/sec 784
[ 5] 9.00-10.00 sec 1018 KBytes 8.32 Mbits/sec 720
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-10.00 sec 11.3 MBytes 9.47 Mbits/sec 0.000 ms 0/8175 (0%) sender
[ 5] 0.00-10.06 sec 11.3 MBytes 9.42 Mbits/sec 0.965 ms 0/8175 (0%) receiver
iperf Done.
here are the params that I had before I loaded the test_mode=6 version:
[nix-shell:~]$ dmesg | grep morse
[ 22.489356] morse micro driver registration. Version 0-rel_1_15_3_2025_Apr_16
[ 22.490272] morse_spi spi0.0: morse_of_probe: Reading gpio pins configuration from device tree
[ 22.490721] morse_io: Device node '/dev/morse_io' created successfully
[ 22.509987] morse_spi spi0.0: Loaded firmware from mm6108.bin, size 444304, crc32 0x1c6a0f92
[ 22.513107] morse_spi spi0.0: Loaded BCF from bcf_default.bin, size 1251, crc32 0x941b2a82
[ 23.222189] morse_spi spi0.0: Driver loaded with kernel module parameters
[ 23.222209] morse_spi spi0.0: slow_clock_mode : 0
[ 23.222216] morse_spi spi0.0: enable_1mhz_probes : Y
[ 23.222222] morse_spi spi0.0: enable_sched_scan : Y
[ 23.222228] morse_spi spi0.0: enable_hw_scan : Y
[ 23.222234] morse_spi spi0.0: enable_pv1 : N
[ 23.222239] morse_spi spi0.0: enable_page_slicing : N
[ 23.222245] morse_spi spi0.0: log_modparams_on_boot : Y
[ 23.222251] morse_spi spi0.0: enable_mcast_rate_control : N
[ 23.222257] morse_spi spi0.0: enable_mcast_whitelist : Y
[ 23.222262] morse_spi spi0.0: ocs_type : 1
[ 23.222268] morse_spi spi0.0: enable_wiphy : 0
[ 23.222274] morse_spi spi0.0: enable_auto_mpsw : Y
[ 23.222280] morse_spi spi0.0: duty_cycle_probe_retry_threshold : 2500
[ 23.222286] morse_spi spi0.0: duty_cycle_mode : 0
[ 23.222292] morse_spi spi0.0: enable_auto_duty_cycle : Y
[ 23.222298] morse_spi spi0.0: dhcpc_lease_update_script : /morse/scripts/dhcpc_update.sh
[ 23.222305] morse_spi spi0.0: enable_ibss_probe_filtering : Y
[ 23.222311] morse_spi spi0.0: enable_dhcpc_offload : N
[ 23.222316] morse_spi spi0.0: enable_arp_offload : N
[ 23.222322] morse_spi spi0.0: enable_bcn_change_seq_monitor : 0
[ 23.222327] morse_spi spi0.0: enable_cac : 0
[ 23.222333] morse_spi spi0.0: max_mc_frames : 10
[ 23.222340] morse_spi spi0.0: tx_max_power_mbm : 2200
[ 23.222346] morse_spi spi0.0: enable_twt : Y
[ 23.222351] morse_spi spi0.0: enable_mac80211_connection_monitor : N
[ 23.222357] morse_spi spi0.0: enable_airtime_fairness : N
[ 23.222362] morse_spi spi0.0: enable_raw : Y
[ 23.222368] morse_spi spi0.0: max_aggregation_count : 0
[ 23.222373] morse_spi spi0.0: max_rate_tries : 1
[ 23.222379] morse_spi spi0.0: max_rates : 4
[ 23.222384] morse_spi spi0.0: enable_watchdog_reset : N
[ 23.222390] morse_spi spi0.0: watchdog_interval_secs : 30
[ 23.222396] morse_spi spi0.0: enable_watchdog : Y
[ 23.222402] morse_spi spi0.0: country : US
[ 23.222408] morse_spi spi0.0: enable_cts_to_self : N
[ 23.222413] morse_spi spi0.0: enable_rts_8mhz : N
[ 23.222419] morse_spi spi0.0: enable_trav_pilot : Y
[ 23.222424] morse_spi spi0.0: enable_sgi_rc : Y
[ 23.222429] morse_spi spi0.0: enable_mbssid_ie : N
[ 23.222435] morse_spi spi0.0: virtual_sta_max : 0
[ 23.222441] morse_spi spi0.0: thin_lmac : 0
[ 23.222446] morse_spi spi0.0: enable_dynamic_ps_offload : Y
[ 23.222452] morse_spi spi0.0: enable_ps : 2
[ 23.222457] morse_spi spi0.0: enable_subbands : 2
[ 23.222463] morse_spi spi0.0: enable_survey : Y
[ 23.222468] morse_spi spi0.0: mcs10_mode : 0
[ 23.222474] morse_spi spi0.0: mcs_mask : 1023
[ 23.222480] morse_spi spi0.0: no_hwcrypt : 0
[ 23.222485] morse_spi spi0.0: enable_ext_xtal_init : N
[ 23.222492] morse_spi spi0.0: enable_otp_check : 1
[ 23.222497] morse_spi spi0.0: bcf :
[ 23.222503] morse_spi spi0.0: serial : default
[ 23.222509] morse_spi spi0.0: debug_mask : 8
[ 23.222515] morse_spi spi0.0: tx_status_lifetime_ms : 15000
[ 23.222521] morse_spi spi0.0: tx_queued_lifetime_ms : 1000
[ 23.222527] morse_spi spi0.0: max_txq_len : 32
[ 23.222534] morse_spi spi0.0: default_cmd_timeout_ms : 600
[ 23.222540] morse_spi spi0.0: hw_reload_after_stop : 5
[ 23.222546] morse_spi spi0.0: enable_short_bcn_as_dtim_override : -1
[ 23.222552] morse_spi spi0.0: fw_bin_file :
[ 23.222557] morse_spi spi0.0: sdio_reset_time : 400
[ 23.222564] morse_spi spi0.0: macaddr_suffix : 00:00:00
[ 23.222570] morse_spi spi0.0: macaddr_octet : 255
[ 23.222576] morse_spi spi0.0: max_total_vendor_ie_bytes : 514
[ 23.222583] morse_spi spi0.0: coredump_include : 1
[ 23.222588] morse_spi spi0.0: coredump_method : 1
[ 23.222594] morse_spi spi0.0: enable_coredump : Y
[ 23.222599] morse_spi spi0.0: spi_use_edge_irq : N
[ 23.222605] morse_spi spi0.0: spi_clock_speed : 40000000
[ 23.222611] morse_spi spi0.0: enable_mm_vendor_ie : Y
[ 23.222617] morse_spi spi0.0: fixed_guard : 0
[ 23.222622] morse_spi spi0.0: fixed_ss : 1
[ 23.222628] morse_spi spi0.0: fixed_bw : 2
[ 23.222633] morse_spi spi0.0: fixed_mcs : 4
[ 23.222639] morse_spi spi0.0: enable_fixed_rate : N

















