xref: /openwifi/user_space/csi_fuzzer.sh (revision d14d06e5084df99af212b85724238a1d243b1b4a)
1*d14d06e5SXianjun Jiao
2*d14d06e5SXianjun Jiao#!/bin/bash
3*d14d06e5SXianjun Jiao
4*d14d06e5SXianjun Jiao# Author: Xianjun Jiao
5*d14d06e5SXianjun Jiao# SPDX-FileCopyrightText: 2021 UGent
6*d14d06e5SXianjun Jiao# SPDX-License-Identifier: AGPL-3.0-or-later
7*d14d06e5SXianjun Jiao
8*d14d06e5SXianjun Jiaoif [ "$#" -lt 4 ]; then
9*d14d06e5SXianjun Jiao    echo "You must enter 4 arguments: c1_rot90_en c1_raw(-64 to 63) c2_rot90_en c2_raw(-64 to 63)"
10*d14d06e5SXianjun Jiao    exit 1
11*d14d06e5SXianjun Jiaofi
12*d14d06e5SXianjun Jiao
13*d14d06e5SXianjun Jiaoc1_rot90_en=$1
14*d14d06e5SXianjun Jiaoc1_raw=$2
15*d14d06e5SXianjun Jiaoc2_rot90_en=$3
16*d14d06e5SXianjun Jiaoc2_raw=$4
17*d14d06e5SXianjun Jiao
18*d14d06e5SXianjun Jiaoif (($c1_rot90_en != 0)) && (($c1_rot90_en != 1)); then
19*d14d06e5SXianjun Jiao    echo "c1_rot90_en must be 0 or 1!"
20*d14d06e5SXianjun Jiao    exit 1
21*d14d06e5SXianjun Jiaofi
22*d14d06e5SXianjun Jiao
23*d14d06e5SXianjun Jiaoif (($c1_raw < -64)) || (($c1_raw > 63)); then
24*d14d06e5SXianjun Jiao    echo "c1_raw must be -64 to 63!"
25*d14d06e5SXianjun Jiao    exit 1
26*d14d06e5SXianjun Jiaofi
27*d14d06e5SXianjun Jiao
28*d14d06e5SXianjun Jiaoif (($c2_rot90_en != 0)) && (($c2_rot90_en != 1)); then
29*d14d06e5SXianjun Jiao    echo "c2_rot90_en must be 0 or 1!"
30*d14d06e5SXianjun Jiao    exit 1
31*d14d06e5SXianjun Jiaofi
32*d14d06e5SXianjun Jiao
33*d14d06e5SXianjun Jiaoif (($c2_raw < -64)) || (($c2_raw > 63)); then
34*d14d06e5SXianjun Jiao    echo "c2_raw must be -64 to 63!"
35*d14d06e5SXianjun Jiao    exit 1
36*d14d06e5SXianjun Jiaofi
37*d14d06e5SXianjun Jiao
38*d14d06e5SXianjun Jiaoif (($c1_raw < 0)); then
39*d14d06e5SXianjun Jiao    unsigned_c1=$(expr 128 + $c1_raw)
40*d14d06e5SXianjun Jiao#    echo $unsigned_c1
41*d14d06e5SXianjun Jiaoelse
42*d14d06e5SXianjun Jiao    unsigned_c1=$c1_raw
43*d14d06e5SXianjun Jiaofi
44*d14d06e5SXianjun Jiao
45*d14d06e5SXianjun Jiaoif (($c2_raw < 0)); then
46*d14d06e5SXianjun Jiao    unsigned_c2=$(expr 128 + $c2_raw)
47*d14d06e5SXianjun Jiao#    echo $unsigned_c2
48*d14d06e5SXianjun Jiaoelse
49*d14d06e5SXianjun Jiao    unsigned_c2=$c2_raw
50*d14d06e5SXianjun Jiaofi
51*d14d06e5SXianjun Jiao
52*d14d06e5SXianjun Jiao# echo $c1_rot90_en
53*d14d06e5SXianjun Jiao# echo $unsigned_c1
54*d14d06e5SXianjun Jiao# echo $c2_rot90_en
55*d14d06e5SXianjun Jiao# echo $unsigned_c2
56*d14d06e5SXianjun Jiao
57*d14d06e5SXianjun Jiaounsigned_dec_combined=$(($unsigned_c1 + 512 * $c1_rot90_en + 1024 * $unsigned_c2 + 524288 * $c2_rot90_en))
58*d14d06e5SXianjun Jiao# echo $unsigned_dec_combined
59*d14d06e5SXianjun Jiao
60*d14d06e5SXianjun Jiaoecho "./sdrctl dev sdr0 set reg tx_intf 5 $unsigned_dec_combined"
61*d14d06e5SXianjun Jiao./sdrctl dev sdr0 set reg tx_intf 5 $unsigned_dec_combined
62