From 71998c039fd18d2ef7da974232d1cb5d986b4a97 Mon Sep 17 00:00:00 2001
From: Vegard Storheil Eriksen <zyp@jvnv.net>
Date: Wed, 15 Sep 2021 23:12:15 +0200
Subject: platforms: Add initial STM32F7 support.

---
 platforms/cortex-m.yaml    |  27 +++++-
 platforms/stm32/f7.yaml    | 224 +++++++++++++++++++++++++++++++++++++++++++++
 platforms/stm32/index.yaml |   5 +-
 3 files changed, 251 insertions(+), 5 deletions(-)
 create mode 100644 platforms/stm32/f7.yaml

(limited to 'platforms')

diff --git a/platforms/cortex-m.yaml b/platforms/cortex-m.yaml
index a41957a..91072c7 100644
--- a/platforms/cortex-m.yaml
+++ b/platforms/cortex-m.yaml
@@ -1,5 +1,6 @@
+# All cortex-m
 - match:
-    cpu: cortex-m4f
+    cpu: !re cortex-m
   
   periph:
     nvic:
@@ -17,13 +18,31 @@
       14: PendSV
       15: SysTick
 
+  toolchains:
+    - arm-none-eabi
+
+# cortex-m4
+- match:
+    cpu: !re cortex-m4
+
   cflags:
     - -mcpu=cortex-m4
+
+# cortex-m7
+- match:
+    cpu: !re cortex-m7
+
+  cflags:
+    - -mcpu=cortex-m7
+
+# FPU
+- match:
+    cpu: !re cortex-m.f
+  
+  cflags:
     - -mfloat-abi=hard
     - -mfpu=fpv4-sp-d16
   
   define:
     - HAS_FPU
