ARC: rework setting of ARC CPU specific compiler options

It's a very rare if at all existing occasion when ARC CPU template
is used as is w/o any changes - in the end it's a beauty and competitive
advantage of ARC cores to be tailored for a particular use-case - and
so it doesn't make a lot of sense to offer template-based "-mcpu" selection.
Given for each and every platform we end-up adding quite a few more flags
it's logical to move "-mcpu" selection to platform's definition as well
which we exactly do here.

Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
This commit is contained in:
Eugeniy Paltsev 2020-02-12 14:23:54 +03:00 committed by Alexey Brodkin
parent defd1e71d0
commit c77bbc2215
12 changed files with 39 additions and 22 deletions

View File

@ -22,26 +22,6 @@ ifdef CONFIG_ARC_MMU_VER
CONFIG_MMU = 1 CONFIG_MMU = 1
endif endif
ifdef CONFIG_CPU_ARC750D
PLATFORM_CPPFLAGS += -mcpu=arc700
endif
ifdef CONFIG_CPU_ARC770D
PLATFORM_CPPFLAGS += -mcpu=arc700 -mlock -mswape
endif
ifdef CONFIG_CPU_ARCEM6
PLATFORM_CPPFLAGS += -mcpu=arcem
endif
ifdef CONFIG_CPU_ARCHS34
PLATFORM_CPPFLAGS += -mcpu=archs
endif
ifdef CONFIG_CPU_ARCHS38
PLATFORM_CPPFLAGS += -mcpu=archs
endif
PLATFORM_CPPFLAGS += -ffixed-r25 -D__ARC__ -gdwarf-2 -mno-sdata PLATFORM_CPPFLAGS += -ffixed-r25 -D__ARC__ -gdwarf-2 -mno-sdata
PLATFORM_RELFLAGS += -ffunction-sections -fdata-sections -fno-common PLATFORM_RELFLAGS += -ffunction-sections -fdata-sections -fno-common

View File

@ -0,0 +1,5 @@
# SPDX-License-Identifier: GPL-2.0+
#
# Copyright (C) 2020 Synopsys, Inc. All rights reserved.
PLATFORM_CPPFLAGS += -mcpu=arc700 -mlock -mswape

View File

@ -2,6 +2,12 @@
# #
# Copyright (C) 2018 Synopsys, Inc. All rights reserved. # Copyright (C) 2018 Synopsys, Inc. All rights reserved.
ifdef CONFIG_TARGET_AXS103
PLATFORM_CPPFLAGS += -mcpu=archs
else
PLATFORM_CPPFLAGS += -mcpu=arc700 -mlock -mswape
endif
bsp-generate: u-boot u-boot.bin bsp-generate: u-boot u-boot.bin
ifdef CONFIG_ISA_ARCV2 ifdef CONFIG_ISA_ARCV2
$(Q)python3 $(srctree)/board/$(BOARDDIR)/headerize-axs.py \ $(Q)python3 $(srctree)/board/$(BOARDDIR)/headerize-axs.py \

View File

@ -1,2 +1,2 @@
PLATFORM_CPPFLAGS += -mlittle-endian -mnorm -mswap -mmpy-option=3 \ PLATFORM_CPPFLAGS += -mcpu=arcem -mlittle-endian -mnorm -mswap -mmpy-option=3 \
-mbarrel-shifter -mfpu=fpuda_all -mcode-density -mbarrel-shifter -mfpu=fpuda_all -mcode-density

View File

@ -2,6 +2,10 @@
# #
# Copyright (C) 2018 Synopsys, Inc. All rights reserved. # Copyright (C) 2018 Synopsys, Inc. All rights reserved.
PLATFORM_CPPFLAGS += -mcpu=hs38_linux -mlittle-endian -matomic -mll64 \
-mdiv-rem -mswap -mnorm -mmpy-option=9 -mbarrel-shifter \
-mfpu=fpud_all
bsp-generate: u-boot u-boot.bin bsp-generate: u-boot u-boot.bin
$(Q)python3 $(srctree)/board/$(BOARDDIR)/headerize-hsdk.py \ $(Q)python3 $(srctree)/board/$(BOARDDIR)/headerize-hsdk.py \
--arc-id 0x52 --image $(srctree)/u-boot.bin \ --arc-id 0x52 --image $(srctree)/u-boot.bin \

View File

