From d35d3e69364a817f58bc4bc333dd0ac119a2593e Mon Sep 17 00:00:00 2001
From: "Frederic.Pillon" <frederic.pillon@st.com>
Date: Fri, 25 Jan 2019 14:41:13 +0100
Subject: [PATCH 1/4] [GenF1] Rename GenF103 to GenF1

Signed-off-by: Frederic.Pillon <frederic.pillon@st.com>
---
 boards.txt | 140 ++++++++++++++++++++++++++---------------------------
 1 file changed, 70 insertions(+), 70 deletions(-)

diff --git a/boards.txt b/boards.txt
index 06ad85b011..cf152ed43d 100644
--- a/boards.txt
+++ b/boards.txt
@@ -516,44 +516,44 @@ GenF0.menu.upload_method.serialMethod.upload.protocol=maple_serial
 GenF0.menu.upload_method.serialMethod.upload.tool=serial_upload
 
 ################################################################################
-# Generic F103
-GenF103.name=Generic STM32F103 series
+# Generic F1
+GenF1.name=Generic STM32F1 series
 
-GenF103.build.vid=0x0483
-GenF103.build.core=arduino
-GenF103.build.board=GenF103
-GenF103.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial}
+GenF1.build.vid=0x0483
+GenF1.build.core=arduino
+GenF1.build.board=GenF1
+GenF1.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial}
 
 # BLUEPILL_F103C8 board
 # Support: Serial2 (USART2 on PA3, PA2) and Serial3 (USART3 on PB11, PB10)
-GenF103.menu.pnum.BLUEPILL_F103C8=BluePill F103C8
-GenF103.menu.pnum.BLUEPILL_F103C8.upload.maximum_data_size=20480
-GenF103.menu.pnum.BLUEPILL_F103C8.build.mcu=cortex-m3
-GenF103.menu.pnum.BLUEPILL_F103C8.build.board=BLUEPILL_F103C8
-GenF103.menu.pnum.BLUEPILL_F103C8.build.series=STM32F1xx
-GenF103.menu.pnum.BLUEPILL_F103C8.build.product_line=STM32F103xB
-GenF103.menu.pnum.BLUEPILL_F103C8.build.variant=BLUEPILL_F103C8
-GenF103.menu.pnum.BLUEPILL_F103C8.build.cmsis_lib_gcc=arm_cortexM3l_math
-
-GenF103.menu.flash.C8=64k (default)
-GenF103.menu.flash.C8.upload.maximum_size=65536
-GenF103.menu.flash.C8.build.ldscript=ldscript.ld
-GenF103.menu.flash.CB=128k
-GenF103.menu.flash.CB.upload.maximum_size=131072
-GenF103.menu.flash.CB.build.ldscript=ldscript_cb.ld
+GenF1.menu.pnum.BLUEPILL_F103C8=BluePill F103C8
+GenF1.menu.pnum.BLUEPILL_F103C8.upload.maximum_data_size=20480
+GenF1.menu.pnum.BLUEPILL_F103C8.build.mcu=cortex-m3
+GenF1.menu.pnum.BLUEPILL_F103C8.build.board=BLUEPILL_F103C8
+GenF1.menu.pnum.BLUEPILL_F103C8.build.series=STM32F1xx
+GenF1.menu.pnum.BLUEPILL_F103C8.build.product_line=STM32F103xB
+GenF1.menu.pnum.BLUEPILL_F103C8.build.variant=BLUEPILL_F103C8
+GenF1.menu.pnum.BLUEPILL_F103C8.build.cmsis_lib_gcc=arm_cortexM3l_math
+
+GenF1.menu.flash.C8=64k (default)
+GenF1.menu.flash.C8.upload.maximum_size=65536
+GenF1.menu.flash.C8.build.ldscript=ldscript.ld
+GenF1.menu.flash.CB=128k
+GenF1.menu.flash.CB.upload.maximum_size=131072
+GenF1.menu.flash.CB.build.ldscript=ldscript_cb.ld
 
 # Upload menu
