~ruther/qmk_firmware

43fd6471305d3ebd9e6cb537d4d39c71e480922e — Joel Challis 3 years ago 1c47bd0
Add eeprom defaults for tinyuf2 bootloader (#18042)

21 files changed, 5 insertions(+), 574 deletions(-)

M builddefs/bootloader.mk
M builddefs/mcu_selection.mk
M keyboards/mechwild/puckbuddy/config.h
D keyboards/mechwild/puckbuddy/ld/STM32F401xE.ld
D keyboards/mechwild/puckbuddy/post_rules.mk
M keyboards/mlego/m48/rev1/config.h
D keyboards/mlego/m48/rev1/ld/STM32F401xE.ld
M keyboards/mlego/m48/rev1/rules.mk
M keyboards/mlego/m60/rev1/config.h
D keyboards/mlego/m60/rev1/ld/STM32F401xE.ld
M keyboards/mlego/m60/rev1/rules.mk
M keyboards/mlego/m60_split/rev1/config.h
D keyboards/mlego/m60_split/rev1/ld/STM32F401xE.ld
M keyboards/mlego/m60_split/rev1/rules.mk
M keyboards/mlego/m65/rev3/config.h
D keyboards/mlego/m65/rev3/ld/STM32F401xE.ld
M keyboards/mlego/m65/rev3/rules.mk
M keyboards/mlego/m65/rev4/config.h
D keyboards/mlego/m65/rev4/ld/STM32F401xE.ld
M keyboards/mlego/m65/rev4/rules.mk
M platforms/chibios/converters/promicro_to_stemcell/converter.mk
M builddefs/bootloader.mk => builddefs/bootloader.mk +1 -0
@@ 199,6 199,7 @@ endif
ifeq ($(strip $(BOOTLOADER)), tinyuf2)
    OPT_DEFS += -DBOOTLOADER_TINYUF2
    BOOTLOADER_TYPE = tinyuf2
    FIRMWARE_FORMAT = uf2
endif
ifeq ($(strip $(BOOTLOADER)), rp2040)
    OPT_DEFS += -DBOOTLOADER_RP2040

M builddefs/mcu_selection.mk => builddefs/mcu_selection.mk +4 -2
@@ 348,7 348,8 @@ ifneq ($(findstring STM32F401, $(MCU)),)
  #   or <keyboard_dir>/ld/
  ifeq ($(strip $(BOOTLOADER)), tinyuf2)
    MCU_LDSCRIPT ?= STM32F401xC_tinyuf2
    FIRMWARE_FORMAT ?= uf2
    EEPROM_DRIVER ?= wear_leveling
    WEAR_LEVELING_DRIVER ?= legacy
  else
    MCU_LDSCRIPT ?= STM32F401xC
  endif


@@ 464,7 465,8 @@ ifneq ($(findstring STM32F411, $(MCU)),)
  #   or <keyboard_dir>/ld/
  ifeq ($(strip $(BOOTLOADER)), tinyuf2)
    MCU_LDSCRIPT ?= STM32F411xE_tinyuf2
    FIRMWARE_FORMAT ?= uf2
    EEPROM_DRIVER ?= wear_leveling
    WEAR_LEVELING_DRIVER ?= legacy
  else
    MCU_LDSCRIPT ?= STM32F411xE
  endif

M keyboards/mechwild/puckbuddy/config.h => keyboards/mechwild/puckbuddy/config.h +0 -8
@@ 9,14 9,6 @@
#define MATRIX_ROWS 4
#define MATRIX_COLS 4

#ifdef UF2_BUILD
#define EXTERNAL_EEPROM_BYTE_COUNT 2048
#define EXTERNAL_EEPROM_PAGE_SIZE 128
#define EXTERNAL_EEPROM_ADDRESS_SIZE 1
#define EXTERNAL_EEPROM_WRITE_TIME 0
#define FEE_PAGE_BASE_ADDRESS 0x08008000
#endif

/* Define custom font */
#define OLED_FONT_H "keyboards/mechwild/puckbuddy/glcdfont.c"


D keyboards/mechwild/puckbuddy/ld/STM32F401xE.ld => keyboards/mechwild/puckbuddy/ld/STM32F401xE.ld +0 -88
@@ 1,88 0,0 @@
/*
    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.
*/

/*
 * STM32F401xE memory setup.
 */
MEMORY
{
    flash0 (rx) : org = 0x08000000, len = 16k /* tinyuf2 bootloader requires app to be located at 64k offset for this MCU */
    flash1 (rx) : org = 0x08004000, len = 16k
    flash2 (rx) : org = 0x08008000, len = 16k /* emulated eeprom */
    flash3 (rx) : org = 0x0800C000, len = 16k
    flash4 (rx) : org = 0x08010000, len = 512k - 64k
    flash5 (rx) : org = 0x00000000, len = 0
    flash6 (rx) : org = 0x00000000, len = 0
    flash7 (rx) : org = 0x00000000, len = 0
    ram0   (wx) : org = 0x20000000, len = 96k
    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", flash4);
REGION_ALIAS("VECTORS_FLASH_LMA", flash4);

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

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

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

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

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

/* 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", flash4);

/* 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

/* TinyUF2 bootloader reset support */
_board_dfu_dbl_tap = ORIGIN(ram0) + 64k - 4; /* this is based off the linker file for tinyuf2 */

D keyboards/mechwild/puckbuddy/post_rules.mk => keyboards/mechwild/puckbuddy/post_rules.mk +0 -7
@@ 1,7 0,0 @@
ifeq ($(strip $(BOOTLOADER)), tinyuf2)
    ifndef EEPROM_DRIVER
        MCU_LDSCRIPT = STM32F401xE
        EEPROM_DRIVER = vendor
        UF2_BUILD = yes
    endif
endif
\ No newline at end of file

M keyboards/mlego/m48/rev1/config.h => keyboards/mlego/m48/rev1/config.h +0 -3
@@ 51,6 51,3 @@
#define RGBLIGHT_EFFECT_TWINKLE

#endif

// you want to comment this if using stm32-dfu as bootloader
#define FEE_PAGE_BASE_ADDRESS 0x08008000

D keyboards/mlego/m48/rev1/ld/STM32F401xE.ld => keyboards/mlego/m48/rev1/ld/STM32F401xE.ld +0 -88
@@ 1,88 0,0 @@
/*
    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.
*/

/*
 * STM32F401xE memory setup.
 */
MEMORY
{
    flash0 (rx) : org = 0x08000000, len = 16k /* tinyuf2 bootloader requires app to be located at 64k offset for this MCU */
    flash1 (rx) : org = 0x08004000, len = 16k
    flash2 (rx) : org = 0x08008000, len = 16k /* emulated eeprom */
    flash3 (rx) : org = 0x0800C000, len = 16k
    flash4 (rx) : org = 0x08010000, len = 512k - 64k
    flash5 (rx) : org = 0x00000000, len = 0
    flash6 (rx) : org = 0x00000000, len = 0
    flash7 (rx) : org = 0x00000000, len = 0
    ram0   (wx) : org = 0x20000000, len = 96k
    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", flash4);
REGION_ALIAS("VECTORS_FLASH_LMA", flash4);

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

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

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

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

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

/* 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", flash4);

/* 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

/* TinyUF2 bootloader reset support */
_board_dfu_dbl_tap = ORIGIN(ram0) + 64k - 4; /* this is based off the linker file for tinyuf2 */

M keyboards/mlego/m48/rev1/rules.mk => keyboards/mlego/m48/rev1/rules.mk +0 -2
@@ 4,8 4,6 @@ BOARD = BLACKPILL_STM32_F401

# Bootloader selection
BOOTLOADER = tinyuf2
MCU_LDSCRIPT = STM32F401xE
EEPROM_DRIVER = vendor
#BOOTLOADER = stm32-dfu

# Build Options

M keyboards/mlego/m60/rev1/config.h => keyboards/mlego/m60/rev1/config.h +0 -3
@@ 51,6 51,3 @@
#define RGBLIGHT_EFFECT_ALTERNATING
#define RGBLIGHT_EFFECT_TWINKLE
#endif

// you want to comment this if using stm32-dfu as bootloader
#define FEE_PAGE_BASE_ADDRESS 0x08008000

D keyboards/mlego/m60/rev1/ld/STM32F401xE.ld => keyboards/mlego/m60/rev1/ld/STM32F401xE.ld +0 -88
@@ 1,88 0,0 @@
/*
    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.
*/

/*
 * STM32F401xE memory setup.
 */
MEMORY
{
    flash0 (rx) : org = 0x08000000, len = 16k /* tinyuf2 bootloader requires app to be located at 64k offset for this MCU */
    flash1 (rx) : org = 0x08004000, len = 16k
    flash2 (rx) : org = 0x08008000, len = 16k /* emulated eeprom */
    flash3 (rx) : org = 0x0800C000, len = 16k
    flash4 (rx) : org = 0x08010000, len = 512k - 64k
    flash5 (rx) : org = 0x00000000, len = 0
    flash6 (rx) : org = 0x00000000, len = 0
    flash7 (rx) : org = 0x00000000, len = 0
    ram0   (wx) : org = 0x20000000, len = 96k
    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", flash4);
REGION_ALIAS("VECTORS_FLASH_LMA", flash4);

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

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

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

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

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

/* 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", flash4);

/* 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

/* TinyUF2 bootloader reset support */
_board_dfu_dbl_tap = ORIGIN(ram0) + 64k - 4; /* this is based off the linker file for tinyuf2 */

M keyboards/mlego/m60/rev1/rules.mk => keyboards/mlego/m60/rev1/rules.mk +0 -2
@@ 5,8 5,6 @@ BOARD = BLACKPILL_STM32_F401
# Bootloader selection
BOOTLOADER = tinyuf2
#BOOTLOADER = stm32-dfu
MCU_LDSCRIPT = STM32F401xE
EEPROM_DRIVER = vendor

# Build Options
#   change yes to no to disable

M keyboards/mlego/m60_split/rev1/config.h => keyboards/mlego/m60_split/rev1/config.h +0 -3
@@ 78,6 78,3 @@
#define BOOTMAGIC_LITE_ROW_RIGHT 5
#define BOOTMAGIC_LITE_COLUMN_RIGHT 0
#endif

// you want to comment this if using stm32-dfu as bootloader
#define FEE_PAGE_BASE_ADDRESS 0x08008000

D keyboards/mlego/m60_split/rev1/ld/STM32F401xE.ld => keyboards/mlego/m60_split/rev1/ld/STM32F401xE.ld +0 -88
@@ 1,88 0,0 @@
/*
    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.
*/

/*
 * STM32F401xE memory setup.
 */
MEMORY
{
    flash0 (rx) : org = 0x08000000, len = 16k /* tinyuf2 bootloader requires app to be located at 64k offset for this MCU */
    flash1 (rx) : org = 0x08004000, len = 16k
    flash2 (rx) : org = 0x08008000, len = 16k /* emulated eeprom */
    flash3 (rx) : org = 0x0800C000, len = 16k
    flash4 (rx) : org = 0x08010000, len = 512k - 64k
    flash5 (rx) : org = 0x00000000, len = 0
    flash6 (rx) : org = 0x00000000, len = 0
    flash7 (rx) : org = 0x00000000, len = 0
    ram0   (wx) : org = 0x20000000, len = 96k
    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", flash4);
REGION_ALIAS("VECTORS_FLASH_LMA", flash4);

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

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

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

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

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

/* 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", flash4);

/* 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

/* TinyUF2 bootloader reset support */
_board_dfu_dbl_tap = ORIGIN(ram0) + 64k - 4; /* this is based off the linker file for tinyuf2 */

M keyboards/mlego/m60_split/rev1/rules.mk => keyboards/mlego/m60_split/rev1/rules.mk +0 -2
@@ 5,8 5,6 @@ BOARD = BLACKPILL_STM32_F401
# Bootloader selection
BOOTLOADER = tinyuf2
#BOOTLOADER = stm32-dfu
MCU_LDSCRIPT = STM32F401xE
EEPROM_DRIVER = vendor

# Build Options
#   change yes to no to disable

M keyboards/mlego/m65/rev3/config.h => keyboards/mlego/m65/rev3/config.h +0 -3
@@ 55,6 55,3 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#endif

// you want to comment this if using stm32-dfu as bootloader
#define FEE_PAGE_BASE_ADDRESS 0x08008000

D keyboards/mlego/m65/rev3/ld/STM32F401xE.ld => keyboards/mlego/m65/rev3/ld/STM32F401xE.ld +0 -88
@@ 1,88 0,0 @@
/*
    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.
*/

/*
 * STM32F401xE memory setup.
 */
MEMORY
{
    flash0 (rx) : org = 0x08000000, len = 16k /* tinyuf2 bootloader requires app to be located at 64k offset for this MCU */
    flash1 (rx) : org = 0x08004000, len = 16k
    flash2 (rx) : org = 0x08008000, len = 16k /* emulated eeprom */
    flash3 (rx) : org = 0x0800C000, len = 16k
    flash4 (rx) : org = 0x08010000, len = 512k - 64k
    flash5 (rx) : org = 0x00000000, len = 0
    flash6 (rx) : org = 0x00000000, len = 0
    flash7 (rx) : org = 0x00000000, len = 0
    ram0   (wx) : org = 0x20000000, len = 96k
    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", flash4);
REGION_ALIAS("VECTORS_FLASH_LMA", flash4);

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

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

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

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

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

/* 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", flash4);

/* 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

/* TinyUF2 bootloader reset support */
_board_dfu_dbl_tap = ORIGIN(ram0) + 64k - 4; /* this is based off the linker file for tinyuf2 */

M keyboards/mlego/m65/rev3/rules.mk => keyboards/mlego/m65/rev3/rules.mk +0 -2
@@ 5,8 5,6 @@ BOARD = BLACKPILL_STM32_F401
# Bootloader selection
BOOTLOADER = tinyuf2
#BOOTLOADER = stm32-dfu
MCU_LDSCRIPT = STM32F401xE
EEPROM_DRIVER = vendor

# Build Options
#   change yes to no to disable

M keyboards/mlego/m65/rev4/config.h => keyboards/mlego/m65/rev4/config.h +0 -3
@@ 64,6 64,3 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define OLED_BRIGHTNESS 128
#define OLED_FONT_H "keyboards/mlego/m65/lib/glcdfont.c"
#endif

// you want to comment this if using stm32-dfu as bootloader
#define FEE_PAGE_BASE_ADDRESS 0x08008000

D keyboards/mlego/m65/rev4/ld/STM32F401xE.ld => keyboards/mlego/m65/rev4/ld/STM32F401xE.ld +0 -88
@@ 1,88 0,0 @@
/*
    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.
*/

/*
 * STM32F401xE memory setup.
 */
MEMORY
{
    flash0 (rx) : org = 0x08000000, len = 16k /* tinyuf2 bootloader requires app to be located at 64k offset for this MCU */
    flash1 (rx) : org = 0x08004000, len = 16k
    flash2 (rx) : org = 0x08008000, len = 16k /* emulated eeprom */
    flash3 (rx) : org = 0x0800C000, len = 16k
    flash4 (rx) : org = 0x08010000, len = 512k - 64k
    flash5 (rx) : org = 0x00000000, len = 0
    flash6 (rx) : org = 0x00000000, len = 0
    flash7 (rx) : org = 0x00000000, len = 0
    ram0   (wx) : org = 0x20000000, len = 96k
    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", flash4);
REGION_ALIAS("VECTORS_FLASH_LMA", flash4);

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

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

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

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

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

/* 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", flash4);

/* 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

/* TinyUF2 bootloader reset support */
_board_dfu_dbl_tap = ORIGIN(ram0) + 64k - 4; /* this is based off the linker file for tinyuf2 */

M keyboards/mlego/m65/rev4/rules.mk => keyboards/mlego/m65/rev4/rules.mk +0 -2
@@ 5,8 5,6 @@ BOARD = BLACKPILL_STM32_F401
# Bootloader selection
BOOTLOADER = tinyuf2
#BOOTLOADER = stm32-dfu
MCU_LDSCRIPT = STM32F401xE
EEPROM_DRIVER = vendor

# Build Options
#   change yes to no to disable

M platforms/chibios/converters/promicro_to_stemcell/converter.mk => platforms/chibios/converters/promicro_to_stemcell/converter.mk +0 -4
@@ 8,10 8,6 @@ BOOTLOADER := tinyuf2
SERIAL_DRIVER ?= usart
WS2812_DRIVER ?= bitbang

EEPROM_DRIVER = wear_leveling
WEAR_LEVELING_DRIVER = legacy


ifeq ($(strip $(STMC_US)), yes)
  OPT_DEFS += -DSTEMCELL_UART_SWAP
endif