Fixup bootloaders. (#16256)

This commit is contained in:
Nick Brassel 2022-02-07 14:09:21 +11:00 committed by GitHub
parent 53a7306682
commit a86d6fffc9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 70 additions and 0 deletions

View file

@ -0,0 +1,8 @@
// Copyright 2022 Nick Brassel (@tzarc)
// SPDX-License-Identifier: GPL-2.0-or-later
#include "1861st.h"
void bootloader_jump(void) {
// TODO: Work out how to jump to LDROM, for now just reset the board.
NVIC_SystemReset();
}

View file

@ -1,6 +1,9 @@
MCU_FAMILY = NUMICRO MCU_FAMILY = NUMICRO
MCU_SERIES = NUC123 MCU_SERIES = NUC123
# Bootloader selection
BOOTLOADER = custom
# linker script to use # linker script to use
MCU_LDSCRIPT = NUC123xD4xx0 MCU_LDSCRIPT = NUC123xD4xx0

View file

@ -16,6 +16,11 @@ void board_init(void) {
AFIO->MAPR |= AFIO_MAPR_SWJ_CFG_JTAGDISABLE; AFIO->MAPR |= AFIO_MAPR_SWJ_CFG_JTAGDISABLE;
} }
void bootloader_jump(void) {
// This board doesn't use the "standard" stm32duino bootloader, and is resident in memory at the base location. All we can do here is reset.
NVIC_SystemReset();
}
void matrix_init_kb(void) void matrix_init_kb(void)
{ {
// Init LED Ports // Init LED Ports

View file

@ -3,6 +3,9 @@ MCU = STM32F103
MCU_LDSCRIPT = stm32f103_bootloader MCU_LDSCRIPT = stm32f103_bootloader
BOARD = ST_NUCLEO64_F103RB BOARD = ST_NUCLEO64_F103RB
# Bootloader selection
BOOTLOADER = custom
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
MOUSEKEY_ENABLE = no # Mouse keys MOUSEKEY_ENABLE = no # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control EXTRAKEY_ENABLE = yes # Audio control and System control

View file

@ -20,3 +20,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
void board_init(void) { void board_init(void) {
AFIO->MAPR |= AFIO_MAPR_SWJ_CFG_JTAGDISABLE; AFIO->MAPR |= AFIO_MAPR_SWJ_CFG_JTAGDISABLE;
} }
void bootloader_jump(void) {
// This board doesn't use the "standard" stm32duino bootloader. There's no information on how to jump to the custom bootloader, so all we can do here is reset.
NVIC_SystemReset();
}

View file

@ -4,6 +4,9 @@ MCU = STM32F103
MCU_LDSCRIPT = jm60_bootloader MCU_LDSCRIPT = jm60_bootloader
BOARD = ST_NUCLEO64_F103RB BOARD = ST_NUCLEO64_F103RB
# Bootloader selection
BOOTLOADER = custom
# Build Options # Build Options
# change yes to no to disable # change yes to no to disable
# #

View file

@ -97,3 +97,8 @@ void shutdown_user(void)
// set the magic number for resetting to the bootloader // set the magic number for resetting to the bootloader
*(uint32_t *)(&(RTCD1.rtc->BKP0R)) = REBOOT_MAGIC; *(uint32_t *)(&(RTCD1.rtc->BKP0R)) = REBOOT_MAGIC;
} }
void bootloader_jump(void) {
shutdown_user();
NVIC_SystemReset();
}

View file

@ -25,6 +25,9 @@ ARMV = 7
USE_FPU = yes USE_FPU = yes
# Bootloader selection
BOOTLOADER = custom
# Build Options # Build Options
# change yes to no to disable # change yes to no to disable
# #

View file