-GenF103.menu.upload_method.STLinkMethod=STLink
-GenF103.menu.upload_method.STLinkMethod.upload.protocol=STLink
-GenF103.menu.upload_method.STLinkMethod.upload.tool=stlink_upload
+GenF1.menu.upload_method.STLinkMethod=STLink
+GenF1.menu.upload_method.STLinkMethod.upload.protocol=STLink
+GenF1.menu.upload_method.STLinkMethod.upload.tool=stlink_upload
 
-GenF103.menu.upload_method.serialMethod=Serial
-GenF103.menu.upload_method.serialMethod.upload.protocol=maple_serial
-GenF103.menu.upload_method.serialMethod.upload.tool=serial_upload
+GenF1.menu.upload_method.serialMethod=Serial
+GenF1.menu.upload_method.serialMethod.upload.protocol=maple_serial
+GenF1.menu.upload_method.serialMethod.upload.tool=serial_upload
 
-GenF103.menu.upload_method.bmpMethod=BMP (Black Magic Probe)
-GenF103.menu.upload_method.bmpMethod.upload.protocol=gdb_bmp
-GenF103.menu.upload_method.bmpMethod.upload.tool=bmp_upload
+GenF1.menu.upload_method.bmpMethod=BMP (Black Magic Probe)
+GenF1.menu.upload_method.bmpMethod.upload.protocol=gdb_bmp
+GenF1.menu.upload_method.bmpMethod.upload.tool=bmp_upload
 
 ################################################################################
 # Generic F4
@@ -796,11 +796,11 @@ GenF0.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
 GenF0.menu.xserial.disabled=Disabled (No Serial)
 GenF0.menu.xserial.disabled.build.xSerial=
 
-GenF103.menu.xserial.generic=Enabled with generic Serial
-GenF103.menu.xserial.none=Enabled without generic Serial
-GenF103.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
-GenF103.menu.xserial.disabled=Disabled (No Serial)
-GenF103.menu.xserial.disabled.build.xSerial=
+GenF1.menu.xserial.generic=Enabled with generic Serial
+GenF1.menu.xserial.none=Enabled without generic Serial
+GenF1.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
+GenF1.menu.xserial.disabled=Disabled (No Serial)
+GenF1.menu.xserial.disabled.build.xSerial=
 
 GenF4.menu.xserial.generic=Enabled with generic Serial
 GenF4.menu.xserial.none=Enabled without generic Serial
@@ -869,15 +869,15 @@ Disco.menu.usb.CDCFS.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
 Disco.menu.usb.CDCHS=CDC High Speed
 Disco.menu.usb.CDCHS.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DUSE_USB_HS
 
-GenF103.menu.usb.none=None
-GenF103.menu.usb.HIDFS=HID keyboard and mouse support Full Speed
-GenF103.menu.usb.HIDFS.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE
-GenF103.menu.usb.HIDHS=HID keyboard and mouse support High Speed
-GenF103.menu.usb.HIDHS.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE -DUSE_USB_HS
-GenF103.menu.usb.CDCFS=CDC Full Speed
-GenF103.menu.usb.CDCFS.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
-GenF103.menu.usb.CDCHS=CDC High Speed
-GenF103.menu.usb.CDCHS.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DUSE_USB_HS
+GenF1.menu.usb.none=None
+GenF1.menu.usb.HIDFS=HID keyboard and mouse support Full Speed
+GenF1.menu.usb.HIDFS.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE
+GenF1.menu.usb.HIDHS=HID keyboard and mouse support High Speed
+GenF1.menu.usb.HIDHS.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE -DUSE_USB_HS
+GenF1.menu.usb.CDCFS=CDC Full Speed
+GenF1.menu.usb.CDCFS.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
+GenF1.menu.usb.CDCHS=CDC High Speed
+GenF1.menu.usb.CDCHS.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DUSE_USB_HS
 
 GenF4.menu.usb.none=None
 GenF4.menu.usb.HIDFS=HID keyboard and mouse support Full Speed
@@ -996,23 +996,23 @@ GenF0.menu.opt.o3lto.build.flags.optimize=-O3 -flto
 GenF0.menu.opt.ogstd=Debug (-g)
 GenF0.menu.opt.ogstd.build.flags.optimize=-g -Og
 
