Changeset a2acc03e8a4d :
http://xenbits.xensource.com/ext/ppc/linux-2.6.18-xen.hg?cmd=changeset;node=a2acc03e8a4d
[XEN][LINUX][POWERPC] Add PowerPC Xen architecture support.
Most of this code was written by Jimi Xenidis <jimix@xxxxxxxxxxxxxx>.
Signed-off-by: Hollis Blanchard <hollisb@xxxxxxxxxx>
diffstat:
43 files changed, 4621 insertions(+), 9 deletions(-)
arch/powerpc/Kconfig | 13
arch/powerpc/Kconfig.debug | 14
arch/powerpc/Makefile | 1
arch/powerpc/boot/Makefile | 3
arch/powerpc/boot/xen_guest.S | 7
arch/powerpc/configs/xen_maple_defconfig | 1342 ++++++++++++++++++++++++++++
arch/powerpc/kernel/cpu_setup_power4.S | 7
arch/powerpc/kernel/prom_init.c | 34
arch/powerpc/kernel/setup-common.c | 6
arch/powerpc/kernel/udbg.c | 3
arch/powerpc/mm/slb_low.S | 17
arch/powerpc/platforms/Makefile | 2
arch/powerpc/platforms/pseries/iommu.c | 11
arch/powerpc/platforms/xen/Makefile | 20
arch/powerpc/platforms/xen/balloon.c | 82 +
arch/powerpc/platforms/xen/gnttab.c | 468 +++++++++
arch/powerpc/platforms/xen/hcall.c | 749 +++++++++++++++
arch/powerpc/platforms/xen/reboot.c | 53 +
arch/powerpc/platforms/xen/setup.c | 324 ++++++
arch/powerpc/platforms/xen/setup.h | 49 +
arch/powerpc/platforms/xen/smp.c | 444 +++++++++
arch/powerpc/platforms/xen/time.c | 114 ++
arch/powerpc/platforms/xen/udbg_xen.c | 164 +++
arch/powerpc/platforms/xen/util.c | 70 +
arch/powerpc/platforms/xen/xen_guest.S | 27
arch/powerpc/platforms/xen/xencomm.c | 54 +
arch/powerpc/sysdev/mpic.c | 7
arch/powerpc/xmon/xmon.c | 3
drivers/xen/Kconfig | 3
drivers/xen/core/Makefile | 2
drivers/xen/core/evtchn.c | 3
drivers/xen/core/hypervisor_sysfs.c | 1
drivers/xen/netfront/netfront.c | 1
drivers/xen/privcmd/privcmd.c | 15
include/asm-powerpc/io.h | 3
include/asm-powerpc/mpic.h | 2
include/asm-powerpc/page.h | 9
include/asm-powerpc/udbg.h | 1
include/asm-powerpc/xen/asm/gnttab_dma.h | 29
include/asm-powerpc/xen/asm/hypercall.h | 90 +
include/asm-powerpc/xen/asm/hypervisor.h | 276 +++++
include/asm-powerpc/xen/asm/maddr.h | 7
include/asm-powerpc/xen/asm/synch_bitops.h | 100 ++
diffs (truncated from 5026 to 300 lines):
diff -r e5f633c33025 -r a2acc03e8a4d arch/powerpc/Kconfig
--- a/arch/powerpc/Kconfig Fri Jul 06 17:35:53 2007 +0100
+++ b/arch/powerpc/Kconfig Fri Jul 06 15:52:42 2007 -0500
@@ -438,6 +438,17 @@ config UDBG_RTAS_CONSOLE
config UDBG_RTAS_CONSOLE
bool
default n
+
+config PPC_XEN
+ bool "Enable Xen compatible kernel"
+ depends on PPC_MULTIPLATFORM && PPC64 && PPC_MAPLE && PPC_PSERIES && SMP
+ select XEN
+ select XEN_PRIVILEGED_GUEST
+ select XEN_UNPRIVILEGED_GUEST
+ select XEN_XENCOMM
+
+ help
+ This option will compile a kernel compatible with Xen hypervisor
config XICS
depends on PPC_PSERIES
@@ -1071,6 +1082,8 @@ source "arch/powerpc/Kconfig.debug"
source "security/Kconfig"
+source "drivers/xen/Kconfig"
+
config KEYS_COMPAT
bool
depends on COMPAT && KEYS
diff -r e5f633c33025 -r a2acc03e8a4d arch/powerpc/Kconfig.debug
--- a/arch/powerpc/Kconfig.debug Fri Jul 06 17:35:53 2007 +0100
+++ b/arch/powerpc/Kconfig.debug Fri Jul 06 15:52:42 2007 -0500
@@ -160,6 +160,20 @@ config PPC_EARLY_DEBUG_ISERIES
Select this to enable early debugging for legacy iSeries. You need
to hit "Ctrl-x Ctrl-x" to see the messages on the console.
+config PPC_EARLY_DEBUG_XEN_DOM0
+ bool "Xen Dom0 Console"
+ depends on PPC_XEN
+ help
+ Select this to enable early debugging for Xen Dom0. Setting
+ this will result in a kernel that may not work as a DomU.
+
+config PPC_EARLY_DEBUG_XEN_DOMU
+ bool "Xen DomU Console"
+ depends on PPC_XEN && XEN_UNPRIVILEGED_GUEST
+ help
+ Select this to enable early debugging for Xen DomU. Setting
+ this will result in a kernel that may not work as a Dom0.
+
endchoice
endmenu
diff -r e5f633c33025 -r a2acc03e8a4d arch/powerpc/Makefile
--- a/arch/powerpc/Makefile Fri Jul 06 17:35:53 2007 +0100
+++ b/arch/powerpc/Makefile Fri Jul 06 15:52:42 2007 -0500
@@ -65,6 +65,7 @@ AFLAGS-$(CONFIG_PPC32) := -Iarch/$(ARCH)
AFLAGS-$(CONFIG_PPC32) := -Iarch/$(ARCH)
CFLAGS-$(CONFIG_PPC64) := -mminimal-toc -mtraceback=none -mcall-aixdesc
CFLAGS-$(CONFIG_PPC32) := -Iarch/$(ARCH) -ffixed-r2 -mmultiple
+CFLAGS-$(CONFIG_PPC_XEN) += -Iinclude/asm-$(ARCH)/xen
CPPFLAGS += $(CPPFLAGS-y)
AFLAGS += $(AFLAGS-y)
CFLAGS += -msoft-float -pipe $(CFLAGS-y)
diff -r e5f633c33025 -r a2acc03e8a4d arch/powerpc/boot/Makefile
--- a/arch/powerpc/boot/Makefile Fri Jul 06 17:35:53 2007 +0100
+++ b/arch/powerpc/boot/Makefile Fri Jul 06 15:52:42 2007 -0500
@@ -36,8 +36,11 @@ zliblinuxheader := zlib.h zconf.h zutil.
$(addprefix $(obj)/,$(zlib) main.o): $(addprefix $(obj)/,$(zliblinuxheader))
$(addprefix $(obj)/,$(zlibheader))
#$(addprefix $(obj)/,main.o): $(addprefix $(obj)/,zlib.h)
+xen_guest-y = xen_guest.S
+
src-boot := crt0.S string.S prom.c stdio.c main.c div64.S
src-boot += $(zlib)
+src-boot += $(xen_guest-$(CONFIG_XEN))
src-boot := $(addprefix $(obj)/, $(src-boot))
obj-boot := $(addsuffix .o, $(basename $(src-boot)))
diff -r e5f633c33025 -r a2acc03e8a4d arch/powerpc/boot/xen_guest.S
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/arch/powerpc/boot/xen_guest.S Fri Jul 06 15:52:42 2007 -0500
@@ -0,0 +1,7 @@
+ .section __xen_guest
+ .ascii "GUEST_OS=linux"
+ .ascii ",GUEST_VER=xen-3.0"
+ .ascii ",XEN_VER=xen-3.0"
+ .ascii ",VIRT_BASE=0x0"
+ .ascii ",LOADER=generic"
+ .byte 0
diff -r e5f633c33025 -r a2acc03e8a4d arch/powerpc/configs/xen_maple_defconfig
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/arch/powerpc/configs/xen_maple_defconfig Fri Jul 06 15:52:42 2007 -0500
@@ -0,0 +1,1342 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.17
+# Mon Jan 15 23:48:47 2007
+#
+CONFIG_PPC64=y
+CONFIG_64BIT=y
+CONFIG_PPC_MERGE=y
+CONFIG_MMU=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_IRQ_PER_CPU=y
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_FIND_NEXT_BIT=y
+CONFIG_PPC=y
+CONFIG_EARLY_PRINTK=y
+CONFIG_COMPAT=y
+CONFIG_SYSVIPC_COMPAT=y
+CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+CONFIG_PPC_OF=y
+CONFIG_PPC_UDBG_16550=y
+CONFIG_GENERIC_TBSYNC=y
+# CONFIG_DEFAULT_UIMAGE is not set
+
+#
+# Processor support
+#
+CONFIG_POWER4_ONLY=y
+CONFIG_POWER4=y
+CONFIG_PPC_FPU=y
+CONFIG_ALTIVEC=y
+CONFIG_PPC_STD_MMU=y
+CONFIG_VIRT_CPU_ACCOUNTING=y
+CONFIG_SMP=y
+CONFIG_NR_CPUS=32
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_LOCK_KERNEL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION="-Xen"
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+CONFIG_SYSCTL=y
+# CONFIG_AUDIT is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+# CONFIG_CPUSETS is not set
+# CONFIG_RELAY is not set
+CONFIG_INITRAMFS_SOURCE=""
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+# CONFIG_EMBEDDED is not set
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_BASE_FULL=y
+CONFIG_RT_MUTEXES=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SHMEM=y
+CONFIG_SLAB=y
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+# CONFIG_SLOB is not set
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+CONFIG_KMOD=y
+CONFIG_STOP_MACHINE=y
+
+#
+# Block layer
+#
+# CONFIG_BLK_DEV_IO_TRACE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+# CONFIG_IOSCHED_AS is not set
+CONFIG_IOSCHED_DEADLINE=y
+# CONFIG_IOSCHED_CFQ is not set
+# CONFIG_DEFAULT_AS is not set
+CONFIG_DEFAULT_DEADLINE=y
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="deadline"
+
+#
+# Platform support
+#
+CONFIG_PPC_MULTIPLATFORM=y
+# CONFIG_PPC_ISERIES is not set
+# CONFIG_EMBEDDED6xx is not set
+# CONFIG_APUS is not set
+CONFIG_PPC_PSERIES=y
+# CONFIG_PPC_PMAC is not set
+CONFIG_PPC_MAPLE=y
+# CONFIG_PPC_CELL is not set
+# CONFIG_PPC_CELL_NATIVE is not set
+# CONFIG_PPC_IBM_CELL_BLADE is not set
+# CONFIG_UDBG_RTAS_CONSOLE is not set
+CONFIG_PPC_XEN=y
+CONFIG_XICS=y
+CONFIG_U3_DART=y
+CONFIG_MPIC=y
+CONFIG_PPC_RTAS=y
+CONFIG_RTAS_ERROR_LOGGING=y
+CONFIG_RTAS_PROC=y
+CONFIG_RTAS_FLASH=y
+# CONFIG_MMIO_NVRAM is not set
+CONFIG_MPIC_BROKEN_U3=y
+CONFIG_IBMVIO=y
+# CONFIG_IBMEBUS is not set
+# CONFIG_PPC_MPC106 is not set
+CONFIG_PPC_970_NAP=y
+# CONFIG_CPU_FREQ is not set
+# CONFIG_WANT_EARLY_SERIAL is not set
+
+#
+# Kernel options
+#
+CONFIG_HZ_100=y
+# CONFIG_HZ_250 is not set
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=100
+CONFIG_PREEMPT_NONE=y
+# CONFIG_PREEMPT_VOLUNTARY is not set
+# CONFIG_PREEMPT is not set
+# CONFIG_PREEMPT_BKL is not set
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_MISC is not set
+CONFIG_FORCE_MAX_ZONEORDER=13
+CONFIG_IOMMU_VMERGE=y
+# CONFIG_HOTPLUG_CPU is not set
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+# CONFIG_KEXEC is not set
+# CONFIG_CRASH_DUMP is not set
+CONFIG_IRQ_ALL_CPUS=y
+# CONFIG_PPC_SPLPAR is not set
+CONFIG_EEH=y
+CONFIG_SCANLOG=y
+CONFIG_LPARCFG=y
+CONFIG_NUMA=y
+CONFIG_NODES_SHIFT=4
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SPARSEMEM_DEFAULT=y
+CONFIG_SELECT_MEMORY_MODEL=y
+# CONFIG_FLATMEM_MANUAL is not set
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+CONFIG_SPARSEMEM_MANUAL=y
+CONFIG_SPARSEMEM=y
+CONFIG_NEED_MULTIPLE_NODES=y
+CONFIG_HAVE_MEMORY_PRESENT=y
+# CONFIG_SPARSEMEM_STATIC is not set
+CONFIG_SPARSEMEM_EXTREME=y
+CONFIG_MEMORY_HOTPLUG=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_MIGRATION=y
+CONFIG_RESOURCES_64BIT=y
+CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y
+CONFIG_ARCH_MEMORY_PROBE=y
+# CONFIG_PPC_64K_PAGES is not set
+# CONFIG_SCHED_SMT is not set
+CONFIG_PROC_DEVICETREE=y
+# CONFIG_CMDLINE_BOOL is not set
+# CONFIG_PM is not set
+CONFIG_SECCOMP=y
+CONFIG_ISA_DMA_API=y
+
+#
+# Bus options
+#
+CONFIG_GENERIC_ISA_DMA=y
+CONFIG_PPC_I8259=y
+# CONFIG_PPC_INDIRECT_PCI is not set
+CONFIG_PCI=y
+CONFIG_PCI_DOMAINS=y
+# CONFIG_PCIEPORTBUS is not set
+# CONFIG_PCI_DEBUG is not set
+
+#
_______________________________________________
Xen-ppc-devel mailing list
Xen-ppc-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ppc-devel
|