1########################################
2# arm-specific definitions
3
4#
5# If you change any of these configuration options then you must
6# 'make clean' before rebuilding.
7#
8
9CFLAGS += -I$(BASEDIR)/include
10
11$(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
12$(call cc-option-add,CFLAGS,CC,-Wnested-externs)
13
14# Prevent floating-point variables from creeping into Xen.
15CFLAGS-$(CONFIG_ARM_32) += -msoft-float
16CFLAGS-$(CONFIG_ARM_32) += -mcpu=cortex-a15
17
18CFLAGS-$(CONFIG_ARM_64) += -mcpu=generic
19CFLAGS-$(CONFIG_ARM_64) += -mgeneral-regs-only # No fp registers etc
20
21ifneq ($(call cc-option,$(CC),-fvisibility=hidden,n),n)
22CFLAGS += -DGCC_HAS_VISIBILITY_ATTRIBUTE
23endif
24
25EARLY_PRINTK := n
26
27ifeq ($(CONFIG_DEBUG),y)
28
29# See docs/misc/arm/early-printk.txt for syntax
30
31EARLY_PRINTK_brcm           := 8250,0xF040AB00,2
32EARLY_PRINTK_dra7           := 8250,0x4806A000,2
33EARLY_PRINTK_fastmodel      := pl011,0x1c090000,115200
34EARLY_PRINTK_exynos5250     := exynos4210,0x12c20000
35EARLY_PRINTK_hikey960       := pl011,0xfff32000
36EARLY_PRINTK_juno           := pl011,0x7ff80000
37EARLY_PRINTK_lager          := scif,0xe6e60000
38EARLY_PRINTK_midway         := pl011,0xfff36000
39EARLY_PRINTK_omap5432       := 8250,0x48020000,2
40EARLY_PRINTK_rcar3          := scif,0xe6e88000
41EARLY_PRINTK_seattle        := pl011,0xe1010000
42EARLY_PRINTK_sun6i          := 8250,0x01c28000,2
43EARLY_PRINTK_sun7i          := 8250,0x01c28000,2
44EARLY_PRINTK_thunderx       := pl011,0x87e024000000
45EARLY_PRINTK_vexpress       := pl011,0x1c090000
46EARLY_PRINTK_xgene-mcdivitt := 8250,0x1c021000,2
47EARLY_PRINTK_xgene-storm    := 8250,0x1c020000,2
48EARLY_PRINTK_zynqmp         := cadence,0xff000000
49
50ifneq ($(EARLY_PRINTK_$(CONFIG_EARLY_PRINTK)),)
51EARLY_PRINTK_CFG := $(subst $(comma), ,$(EARLY_PRINTK_$(CONFIG_EARLY_PRINTK)))
52else
53EARLY_PRINTK_CFG := $(subst $(comma), ,$(CONFIG_EARLY_PRINTK))
54endif
55
56# Extract configuration from string
57EARLY_PRINTK_INC := $(word 1,$(EARLY_PRINTK_CFG))
58EARLY_UART_BASE_ADDRESS := $(word 2,$(EARLY_PRINTK_CFG))
59
60# UART specific options
61ifeq ($(EARLY_PRINTK_INC),8250)
62EARLY_UART_REG_SHIFT := $(word 3,$(EARLY_PRINTK_CFG))
63endif
64ifeq ($(EARLY_PRINTK_INC),pl011)
65ifneq ($(word 3,$(EARLY_PRINTK_CFG)),)
66EARLY_PRINTK_INIT_UART := y
67EARLY_PRINTK_BAUD := $(word 3,$(EARLY_PRINTK_CFG))
68endif
69endif
70
71ifneq ($(EARLY_PRINTK_INC),)
72EARLY_PRINTK := y
73endif
74
75CFLAGS-$(EARLY_PRINTK) += -DCONFIG_EARLY_PRINTK
76CFLAGS-$(EARLY_PRINTK_INIT_UART) += -DEARLY_PRINTK_INIT_UART
77CFLAGS-$(EARLY_PRINTK) += -DEARLY_PRINTK_INC=\"debug-$(EARLY_PRINTK_INC).inc\"
78CFLAGS-$(EARLY_PRINTK) += -DEARLY_PRINTK_BAUD=$(EARLY_PRINTK_BAUD)
79CFLAGS-$(EARLY_PRINTK) += -DEARLY_UART_BASE_ADDRESS=$(EARLY_UART_BASE_ADDRESS)
80CFLAGS-$(EARLY_PRINTK) += -DEARLY_UART_REG_SHIFT=$(EARLY_UART_REG_SHIFT)
81
82else # !CONFIG_DEBUG
83
84ifneq ($(CONFIG_EARLY_PRINTK),)
85# Early printk is dependant on a debug build.
86$(error CONFIG_EARLY_PRINTK enabled for non-debug build)
87endif
88
89endif
90