-GenF103.menu.opt.osstd=Smallest (-Os default)
-GenF103.menu.opt.oslto=Smallest (-Os) with LTO
-GenF103.menu.opt.oslto.build.flags.optimize=-Os -flto
-GenF103.menu.opt.o1std=Fast (-O1)
-GenF103.menu.opt.o1std.build.flags.optimize=-O1
-GenF103.menu.opt.o1lto=Fast (-O1) with LTO
-GenF103.menu.opt.o1lto.build.flags.optimize=-O1 -flto
-GenF103.menu.opt.o2std=Faster (-O2)
-GenF103.menu.opt.o2std.build.flags.optimize=-O2
-GenF103.menu.opt.o2lto=Faster (-O2) with LTO
-GenF103.menu.opt.o2lto.build.flags.optimize=-O2 -flto
-GenF103.menu.opt.o3std=Fastest (-O3)
-GenF103.menu.opt.o3std.build.flags.optimize=-O3
-GenF103.menu.opt.o3lto=Fastest (-O3) with LTO
-GenF103.menu.opt.o3lto.build.flags.optimize=-O3 -flto
-GenF103.menu.opt.ogstd=Debug (-g)
-GenF103.menu.opt.ogstd.build.flags.optimize=-g -Og
+GenF1.menu.opt.osstd=Smallest (-Os default)
+GenF1.menu.opt.oslto=Smallest (-Os) with LTO
+GenF1.menu.opt.oslto.build.flags.optimize=-Os -flto
+GenF1.menu.opt.o1std=Fast (-O1)
+GenF1.menu.opt.o1std.build.flags.optimize=-O1
+GenF1.menu.opt.o1lto=Fast (-O1) with LTO
+GenF1.menu.opt.o1lto.build.flags.optimize=-O1 -flto
+GenF1.menu.opt.o2std=Faster (-O2)
+GenF1.menu.opt.o2std.build.flags.optimize=-O2
+GenF1.menu.opt.o2lto=Faster (-O2) with LTO
+GenF1.menu.opt.o2lto.build.flags.optimize=-O2 -flto
+GenF1.menu.opt.o3std=Fastest (-O3)
+GenF1.menu.opt.o3std.build.flags.optimize=-O3
+GenF1.menu.opt.o3lto=Fastest (-O3) with LTO
+GenF1.menu.opt.o3lto.build.flags.optimize=-O3 -flto
+GenF1.menu.opt.ogstd=Debug (-g)
+GenF1.menu.opt.ogstd.build.flags.optimize=-g -Og
 
 GenF4.menu.opt.osstd=Smallest (-Os default)
 GenF4.menu.opt.osstd.build.flags.optimize=-Os
@@ -1138,15 +1138,15 @@ GenF0.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float
 GenF0.menu.rtlib.full=Newlib Standard
 GenF0.menu.rtlib.full.build.flags.ldspecs=
 
-GenF103.menu.rtlib.nano=Newlib Nano (default)
-GenF103.menu.rtlib.nanofp=Newlib Nano + Float Printf
-GenF103.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float
-GenF103.menu.rtlib.nanofs=Newlib Nano + Float Scanf
-GenF103.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float
-GenF103.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
-GenF103.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
-GenF103.menu.rtlib.full=Newlib Standard
-GenF103.menu.rtlib.full.build.flags.ldspecs=
+GenF1.menu.rtlib.nano=Newlib Nano (default)
+GenF1.menu.rtlib.nanofp=Newlib Nano + Float Printf
+GenF1.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float
+GenF1.menu.rtlib.nanofs=Newlib Nano + Float Scanf
+GenF1.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float
+GenF1.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
+GenF1.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
+GenF1.menu.rtlib.full=Newlib Standard
+GenF1.menu.rtlib.full.build.flags.ldspecs=
 
 GenF4.menu.rtlib.nano=Newlib Nano (default)
 GenF4.menu.rtlib.nanofp=Newlib Nano + Float Printf

