From 0be2eaf1745e42fc5ebf19656cef40708ca19b3c Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Thu, 3 Feb 2022 19:22:49 +1100 Subject: Create a build error if no bootloader is specified. (#16181) * Create a build error if no bootloader is specified. * Update builddefs/bootloader.mk Co-authored-by: Ryan Co-authored-by: Ryan --- builddefs/bootloader.mk | 11 ++++++++++- platforms/avr/bootloaders/custom.c | 19 +++++++++++++++++++ platforms/avr/bootloaders/none.c | 19 ------------------- platforms/chibios/bootloaders/custom.c | 21 +++++++++++++++++++++ platforms/chibios/bootloaders/none.c | 23 ----------------------- 5 files changed, 50 insertions(+), 43 deletions(-) create mode 100644 platforms/avr/bootloaders/custom.c delete mode 100644 platforms/avr/bootloaders/none.c create mode 100644 platforms/chibios/bootloaders/custom.c delete mode 100644 platforms/chibios/bootloaders/none.c diff --git a/builddefs/bootloader.mk b/builddefs/bootloader.mk index 470febc346..56ef7ff5d8 100644 --- a/builddefs/bootloader.mk +++ b/builddefs/bootloader.mk @@ -38,9 +38,18 @@ # RISC-V: # gd32v-dfu GD32V USB DFU in ROM # +# If you need to provide your own implementation, you can set inside `rules.mk` +# `BOOTLOADER = custom` -- you'll need to provide your own implementations. See +# the respective file under `platforms//bootloaders/custom.c` to see +# which functions may be overridden. +# # BOOTLOADER_SIZE can still be defined manually, but it's recommended # you add any possible configuration to this list +ifeq ($(strip $(BOOTLOADER)), custom) + OPT_DEFS += -DBOOTLOADER_CUSTOM + BOOTLOADER_TYPE = custom +endif ifeq ($(strip $(BOOTLOADER)), atmel-dfu) OPT_DEFS += -DBOOTLOADER_ATMEL_DFU OPT_DEFS += -DBOOTLOADER_DFU @@ -195,5 +204,5 @@ ifeq ($(strip $(BOOTLOADER)), md-boot) endif ifeq ($(strip $(BOOTLOADER_TYPE)),) - BOOTLOADER_TYPE = none + $(error No bootloader specified. Please set an appropriate 'BOOTLOADER' in your keyboard's 'rules.mk' file) endif diff --git a/platforms/avr/bootloaders/custom.c b/platforms/avr/bootloaders/custom.c new file mode 100644 index 0000000000..624fbe242a --- /dev/null +++ b/platforms/avr/bootloaders/custom.c @@ -0,0 +1,19 @@ +/* Copyright 2021 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "bootloader.h" + +__attribute__((weak)) void bootloader_jump(void) {} diff --git a/platforms/avr/bootloaders/none.c b/platforms/avr/bootloaders/none.c deleted file mode 100644 index 624fbe242a..0000000000 --- a/platforms/avr/bootloaders/none.c +++ /dev/null @@ -1,19 +0,0 @@ -/* Copyright 2021 QMK - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "bootloader.h" - -__attribute__((weak)) void bootloader_jump(void) {} diff --git a/platforms/chibios/bootloaders/custom.c b/platforms/chibios/bootloaders/custom.c new file mode 100644 index 0000000000..bba9fc4637 --- /dev/null +++ b/platforms/chibios/bootloaders/custom.c @@ -0,0 +1,21 @@ +/* Copyright 2021 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "bootloader.h" + +__attribute__((weak)) void bootloader_jump(void) {} + +__attribute__((weak)) void enter_bootloader_mode_if_requested(void) {} diff --git a/platforms/chibios/bootloaders/none.c b/platforms/chibios/bootloaders/none.c deleted file mode 100644 index 8379d35abf..0000000000 --- a/platforms/chibios/bootloaders/none.c +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright 2021 QMK - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "bootloader.h" - -#pragma message "Unknown bootloader set, you may not be able to enter bootloader using software reset" - -__attribute__((weak)) void bootloader_jump(void) {} - -__attribute__((weak)) void enter_bootloader_mode_if_requested(void) {} -- cgit v1.2.3