Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions arch/arm/src/cmake/armv6-m.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,8 @@
# ##############################################################################

add_compile_options(-mcpu=cortex-m0 -mthumb -mfloat-abi=soft)

# LLVM Configuration
set(LLVM_ARCHTYPE thumbv6m)
set(LLVM_ABITYPE eabi)
set(LLVM_CPUTYPE cortex-m0)
31 changes: 25 additions & 6 deletions arch/arm/src/cmake/armv7-a.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -24,24 +24,43 @@ set(PLATFORM_FLAGS)

if(CONFIG_ARCH_CORTEXA5)
list(APPEND PLATFORM_FLAGS -mcpu=cortex-a5)
set(LLVM_CPUTYPE cortex-a5)
elseif(CONFIG_ARCH_CORTEXA7)
list(APPEND PLATFORM_FLAGS -mcpu=cortex-a7)
set(LLVM_CPUTYPE cortex-a7)
elseif(CONFIG_ARCH_CORTEXA8)
list(APPEND PLATFORM_FLAGS -mcpu=cortex-a8)
set(LLVM_CPUTYPE cortex-a8)
elseif(CONFIG_ARCH_CORTEXA9)
list(APPEND PLATFORM_FLAGS -mcpu=cortex-a9)
set(LLVM_CPUTYPE cortex-a9)
endif()

if(CONFIG_ARM_THUMB)
set(LLVM_ARCHTYPE thumbv7a)
else()
set(LLVM_ARCHTYPE armv7-a)
endif()

if(CONFIG_ARCH_FPU)
set(LLVM_ABITYPE eabihf)
else()
set(LLVM_ABITYPE eabi)
endif()

if(NOT CONFIG_ARM_DPFPU32)
set(ARCHFPUD16 -d16)
endif()

# Cortex-A5 | -mfpu=vfpv4-fp16 | -mfpu=vfpv4-d16-fp16 | -mfpu=neon-fp16
# Cortex-A7 | -mfpu=vfpv4 | -mfpu=vfpv4-d16 | -mfpu=neon-vfpv4
# Cortex-A8 | -mfpu=vfpv3 | | -mfpu=neon (alias for
# neon-vfpv3) Cortex-A9 | -mfpu=vfpv3-fp16 | -mfpu=vfpv3-d16-fp16 |
# -mfpu=neon-fp16 Cortex-A15 | -mfpu=vfpv4 | |
# -mfpu=neon-vfpv4
# ~~~
# | Cortex | FPU Option 1 | FPU Option 2 | FPU Option 3 |
# |--------|--------------------|------------------------|-----------------------|
# | A5 | -mfpu=vfpv4-fp16 | -mfpu=vfpv4-d16-fp16 | -mfpu=neon-fp16 |
# | A7 | -mfpu=vfpv4 | -mfpu=vfpv4-d16 | -mfpu=neon-vfpv4 |
# | A8 | -mfpu=vfpv3 | | -mfpu=neon (alias for neon-vfpv3) |
# | A9 | -mfpu=vfpv3-fp16 | -mfpu=vfpv3-d16-fp16 | -mfpu=neon-fp16 |
# | A15 | -mfpu=vfpv4 | | -mfpu=neon-vfpv4 |
# ~~~

if(CONFIG_ARCH_FPU)
if(CONFIG_ARM_FPU_ABI_SOFT)
Expand Down
19 changes: 19 additions & 0 deletions arch/arm/src/cmake/armv7-m.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,23 @@ else() # gcc
set(TOOLCHAIN_ARCH_FILE armv7-m_gcc)
endif()

# LLVM Configuration
if(CONFIG_ARCH_CORTEXM3)
set(LLVM_ARCHTYPE thumbv7m)
set(LLVM_CPUTYPE cortex-m3)
else()
set(LLVM_ARCHTYPE thumbv7em)
if(CONFIG_ARCH_CORTEXM4)
set(LLVM_CPUTYPE cortex-m4)
elseif(CONFIG_ARCH_CORTEXM7)
set(LLVM_CPUTYPE cortex-m7)
endif()
endif()

if(CONFIG_ARCH_FPU)
set(LLVM_ABITYPE eabihf)
else()
set(LLVM_ABITYPE eabi)
endif()

include(${TOOLCHAIN_ARCH_FILE})
25 changes: 25 additions & 0 deletions arch/arm/src/cmake/armv8-m.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,31 @@

set(PLATFORM_FLAGS)

# LLVM Configuration
if(CONFIG_ARCH_CORTEXM23)
set(LLVM_ARCHTYPE thumbv8m.base)
set(LLVM_CPUTYPE cortex-m23)
elseif(CONFIG_ARCH_CORTEXM33)
set(LLVM_ARCHTYPE thumbv8m.main)
set(LLVM_CPUTYPE cortex-m33)
elseif(CONFIG_ARCH_CORTEXM35P)
set(LLVM_ARCHTYPE thumbv8m.main)
set(LLVM_CPUTYPE cortex-m35p)
elseif(CONFIG_ARCH_CORTEXM55)
set(LLVM_ARCHTYPE thumbv8.1m.main)
set(LLVM_CPUTYPE cortex-m55)
elseif(CONFIG_ARCH_CORTEXM85)
set(LLVM_ARCHTYPE thumbv8.1m.main)
set(LLVM_CPUTYPE cortex-m85)
endif()

# Set ABI type based on FPU configuration
if(CONFIG_ARCH_FPU)
set(LLVM_ABITYPE eabihf)
else()
set(LLVM_ABITYPE eabi)
endif()

if(CONFIG_ARM_DSP)
set(EXTCPUFLAGS +dsp)
endif()
Expand Down