From c8a2417fc581cdd288dbaa9ec33f319590bb4db3 Mon Sep 17 00:00:00 2001
From: "Frederic.Pillon" <frederic.pillon@st.com>
Date: Fri, 25 Jan 2019 14:43:29 +0100
Subject: [PATCH 2/4] [GenF1] Factorize boards definition

Signed-off-by: Frederic.Pillon <frederic.pillon@st.com>
---
 boards.txt | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/boards.txt b/boards.txt
index cf152ed43d..4b848c59a1 100644
--- a/boards.txt
+++ b/boards.txt
@@ -522,18 +522,18 @@ GenF1.name=Generic STM32F1 series
 GenF1.build.vid=0x0483
 GenF1.build.core=arduino
 GenF1.build.board=GenF1
+GenF1.build.mcu=cortex-m3
+GenF1.build.series=STM32F1xx
+GenF1.build.cmsis_lib_gcc=arm_cortexM3l_math
 GenF1.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial}
 
 # BLUEPILL_F103C8 board
 # Support: Serial2 (USART2 on PA3, PA2) and Serial3 (USART3 on PB11, PB10)
 GenF1.menu.pnum.BLUEPILL_F103C8=BluePill F103C8
 GenF1.menu.pnum.BLUEPILL_F103C8.upload.maximum_data_size=20480
-GenF1.menu.pnum.BLUEPILL_F103C8.build.mcu=cortex-m3
 GenF1.menu.pnum.BLUEPILL_F103C8.build.board=BLUEPILL_F103C8
-GenF1.menu.pnum.BLUEPILL_F103C8.build.series=STM32F1xx
 GenF1.menu.pnum.BLUEPILL_F103C8.build.product_line=STM32F103xB
 GenF1.menu.pnum.BLUEPILL_F103C8.build.variant=BLUEPILL_F103C8
-GenF1.menu.pnum.BLUEPILL_F103C8.build.cmsis_lib_gcc=arm_cortexM3l_math
 
 GenF1.menu.flash.C8=64k (default)
 GenF1.menu.flash.C8.upload.maximum_size=65536

From 483421b14cd46bef5998b6f98cc02d8495dd5941 Mon Sep 17 00:00:00 2001
From: "Frederic.Pillon" <frederic.pillon@st.com>
Date: Fri, 25 Jan 2019 14:39:58 +0100
Subject: [PATCH 3/4] [GenF1] Fix Flash Memory Size management

Signed-off-by: Frederic.Pillon <frederic.pillon@st.com>
---
 boards.txt                              |  13 +-
 variants/BLUEPILL_F103C8/ldscript.ld    |   8 +-
 variants/BLUEPILL_F103C8/ldscript_cb.ld | 188 ------------------------
 3 files changed, 11 insertions(+), 198 deletions(-)
 delete mode 100644 variants/BLUEPILL_F103C8/ldscript_cb.ld

diff --git a/boards.txt b/boards.txt
index 4b848c59a1..5984330147 100644
--- a/boards.txt
+++ b/boards.txt
@@ -530,17 +530,18 @@ GenF1.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial
 # BLUEPILL_F103C8 board
 # Support: Serial2 (USART2 on PA3, PA2) and Serial3 (USART3 on PB11, PB10)
 GenF1.menu.pnum.BLUEPILL_F103C8=BluePill F103C8
+GenF1.menu.pnum.BLUEPILL_F103C8.upload.maximum_size=65536
 GenF1.menu.pnum.BLUEPILL_F103C8.upload.maximum_data_size=20480
 GenF1.menu.pnum.BLUEPILL_F103C8.build.board=BLUEPILL_F103C8
 GenF1.menu.pnum.BLUEPILL_F103C8.build.product_line=STM32F103xB
 GenF1.menu.pnum.BLUEPILL_F103C8.build.variant=BLUEPILL_F103C8
 
