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