changeset 385:d8f61e15aca1

Adding jump to bootloader key - Now enabled by default - Added protection around remote jumps
author Jacob Alexander <haata@kiibohd.com>
date Sun, 11 Oct 2015 22:07:11 -0700
parents 82ce1988fefe
children 8a6f9e1493a3
files Debug/cli/cli.c Macro/PartialMap/macro.c Output/pjrcUSB/arm/usb_dev.c Output/pjrcUSB/output_com.c Output/usbMuxUart/output_com.c
diffstat 5 files changed, 25 insertions(+), 37 deletions(-) [+]
line wrap: on
line diff
--- a/Debug/cli/cli.c	Fri Oct 09 22:28:31 2015 -0700
+++ b/Debug/cli/cli.c	Sun Oct 11 22:07:11 2015 -0700
@@ -21,14 +21,12 @@
 
 // ----- Includes -----
 
-// Compiler Includes
-//#include <stdarg.h>
-
 // Project Includes
 #include <buildvars.h>
 #include "cli.h"
 #include <led.h>
 #include <print.h>
+#include <kll_defs.h>
 
 
 
@@ -517,6 +515,14 @@
 
 void cliFunc_reload( char* args )
 {
+	if ( flashModeEnabled_define == 0 )
+	{
+		print( NL );
+		warn_print("flashModeEnabled not set, cancelling firmware reload...");
+		info_msg("Set flashModeEnabled to 1 in your kll configuration.");
+		return;
+	}
+
 	// Request to output module to be set into firmware reload mode
 	Output_firmwareReload();
 }
--- a/Macro/PartialMap/macro.c	Fri Oct 09 22:28:31 2015 -0700
+++ b/Macro/PartialMap/macro.c	Sun Oct 11 22:07:11 2015 -0700
@@ -1378,6 +1378,19 @@
 			printHex( argSet[2] );
 			print( "..." NL );
 
+			// Make sure this isn't the reload capability
+			// If it is, and the remote reflash define is not set, ignore
+			if ( flashModeEnabled_define == 0 ) for ( uint32_t cap = 0; cap < CapabilitiesNum; cap++ )
+			{
+				if ( CapabilitiesList[ cap ].func == (const void*)Output_flashMode_capability )
+				{
+					print( NL );
+					warn_print("flashModeEnabled not set, cancelling firmware reload...");
+					info_msg("Set flashModeEnabled to 1 in your kll configuration.");
+					return;
+				}
+			}
+
 			void (*capability)(uint8_t, uint8_t, uint8_t*) = (void(*)(uint8_t, uint8_t, uint8_t*))(CapabilitiesList[ cap ].func);
 			capability( argSet[0], argSet[1], &argSet[2] );
 		}
--- a/Output/pjrcUSB/arm/usb_dev.c	Fri Oct 09 22:28:31 2015 -0700
+++ b/Output/pjrcUSB/arm/usb_dev.c	Sun Oct 11 22:07:11 2015 -0700
@@ -911,40 +911,9 @@
 
 void usb_device_reload()
 {
-	if ( flashModeEnabled_define == 0 )
-	{
-		print( NL );
-		warn_print("flashModeEnabled not set, cancelling firmware reload...");
-		info_msg("Set flashModeEnabled to 1 in your kll configuration.");
-		return;
-	}
-
 // MCHCK
-#if defined(_mk20dx128vlf5_)
-
-	// MCHCK Kiibohd Variant
-	// Check to see if PTA3 (has a pull-up) is connected to GND (usually via jumper)
-	// Only allow reload if the jumper is present (security)
-	GPIOA_PDDR &= ~(1<<3); // Input
-	PORTA_PCR3 = PORT_PCR_PFE | PORT_PCR_MUX(1); // Internal pull-up
-
-	// Check for jumper
-	if ( GPIOA_PDIR & (1<<3) && flashModeEnabled_define != 0 )
-	{
-		print( NL );
-		warn_print("Security jumper not present, cancelling firmware reload...");
-		info_msg("Replace jumper on middle 2 pins, or manually press the firmware reload button.");
-	}
-	else
-	{
-		// Copies variable into the VBAT register, must be identical to the variable in the bootloader to jump to the bootloader flash mode
-		for ( int pos = 0; pos < sizeof(sys_reset_to_loader_magic); pos++ )
-			(&VBAT)[ pos ] = sys_reset_to_loader_magic[ pos ];
-		SOFTWARE_RESET();
-	}
-
 // Kiibohd mk20dx256vlh7
-#elif defined(_mk20dx256vlh7_)
+#if defined(_mk20dx128vlf5_) || defined(_mk20dx256vlh7_)
 	// Copies variable into the VBAT register, must be identical to the variable in the bootloader to jump to the bootloader flash mode
 	for ( int pos = 0; pos < sizeof(sys_reset_to_loader_magic); pos++ )
 		(&VBAT)[ pos ] = sys_reset_to_loader_magic[ pos ];
--- a/Output/pjrcUSB/output_com.c	Fri Oct 09 22:28:31 2015 -0700
+++ b/Output/pjrcUSB/output_com.c	Sun Oct 11 22:07:11 2015 -0700
@@ -489,7 +489,7 @@
 	// Display capability name
 	if ( stateType == 0xFF && state == 0xFF )
 	{
-		print("Output_flashMode(usbCode)");
+		print("Output_flashMode()");
 		return;
 	}
 
--- a/Output/usbMuxUart/output_com.c	Fri Oct 09 22:28:31 2015 -0700
+++ b/Output/usbMuxUart/output_com.c	Sun Oct 11 22:07:11 2015 -0700
@@ -495,7 +495,7 @@
 	// Display capability name
 	if ( stateType == 0xFF && state == 0xFF )
 	{
-		print("Output_flashMode(usbCode)");
+		print("Output_flashMode()");
 		return;
 	}