-GenF1.menu.flash.C8=64k (default)
-GenF1.menu.flash.C8.upload.maximum_size=65536
-GenF1.menu.flash.C8.build.ldscript=ldscript.ld
-GenF1.menu.flash.CB=128k
-GenF1.menu.flash.CB.upload.maximum_size=131072
-GenF1.menu.flash.CB.build.ldscript=ldscript_cb.ld
+GenF1.menu.pnum.BLUEPILL_F103C8B=BluePill F103C8 (128k)
+GenF1.menu.pnum.BLUEPILL_F103C8B.upload.maximum_size=131072
+GenF1.menu.pnum.BLUEPILL_F103C8B.upload.maximum_data_size=20480
+GenF1.menu.pnum.BLUEPILL_F103C8B.build.board=BLUEPILL_F103C8
+GenF1.menu.pnum.BLUEPILL_F103C8B.build.product_line=STM32F103xB
+GenF1.menu.pnum.BLUEPILL_F103C8B.build.variant=BLUEPILL_F103C8
 
 # Upload menu
 GenF1.menu.upload_method.STLinkMethod=STLink
diff --git a/variants/BLUEPILL_F103C8/ldscript.ld b/variants/BLUEPILL_F103C8/ldscript.ld
index 30637e994a..fb1183a93f 100644
--- a/variants/BLUEPILL_F103C8/ldscript.ld
+++ b/variants/BLUEPILL_F103C8/ldscript.ld
@@ -2,10 +2,10 @@
 *****************************************************************************
 **
 
-**  File        : LinkerScript.ld
+**  File        : ldscript.ld
 **
-**  Abstract    : Linker script for STM32F103C8Tx Device with
-**                64KByte FLASH, 20KByte RAM
+**  Abstract    : Linker script for STM32F103C(8-B)Tx Device with
+**                64/128KByte FLASH, 20KByte RAM
 **
 **                Set heap size, stack size and stack location according
 **                to application requirements.
@@ -61,7 +61,7 @@ _Min_Stack_Size = 0x400; /* required amount of stack */
 MEMORY
 {
 RAM (xrw)      : ORIGIN = 0x20000000, LENGTH = 20K
-FLASH (rx)      : ORIGIN = 0x8000000, LENGTH = 64K
+FLASH (rx)      : ORIGIN = 0x8000000, LENGTH = LD_MAX_SIZE
 }
 
 /* Define output sections */