@ -1,2 +1,3 @@
PLATFORM_CPPFLAGS += -mlittle-endian -mcode-density -mdiv-rem -mswap -mnorm -mmpy-option=6 -mbarrel-shifter PLATFORM_CPPFLAGS += -mcpu=arcem -mlittle-endian -mcode-density -mdiv-rem \
-mswap -mnorm -mmpy-option=6 -mbarrel-shifter
LDSCRIPT = $(srctree)/board/synopsys/iot_devkit/u-boot.lds LDSCRIPT = $(srctree)/board/synopsys/iot_devkit/u-boot.lds

View File

@ -9,4 +9,13 @@ config SYS_VENDOR
config SYS_CONFIG_NAME config SYS_CONFIG_NAME
default "nsim" default "nsim"
config NSIM_BOARD_CPPFLAGS
string "board arc-specific compiler options"
help
For nSIM we allow to set custom arc-specific compiler options
(like -mcpu=) instead of hardcoding them in its makefile as nSIM
target is used for representing targets without fixed CPU version
like FPGA-based boards and software simulators.
This variable takes space separated compiler options list.
endif endif

View File

@ -0,0 +1,8 @@
# SPDX-License-Identifier: GPL-2.0+
#
# Copyright (C) 2020 Synopsys, Inc. All rights reserved.
# CONFIG_NSIM_BOARD_CPPFLAGS is a string variable which comes from defconfig
# with double quotes. We use echo to remove them so CONFIG_NSIM_BOARD_CPPFLAGS
# won't be treated by compiler as a single option.
PLATFORM_CPPFLAGS += $(shell echo $(CONFIG_NSIM_BOARD_CPPFLAGS))

View File

@ -1,5 +1,6 @@
CONFIG_ARC=y CONFIG_ARC=y
CONFIG_TARGET_NSIM=y CONFIG_TARGET_NSIM=y
CONFIG_NSIM_BOARD_CPPFLAGS="-mcpu=arc700 -mlock -mswape"
CONFIG_SYS_TEXT_BASE=0x81000000 CONFIG_SYS_TEXT_BASE=0x81000000
CONFIG_DEBUG_UART_BASE=0xf0000000 CONFIG_DEBUG_UART_BASE=0xf0000000
CONFIG_DEBUG_UART_CLOCK=70000000 CONFIG_DEBUG_UART_CLOCK=70000000

View File

@ -1,6 +1,7 @@
CONFIG_ARC=y CONFIG_ARC=y
CONFIG_CPU_BIG_ENDIAN=y CONFIG_CPU_BIG_ENDIAN=y
CONFIG_TARGET_NSIM=y CONFIG_TARGET_NSIM=y
CONFIG_NSIM_BOARD_CPPFLAGS="-mcpu=arc700 -mlock -mswape"
CONFIG_SYS_TEXT_BASE=0x81000000 CONFIG_SYS_TEXT_BASE=0x81000000
CONFIG_DEBUG_UART_BASE=0xf0000000 CONFIG_DEBUG_UART_BASE=0xf0000000
CONFIG_DEBUG_UART_CLOCK=70000000 CONFIG_DEBUG_UART_CLOCK=70000000

View File

@ -1,6 +1,7 @@
CONFIG_ARC=y CONFIG_ARC=y
CONFIG_ISA_ARCV2=y CONFIG_ISA_ARCV2=y
CONFIG_TARGET_NSIM=y CONFIG_TARGET_NSIM=y
CONFIG_NSIM_BOARD_CPPFLAGS="-mcpu=archs"
CONFIG_SYS_TEXT_BASE=0x81000000 CONFIG_SYS_TEXT_BASE=0x81000000
CONFIG_DEBUG_UART_BASE=0xf0000000 CONFIG_DEBUG_UART_BASE=0xf0000000
CONFIG_DEBUG_UART_CLOCK=70000000 CONFIG_DEBUG_UART_CLOCK=70000000

View File

@ -2,6 +2,7 @@ CONFIG_ARC=y
CONFIG_ISA_ARCV2=y CONFIG_ISA_ARCV2=y
CONFIG_CPU_BIG_ENDIAN=y CONFIG_CPU_BIG_ENDIAN=y
CONFIG_TARGET_NSIM=y CONFIG_TARGET_NSIM=y
CONFIG_NSIM_BOARD_CPPFLAGS="-mcpu=archs"
CONFIG_SYS_TEXT_BASE=0x81000000 CONFIG_SYS_TEXT_BASE=0x81000000
CONFIG_DEBUG_UART_BASE=0xf0000000 CONFIG_DEBUG_UART_BASE=0xf0000000
CONFIG_DEBUG_UART_CLOCK=70000000 CONFIG_DEBUG_UART_CLOCK=70000000