From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrii Tseglytskyi Subject: [RFC PATCH] xen: arm: move rambase definitions to Rules.mk Date: Fri, 22 Aug 2014 13:05:55 +0300 Message-ID: <1408701955-26902-1-git-send-email-andrii.tseglytskyi@globallogic.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org, Ian Campbell , Stefano Stabellini , Tim Deegan List-Id: xen-devel@lists.xenproject.org The reason of this pathch is the following - guest domain OS may use iomem mappings. It is a typical way to handle devices in domU. On some SoCs iomem starts from 0x40000000 base. Therefore it is almost impossible to use iomem mappings, because it conflicts with GUEST_RAM0_BASE pointer, which has similar value. Patch allows to configure this from compile command line. Verified on OMAP5. Signed-off-by: Andrii Tseglytskyi --- tools/Rules.mk | 9 +++++++++ xen/arch/arm/Rules.mk | 5 +++++ xen/include/public/arch-arm.h | 3 --- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/tools/Rules.mk b/tools/Rules.mk index 5bac700..ebc1324 100644 --- a/tools/Rules.mk +++ b/tools/Rules.mk @@ -35,6 +35,15 @@ INSTALL_SHLIB = : install-shlib-unsupported-fail SYMLINK_SHLIB = : symlink-shlib-unsupported-fail endif +TOOLS_TARGET_ARCH := $(shell echo $(XEN_TARGET_ARCH) | \ + sed -e 's/x86.*/x86/' -e s'/arm\(32\|64\)/arm/g') +ifeq ($(TOOLS_TARGET_ARCH),arm) +GUEST_RAM0_BASE ?= 0x40000000ULL +GUEST_RAM0_SIZE ?= 0xc0000000ULL +CFLAGS += -DGUEST_RAM0_BASE=$(GUEST_RAM0_BASE) +CFLAGS += -DGUEST_RAM0_SIZE=$(GUEST_RAM0_SIZE) +endif + CFLAGS_libxenctrl = -I$(XEN_LIBXC) $(CFLAGS_xeninclude) LDLIBS_libxenctrl = $(XEN_LIBXC)/libxenctrl$(libextension) SHLIB_libxenctrl = -Wl,-rpath-link=$(XEN_LIBXC) diff --git a/xen/arch/arm/Rules.mk b/xen/arch/arm/Rules.mk index 8658176..ba7dbb8 100644 --- a/xen/arch/arm/Rules.mk +++ b/xen/arch/arm/Rules.mk @@ -104,6 +104,11 @@ ifneq ($(EARLY_PRINTK_INC),) EARLY_PRINTK := y endif +GUEST_RAM0_BASE ?= 0x40000000ULL +GUEST_RAM0_SIZE ?= 0xc0000000ULL +CFLAGS += -DGUEST_RAM0_BASE=$(GUEST_RAM0_BASE) +CFLAGS += -DGUEST_RAM0_SIZE=$(GUEST_RAM0_SIZE) + CFLAGS-$(EARLY_PRINTK) += -DCONFIG_EARLY_PRINTK CFLAGS-$(EARLY_PRINTK_INIT_UART) += -DEARLY_PRINTK_INIT_UART CFLAGS-$(EARLY_PRINTK) += -DEARLY_PRINTK_INC=\"debug-$(EARLY_PRINTK_INC).inc\" diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h index ac54cd6..a31ed72 100644 --- a/xen/include/public/arch-arm.h +++ b/xen/include/public/arch-arm.h @@ -380,9 +380,6 @@ typedef uint64_t xen_callback_t; #define GUEST_RAM_BANKS 2 -#define GUEST_RAM0_BASE 0x40000000ULL /* 3GB of low RAM @ 1GB */ -#define GUEST_RAM0_SIZE 0xc0000000ULL - #define GUEST_RAM1_BASE 0x0200000000ULL /* 1016GB of RAM @ 8GB */ #define GUEST_RAM1_SIZE 0xfe00000000ULL -- 1.9.1