diff --git a/variants/BLUEPILL_F103C8/ldscript_cb.ld b/variants/BLUEPILL_F103C8/ldscript_cb.ld
deleted file mode 100644
index d4a426334c..0000000000
--- a/variants/BLUEPILL_F103C8/ldscript_cb.ld
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
-*****************************************************************************
-**
-
-**  File        : LinkerScript.ld
-**
-**  Abstract    : Linker script for STM32F103CBTx Device with
-**                128KByte FLASH, 20KByte RAM
-**
-**                Set heap size, stack size and stack location according
-**                to application requirements.
-**
-**                Set memory bank area and size if external memory is used.
-**
-**  Target      : STMicroelectronics STM32
-**
-**
-**  Distribution: The file is distributed as is, without any warranty
-**                of any kind.
-**
-*****************************************************************************
-** @attention
-**
-** <h2><center>&copy; COPYRIGHT(c) 2014 Ac6</center></h2>
-**
-** Redistribution and use in source and binary forms, with or without modification,
-** are permitted provided that the following conditions are met:
-**   1. Redistributions of source code must retain the above copyright notice,
-**      this list of conditions and the following disclaimer.
-**   2. Redistributions in binary form must reproduce the above copyright notice,
-**      this list of conditions and the following disclaimer in the documentation
-**      and/or other materials provided with the distribution.
-**   3. Neither the name of Ac6 nor the names of its contributors
-**      may be used to endorse or promote products derived from this software
-**      without specific prior written permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-** SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-**
-*****************************************************************************
-*/
-
-/* Entry Point */
-ENTRY(Reset_Handler)
-
-/* Highest address of the user mode stack */
-_estack = 0x20005000;    /* end of RAM */
-/* Generate a link error if heap and stack don't fit into RAM */
-_Min_Heap_Size = 0x200;      /* required amount of heap  */
-_Min_Stack_Size = 0x400; /* required amount of stack */
-
-/* Specify the memory areas */
-MEMORY
-{
-RAM (xrw)      : ORIGIN = 0x20000000, LENGTH = 20K
-FLASH (rx)      : ORIGIN = 0x8000000, LENGTH = 128K
-}
-
-/* Define output sections */
-SECTIONS
-{
-  /* The startup code goes first into FLASH */
-  .isr_vector :
-  {
-    . = ALIGN(4);
-    KEEP(*(.isr_vector)) /* Startup code */
-    . = ALIGN(4);
-  } >FLASH
-
-  /* The program code and other data goes into FLASH */
-  .text ALIGN(4):
-  {
-    . = ALIGN(4);
-    *(.text)           /* .text sections (code) */
-    *(.text*)          /* .text* sections (code) */
-    *(.glue_7)         /* glue arm to thumb code */
-    *(.glue_7t)        /* glue thumb to arm code */
-    *(.eh_frame)
-
-    KEEP (*(.init))
-    KEEP (*(.fini))
-
-    . = ALIGN(4);
-    _etext = .;        /* define a global symbols at end of code */
-  } >FLASH
-
-  /* Constant data goes into FLASH */
-  .rodata :
-  {
-    . = ALIGN(4);
-    *(.rodata)         /* .rodata sections (constants, strings, etc.) */
-    *(.rodata*)        /* .rodata* sections (constants, strings, etc.) */
-    . = ALIGN(4);
-  } >FLASH
-
-  .ARM.extab   : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH
-  .ARM : {
-    __exidx_start = .;
-    *(.ARM.exidx*)
-    __exidx_end = .;
-  } >FLASH
-
-  .preinit_array     :
-  {
-    PROVIDE_HIDDEN (__preinit_array_start = .);
-    KEEP (*(.preinit_array*))
-    PROVIDE_HIDDEN (__preinit_array_end = .);
-  } >FLASH
-  .init_array :
-  {
-    PROVIDE_HIDDEN (__init_array_start = .);
-    KEEP (*(SORT(.init_array.*)))
-    KEEP (*(.init_array*))
-    PROVIDE_HIDDEN (__init_array_end = .);
-  } >FLASH
-  .fini_array :
-  {
-    PROVIDE_HIDDEN (__fini_array_start = .);
-    KEEP (*(SORT(.fini_array.*)))
-    KEEP (*(.fini_array*))
-    PROVIDE_HIDDEN (__fini_array_end = .);
-  } >FLASH
-
-  /* used by the startup to initialize data */
-  _sidata = LOADADDR(.data);
-
-  /* Initialized data sections goes into RAM, load LMA copy after code */
-  .data : 
-  {
-    . = ALIGN(4);
-    _sdata = .;        /* create a global symbol at data start */
-    *(.data)           /* .data sections */
-    *(.data*)          /* .data* sections */
-
-    . = ALIGN(4);
-    _edata = .;        /* define a global symbol at data end */
-  } >RAM AT> FLASH
-
-  
-  /* Uninitialized data section */
-  . = ALIGN(4);
-  .bss :
-  {
-    /* This is used by the startup in order to initialize the .bss secion */
-    _sbss = .;         /* define a global symbol at bss start */
-    __bss_start__ = _sbss;
-    *(.bss)
-    *(.bss*)
-    *(COMMON)
-
-    . = ALIGN(4);
-    _ebss = .;         /* define a global symbol at bss end */
-    __bss_end__ = _ebss;
-  } >RAM
-
-  /* User_heap_stack section, used to check that there is enough RAM left */
-  ._user_heap_stack :
-  {
-    . = ALIGN(8);
-    PROVIDE ( end = . );
-    PROVIDE ( _end = . );
-    . = . + _Min_Heap_Size;
-    . = . + _Min_Stack_Size;
-    . = ALIGN(8);
-  } >RAM
-
-  
-
-  /* Remove information from the standard libraries */
-  /DISCARD/ :
-  {
-    libc.a ( * )
-    libm.a ( * )
-    libgcc.a ( * )
-  }
-
-  .ARM.attributes 0 : { *(.ARM.attributes) }
-}
-
-

