# HG changeset patch # User Jacob Alexander # Date 1444626431 25200 # Node ID d8f61e15aca1ebf32c6367ef2aa1181320036732 # Parent 82ce1988fefe6b0ad829de3a6f761fdac3ecadf5 Adding jump to bootloader key - Now enabled by default - Added protection around remote jumps diff -r 82ce1988fefe -r d8f61e15aca1 Debug/cli/cli.c --- 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 - // Project Includes #include #include "cli.h" #include #include +#include @@ -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(); } diff -r 82ce1988fefe -r d8f61e15aca1 Macro/PartialMap/macro.c --- 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] ); } diff -r 82ce1988fefe -r d8f61e15aca1 Output/pjrcUSB/arm/usb_dev.c --- 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 ]; diff -r 82ce1988fefe -r d8f61e15aca1 Output/pjrcUSB/output_com.c --- 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; } diff -r 82ce1988fefe -r d8f61e15aca1 Output/usbMuxUart/output_com.c --- 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; }