summaryrefslogtreecommitdiff
path: root/target
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2017-01-19 06:57:39 +0100
committerWaldemar Brodkorb <wbx@openadk.org>2017-01-19 06:57:39 +0100
commit7d058c4a562635ab8ffa2d79d2795fe225912c38 (patch)
tree9d68ff263ce1f1288da8ca50ffb35cfddfb1f5d4 /target
parent7571ebeb894381a3f2e95b505aeec66929e89088 (diff)
Add experimental support for STM32F769
Add single/double precision support for Cortex-M7. Mostly from Alex, some minor cleanup and kernel mini config from me. Signed-off-by: Alex Brand <tecnologic86@gmail.com>
Diffstat (limited to 'target')
-rw-r--r--target/arm/kernel/st-stm32f76911
-rw-r--r--target/arm/systems/st-stm32f76914
-rw-r--r--target/config/Config.in.cpu1
-rw-r--r--target/config/Config.in.float12
-rw-r--r--target/config/Config.in.fpu3
5 files changed, 38 insertions, 3 deletions
diff --git a/target/arm/kernel/st-stm32f769 b/target/arm/kernel/st-stm32f769
new file mode 100644
index 000000000..c56087a1b
--- /dev/null
+++ b/target/arm/kernel/st-stm32f769
@@ -0,0 +1,11 @@
+CONFIG_ARM_SINGLE_ARMV7M=y
+CONFIG_ARCH_STM32=y
+CONFIG_SET_MEM_PARAM=y
+CONFIG_DRAM_BASE=0x90000000
+CONFIG_FLASH_MEM_BASE=0x08000000
+CONFIG_FLASH_SIZE=0x00200000
+CONFIG_XIP_KERNEL=y
+CONFIG_XIP_PHYS_ADDR=0x08008000
+CONFIG_SERIAL_NONSTANDARD=y
+CONFIG_SERIAL_STM32=y
+CONFIG_SERIAL_STM32_CONSOLE=y
diff --git a/target/arm/systems/st-stm32f769 b/target/arm/systems/st-stm32f769
new file mode 100644
index 000000000..2227e16db
--- /dev/null
+++ b/target/arm/systems/st-stm32f769
@@ -0,0 +1,14 @@
+config ADK_TARGET_SYSTEM_ST_STM32F769
+ bool "STMicroelectronics STM32F769"
+ depends on ADK_EXPERIMENTAL
+ depends on ADK_TARGET_LITTLE_ENDIAN
+ select ADK_TARGET_CPU_ARM_CORTEX_M7
+ select ADK_TARGET_HARD_FLOAT_DP
+ select ADK_TARGET_ARCH_ARM_WITH_THUMB
+ select ADK_TARGET_WITH_SERIAL
+ select ADK_TARGET_UCLINUX
+ select ADK_TARGET_KERNEL_XIPIMAGE
+ select ADK_PACKAGE_AFBOOT_STM32
+ help
+ STMicroelectronics STM32F769
+
diff --git a/target/config/Config.in.cpu b/target/config/Config.in.cpu
index b270ebebc..7d24b3d79 100644
--- a/target/config/Config.in.cpu
+++ b/target/config/Config.in.cpu
@@ -1959,6 +1959,7 @@ config ADK_TARGET_CPU_TYPE
default "cortex_a17" if ADK_TARGET_CPU_ARM_CORTEX_A17
default "cortex_m3" if ADK_TARGET_CPU_ARM_CORTEX_M3
default "cortex_m4" if ADK_TARGET_CPU_ARM_CORTEX_M4
+ default "cortex_m7" if ADK_TARGET_CPU_ARM_CORTEX_M7
default "arm1176jzf_s" if ADK_TARGET_CPU_ARM_ARM1176JZF_S
default "arm926ej_s" if ADK_TARGET_CPU_ARM_ARM926EJ_S
default "mpcore" if ADK_TARGET_CPU_ARM_ARM11MPCORE
diff --git a/target/config/Config.in.float b/target/config/Config.in.float
index 693010633..8a17873c4 100644
--- a/target/config/Config.in.float
+++ b/target/config/Config.in.float
@@ -11,7 +11,15 @@ depends on ADK_TARGET_ARCH_ARM || \
config ADK_TARGET_HARD_FLOAT
bool "hard-float"
- depends on ADK_TARGET_CPU_WITH_FPU
+ depends on ADK_TARGET_CPU_WITH_FPU && !ADK_TARGET_CPU_WITH_FPU_FPV5
+
+config ADK_TARGET_HARD_FLOAT_SP
+ bool "hard-float-single-precision"
+ depends on ADK_TARGET_CPU_WITH_FPU && ADK_TARGET_CPU_WITH_FPU_FPV5
+
+config ADK_TARGET_HARD_FLOAT_DP
+ bool "hard-float-double-precision"
+ depends on ADK_TARGET_CPU_WITH_FPU && ADK_TARGET_CPU_WITH_FPU_FPV5
config ADK_TARGET_SOFT_FLOAT
bool "soft-float"
@@ -26,6 +34,6 @@ config ADK_TARGET_FLOAT
string
depends on !ADK_TARGET_ARCH_M68K \
&& !ADK_TARGET_ARCH_NIOS2
- default "hard" if ADK_TARGET_HARD_FLOAT
+ default "hard" if ADK_TARGET_HARD_FLOAT || ADK_TARGET_HARD_FLOAT_SP || ADK_TARGET_HARD_FLOAT_DP
default "soft" if ADK_TARGET_SOFT_FLOAT
default "softfp" if ADK_TARGET_SOFTFP_FLOAT
diff --git a/target/config/Config.in.fpu b/target/config/Config.in.fpu
index 9b6c396f7..1ea04be3e 100644
--- a/target/config/Config.in.fpu
+++ b/target/config/Config.in.fpu
@@ -18,7 +18,8 @@ config ADK_TARGET_FPU
default "vfpv3-fp16" if ADK_TARGET_CPU_ARM_CORTEX_A9 && !ADK_TARGET_ARCH_ARM_WITH_NEON
default "vfpv4" if ADK_TARGET_CPU_ARM_CORTEX_A15 && !ADK_TARGET_ARCH_ARM_WITH_NEON
default "fpv4-sp-d16" if ADK_TARGET_CPU_ARM_CORTEX_M4
- default "fpv5-sp-d16" if ADK_TARGET_CPU_ARM_CORTEX_M7
+ default "fpv5-sp-d16" if ADK_TARGET_CPU_ARM_CORTEX_M7 && ADK_TARGET_HARD_FLOAT_SP
+ default "fpv5-d16" if ADK_TARGET_CPU_ARM_CORTEX_M7 && ADK_TARGET_HARD_FLOAT_DP
default "neon-fp16" if ADK_TARGET_CPU_ARM_CORTEX_A5 && ADK_TARGET_ARCH_ARM_WITH_NEON
default "neon-vfpv4" if ADK_TARGET_CPU_ARM_CORTEX_A7 && ADK_TARGET_ARCH_ARM_WITH_NEON
default "neon" if ADK_TARGET_CPU_ARM_CORTEX_A8 && ADK_TARGET_ARCH_ARM_WITH_NEON