~ruther/qmk_firmware

50cb8a3bf5ec3b6229af882e6a1367d4aedd3f53 — Joel Challis 2 years ago 2c19e5d
Remove bootloader logic from `mcu_selection.mk` (#20150)

* Remove bootloader logic from mcu_selection.mk

* Move MCU/BOOTLOADER to info.json
M keyboards/doio/kb16/rev2/info.json => keyboards/doio/kb16/rev2/info.json +2 -0
@@ 20,6 20,8 @@
            {"pin_a": "A3", "pin_b": "A4"}
        ]
    },
    "processor": "STM32F103",
    "bootloader": "stm32duino",
    "layouts": {
        "LAYOUT": {
            "layout": [

M keyboards/doio/kb16/rev2/rules.mk => keyboards/doio/kb16/rev2/rules.mk +2 -12
@@ 1,18 1,8 @@
SRC += ./lib/layer_status/layer_status.c
SRC += ./lib/logo.c

# MCU name
MCU = STM32F103

# Bootloader selection
# Cannot use `BOOTLOADER = stm32duino` due to the need to override
# `MCU_LDSCRIPT`, therefore all parameters need to be specified here manually.
OPT_DEFS += -DBOOTLOADER_STM32DUINO
MCU_LDSCRIPT = STM32F103xB_stm32duino_bootloader
BOARD = STM32_F103_STM32DUINO
BOOTLOADER_TYPE = stm32duino
DFU_ARGS = -d 1EAF:0003 -a 2 -R
DFU_SUFFIX_ARGS = -v 1EAF -p 0003
# Configure for 128K flash
MCU_LDSCRIPT = STM32F103xB

# Build Options
#   change yes to no to disable

M keyboards/phage_studio/pila87/info.json => keyboards/phage_studio/pila87/info.json +2 -0
@@ 8,6 8,8 @@
        "pid": "0x5887",
        "device_version": "0.0.1"
    },
    "processor": "STM32F103",
    "bootloader": "stm32duino",
    "matrix_pins": {
        "cols": ["B5", "B4", "B6", "C0", "C1", "C2", "C3", "B7", "B3", "D2", "C12", "C11", "C10", "A15", "C15", "C13", "A3"],
        "rows": ["A1", "A2", "A10", "A9", "A8", "C9"]

M keyboards/phage_studio/pila87/rules.mk => keyboards/phage_studio/pila87/rules.mk +2 -12
@@ 1,15 1,5 @@
# MCU name
MCU = STM32F103

# Bootloader selection
# Cannot use `BOOTLOADER = stm32duino` due to the need to override
# `MCU_LDSCRIPT`, therefore all parameters need to be specified here manually.
OPT_DEFS += -DBOOTLOADER_STM32DUINO
MCU_LDSCRIPT = STM32F103xB_stm32duino_bootloader
BOARD = STM32_F103_STM32DUINO
BOOTLOADER_TYPE = stm32duino
DFU_ARGS = -d 1EAF:0003 -a 2 -R
DFU_SUFFIX_ARGS = -v 1EAF -p 0003
# Configure for 128K flash
MCU_LDSCRIPT = STM32F103xB

# Build Options
#   change yes to no to disable

M keyboards/rocketboard_16/info.json => keyboards/rocketboard_16/info.json +2 -0
@@ 8,6 8,8 @@
        "pid": "0xFF16",
        "device_version": "0.0.1"
    },
    "processor": "STM32F103",
    "bootloader": "stm32duino",
    "matrix_pins": {
        "cols": ["B8", "B9", "B10", "B11"],
        "rows": ["A9", "B13", "B14", "B15", "B3"]

M keyboards/rocketboard_16/rules.mk => keyboards/rocketboard_16/rules.mk +2 -13
@@ 1,16 1,5 @@
# MCU name
MCU = STM32F103

# Bootloader selection
# BOOTLOADER = stm32duino

# Custom loader configuration
MCU_LDSCRIPT = STM32F103xB_stm32duino_bootloader
OPT_DEFS += -DBOOTLOADER_STM32DUINO
BOARD = STM32_F103_STM32DUINO
BOOTLOADER_TYPE = stm32duino
DFU_ARGS = -d 1EAF:0003 -a 2 -R
DFU_SUFFIX_ARGS = -v 1EAF -p 0003
# Configure for 128K flash
MCU_LDSCRIPT = STM32F103xB

# Extra include
SRC += keycode_lookup.c

R platforms/chibios/boards/STM32_F103_STM32DUINO/ld/STM32F103x6_stm32duino_bootloader.ld => platforms/chibios/boards/STM32_F103_STM32DUINO/ld/STM32F103x6_stm32duino.ld +0 -0
R platforms/chibios/boards/STM32_F103_STM32DUINO/ld/STM32F103x8_stm32duino_bootloader.ld => platforms/chibios/boards/STM32_F103_STM32DUINO/ld/STM32F103x8_stm32duino.ld +0 -0
R platforms/chibios/boards/STM32_F103_STM32DUINO/ld/STM32F103xB_stm32duino_bootloader.ld => platforms/chibios/boards/STM32_F103_STM32DUINO/ld/STM32F103xB_stm32duino.ld +0 -0
A platforms/chibios/boards/common/ld/STM32F103x8_uf2boot.ld => platforms/chibios/boards/common/ld/STM32F103x8_uf2boot.ld +88 -0
@@ 0,0 1,88 @@
/*
    ChibiOS - Copyright (C) 2006..2018 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.
*/

/*
 * ST32F103x8 memory setup.
 */
MEMORY
{
    flash0 (rx) : org = 0x08000000 + 16K, len = 64k - 16K
    flash1 (rx) : org = 0x00000000, len = 0
    flash2 (rx) : org = 0x00000000, len = 0
    flash3 (rx) : org = 0x00000000, len = 0
    flash4 (rx) : org = 0x00000000, len = 0
    flash5 (rx) : org = 0x00000000, len = 0
    flash6 (rx) : org = 0x00000000, len = 0
    flash7 (rx) : org = 0x00000000, len = 0
    ram0   (wx) : org = 0x20000000, len = 20k
    ram1   (wx) : org = 0x00000000, len = 0
    ram2   (wx) : org = 0x00000000, len = 0
    ram3   (wx) : org = 0x00000000, len = 0
    ram4   (wx) : org = 0x00000000, len = 0
    ram5   (wx) : org = 0x00000000, len = 0
    ram6   (wx) : org = 0x00000000, len = 0
    ram7   (wx) : org = 0x00000000, len = 0
}

/* For each data/text section two region are defined, a virtual region
   and a load region (_LMA suffix).*/

/* Flash region to be used for exception vectors.*/
REGION_ALIAS("VECTORS_FLASH", flash0);
REGION_ALIAS("VECTORS_FLASH_LMA", flash0);

/* Flash region to be used for constructors and destructors.*/
REGION_ALIAS("XTORS_FLASH", flash0);
REGION_ALIAS("XTORS_FLASH_LMA", flash0);

/* Flash region to be used for code text.*/
REGION_ALIAS("TEXT_FLASH", flash0);
REGION_ALIAS("TEXT_FLASH_LMA", flash0);

/* Flash region to be used for read only data.*/
REGION_ALIAS("RODATA_FLASH", flash0);
REGION_ALIAS("RODATA_FLASH_LMA", flash0);

/* Flash region to be used for various.*/
REGION_ALIAS("VARIOUS_FLASH", flash0);
REGION_ALIAS("VARIOUS_FLASH_LMA", flash0);

/* Flash region to be used for RAM(n) initialization data.*/
REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0);

/* RAM region to be used for Main stack. This stack accommodates the processing
   of all exceptions and interrupts.*/
REGION_ALIAS("MAIN_STACK_RAM", ram0);

/* RAM region to be used for the process stack. This is the stack used by
   the main() function.*/
REGION_ALIAS("PROCESS_STACK_RAM", ram0);

/* RAM region to be used for data segment.*/
REGION_ALIAS("DATA_RAM", ram0);
REGION_ALIAS("DATA_RAM_LMA", flash0);

/* RAM region to be used for BSS segment.*/
REGION_ALIAS("BSS_RAM", ram0);

/* RAM region to be used for the default heap.*/
REGION_ALIAS("HEAP_RAM", ram0);

/* Generic rules inclusion.*/
INCLUDE rules.ld

/* Bootloader reset support */
_board_magic_reg = ORIGIN(ram0) + 16k; /* this is based off the code within backup.c */

M platforms/chibios/bootloader.mk => platforms/chibios/bootloader.mk +0 -1
@@ 93,7 93,6 @@ ifeq ($(strip $(BOOTLOADER)), kiibohd)
endif
ifeq ($(strip $(BOOTLOADER)), stm32duino)
    OPT_DEFS += -DBOOTLOADER_STM32DUINO
    MCU_LDSCRIPT = STM32F103x8_stm32duino_bootloader
    BOARD = STM32_F103_STM32DUINO
    BOOTLOADER_TYPE = stm32duino


M platforms/chibios/mcu_selection.mk => platforms/chibios/mcu_selection.mk +4 -20
@@ 273,11 273,7 @@ ifneq ($(findstring STM32F103, $(MCU)),)
  # Linker script to use
  # - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
  #   or <keyboard_dir>/ld/
  ifeq ($(strip $(BOOTLOADER)), uf2boot)
    MCU_LDSCRIPT ?= STM32F103xB_uf2boot
  else
    MCU_LDSCRIPT ?= STM32F103x8
  endif
  MCU_LDSCRIPT ?= STM32F103x8

  # Startup code to use
  #  - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/


@@ 311,11 307,7 @@ ifneq ($(findstring STM32F303, $(MCU)),)
  # Linker script to use
  # - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
  #   or <keyboard_dir>/ld/
  ifeq ($(strip $(BOOTLOADER)), tinyuf2)
    MCU_LDSCRIPT ?= STM32F303xC_tinyuf2
  else
    MCU_LDSCRIPT ?= STM32F303xC
  endif
  MCU_LDSCRIPT ?= STM32F303xC

  # Startup code to use
  #  - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/


@@ 352,11 344,7 @@ ifneq ($(findstring STM32F401, $(MCU)),)
  # Linker script to use
  # - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
  #   or <keyboard_dir>/ld/
  ifeq ($(strip $(BOOTLOADER)), tinyuf2)
    MCU_LDSCRIPT ?= STM32F401xC_tinyuf2
  else
    MCU_LDSCRIPT ?= STM32F401xC
  endif
  MCU_LDSCRIPT ?= STM32F401xC

  # Startup code to use
  #  - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/


@@ 471,11 459,7 @@ ifneq ($(findstring STM32F411, $(MCU)),)
  # Linker script to use
  # - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
  #   or <keyboard_dir>/ld/
  ifeq ($(strip $(BOOTLOADER)), tinyuf2)
    MCU_LDSCRIPT ?= STM32F411xE_tinyuf2
  else
    MCU_LDSCRIPT ?= STM32F411xE
  endif
  MCU_LDSCRIPT ?= STM32F411xE

  # Startup code to use
  #  - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/

M platforms/chibios/platform.mk => platforms/chibios/platform.mk +5 -0
@@ 235,6 235,11 @@ else ifneq ("$(wildcard $(KEYBOARD_PATH_2)/ld/$(MCU_LDSCRIPT).ld)","")
    LDSCRIPT = $(KEYBOARD_PATH_2)/ld/$(MCU_LDSCRIPT).ld
else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/ld/$(MCU_LDSCRIPT).ld)","")
    LDSCRIPT = $(KEYBOARD_PATH_1)/ld/$(MCU_LDSCRIPT).ld
else ifneq ("$(wildcard $(TOP_DIR)/platforms/chibios/boards/$(BOARD)/ld/$(MCU_LDSCRIPT)_$(BOOTLOADER).ld)","")
    LDFLAGS += -L$(TOP_DIR)/platforms/chibios/boards/$(BOARD)/ld
    LDSCRIPT = $(TOP_DIR)/platforms/chibios/boards/$(BOARD)/ld/$(MCU_LDSCRIPT)_$(BOOTLOADER).ld
else ifneq ("$(wildcard $(TOP_DIR)/platforms/chibios/boards/common/ld/$(MCU_LDSCRIPT)_$(BOOTLOADER).ld)","")
    LDSCRIPT = $(TOP_DIR)/platforms/chibios/boards/common/ld/$(MCU_LDSCRIPT)_$(BOOTLOADER).ld
else ifneq ("$(wildcard $(TOP_DIR)/platforms/chibios/boards/$(BOARD)/ld/$(MCU_LDSCRIPT).ld)","")
    LDFLAGS += -L$(TOP_DIR)/platforms/chibios/boards/$(BOARD)/ld
    LDSCRIPT = $(TOP_DIR)/platforms/chibios/boards/$(BOARD)/ld/$(MCU_LDSCRIPT).ld