* Initial work for consolidation of board files and default ChibiOS configs. * Migrate F401/F411 black pills for testing. * Add early init bootloader jump flag. * Add support for I2C in order to use i2c_scanner keymap. * Add F401/F411 HSE bypass to get things booting. * Exempt "hooked" ChibiOS conf files from updater script. * Fix up ordering for bootloader_defs file check. * Match previous $(KEYBOARD_PATHS) value for Proton-C, updated for all board configs.
		
			
				
	
	
		
			60 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|     ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
 | |
| 
 | |
|     Licensed under the Apache License, Version 2.0 (the "License");
 | |
|     you may not use this file except in compliance with the License.
 | |
|     You may obtain a copy of the License at
 | |
| 
 | |
|         http://www.apache.org/licenses/LICENSE-2.0
 | |
| 
 | |
|     Unless required by applicable law or agreed to in writing, software
 | |
|     distributed under the License is distributed on an "AS IS" BASIS,
 | |
|     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | |
|     See the License for the specific language governing permissions and
 | |
|     limitations under the License.
 | |
| */
 | |
| 
 | |
| #include "hal.h"
 | |
| 
 | |
| // Value to place in RTC backup register 10 for persistent bootloader mode
 | |
| #define RTC_BOOTLOADER_FLAG 0x424C
 | |
| 
 | |
| /**
 | |
|  * @brief   PAL setup.
 | |
|  * @details Digital I/O ports static configuration as defined in @p board.h.
 | |
|  *          This variable is used by the HAL when initializing the PAL driver.
 | |
|  */
 | |
| #if HAL_USE_PAL || defined(__DOXYGEN__)
 | |
| const PALConfig pal_default_config =
 | |
| {
 | |
|   {VAL_GPIOAODR, VAL_GPIOACRL, VAL_GPIOACRH},
 | |
|   {VAL_GPIOBODR, VAL_GPIOBCRL, VAL_GPIOBCRH},
 | |
|   {VAL_GPIOCODR, VAL_GPIOCCRL, VAL_GPIOCCRH},
 | |
|   {VAL_GPIODODR, VAL_GPIODCRL, VAL_GPIODCRH},
 | |
|   {VAL_GPIOEODR, VAL_GPIOECRL, VAL_GPIOECRH},
 | |
| };
 | |
| #endif
 | |
| 
 | |
| __attribute__((weak)) void enter_bootloader_mode_if_requested(void) {}
 | |
| 
 | |
| /*
 | |
|  * Early initialization code.
 | |
|  * This initialization must be performed just after stack setup and before
 | |
|  * any other initialization.
 | |
|  */
 | |
| void __early_init(void) {
 | |
|   enter_bootloader_mode_if_requested();
 | |
| 
 | |
|   stm32_clock_init();
 | |
| }
 | |
| 
 | |
| /*
 | |
|  * Board-specific initialization code.
 | |
|  */
 | |
| void boardInit(void) {
 | |
|    //JTAG-DP Disabled and SW-DP Enabled
 | |
|    AFIO->MAPR |= AFIO_MAPR_SWJ_CFG_JTAGDISABLE;
 | |
|    //Set backup register DR10 to enter bootloader on reset
 | |
|    BKP->DR10 = RTC_BOOTLOADER_FLAG;
 | |
| }
 |