ia64/xen-unstable

view Config.mk @ 9203:5ea87acc07dc

Adds a new device interface to xend/xm similar to the one for ioports
where an interrupt (irq) can be specified in the configuration file
and permission to bind to that interrupt will be given to a driver
domain.

This functionality could be used when trying to give a legacy device
to a driver domain. For example, by specifying the i/o ports and the
interrupt of your serial controller, you can use this patch to put a
serial port in a driver domain. This was discussed briefly on
xen-users in regards to using an external modem in a domU:

http://article.gmane.org/gmane.comp.emulators.xen.devel/20573
http://article.gmane.org/gmane.comp.emulators.xen.user/8754

Also adds the ability to specify irqs on the xm command-line when
creating a domain (the following examples show a serial port being
given to a domU):

xm create serial-dd irq=4 ioports=03f8-03ff

or in a flat config-file:

irq = [4]
ioports = ['03f8-03ff']

or in an SXP config file:

(device (irq (irq 4)))
(device (ioports (from '0x03f8')(to '0x03ff')))

The ioports functionality is already in xen, but this patch also fixes a
bug with it that I assume cropped up due to changes in xend since it was
submitted ('dev' doesn't exist in iopif.py, returning 'None' seems to be
the solution).

Also adds some in-line documentation in tools/python/xen/xm/create.py
to be more accurate regarding adding pci devices and i/o ports on the
command-line.

Signed-off-by: Ryan Wilson <hap9@epoch.ncsc.mil>
author kaf24@firebug.cl.cam.ac.uk
date Thu Mar 09 11:20:31 2006 +0100 (2006-03-09)
parents 5fc47ed682d6
children 7e68bc2745af
line source
1 # -*- mode: Makefile; -*-
3 # Currently supported architectures: x86_32, x86_64
4 XEN_COMPILE_ARCH ?= $(shell uname -m | sed -e s/i.86/x86_32/)
5 XEN_TARGET_ARCH ?= $(XEN_COMPILE_ARCH)
6 XEN_TARGET_X86_PAE ?= n
8 # Tools to run on system hosting the build
9 HOSTCC = gcc
10 HOSTCFLAGS = -Wall -Werror -Wstrict-prototypes -O2 -fomit-frame-pointer
12 AS = $(CROSS_COMPILE)as
13 LD = $(CROSS_COMPILE)ld
14 CC = $(CROSS_COMPILE)gcc
15 CPP = $(CROSS_COMPILE)gcc -E
16 AR = $(CROSS_COMPILE)ar
17 RANLIB = $(CROSS_COMPILE)ranlib
18 NM = $(CROSS_COMPILE)nm
19 STRIP = $(CROSS_COMPILE)strip
20 OBJCOPY = $(CROSS_COMPILE)objcopy
21 OBJDUMP = $(CROSS_COMPILE)objdump
23 DISTDIR ?= $(XEN_ROOT)/dist
25 INSTALL = install
26 INSTALL_DIR = $(INSTALL) -d -m0755
27 INSTALL_DATA = $(INSTALL) -m0644
28 INSTALL_PROG = $(INSTALL) -m0755
30 ifeq ($(XEN_TARGET_ARCH),x86_64)
31 LIBDIR = lib64
32 else
33 LIBDIR = lib
34 endif
36 ifneq ($(EXTRA_PREFIX),)
37 EXTRA_INCLUDES += $(EXTRA_PREFIX)/include
38 EXTRA_LIB += $(EXTRA_PREFIX)/$(LIBDIR)
39 endif
41 test-gcc-flag = $(shell $(1) -v --help 2>&1 | grep -q " $(2) " && echo $(2))
43 HOSTCFLAGS += $(call test-gcc-flag,$(HOSTCC),-Wdeclaration-after-statement)
44 CFLAGS += $(call test-gcc-flag,$(CC),-Wdeclaration-after-statement)
46 LDFLAGS += $(foreach i, $(EXTRA_LIB), -L$(i))
47 CFLAGS += $(foreach i, $(EXTRA_INCLUDES), -I$(i))
49 # Choose the best mirror to download linux kernel
50 KERNEL_REPO = http://www.kernel.org
52 # If ACM_SECURITY = y, then the access control module is compiled
53 # into Xen and the policy type can be set by the boot policy file
54 # y - Build the Xen ACM framework
55 # n - Do not build the Xen ACM framework
56 ACM_SECURITY ?= n
58 # If ACM_SECURITY = y and no boot policy file is installed,
59 # then the ACM defaults to the security policy set by
60 # ACM_DEFAULT_SECURITY_POLICY
61 # Supported models are:
62 # ACM_NULL_POLICY
63 # ACM_CHINESE_WALL_POLICY
64 # ACM_SIMPLE_TYPE_ENFORCEMENT_POLICY
65 # ACM_CHINESE_WALL_AND_SIMPLE_TYPE_ENFORCEMENT_POLICY
66 ACM_DEFAULT_SECURITY_POLICY ?= ACM_NULL_POLICY
68 # Optional components
69 XENSTAT_XENTOP ?= y
71 VTPM_TOOLS ?= n
73 -include $(XEN_ROOT)/.config