summaryrefslogtreecommitdiff
path: root/platforms/chibios
diff options
context:
space:
mode:
authorDrashna Jaelre <drashna@live.com>2024-11-21 03:54:01 -0800
committerGitHub <noreply@github.com>2024-11-21 22:54:01 +1100
commitc7a04bd9305c337e9190d5ebdd368c4af49adc43 (patch)
tree504cb053ae288fa12df626aebfec642b3ace6518 /platforms/chibios
parent36b5559b997cedd14a352aa70891558936b8b3a3 (diff)
Bring supported STM32F4 configs in line with F4x1 (#24413)
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
Diffstat (limited to 'platforms/chibios')
-rw-r--r--platforms/chibios/boards/GENERIC_STM32_F405XG/configs/config.h10
-rw-r--r--platforms/chibios/boards/GENERIC_STM32_F407XE/configs/config.h10
-rw-r--r--platforms/chibios/boards/GENERIC_STM32_F446XE/configs/config.h10
-rw-r--r--platforms/chibios/boards/common/ld/STM32F401xC.ld5
-rw-r--r--platforms/chibios/boards/common/ld/STM32F401xC_tinyuf2.ld5
-rw-r--r--platforms/chibios/boards/common/ld/STM32F401xE.ld5
-rw-r--r--platforms/chibios/boards/common/ld/STM32F401xE_tinyuf2.ld5
-rw-r--r--platforms/chibios/boards/common/ld/STM32F405xG.ld91
-rw-r--r--platforms/chibios/boards/common/ld/STM32F405xG_tinyuf2.ld94
-rw-r--r--platforms/chibios/boards/common/ld/STM32F407xE.ld13
-rw-r--r--platforms/chibios/boards/common/ld/STM32F407xE_tinyuf2.ld13
-rw-r--r--platforms/chibios/boards/common/ld/STM32F411xC.ld5
-rw-r--r--platforms/chibios/boards/common/ld/STM32F411xC_tinyuf2.ld5
-rw-r--r--platforms/chibios/boards/common/ld/STM32F411xE.ld5
-rw-r--r--platforms/chibios/boards/common/ld/STM32F411xE_tinyuf2.ld5
-rw-r--r--platforms/chibios/boards/common/ld/STM32F446xE.ld13
-rw-r--r--platforms/chibios/boards/common/ld/STM32F446xE_tinyuf2.ld13
-rw-r--r--platforms/chibios/boards/common/ld/stm32f4xx_common.ld11
-rw-r--r--platforms/chibios/boards/common/ld/stm32f4xx_tinyuf2_common.ld12
19 files changed, 142 insertions, 188 deletions
diff --git a/platforms/chibios/boards/GENERIC_STM32_F405XG/configs/config.h b/platforms/chibios/boards/GENERIC_STM32_F405XG/configs/config.h
index 90a41326a1..5333a919a0 100644
--- a/platforms/chibios/boards/GENERIC_STM32_F405XG/configs/config.h
+++ b/platforms/chibios/boards/GENERIC_STM32_F405XG/configs/config.h
@@ -21,3 +21,13 @@
21#ifndef EARLY_INIT_PERFORM_BOOTLOADER_JUMP 21#ifndef EARLY_INIT_PERFORM_BOOTLOADER_JUMP
22# define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE 22# define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
23#endif 23#endif
24
25#ifdef WEAR_LEVELING_EMBEDDED_FLASH
26# ifndef WEAR_LEVELING_EFL_FIRST_SECTOR
27# ifdef BOOTLOADER_TINYUF2
28# define WEAR_LEVELING_EFL_FIRST_SECTOR 3
29# else
30# define WEAR_LEVELING_EFL_FIRST_SECTOR 1
31# endif
32# endif
33#endif
diff --git a/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/config.h b/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/config.h
index 90a41326a1..5333a919a0 100644
--- a/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/config.h
+++ b/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/config.h
@@ -21,3 +21,13 @@
21#ifndef EARLY_INIT_PERFORM_BOOTLOADER_JUMP 21#ifndef EARLY_INIT_PERFORM_BOOTLOADER_JUMP
22# define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE 22# define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
23#endif 23#endif
24
25#ifdef WEAR_LEVELING_EMBEDDED_FLASH
26# ifndef WEAR_LEVELING_EFL_FIRST_SECTOR
27# ifdef BOOTLOADER_TINYUF2
28# define WEAR_LEVELING_EFL_FIRST_SECTOR 3
29# else
30# define WEAR_LEVELING_EFL_FIRST_SECTOR 1
31# endif
32# endif
33#endif
diff --git a/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/config.h b/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/config.h
index cbb98f9098..362327efde 100644
--- a/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/config.h
+++ b/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/config.h
@@ -17,3 +17,13 @@
17#ifndef EARLY_INIT_PERFORM_BOOTLOADER_JUMP 17#ifndef EARLY_INIT_PERFORM_BOOTLOADER_JUMP
18# define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE 18# define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
19#endif 19#endif
20
21#ifdef WEAR_LEVELING_EMBEDDED_FLASH
22# ifndef WEAR_LEVELING_EFL_FIRST_SECTOR
23# ifdef BOOTLOADER_TINYUF2
24# define WEAR_LEVELING_EFL_FIRST_SECTOR 3
25# else
26# define WEAR_LEVELING_EFL_FIRST_SECTOR 1
27# endif
28# endif
29#endif
diff --git a/platforms/chibios/boards/common/ld/STM32F401xC.ld b/platforms/chibios/boards/common/ld/STM32F401xC.ld
index 8bc1cda09c..64f019706f 100644
--- a/platforms/chibios/boards/common/ld/STM32F401xC.ld
+++ b/platforms/chibios/boards/common/ld/STM32F401xC.ld
@@ -5,6 +5,9 @@
5 */ 5 */
6 6
7f4xx_flash_size = 256k; 7f4xx_flash_size = 256k;
8f4xx_ram_size = 64k; 8f4xx_ram1_size = 64k;
9f4xx_ram2_size = 0;
10f4xx_ram4_size = 0;
11f4xx_ram5_size = 0;
9 12
10INCLUDE stm32f4xx_common.ld 13INCLUDE stm32f4xx_common.ld
diff --git a/platforms/chibios/boards/common/ld/STM32F401xC_tinyuf2.ld b/platforms/chibios/boards/common/ld/STM32F401xC_tinyuf2.ld
index 9e0306bde8..05aa51917f 100644
--- a/platforms/chibios/boards/common/ld/STM32F401xC_tinyuf2.ld
+++ b/platforms/chibios/boards/common/ld/STM32F401xC_tinyuf2.ld
@@ -5,6 +5,9 @@
5 */ 5 */
6 6
7f4xx_flash_size = 256k; 7f4xx_flash_size = 256k;
8f4xx_ram_size = 64k; 8f4xx_ram1_size = 64k;
9f4xx_ram2_size = 0;
10f4xx_ram4_size = 0;
11f4xx_ram5_size = 0;
9 12
10INCLUDE stm32f4xx_tinyuf2_common.ld 13INCLUDE stm32f4xx_tinyuf2_common.ld
diff --git a/platforms/chibios/boards/common/ld/STM32F401xE.ld b/platforms/chibios/boards/common/ld/STM32F401xE.ld
index 3c2a93bd30..6c72c8f127 100644
--- a/platforms/chibios/boards/common/ld/STM32F401xE.ld
+++ b/platforms/chibios/boards/common/ld/STM32F401xE.ld
@@ -5,6 +5,9 @@
5 */ 5 */
6 6
7f4xx_flash_size = 512k; 7f4xx_flash_size = 512k;
8f4xx_ram_size = 96k; 8f4xx_ram1_size = 96k;
9f4xx_ram2_size = 0;
10f4xx_ram4_size = 0;
11f4xx_ram5_size = 0;
9 12
10INCLUDE stm32f4xx_common.ld 13INCLUDE stm32f4xx_common.ld
diff --git a/platforms/chibios/boards/common/ld/STM32F401xE_tinyuf2.ld b/platforms/chibios/boards/common/ld/STM32F401xE_tinyuf2.ld
index a7fa419cfb..65272ec015 100644
--- a/platforms/chibios/boards/common/ld/STM32F401xE_tinyuf2.ld
+++ b/platforms/chibios/boards/common/ld/STM32F401xE_tinyuf2.ld
@@ -5,6 +5,9 @@
5 */ 5 */
6 6
7f4xx_flash_size = 512k; 7f4xx_flash_size = 512k;
8f4xx_ram_size = 96k; 8f4xx_ram1_size = 96k;
9f4xx_ram2_size = 0;
10f4xx_ram4_size = 0;
11f4xx_ram5_size = 0;
9 12
10INCLUDE stm32f4xx_tinyuf2_common.ld 13INCLUDE stm32f4xx_tinyuf2_common.ld
diff --git a/platforms/chibios/boards/common/ld/STM32F405xG.ld b/platforms/chibios/boards/common/ld/STM32F405xG.ld
index b7d0baa210..d9468e18c5 100644
--- a/platforms/chibios/boards/common/ld/STM32F405xG.ld
+++ b/platforms/chibios/boards/common/ld/STM32F405xG.ld
@@ -1,86 +1,13 @@
1/* 1/*
2 ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio 2 * Copyright 2006..2018 Giovanni Di Sirio
3 3 * Copyright 2022 QMK contributors
4 Licensed under the Apache License, Version 2.0 (the "License"); 4 * SPDX-License-Identifier: GPL-2.0-or-later
5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at
7
8 http://www.apache.org/licenses/LICENSE-2.0
9
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
15*/
16
17/*
18 * STM32F405xG memory setup.
19 * Note: Use of ram1 and ram2 is mutually exclusive with use of ram0.
20 */ 5 */
21MEMORY
22{
23 flash0 (rx) : org = 0x08000000, len = 16k /* Sector 0 - Init code as ROM bootloader assumes application starts here */
24 flash1 (rx) : org = 0x08004000, len = 16k /* Sector 1 - Emulated eeprom */
25 flash2 (rx) : org = 0x08008000, len = 1M - 32k /* Sector 2..6 - Rest of firmware */
26 flash3 (rx) : org = 0x00000000, len = 0
27 flash4 (rx) : org = 0x00000000, len = 0
28 flash5 (rx) : org = 0x00000000, len = 0
29 flash6 (rx) : org = 0x00000000, len = 0
30 flash7 (rx) : org = 0x00000000, len = 0
31 ram0 (wx) : org = 0x20000000, len = 128k /* SRAM1 + SRAM2 */
32 ram1 (wx) : org = 0x20000000, len = 112k /* SRAM1 */
33 ram2 (wx) : org = 0x2001C000, len = 16k /* SRAM2 */
34 ram3 (wx) : org = 0x00000000, len = 0
35 ram4 (wx) : org = 0x10000000, len = 64k /* CCM SRAM */
36 ram5 (wx) : org = 0x40024000, len = 4k /* BCKP SRAM */
37 ram6 (wx) : org = 0x00000000, len = 0
38 ram7 (wx) : org = 0x00000000, len = 0
39}
40
41/* For each data/text section two region are defined, a virtual region
42 and a load region (_LMA suffix).*/
43
44/* Flash region to be used for exception vectors.*/
45REGION_ALIAS("VECTORS_FLASH", flash0);
46REGION_ALIAS("VECTORS_FLASH_LMA", flash0);
47
48/* Flash region to be used for constructors and destructors.*/
49REGION_ALIAS("XTORS_FLASH", flash2);
50REGION_ALIAS("XTORS_FLASH_LMA", flash2);
51
52/* Flash region to be used for code text.*/
53REGION_ALIAS("TEXT_FLASH", flash2);
54REGION_ALIAS("TEXT_FLASH_LMA", flash2);
55
56/* Flash region to be used for read only data.*/
57REGION_ALIAS("RODATA_FLASH", flash2);
58REGION_ALIAS("RODATA_FLASH_LMA", flash2);
59
60/* Flash region to be used for various.*/
61REGION_ALIAS("VARIOUS_FLASH", flash2);
62REGION_ALIAS("VARIOUS_FLASH_LMA", flash2);
63
64/* Flash region to be used for RAM(n) initialization data.*/
65REGION_ALIAS("RAM_INIT_FLASH_LMA", flash2);
66
67/* RAM region to be used for Main stack. This stack accommodates the processing
68 of all exceptions and interrupts.*/
69REGION_ALIAS("MAIN_STACK_RAM", ram0);
70
71/* RAM region to be used for the process stack. This is the stack used by
72 the main() function.*/
73REGION_ALIAS("PROCESS_STACK_RAM", ram0);
74
75/* RAM region to be used for data segment.*/
76REGION_ALIAS("DATA_RAM", ram0);
77REGION_ALIAS("DATA_RAM_LMA", flash2);
78
79/* RAM region to be used for BSS segment.*/
80REGION_ALIAS("BSS_RAM", ram0);
81 6
82/* RAM region to be used for the default heap.*/ 7f4xx_flash_size = 1M;
83REGION_ALIAS("HEAP_RAM", ram0); 8f4xx_ram1_size = 112k;
9f4xx_ram2_size = 16k;
10f4xx_ram4_size = 64k;
11f4xx_ram5_size = 4k;
84 12
85/* Generic rules inclusion.*/ 13INCLUDE stm32f4xx_common.ld
86INCLUDE rules.ld
diff --git a/platforms/chibios/boards/common/ld/STM32F405xG_tinyuf2.ld b/platforms/chibios/boards/common/ld/STM32F405xG_tinyuf2.ld
index 1ee4aa1a06..51c4b625ac 100644
--- a/platforms/chibios/boards/common/ld/STM32F405xG_tinyuf2.ld
+++ b/platforms/chibios/boards/common/ld/STM32F405xG_tinyuf2.ld
@@ -1,89 +1,13 @@
1/* 1/*
2 ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio 2 * Copyright 2006..2018 Giovanni Di Sirio
3 3 * Copyright 2022 QMK contributors
4 Licensed under the Apache License, Version 2.0 (the "License"); 4 * SPDX-License-Identifier: GPL-2.0-or-later
5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at
7
8 http://www.apache.org/licenses/LICENSE-2.0
9
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
15*/
16
17/*
18 * STM32F405xG memory setup.
19 * Note: Use of ram1 and ram2 is mutually exclusive with use of ram0.
20 */ 5 */
21MEMORY
22{
23 flash0 (rx) : org = 0x08000000 + 64k, len = 1M - 64k /* tinyuf2 bootloader requires app to be located at 64k offset for this MCU */
24 flash1 (rx) : org = 0x00000000, len = 0
25 flash2 (rx) : org = 0x00000000, len = 0
26 flash3 (rx) : org = 0x00000000, len = 0
27 flash4 (rx) : org = 0x00000000, len = 0
28 flash5 (rx) : org = 0x00000000, len = 0
29 flash6 (rx) : org = 0x00000000, len = 0
30 flash7 (rx) : org = 0x00000000, len = 0
31 ram0 (wx) : org = 0x20000000, len = 128k /* SRAM1 + SRAM2 */
32 ram1 (wx) : org = 0x20000000, len = 112k /* SRAM1 */
33 ram2 (wx) : org = 0x2001C000, len = 16k /* SRAM2 */
34 ram3 (wx) : org = 0x00000000, len = 0
35 ram4 (wx) : org = 0x10000000, len = 64k /* CCM SRAM */
36 ram5 (wx) : org = 0x40024000, len = 4k /* BCKP SRAM */
37 ram6 (wx) : org = 0x00000000, len = 0
38 ram7 (wx) : org = 0x00000000, len = 0
39}
40
41/* For each data/text section two region are defined, a virtual region
42 and a load region (_LMA suffix).*/
43
44/* Flash region to be used for exception vectors.*/
45REGION_ALIAS("VECTORS_FLASH", flash0);
46REGION_ALIAS("VECTORS_FLASH_LMA", flash0);
47
48/* Flash region to be used for constructors and destructors.*/
49REGION_ALIAS("XTORS_FLASH", flash0);
50REGION_ALIAS("XTORS_FLASH_LMA", flash0);
51
52/* Flash region to be used for code text.*/
53REGION_ALIAS("TEXT_FLASH", flash0);
54REGION_ALIAS("TEXT_FLASH_LMA", flash0);
55
56/* Flash region to be used for read only data.*/
57REGION_ALIAS("RODATA_FLASH", flash0);
58REGION_ALIAS("RODATA_FLASH_LMA", flash0);
59
60/* Flash region to be used for various.*/
61REGION_ALIAS("VARIOUS_FLASH", flash0);
62REGION_ALIAS("VARIOUS_FLASH_LMA", flash0);
63
64/* Flash region to be used for RAM(n) initialization data.*/
65REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0);
66
67/* RAM region to be used for Main stack. This stack accommodates the processing
68 of all exceptions and interrupts.*/
69REGION_ALIAS("MAIN_STACK_RAM", ram0);
70
71/* RAM region to be used for the process stack. This is the stack used by
72 the main() function.*/
73REGION_ALIAS("PROCESS_STACK_RAM", ram0);
74
75/* RAM region to be used for data segment.*/
76REGION_ALIAS("DATA_RAM", ram0);
77REGION_ALIAS("DATA_RAM_LMA", flash0);
78
79/* RAM region to be used for BSS segment.*/
80REGION_ALIAS("BSS_RAM", ram0);
81
82/* RAM region to be used for the default heap.*/
83REGION_ALIAS("HEAP_RAM", ram0);
84 6
85/* Generic rules inclusion.*/ 7f4xx_flash_size = 1M;
86INCLUDE rules.ld 8f4xx_ram1_size = 112k;
9f4xx_ram2_size = 16k;
10f4xx_ram4_size = 64k;
11f4xx_ram5_size = 4k;
87 12
88/* TinyUF2 bootloader reset support */ 13INCLUDE stm32f4xx_tinyuf2_common.ld
89_board_dfu_dbl_tap = ORIGIN(ram0) + 64k - 4; /* this is based off the linker file for tinyuf2 */
diff --git a/platforms/chibios/boards/common/ld/STM32F407xE.ld b/platforms/chibios/boards/common/ld/STM32F407xE.ld
new file mode 100644
index 0000000000..66dd991163
--- /dev/null
+++ b/platforms/chibios/boards/common/ld/STM32F407xE.ld
@@ -0,0 +1,13 @@
1/*
2 * Copyright 2006..2018 Giovanni Di Sirio
3 * Copyright 2022 QMK contributors
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7f4xx_flash_size = 512k;
8f4xx_ram1_size = 112k;
9f4xx_ram2_size = 16k;
10f4xx_ram4_size = 64k;
11f4xx_ram5_size = 4k;
12
13INCLUDE stm32f4xx_common.ld
diff --git a/platforms/chibios/boards/common/ld/STM32F407xE_tinyuf2.ld b/platforms/chibios/boards/common/ld/STM32F407xE_tinyuf2.ld
new file mode 100644
index 0000000000..0cb7b89636
--- /dev/null
+++ b/platforms/chibios/boards/common/ld/STM32F407xE_tinyuf2.ld
@@ -0,0 +1,13 @@
1/*
2 * Copyright 2006..2018 Giovanni Di Sirio
3 * Copyright 2022 QMK contributors
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7f4xx_flash_size = 512k;
8f4xx_ram1_size = 112k;
9f4xx_ram2_size = 16k;
10f4xx_ram4_size = 64k;
11f4xx_ram5_size = 4k;
12
13INCLUDE stm32f4xx_tinyuf2_common.ld
diff --git a/platforms/chibios/boards/common/ld/STM32F411xC.ld b/platforms/chibios/boards/common/ld/STM32F411xC.ld
index 7827c9c7d2..5e3f7e034b 100644
--- a/platforms/chibios/boards/common/ld/STM32F411xC.ld
+++ b/platforms/chibios/boards/common/ld/STM32F411xC.ld
@@ -5,6 +5,9 @@
5 */ 5 */
6 6
7f4xx_flash_size = 256k; 7f4xx_flash_size = 256k;
8f4xx_ram_size = 128k; 8f4xx_ram1_size = 128k;
9f4xx_ram2_size = 0;
10f4xx_ram4_size = 0;
11f4xx_ram5_size = 0;
9 12
10INCLUDE stm32f4xx_common.ld 13INCLUDE stm32f4xx_common.ld
diff --git a/platforms/chibios/boards/common/ld/STM32F411xC_tinyuf2.ld b/platforms/chibios/boards/common/ld/STM32F411xC_tinyuf2.ld
index 0367b49f8f..63a33309fd 100644
--- a/platforms/chibios/boards/common/ld/STM32F411xC_tinyuf2.ld
+++ b/platforms/chibios/boards/common/ld/STM32F411xC_tinyuf2.ld
@@ -5,6 +5,9 @@
5 */ 5 */
6 6
7f4xx_flash_size = 256k; 7f4xx_flash_size = 256k;
8f4xx_ram_size = 128k; 8f4xx_ram1_size = 128k;
9f4xx_ram2_size = 0;
10f4xx_ram4_size = 0;
11f4xx_ram5_size = 0;
9 12
10INCLUDE stm32f4xx_tinyuf2_common.ld 13INCLUDE stm32f4xx_tinyuf2_common.ld
diff --git a/platforms/chibios/boards/common/ld/STM32F411xE.ld b/platforms/chibios/boards/common/ld/STM32F411xE.ld
index c621ede53a..c798a775e9 100644
--- a/platforms/chibios/boards/common/ld/STM32F411xE.ld
+++ b/platforms/chibios/boards/common/ld/STM32F411xE.ld
@@ -5,6 +5,9 @@
5 */ 5 */
6 6
7f4xx_flash_size = 512k; 7f4xx_flash_size = 512k;
8f4xx_ram_size = 128k; 8f4xx_ram1_size = 128k;
9f4xx_ram2_size = 0;
10f4xx_ram4_size = 0;
11f4xx_ram5_size = 0;
9 12
10INCLUDE stm32f4xx_common.ld 13INCLUDE stm32f4xx_common.ld
diff --git a/platforms/chibios/boards/common/ld/STM32F411xE_tinyuf2.ld b/platforms/chibios/boards/common/ld/STM32F411xE_tinyuf2.ld
index d982f7fb8f..25253f5590 100644
--- a/platforms/chibios/boards/common/ld/STM32F411xE_tinyuf2.ld
+++ b/platforms/chibios/boards/common/ld/STM32F411xE_tinyuf2.ld
@@ -5,6 +5,9 @@
5 */ 5 */
6 6
7f4xx_flash_size = 512k; 7f4xx_flash_size = 512k;
8f4xx_ram_size = 128k; 8f4xx_ram1_size = 128k;
9f4xx_ram2_size = 0;
10f4xx_ram4_size = 0;
11f4xx_ram5_size = 0;
9 12
10INCLUDE stm32f4xx_tinyuf2_common.ld 13INCLUDE stm32f4xx_tinyuf2_common.ld
diff --git a/platforms/chibios/boards/common/ld/STM32F446xE.ld b/platforms/chibios/boards/common/ld/STM32F446xE.ld
new file mode 100644
index 0000000000..6e6c5dd3a4
--- /dev/null
+++ b/platforms/chibios/boards/common/ld/STM32F446xE.ld
@@ -0,0 +1,13 @@
1/*
2 * Copyright 2006..2018 Giovanni Di Sirio
3 * Copyright 2022 QMK contributors
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7f4xx_flash_size = 512k;
8f4xx_ram1_size = 112k;
9f4xx_ram2_size = 16k;
10f4xx_ram4_size = 0;
11f4xx_ram5_size = 4k;
12
13INCLUDE stm32f4xx_common.ld
diff --git a/platforms/chibios/boards/common/ld/STM32F446xE_tinyuf2.ld b/platforms/chibios/boards/common/ld/STM32F446xE_tinyuf2.ld
new file mode 100644
index 0000000000..676ffbdf0c
--- /dev/null
+++ b/platforms/chibios/boards/common/ld/STM32F446xE_tinyuf2.ld
@@ -0,0 +1,13 @@
1/*
2* Copyright 2006..2018 Giovanni Di Sirio
3 * Copyright 2022 QMK contributors
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7f4xx_flash_size = 512k;
8f4xx_ram1_size = 112k;
9f4xx_ram2_size = 16k;
10f4xx_ram4_size = 0;
11f4xx_ram5_size = 4k;
12
13INCLUDE stm32f4xx_tinyuf2_common.ld
diff --git a/platforms/chibios/boards/common/ld/stm32f4xx_common.ld b/platforms/chibios/boards/common/ld/stm32f4xx_common.ld
index 1ddf7e96bc..d5c7c73626 100644
--- a/platforms/chibios/boards/common/ld/stm32f4xx_common.ld
+++ b/platforms/chibios/boards/common/ld/stm32f4xx_common.ld
@@ -24,12 +24,12 @@ MEMORY
24 flash5 (rx) : org = 0x00000000, len = 0 24 flash5 (rx) : org = 0x00000000, len = 0
25 flash6 (rx) : org = 0x00000000, len = 0 25 flash6 (rx) : org = 0x00000000, len = 0
26 flash7 (rx) : org = 0x00000000, len = 0 26 flash7 (rx) : org = 0x00000000, len = 0
27 ram0 (wx) : org = 0x20000000, len = f4xx_ram_size 27 ram0 (wx) : org = 0x20000000, len = f4xx_ram1_size + f4xx_ram2_size /* SRAM1 + SRAM2 */
28 ram1 (wx) : org = 0x00000000, len = 0 28 ram1 (wx) : org = 0x20000000, len = f4xx_ram1_size /* SRAM1 */
29 ram2 (wx) : org = 0x00000000, len = 0 29 ram2 (wx) : org = 0x20000000 + f4xx_ram1_size, len = f4xx_ram2_size /* SRAM2 */
30 ram3 (wx) : org = 0x00000000, len = 0 30 ram3 (wx) : org = 0x00000000, len = 0
31 ram4 (wx) : org = 0x00000000, len = 0 31 ram4 (wx) : org = 0x10000000, len = f4xx_ram4_size /* CCM SRAM */
32 ram5 (wx) : org = 0x00000000, len = 0 32 ram5 (wx) : org = 0x40024000, len = f4xx_ram5_size /* BCKP SRAM */
33 ram6 (wx) : org = 0x00000000, len = 0 33 ram6 (wx) : org = 0x00000000, len = 0
34 ram7 (wx) : org = 0x00000000, len = 0 34 ram7 (wx) : org = 0x00000000, len = 0
35} 35}
@@ -80,4 +80,3 @@ REGION_ALIAS("HEAP_RAM", ram0);
80 80
81/* Generic rules inclusion.*/ 81/* Generic rules inclusion.*/
82INCLUDE rules.ld 82INCLUDE rules.ld
83
diff --git a/platforms/chibios/boards/common/ld/stm32f4xx_tinyuf2_common.ld b/platforms/chibios/boards/common/ld/stm32f4xx_tinyuf2_common.ld
index ab03a9e683..d995bd014a 100644
--- a/platforms/chibios/boards/common/ld/stm32f4xx_tinyuf2_common.ld
+++ b/platforms/chibios/boards/common/ld/stm32f4xx_tinyuf2_common.ld
@@ -27,12 +27,12 @@ MEMORY
27 flash5 (rx) : org = 0x00000000, len = 0 27 flash5 (rx) : org = 0x00000000, len = 0
28 flash6 (rx) : org = 0x00000000, len = 0 28 flash6 (rx) : org = 0x00000000, len = 0
29 flash7 (rx) : org = 0x00000000, len = 0 29 flash7 (rx) : org = 0x00000000, len = 0
30 ram0 (wx) : org = 0x20000000, len = f4xx_ram_size 30 ram0 (wx) : org = 0x20000000, len = f4xx_ram1_size + f4xx_ram2_size /* SRAM1 + SRAM2 */
31 ram1 (wx) : org = 0x00000000, len = 0 31 ram1 (wx) : org = 0x20000000, len = f4xx_ram1_size /* SRAM1 */
32 ram2 (wx) : org = 0x00000000, len = 0 32 ram2 (wx) : org = 0x20000000 + f4xx_ram1_size, len = f4xx_ram2_size /* SRAM2 */
33 ram3 (wx) : org = 0x00000000, len = 0 33 ram3 (wx) : org = 0x00000000, len = 0
34 ram4 (wx) : org = 0x00000000, len = 0 34 ram4 (wx) : org = 0x10000000, len = f4xx_ram4_size /* CCM SRAM */
35 ram5 (wx) : org = 0x00000000, len = 0 35 ram5 (wx) : org = 0x40024000, len = f4xx_ram5_size /* BCKP SRAM */
36 ram6 (wx) : org = 0x00000000, len = 0 36 ram6 (wx) : org = 0x00000000, len = 0
37 ram7 (wx) : org = 0x00000000, len = 0 37 ram7 (wx) : org = 0x00000000, len = 0
38} 38}
@@ -86,5 +86,3 @@ INCLUDE rules.ld
86 86
87/* TinyUF2 bootloader reset support */ 87/* TinyUF2 bootloader reset support */
88_board_dfu_dbl_tap = ORIGIN(ram0) + 64k - 4; /* this is based off the linker file for tinyuf2 */ 88_board_dfu_dbl_tap = ORIGIN(ram0) + 64k - 4; /* this is based off the linker file for tinyuf2 */
89
90