-  
-  toolchains:
-    - arm-none-eabi
+  
\ No newline at end of file
diff --git a/platforms/stm32/f7.yaml b/platforms/stm32/f7.yaml
new file mode 100644
index 0000000..7c8e04d
--- /dev/null
+++ b/platforms/stm32/f7.yaml
@@ -0,0 +1,224 @@
+- match:
+    mem: e
+  mem:
+    flash:
+      origin: 0x00200000
+      size: 512k
+
+- match:
+    mem: g
+  mem:
+    flash:
+      origin: 0x00200000
+      size: 1M
+
+- mem:
+    ram:
+      origin: 0x20000000
+      size: 320k
+
+  periph:
+    stm32_uart:
+      USART1:
+        offset: 0x40011000
+        type: v2
+      USART2:
+        offset: 0x40004400
+        type: v2
+
+    rcc:
+      RCC:
+        offset: 0x40023800
+        type: f4
+        bus:
+          AHB1:
+            0: GPIOA
+            1: GPIOB
+            2: GPIOC
+            3: GPIOD
+            4: GPIOE
+            5: GPIOF
+            6: GPIOG
+            7: GPIOH
+            8: GPIOI
+            8: GPIOJ
+            8: GPIOK
+            12: CRC
+            18: BKPSRAM
+            20: DTCMRAM
+            21: DMA1
+            22: DMA2
+            23: DMA2D
+            25: ETHMAC
+            26: ETHMACTX
+            27: ETHMACRX
+            28: ETHMACPTP
+            29: OTGHS
+            30: OTGHSULPI
+
+          AHB2:
+            0: DCMI
+            4: CRYP
+            5: HASH
+            6: RNG
+            7: OTGFS
+
+          AHB3:
+            0: FMC
+            1: QSPI
+
+          APB1:
+            0: TIM2
+            1: TIM3
+            2: TIM4
+            3: TIM5
+            4: TIM6
+            5: TIM7
+            6: TIM12
+            7: TIM13
+            8: TIM14
+            9: LPTIM1
+            11: WWDG
+            14: SPI2
+            15: SPI3
+            16: SPDIFRX
+            17: USART2
+            18: USART3
+            19: UART4
+            20: UART5
+            21: I2C1
+            22: I2C2
+            23: I2C3
+            24: I2C4
+            25: CAN1
+            26: CAN2
+            27: CEC
+            28: PWR
+            29: DAC
+            30: UART7
+            31: UART8
+
+          APB2:
+            0: TIM1
+            1: TIM8
+            4: USART1
+            5: USART6
+            8: ADC1
+            9: ADC2
+            10: ADC3
+            11: SDMMC1
+            12: SPI1
+            13: SPI4
+            14: SYSCFG
+            16: TIM9
+            17: TIM10
+            18: TIM11
+            20: SPI5
+            21: SPI6
+            22: SAI1
+            23: SAI2
+            26: LTDC
+
+  interrupt:
+    irq:
+      0: WWDG
+      1: PVD
+      2: TAMP_STAMP
+      3: RTC_WKUP
+      4: FLASH
+      5: RCC
+      6: EXTI0
+      7: EXTI1
+      8: EXTI2
+      9: EXTI3
+      10: EXTI4
+      11: DMA1_Stream0
+      12: DMA1_Stream1
+      13: DMA1_Stream2
+      14: DMA1_Stream3
+      15: DMA1_Stream4
+      16: DMA1_Stream5
+      17: DMA1_Stream6
+      18: ADC
+      19: CAN1_TX
+      20: CAN1_RX0
+      21: CAN1_RX1
+      22: CAN1_SCE
+      23: EXTI9_5
+      24: TIM1_BRK_TIM9
+      25: TIM1_UP_TIM10
+      26: TIM1_TRG_COM_TIM11
+      27: TIM1_CC
+      28: TIM2
+      29: TIM3
+      30: TIM4
+      31: I2C1_EV
+      32: I2C1_ER
+      33: I2C2_EV
+      34: I2C2_ER
+      35: SPI1
+      36: SPI2
+      37: USART1
+      38: USART2
+      39: USART3
+      40: EXTI15_10
+      41: RTC_Alarm
+      42: OTG_FS_WKUP
+      43: TIM8_BRK_TIM12
+      44: TIM8_UP_TIM13
+      45: TIM8_TRG_COM_TIM14
+      46: TIM8_CC
+      47: DMA1_Stream7
+      48: FSMC
+      49: SDMMC1
+      50: TIM5
+      51: SPI3
+      52: UART4
+      53: UART5
+      54: TIM6_DAC
+      55: TIM7
+      56: DMA2_Stream0
+      57: DMA2_Stream1
+      58: DMA2_Stream2
+      59: DMA2_Stream3
+      60: DMA2_Stream4
+      61: ETH
+      62: ETH_WKUP
+      63: CAN2_TX
+      64: CAN2_RX0
+      65: CAN2_RX1
+      66: CAN2_SCE
+      67: OTG_FS
+      68: DMA2_Stream5
+      69: DMA2_Stream6
+      70: DMA2_Stream7
+      71: USART6
+      72: I2C3_EV
+      73: I2C3_ER
+      74: OTG_HS_EP1_OUT
+      75: OTG_HS_EP1_IN
+      76: OTG_HS_WKUP
+      77: OTG_HS
+      78: DCMI
+      79: CRYP
+      80: HASH_RNG
+      81: FPU
+      82: UART7
+      83: UART8
+      84: SPI4
+      85: SPI5
+      86: SPI6
+      87: SAI1
+      88: LCD_TFT
+      89: LCD_TFT_ERR
+      90: DMA2D
+      91: SAI2
+      92: QuadSPI
+      93: LPTIM1
+      94: HDMI_CEC
+      95: I2C4_EV
+      96: I2C4_ER
+      97: SPDIFRX
+
+  meta:
+    cpu: cortex-m7f
\ No newline at end of file
diff --git a/platforms/stm32/index.yaml b/platforms/stm32/index.yaml
index a8cb56f..ca234bd 100644
--- a/platforms/stm32/index.yaml
+++ b/platforms/stm32/index.yaml
@@ -4,5 +4,8 @@
   -:
     - match:
         family: f4
-
       -: !import f4.yaml
+
+    - match:
+        family: f7
+      -: !import f7.yaml
-- 
cgit v1.2.3