diff --git a/tools/bccmd.c b/tools/bccmd.c index 1605d1c..5655bb5 100755 --- a/tools/bccmd.c +++ b/tools/bccmd.c @@ -555,6 +555,37 @@ static int cmd_radiotest(int transport, int argc, char *argv[]) return transport_write(transport, CSR_VARID_RADIOTEST, array, 8); } +static int cmd_fullradiotest(int transport, int argc, char *argv[]) +{ + uint8_t array[8]; + uint16_t testID; + uint16_t word1; + uint16_t word2; + uint16_t word3; + + OPT_HELP(4, NULL); + + testID = atoi(argv[0]); + word1 = atoi(argv[1]); + word2 = atoi(argv[2]); + word3 = atoi(argv[3]); + + printf("TestID %u, word1 %u, word2 %u, word3 %u\n", + testID, word1, word2, word3); + + memset(array, 0, sizeof(array)); + array[0] = testID & 0xff; + array[1] = testID >> 8; + array[2] = word1 & 0xff; + array[3] = word1 >> 8; + array[4] = word2 & 0xff; + array[5] = word2 >> 8; + array[6] = word3 & 0xff; + array[7] = word3 >> 8; + + return transport_write(transport, CSR_VARID_RADIOTEST, array, 8); +} + static int cmd_memtypes(int transport, int argc, char *argv[]) { uint8_t array[8]; @@ -1176,6 +1207,7 @@ static struct { { "hoppingon", cmd_hoppingon, "", "Revert to channel hopping" }, { "rttxdata1", cmd_rttxdata1, " ", "TXData1 radio test" }, { "radiotest", cmd_radiotest, " ", "Run radio tests" }, + { "fullradiotest", cmd_fullradiotest," ", "Run full radio tests" }, { "memtypes", cmd_memtypes, NULL, "Get memory types" }, { "psget", cmd_psget, "", "Get value for PS key" }, { "psset", cmd_psset, " ", "Set value for PS key" },