From f5d129448d9f227ff648c66bc0f2eed048ed7b76 Mon Sep 17 00:00:00 2001
From: "Frederic.Pillon" <frederic.pillon@st.com>
Date: Fri, 25 Jan 2019 17:03:35 +0100
Subject: [PATCH 4/4] [GenF1] Move Maple to Generic STM32F1 series

Signed-off-by: Frederic.Pillon <frederic.pillon@st.com>
---
 boards.txt | 83 ++++++------------------------------------------------
 1 file changed, 9 insertions(+), 74 deletions(-)

diff --git a/boards.txt b/boards.txt
index 5984330147..752ce38291 100644
--- a/boards.txt
+++ b/boards.txt
@@ -543,6 +543,15 @@ GenF1.menu.pnum.BLUEPILL_F103C8B.build.board=BLUEPILL_F103C8
 GenF1.menu.pnum.BLUEPILL_F103C8B.build.product_line=STM32F103xB
 GenF1.menu.pnum.BLUEPILL_F103C8B.build.variant=BLUEPILL_F103C8
 
+# MAPLEMINI_F103CB board
+# Support: Serial2 (USART2 on PA3, PA2) and Serial3 (USART3 on PB11, PB10)
+GenF1.menu.pnum.MAPLEMINI_F103CB=Maple Mini F103CB
+GenF1.menu.pnum.MAPLEMINI_F103CB.upload.maximum_size=131072
+GenF1.menu.pnum.MAPLEMINI_F103CB.upload.maximum_data_size=20480
+GenF1.menu.pnum.MAPLEMINI_F103CB.build.board=MAPLEMINI_F103CB
+GenF1.menu.pnum.MAPLEMINI_F103CB.build.product_line=STM32F103xB
+GenF1.menu.pnum.MAPLEMINI_F103CB.build.variant=MAPLEMINI_F103CB
+
 # Upload menu
 GenF1.menu.upload_method.STLinkMethod=STLink
 GenF1.menu.upload_method.STLinkMethod.upload.protocol=STLink
@@ -642,36 +651,6 @@ GenF4.menu.upload_method.bmpMethod=BMP (Black Magic Probe)
 GenF4.menu.upload_method.bmpMethod.upload.protocol=gdb_bmp
 GenF4.menu.upload_method.bmpMethod.upload.tool=bmp_upload
 
-###############################
-# Maple
-Maple.name=Maple series
-
-Maple.build.vid=0x0483
-Maple.build.core=arduino
-Maple.build.board=Maple
-Maple.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial}
-
-# MAPLEMINI_F103CB board
-# Support: Serial2 (USART2 on PA3, PA2) and Serial3 (USART3 on PB11, PB10)
-Maple.menu.pnum.MAPLEMINI_F103CB=Maple Mini F103CB
-Maple.menu.pnum.MAPLEMINI_F103CB.upload.maximum_size=131072
-Maple.menu.pnum.MAPLEMINI_F103CB.upload.maximum_data_size=20480
-Maple.menu.pnum.MAPLEMINI_F103CB.build.mcu=cortex-m3
-Maple.menu.pnum.MAPLEMINI_F103CB.build.board=MAPLEMINI_F103CB
-Maple.menu.pnum.MAPLEMINI_F103CB.build.series=STM32F1xx
-Maple.menu.pnum.MAPLEMINI_F103CB.build.product_line=STM32F103xB
-Maple.menu.pnum.MAPLEMINI_F103CB.build.variant=MAPLEMINI_F103CB
-Maple.menu.pnum.MAPLEMINI_F103CB.build.cmsis_lib_gcc=arm_cortexM3l_math
-
-# Upload menu
-Maple.menu.upload_method.STLinkMethod=STLink
-Maple.menu.upload_method.STLinkMethod.upload.protocol=STLink
-Maple.menu.upload_method.STLinkMethod.upload.tool=stlink_upload
-
-Maple.menu.upload_method.serialMethod=Serial
-Maple.menu.upload_method.serialMethod.upload.protocol=maple_serial
-Maple.menu.upload_method.serialMethod.upload.tool=serial_upload
-
 ################################################################################
 # RAK boards
 
