Mercurial > louis > kiibohd-controller
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; }