[MERGED] osmo-bts[master]: octphy: override firmware version check

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Harald Welte gerrit-no-reply at lists.osmocom.org
Wed Nov 8 04:43:55 UTC 2017


Harald Welte has submitted this change and it was merged.

Change subject: octphy: override firmware version check
......................................................................


octphy: override firmware version check

When osmo-bts detects a mismatch between the firmware of the DSP
and the header version which it was compile with, a hard exit
is performed. In some cases this may hinder debugging/testing things.

Implement a commandline option to intentinally override the check.

Change-Id: I5774fbb29da832786326afb991014b9bd8b04b59
---
M src/osmo-bts-octphy/l1_oml.c
M src/osmo-bts-octphy/main.c
2 files changed, 24 insertions(+), 4 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/src/osmo-bts-octphy/l1_oml.c b/src/osmo-bts-octphy/l1_oml.c
index d1d5bf6..a1c384a 100644
--- a/src/osmo-bts-octphy/l1_oml.c
+++ b/src/osmo-bts-octphy/l1_oml.c
@@ -52,6 +52,8 @@
 #include <octphy/octvc1/main/octvc1_main_default.h>
 #include <octphy/octvc1/main/octvc1_main_version.h>
 
+bool no_fw_check = 0;
+
 /* Map OSMOCOM logical channel type to OctPHY Logical channel type */
 static tOCTVC1_GSM_LOGICAL_CHANNEL_COMBINATION_ENUM pchan_to_logChComb[_GSM_PCHAN_MAX] =
 {
@@ -1161,11 +1163,23 @@
 	     "Rx APP-INFO.resp (name='%s', desc='%s', ver='%s', ver_hdr='%s')\n",
 	     air->szName, air->szDescription, air->szVersion, ver_hdr);
 
-	/* Bail if dsp firmware does not match up the header version info */
+	/* Check if the firmware version of the DSP matches the header files
+	 * that were used to compile osmo-bts */
 	if (strcmp(air->szVersion, ver_hdr) != 0) {
 		LOGP(DL1C, LOGL_ERROR,
-		     "Invalid header-file / dsp-firmware combination, exiting...\n");
-		exit(1);
+		     "Invalid header-file-version / dsp-firmware-version combination\n");
+		LOGP(DL1C, LOGL_ERROR,
+		     "Expected firmware version: %s\n", ver_hdr);
+		LOGP(DL1C, LOGL_ERROR,
+		     "Actual firmware version:   %s\n", air->szVersion);
+
+		if (!no_fw_check) {
+			LOGP(DL1C, LOGL_ERROR,
+			     "use option -I to override the check (not recommened)\n");
+			LOGP(DL1C, LOGL_ERROR,
+			     "exiting...\n");
+			exit(1);
+		}
 	}
 
 	talloc_replace(fl1h->info.app.name, fl1h, air->szName);
diff --git a/src/osmo-bts-octphy/main.c b/src/osmo-bts-octphy/main.c
index 0f4d0dd..928a4c8 100644
--- a/src/osmo-bts-octphy/main.c
+++ b/src/osmo-bts-octphy/main.c
@@ -51,9 +51,11 @@
 #define RF_LOCK_PATH	"/var/lock/bts_rf_lock"
 
 extern int pcu_direct;
+extern bool no_fw_check;
 
 int bts_model_print_help()
 {
+	printf("  -I	--no-fw-check	Override firmware version check\n");
 	return 0;
 }
 
@@ -65,15 +67,19 @@
 		int option_idx = 0, c;
 		static const struct option long_options[] = {
 			/* specific to this hardware */
+			{ "no-fw-check", 0, 0, 'I' },
 			{ 0, 0, 0, 0 }
 		};
 
-		c = getopt_long(argc, argv, "",
+		c = getopt_long(argc, argv, "I",
 				long_options, &option_idx);
 		if (c == -1)
 			break;
 
 		switch (c) {
+		case 'I':
+			no_fw_check = true;
+			break;
 		default:
 			num_errors++;
 			break;

-- 
To view, visit https://gerrit.osmocom.org/4446
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I5774fbb29da832786326afb991014b9bd8b04b59
Gerrit-PatchSet: 5
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Owner: dexter <pmaier at sysmocom.de>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Max <msuraev at sysmocom.de>



More information about the gerrit-log mailing list