linux/scripts/kconfig
Luis R. Rodriguez 6c6685055a kconfig: add xenconfig defconfig helper
This lets you build a kernel which can support xen dom0
or xen guests on i386, x86-64 and arm64 by just using:

   make xenconfig

You can start from an allnoconfig and then switch to xenconfig.
This also splits out the options which are available currently
to be built with x86 and 'make ARCH=arm64' under a shared config.

Technically xen supports a dom0 kernel and also a guest
kernel configuration but upon review with the xen team
since we don't have many dom0 options its best to just
combine these two into one.

A few generic notes: we enable both of these:

CONFIG_INET=y
CONFIG_BINFMT_ELF=y

although technically not required given you likely will
end up with a pretty useless system otherwise.

A few architectural differences worth noting:

$ make allnoconfig; make xenconfig > /dev/null ; \
	grep XEN .config > 64-bit-config
$ make ARCH=i386 allnoconfig; make ARCH=i386 xenconfig > /dev/null; \
	grep XEN .config > 32-bit-config
$ make ARCH=arm64 allnoconfig; make ARCH=arm64 xenconfig > /dev/null; \
	grep XEN .config > arm64-config

Since the options are already split up with a generic config and
architecture specific configs you anything on the x86 configs
are known to only work right now on x86. For instance arm64 doesn't
support MEMORY_HOTPLUG yet as such although we try to enabe it
generically arm64 doesn't have it yet, so we leave the xen
specific kconfig option XEN_BALLOON_MEMORY_HOTPLUG on x86's config
file to set expecations correctly.

Then on x86 we have differences between i386 and x86-64. The difference
between 64-bit-config and 32-bit-config is you don't get XEN_MCE_LOG as
this is only supported on 64-bit. You also do not get on i386
XEN_BALLOON_MEMORY_HOTPLUG, there does not seem to be any technical
reasons to not allow this but I gave up after a few attempts.

Cc: Josh Triplett <josh@joshtriplett.org>
Cc: Borislav Petkov <bp@suse.de>
Cc: Pekka Enberg <penberg@kernel.org>
Cc: David Rientjes <rientjes@google.com>
Cc: Michal Marek <mmarek@suse.cz>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: penberg@kernel.org
Cc: levinsasha928@gmail.com
Cc: mtosatti@redhat.com
Cc: fengguang.wu@intel.com
Cc: David Vrabel <david.vrabel@citrix.com>
Cc: Ian Campbell <Ian.Campbell@citrix.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: xen-devel@lists.xenproject.org
Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Acked-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Michal Marek <mmarek@suse.cz>
Acked-by: David Rientjes <rientjes@google.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Signed-off-by: Luis R. Rodriguez <mcgrof@suse.com>
Signed-off-by: David Vrabel <david.vrabel@citrix.com>
2015-06-16 11:04:29 +01:00
..
lxdialog kconfig/lxdialog: get ncurses CFLAGS with pkg-config 2014-09-23 15:47:48 +02:00
.gitignore kconfig: remove lkc_defs.h from .gitignore and dontdiff 2012-07-13 15:08:25 +02:00
check.sh kbuild: trivial - remove trailing empty lines 2014-06-10 00:04:06 +02:00
conf.c kconfig: Do not print status messages in make -s mode 2015-04-09 17:44:34 +02:00
confdata.c kconfig: Remove unnecessary prototypes from headers 2015-02-25 15:00:17 +01:00
expr.c kconfig: Remove unnecessary prototypes from headers 2015-02-25 15:00:17 +01:00
expr.h kconfig: Remove unnecessary prototypes from headers 2015-02-25 15:00:17 +01:00
gconf.c kconfig: Do not print status messages in make -s mode 2015-04-09 17:44:34 +02:00
gconf.glade scripts/kconfig/gconf.glade Update broken web addresses. 2010-09-17 16:54:42 +02:00
images.c
kxgettext.c kconfig: nuke LKC_DIRECT_LINK cruft 2011-06-06 15:32:20 -04:00
list.h Replace mentions of "list_struct" to "list_head" 2014-11-20 14:45:15 +01:00
lkc_proto.h kconfig: Remove unnecessary prototypes from headers 2015-02-25 15:00:17 +01:00
lkc.h kconfig: Remove unnecessary prototypes from headers 2015-02-25 15:00:17 +01:00
Makefile kconfig: add xenconfig defconfig helper 2015-06-16 11:04:29 +01:00
mconf.c kconfig: Do not print status messages in make -s mode 2015-04-09 17:44:34 +02:00
menu.c kconfig: Remove unnecessary prototypes from headers 2015-02-25 15:00:17 +01:00
merge_config.sh merge_config.sh: rename MAKE to RUNMAKE 2015-03-24 16:48:44 +01:00
nconf.c kconfig: Do not print status messages in make -s mode 2015-04-09 17:44:34 +02:00
nconf.gui.c nconf: use function calls instead of ncurses' variables LINES and COLS 2013-06-18 23:58:58 +02:00
nconf.h scripts/kconfig/nconf: dynamically alloc dialog_input_result 2011-09-09 14:40:08 +02:00
POTFILES.in kconfig: gettext support for lxdialog 2008-01-28 23:14:39 +01:00
qconf.cc kconfig: Do not print status messages in make -s mode 2015-04-09 17:44:34 +02:00
qconf.h xconfig: Fix the filename for GUI settings 2013-10-08 23:52:16 +02:00
streamline_config.pl kbuild: Make scripts executable 2014-08-20 16:03:45 +02:00
symbol.c kconfig: Remove unnecessary prototypes from headers 2015-02-25 15:00:17 +01:00
util.c kconfig: Remove dead code 2015-02-25 15:00:16 +01:00
zconf.gperf kconfig: make allnoconfig disable options behind EMBEDDED and EXPERT 2014-04-07 16:36:09 -07:00
zconf.hash.c_shipped kconfig: make allnoconfig disable options behind EMBEDDED and EXPERT 2014-04-07 16:36:09 -07:00
zconf.l kbuild: trivial - use tabs for code indent where possible 2014-06-10 14:00:53 +02:00
zconf.lex.c_shipped kbuild: trivial - use tabs for code indent where possible 2014-06-10 14:00:53 +02:00
zconf.tab.c_shipped kbuild: trivial - use tabs for code indent where possible 2014-06-10 14:00:53 +02:00
zconf.y kbuild: trivial - use tabs for code indent where possible 2014-06-10 14:00:53 +02:00