@ -20,6 +20,11 @@ void board_init(void) {
writePinLow(A8); writePinLow(A8);
} }
void bootloader_jump(void) {
// This board doesn't use the standard DFU bootloader, and no information is available regarding how to enter bootloader mode. All we can do here is reset.
NVIC_SystemReset();
}
void keyboard_post_init_kb(void) { void keyboard_post_init_kb(void) {
rgblight_enable_noeeprom(); rgblight_enable_noeeprom();
rgblight_sethsv_noeeprom(5, 255, 255); rgblight_sethsv_noeeprom(5, 255, 255);

View file

@ -5,6 +5,9 @@ MCU_LDSCRIPT = m12og_v1
BOARD = m12og_v1 BOARD = m12og_v1
# Bootloader selection
BOOTLOADER = custom
# Build Options # Build Options
# change yes to no to disable # change yes to no to disable
# #

View file

@ -59,3 +59,8 @@ void shutdown_user(void)
// set the magic number for resetting to the bootloader // set the magic number for resetting to the bootloader
*(uint32_t *)(&(RTCD1.rtc->BKP0R)) = REBOOT_MAGIC; *(uint32_t *)(&(RTCD1.rtc->BKP0R)) = REBOOT_MAGIC;
} }
void bootloader_jump(void) {
shutdown_user();
NVIC_SystemReset();
}

View file

@ -10,6 +10,9 @@ MCU_LDSCRIPT = m20add_boot
# or <this_dir>/boards # or <this_dir>/boards
BOARD = ST_NUCLEO64_F411RE BOARD = ST_NUCLEO64_F411RE
# Bootloader selection
BOOTLOADER = custom
# Build Options # Build Options
# change yes to no to disable # change yes to no to disable
# #

View file

@ -4,6 +4,11 @@
#include "noah.h" #include "noah.h"
void bootloader_jump(void) {
// This board doesn't use the standard DFU bootloader, and no information is available regarding how to enter bootloader mode. All we can do here is reset.
NVIC_SystemReset();
}
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE
#include <string.h> #include <string.h>
#include "rgblight.h" #include "rgblight.h"

View file

@ -10,6 +10,9 @@ MCU_LDSCRIPT = noah_boot
# or <this_dir>/boards # or <this_dir>/boards
BOARD = ST_NUCLEO64_F411RE BOARD = ST_NUCLEO64_F411RE
# Bootloader selection
BOOTLOADER = custom
# Build Options # Build Options
# change yes to no to disable # change yes to no to disable
# #

View file

@ -5,6 +5,9 @@ MCU = STM32F103
MCU_LDSCRIPT = wm1_f103 MCU_LDSCRIPT = wm1_f103
BOARD = STM32_F103_STM32DUINO BOARD = STM32_F103_STM32DUINO
# Bootloader selection
BOOTLOADER = custom
PROGRAM_CMD = echo 'CLI flashing not supported' >&2 PROGRAM_CMD = echo 'CLI flashing not supported' >&2
# Build Options # Build Options

View file

@ -1,5 +1,10 @@
#include "wm1.h" #include "wm1.h"
void bootloader_jump(void) {
// This board doesn't use the "standard" stm32duino bootloader, and no information is available regarding how to enter bootloader mode. All we can do here is reset.
NVIC_SystemReset();
}
void matrix_init_kb(void) { void matrix_init_kb(void) {
setPinOutput(B1); // Top Indicator LED setPinOutput(B1); // Top Indicator LED
setPinOutput(B0); // Middle Indicator LED setPinOutput(B0); // Middle Indicator LED

View file

@ -3,6 +3,9 @@ MCU = STM32F072
BOARD = ST_STM32F072B_DISCOVERY BOARD = ST_STM32F072B_DISCOVERY
MCU_LDSCRIPT = STM32F072_0x2000_bootloader MCU_LDSCRIPT = STM32F072_0x2000_bootloader
# Bootloader selection
BOOTLOADER = custom
DFU_ARGS = -d 0483:df11 -a 0 -s 0x08002000:leave DFU_ARGS = -d 0483:df11 -a 0 -s 0x08002000:leave
DFU_SUFFIX_ARGS = -v 0483 -p DF11 DFU_SUFFIX_ARGS = -v 0483 -p DF11