@@ -809,12 +788,6 @@ GenF4.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
 GenF4.menu.xserial.disabled=Disabled (No Serial)
 GenF4.menu.xserial.disabled.build.xSerial=
 
-Maple.menu.xserial.generic=Enabled with generic Serial
-Maple.menu.xserial.none=Enabled without generic Serial
-Maple.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
-Maple.menu.xserial.disabled=Disabled (No Serial)
-Maple.menu.xserial.disabled.build.xSerial=
-
 RAK.menu.xserial.generic=Enabled with generic Serial
 RAK.menu.xserial.none=Enabled without generic Serial
 RAK.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
@@ -890,16 +863,6 @@ GenF4.menu.usb.CDCFS.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
 GenF4.menu.usb.CDCHS=CDC High Speed
 GenF4.menu.usb.CDCHS.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DUSE_USB_HS
 
-Maple.menu.usb.none=None
-Maple.menu.usb.HIDFS=HID keyboard and mouse support Full Speed
-Maple.menu.usb.HIDFS.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE
-Maple.menu.usb.HIDHS=HID keyboard and mouse support High Speed
-Maple.menu.usb.HIDHS.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE -DUSE_USB_HS
-Maple.menu.usb.CDCFS=CDC Full Speed
-Maple.menu.usb.CDCFS.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
-Maple.menu.usb.CDCHS=CDC High Speed
-Maple.menu.usb.CDCHS.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DUSE_USB_HS
-
 3dprinter.menu.usb.none=None
 3dprinter.menu.usb.CDCFS=CDC Full Speed
 3dprinter.menu.usb.CDCFS.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
@@ -1034,24 +997,6 @@ GenF4.menu.opt.o3lto.build.flags.optimize=-O3 -flto
 GenF4.menu.opt.ogstd=Debug (-g)
 GenF4.menu.opt.ogstd.build.flags.optimize=-g -Og
 
-Maple.menu.opt.osstd=Smallest (-Os default)
-Maple.menu.opt.oslto=Smallest (-Os) with LTO
-Maple.menu.opt.oslto.build.flags.optimize=-Os -flto
-Maple.menu.opt.o1std=Fast (-O1)
-Maple.menu.opt.o1std.build.flags.optimize=-O1
-Maple.menu.opt.o1lto=Fast (-O1) with LTO
-Maple.menu.opt.o1lto.build.flags.optimize=-O1 -flto
-Maple.menu.opt.o2std=Faster (-O2)
-Maple.menu.opt.o2std.build.flags.optimize=-O2
-Maple.menu.opt.o2lto=Faster (-O2) with LTO
-Maple.menu.opt.o2lto.build.flags.optimize=-O2 -flto
-Maple.menu.opt.o3std=Fastest (-O3)
-Maple.menu.opt.o3std.build.flags.optimize=-O3
-Maple.menu.opt.o3lto=Fastest (-O3) with LTO
-Maple.menu.opt.o3lto.build.flags.optimize=-O3 -flto
-Maple.menu.opt.ogstd=Debug (-g)
-Maple.menu.opt.ogstd.build.flags.optimize=-g -Og
-
 RAK.menu.opt.osstd=Smallest (-Os default)
 RAK.menu.opt.oslto=Smallest (-Os) with LTO
 RAK.menu.opt.oslto.build.flags.optimize=-Os -flto
@@ -1159,16 +1104,6 @@ GenF4.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float
 GenF4.menu.rtlib.full=Newlib Standard
 GenF4.menu.rtlib.full.build.flags.ldspecs=
 
-Maple.menu.rtlib.nano=Newlib Nano (default)
-Maple.menu.rtlib.nanofp=Newlib Nano + Float Printf
-Maple.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float
-Maple.menu.rtlib.nanofs=Newlib Nano + Float Scanf
-Maple.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float
-Maple.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
-Maple.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
-Maple.menu.rtlib.full=Newlib Standard
-Maple.menu.rtlib.full.build.flags.ldspecs=
-
 RAK.menu.rtlib.nano=Newlib Nano (default)
 RAK.menu.rtlib.nanofp=Newlib Nano + Float Printf
 RAK.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float