Change in simtrace2[master]: add make DEFINE to remove assert ERASE code

2019-05-23 Thread Harald Welte
Harald Welte has posted comments on this change. ( 
https://gerrit.osmocom.org/14147 )

Change subject: add make DEFINE to remove assert ERASE code
..


Patch Set 1: Code-Review+2


--
To view, visit https://gerrit.osmocom.org/14147
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: simtrace2
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I5f88ecf1e2dcf00c0297597f88dd361a6e088c1e
Gerrit-Change-Number: 14147
Gerrit-PatchSet: 1
Gerrit-Owner: Kévin Redon 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder (102)
Gerrit-Comment-Date: Thu, 23 May 2019 16:34:26 +
Gerrit-HasComments: No
Gerrit-HasLabels: Yes


Change in simtrace2[master]: add make DEFINE to remove assert ERASE code

2019-05-23 Thread Harald Welte
Harald Welte has submitted this change and it was merged. ( 
https://gerrit.osmocom.org/14147 )

Change subject: add make DEFINE to remove assert ERASE code
..

add make DEFINE to remove assert ERASE code

remove code to assert peer ERASE line by default.
see README for more information.

Change-Id: I5f88ecf1e2dcf00c0297597f88dd361a6e088c1e
---
M firmware/Makefile
M firmware/README.txt
M firmware/libboard/qmod/source/board_qmod.c
3 files changed, 17 insertions(+), 1 deletion(-)

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



diff --git a/firmware/Makefile b/firmware/Makefile
index c0f53f3..fa72bd3 100644
--- a/firmware/Makefile
+++ b/firmware/Makefile
@@ -120,6 +120,10 @@
 # TRACE_LEVEL_NO_TRACE   0
 TRACE_LEVEL ?= 4

+# allow asserting the peer SAM3S ERASE signal to completely erase the flash
+# only applicable for qmod board
+ALLOW_PEER_ERASE?=0
+
 DEBUG_PHONE_SNIFF?=0

 #CFLAGS+=-DUSB_NO_DEBUG=1
@@ -163,7 +167,7 @@
 #CFLAGS += -Wa,-a,-ad
 CFLAGS += -D__ARM
 CFLAGS += --param max-inline-insns-single=500 -mcpu=cortex-m3 -mthumb # 
-mfix-cortex-m3-ldrd
-CFLAGS += -ffunction-sections -g $(OPTIMIZATION) $(INCLUDES) -D$(CHIP) 
-DTRACE_LEVEL=$(TRACE_LEVEL) -DDEBUG_PHONE_SNIFF=$(DEBUG_PHONE_SNIFF)
+CFLAGS += -ffunction-sections -g $(OPTIMIZATION) $(INCLUDES) -D$(CHIP) 
-DTRACE_LEVEL=$(TRACE_LEVEL) -DDEBUG_PHONE_SNIFF=$(DEBUG_PHONE_SNIFF) 
-DALLOW_PEER_ERASE=$(ALLOW_PEER_ERASE)
 CFLAGS += -DGIT_VERSION=\"$(GIT_VERSION)\"
 CFLAGS += -DBOARD=\"$(BOARD)\" -DBOARD_$(BOARD)
 CFLAGS += -DAPPLICATION=\"$(APP)\" -DAPPLICATION_$(APP)
diff --git a/firmware/README.txt b/firmware/README.txt
index dcbafb2..fa7f60a 100644
--- a/firmware/README.txt
+++ b/firmware/README.txt
@@ -76,6 +76,10 @@
 ```
 Accepted values: 0 (NO_TRACE) to 5 (DEBUG)

+The qmod specific option `ALLOW_PEER_ERASE` controls if the UART debug command 
to assert the peer SAM3S ERASE line is present in the code.
+Per default this is set to 0 to prevent accidentally erasing all firmware, 
including the DFU bootloader, which would then need to be flashed using SAM-BA 
or JTAG/SWD.
+Setting `ALLOW_PEER_ERASE` to 1 enables back the debug command and should be 
used only for debugging or development purposes.
+
 = Flashing

 To flash a firmware image follow the instructions provided in the 
[wiki](https://projects.osmocom.org/projects/simtrace2/wiki/).
diff --git a/firmware/libboard/qmod/source/board_qmod.c 
b/firmware/libboard/qmod/source/board_qmod.c
index cab5271..4d75b98 100644
--- a/firmware/libboard/qmod/source/board_qmod.c
+++ b/firmware/libboard/qmod/source/board_qmod.c
@@ -184,10 +184,12 @@
 /* returns '1' in case we should break any endless loop */
 void board_exec_dbg_cmd(int ch)
 {
+#if (ALLOW_PEER_ERASE > 0)
/* this variable controls if it is allowed to assert/release the ERASE 
line.
   this is done to prevent accidental ERASE on noisy serial input since 
only one character can trigger the ERASE.
 */
static bool allow_erase = false;
+#endif

switch (ch) {
case '?':
@@ -209,9 +211,11 @@
}
printf("\tX\tRelease peer SAM3 from reset\n\r");
printf("\tx\tAssert peer SAM3 reset\n\r");
+#if (ALLOW_PEER_ERASE > 0)
printf("\tY\tRelease peer SAM3 ERASE signal\n\r");
printf("\ta\tAllow asserting peer SAM3 ERASE signal\n\r");
printf("\ty\tAssert peer SAM3 ERASE signal\n\r");
+#endif
printf("\tU\tProceed to USB Initialization\n\r");
printf("\t1\tGenerate 1ms reset pulse on WWAN1\n\r");
printf("\t2\tGenerate 1ms reset pulse on WWAN2\n\r");
@@ -245,6 +249,7 @@
printf("Setting _SIMTRACExx_RST -> SIMTRACExx_RST low 
(active)\n\r");
PIO_Set(_peer_rst);
break;
+#if (ALLOW_PEER_ERASE > 0)
case 'Y':
printf("Clearing SIMTRACExx_ERASE (inactive)\n\r");
PIO_Clear(_peer_erase);
@@ -261,6 +266,7 @@
printf("Please first allow setting 
SIMTRACExx_ERASE\n\r");
}
break;
+#endif
case '1':
printf("Resetting Modem 1 (of this SAM3)\n\r");
wwan_perst_do_reset_pulse(0, 300);
@@ -283,10 +289,12 @@
break;
}

+#if (ALLOW_PEER_ERASE > 0)
// set protection back so it can only run for one command
if ('a' != ch) {
allow_erase = false;
}
+#endif
 }

 void board_main_top(void)

--
To view, visit https://gerrit.osmocom.org/14147
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: simtrace2
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I5f88ecf1e2dcf00c0297597f88dd361a6e088c1e
Gerrit-Change-Number: 14147
Gerrit-PatchSet: 2
Gerrit-Owner: Kévin Redon 
Gerrit-Reviewer: Harald Welte 

Change in simtrace2[master]: add make DEFINE to remove assert ERASE code

2019-05-23 Thread Kévin Redon
Kévin Redon has uploaded this change for review. ( 
https://gerrit.osmocom.org/14147


Change subject: add make DEFINE to remove assert ERASE code
..

add make DEFINE to remove assert ERASE code

remove code to assert peer ERASE line by default.
see README for more information.

Change-Id: I5f88ecf1e2dcf00c0297597f88dd361a6e088c1e
---
M firmware/Makefile
M firmware/README.txt
M firmware/libboard/qmod/source/board_qmod.c
3 files changed, 17 insertions(+), 1 deletion(-)



  git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/47/14147/1

diff --git a/firmware/Makefile b/firmware/Makefile
index c0f53f3..fa72bd3 100644
--- a/firmware/Makefile
+++ b/firmware/Makefile
@@ -120,6 +120,10 @@
 # TRACE_LEVEL_NO_TRACE   0
 TRACE_LEVEL ?= 4

+# allow asserting the peer SAM3S ERASE signal to completely erase the flash
+# only applicable for qmod board
+ALLOW_PEER_ERASE?=0
+
 DEBUG_PHONE_SNIFF?=0

 #CFLAGS+=-DUSB_NO_DEBUG=1
@@ -163,7 +167,7 @@
 #CFLAGS += -Wa,-a,-ad
 CFLAGS += -D__ARM
 CFLAGS += --param max-inline-insns-single=500 -mcpu=cortex-m3 -mthumb # 
-mfix-cortex-m3-ldrd
-CFLAGS += -ffunction-sections -g $(OPTIMIZATION) $(INCLUDES) -D$(CHIP) 
-DTRACE_LEVEL=$(TRACE_LEVEL) -DDEBUG_PHONE_SNIFF=$(DEBUG_PHONE_SNIFF)
+CFLAGS += -ffunction-sections -g $(OPTIMIZATION) $(INCLUDES) -D$(CHIP) 
-DTRACE_LEVEL=$(TRACE_LEVEL) -DDEBUG_PHONE_SNIFF=$(DEBUG_PHONE_SNIFF) 
-DALLOW_PEER_ERASE=$(ALLOW_PEER_ERASE)
 CFLAGS += -DGIT_VERSION=\"$(GIT_VERSION)\"
 CFLAGS += -DBOARD=\"$(BOARD)\" -DBOARD_$(BOARD)
 CFLAGS += -DAPPLICATION=\"$(APP)\" -DAPPLICATION_$(APP)
diff --git a/firmware/README.txt b/firmware/README.txt
index dcbafb2..fa7f60a 100644
--- a/firmware/README.txt
+++ b/firmware/README.txt
@@ -76,6 +76,10 @@
 ```
 Accepted values: 0 (NO_TRACE) to 5 (DEBUG)

+The qmod specific option `ALLOW_PEER_ERASE` controls if the UART debug command 
to assert the peer SAM3S ERASE line is present in the code.
+Per default this is set to 0 to prevent accidentally erasing all firmware, 
including the DFU bootloader, which would then need to be flashed using SAM-BA 
or JTAG/SWD.
+Setting `ALLOW_PEER_ERASE` to 1 enables back the debug command and should be 
used only for debugging or development purposes.
+
 = Flashing

 To flash a firmware image follow the instructions provided in the 
[wiki](https://projects.osmocom.org/projects/simtrace2/wiki/).
diff --git a/firmware/libboard/qmod/source/board_qmod.c 
b/firmware/libboard/qmod/source/board_qmod.c
index cab5271..4d75b98 100644
--- a/firmware/libboard/qmod/source/board_qmod.c
+++ b/firmware/libboard/qmod/source/board_qmod.c
@@ -184,10 +184,12 @@
 /* returns '1' in case we should break any endless loop */
 void board_exec_dbg_cmd(int ch)
 {
+#if (ALLOW_PEER_ERASE > 0)
/* this variable controls if it is allowed to assert/release the ERASE 
line.
   this is done to prevent accidental ERASE on noisy serial input since 
only one character can trigger the ERASE.
 */
static bool allow_erase = false;
+#endif

switch (ch) {
case '?':
@@ -209,9 +211,11 @@
}
printf("\tX\tRelease peer SAM3 from reset\n\r");
printf("\tx\tAssert peer SAM3 reset\n\r");
+#if (ALLOW_PEER_ERASE > 0)
printf("\tY\tRelease peer SAM3 ERASE signal\n\r");
printf("\ta\tAllow asserting peer SAM3 ERASE signal\n\r");
printf("\ty\tAssert peer SAM3 ERASE signal\n\r");
+#endif
printf("\tU\tProceed to USB Initialization\n\r");
printf("\t1\tGenerate 1ms reset pulse on WWAN1\n\r");
printf("\t2\tGenerate 1ms reset pulse on WWAN2\n\r");
@@ -245,6 +249,7 @@
printf("Setting _SIMTRACExx_RST -> SIMTRACExx_RST low 
(active)\n\r");
PIO_Set(_peer_rst);
break;
+#if (ALLOW_PEER_ERASE > 0)
case 'Y':
printf("Clearing SIMTRACExx_ERASE (inactive)\n\r");
PIO_Clear(_peer_erase);
@@ -261,6 +266,7 @@
printf("Please first allow setting 
SIMTRACExx_ERASE\n\r");
}
break;
+#endif
case '1':
printf("Resetting Modem 1 (of this SAM3)\n\r");
wwan_perst_do_reset_pulse(0, 300);
@@ -283,10 +289,12 @@
break;
}

+#if (ALLOW_PEER_ERASE > 0)
// set protection back so it can only run for one command
if ('a' != ch) {
allow_erase = false;
}
+#endif
 }

 void board_main_top(void)

--
To view, visit https://gerrit.osmocom.org/14147
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: simtrace2
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I5f88ecf1e2dcf00c0297597f88dd361a6e088c1e
Gerrit-Change-Number: 14147
Gerrit-PatchSet: 1
Gerrit-Owner: Kévin Redon