ia64/xen-unstable

changeset 7952:675862d22347

Merged.
author emellor@leeni.uk.xensource.com
date Mon Nov 21 13:17:29 2005 +0100 (2005-11-21)
parents a0b0da36fda3 6a666940fa04
children 0add9fbe93ab 6738fd14cb58
files tools/python/xen/lowlevel/xs/xs.c
line diff
     1.1 --- a/linux-2.6-xen-sparse/arch/ia64/Kconfig	Mon Nov 21 13:15:08 2005 +0100
     1.2 +++ b/linux-2.6-xen-sparse/arch/ia64/Kconfig	Mon Nov 21 13:17:29 2005 +0100
     1.3 @@ -60,8 +60,8 @@ config ARCH_XEN
     1.4  	  TEMP ONLY. Needs to be on for drivers/xen to build.
     1.5  
     1.6  config XEN_PRIVILEGED_GUEST
     1.7 -	bool
     1.8 -	default y
     1.9 +	bool "Privileged Guest"
    1.10 +	default n
    1.11  	help
    1.12  	  Used in drivers/xen/privcmd.c.  Should go away?
    1.13  
    1.14 @@ -80,6 +80,19 @@ config XEN_BLKDEV_FRONTEND
    1.15  	bool
    1.16  	default y
    1.17  
    1.18 +config XEN_VT
    1.19 +	bool "Override for turning on CONFIG_VT for domU"
    1.20 +	default y
    1.21 +	help
    1.22 +	  Hack to turn off CONFIG_VT for domU
    1.23 +
    1.24 +config VT
    1.25 +	bool
    1.26 +	default y if XEN && XEN_VT
    1.27 +	default n if XEN && !XEN_VT
    1.28 +	help
    1.29 +	  Hack to turn off CONFIG_VT for domU
    1.30 +
    1.31  config SCHED_NO_NO_OMIT_FRAME_POINTER
    1.32  	bool
    1.33  	default y
     2.1 --- a/linux-2.6-xen-sparse/arch/ia64/Makefile	Mon Nov 21 13:15:08 2005 +0100
     2.2 +++ b/linux-2.6-xen-sparse/arch/ia64/Makefile	Mon Nov 21 13:17:29 2005 +0100
     2.3 @@ -60,10 +60,15 @@ core-$(CONFIG_IA64_GENERIC) 	+= arch/ia6
     2.4  core-$(CONFIG_IA64_HP_ZX1)	+= arch/ia64/dig/
     2.5  core-$(CONFIG_IA64_HP_ZX1_SWIOTLB) += arch/ia64/dig/
     2.6  core-$(CONFIG_IA64_SGI_SN2)	+= arch/ia64/sn/
     2.7 -core-$(CONFIG_XEN)		+= arch/ia64/xen/ arch/ia64/hp/sim/
     2.8 +core-$(CONFIG_XEN)		+= arch/ia64/xen/
     2.9  
    2.10  drivers-$(CONFIG_PCI)		+= arch/ia64/pci/
    2.11 +ifneq ($(CONFIG_XEN),y)
    2.12  drivers-$(CONFIG_IA64_HP_SIM)	+= arch/ia64/hp/sim/
    2.13 +endif
    2.14 +ifneq ($(CONFIG_IA64_GENERIC),y)
    2.15 +drivers-$(CONFIG_XEN)		+= arch/ia64/hp/sim/
    2.16 +endif
    2.17  drivers-$(CONFIG_IA64_HP_ZX1)	+= arch/ia64/hp/common/ arch/ia64/hp/zx1/
    2.18  drivers-$(CONFIG_IA64_HP_ZX1_SWIOTLB) += arch/ia64/hp/common/ arch/ia64/hp/zx1/
    2.19  drivers-$(CONFIG_IA64_GENERIC)	+= arch/ia64/hp/common/ arch/ia64/hp/zx1/ arch/ia64/hp/sim/ arch/ia64/sn/
     3.1 --- a/linux-2.6-xen-sparse/arch/ia64/xen/xenconsole.c	Mon Nov 21 13:15:08 2005 +0100
     3.2 +++ b/linux-2.6-xen-sparse/arch/ia64/xen/xenconsole.c	Mon Nov 21 13:17:29 2005 +0100
     3.3 @@ -9,6 +9,7 @@ early_xen_console_setup (char *cmdline)
     3.4  	extern int running_on_xen;
     3.5  	if (running_on_xen) {
     3.6  		extern struct console hpsim_cons;
     3.7 +		hpsim_cons.flags |= CON_BOOT;
     3.8  		register_console(&hpsim_cons);
     3.9  		return 0;
    3.10  	}
     4.1 --- a/linux-2.6-xen-sparse/arch/xen/configs/xen0_defconfig_ia64	Mon Nov 21 13:15:08 2005 +0100
     4.2 +++ b/linux-2.6-xen-sparse/arch/xen/configs/xen0_defconfig_ia64	Mon Nov 21 13:17:29 2005 +0100
     4.3 @@ -17,7 +17,7 @@ CONFIG_INIT_ENV_ARG_LIMIT=32
     4.4  #
     4.5  # General setup
     4.6  #
     4.7 -CONFIG_LOCALVERSION="xen"
     4.8 +CONFIG_LOCALVERSION=""
     4.9  CONFIG_SWAP=y
    4.10  CONFIG_SYSVIPC=y
    4.11  # CONFIG_POSIX_MQUEUE is not set
    4.12 @@ -68,10 +68,14 @@ CONFIG_TIME_INTERPOLATION=y
    4.13  CONFIG_EFI=y
    4.14  CONFIG_GENERIC_IOMAP=y
    4.15  CONFIG_XEN=y
    4.16 +CONFIG_XEN_VT=y
    4.17  CONFIG_ARCH_XEN=y
    4.18  CONFIG_XEN_PRIVILEGED_GUEST=y
    4.19  CONFIG_XEN_PHYSDEV_ACCESS=y
    4.20  CONFIG_XEN_BLKDEV_GRANT=y
    4.21 +CONFIG_XEN_BLKDEV_FRONTEND=y
    4.22 +CONFIG_VGA_CONSOLE=y
    4.23 +CONFIG_FRAMEBUFFER_CONSOLE=n
    4.24  CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
    4.25  # CONFIG_IA64_GENERIC is not set
    4.26  # CONFIG_IA64_DIG is not set
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/linux-2.6-xen-sparse/arch/xen/configs/xenU_defconfig_ia64	Mon Nov 21 13:17:29 2005 +0100
     5.3 @@ -0,0 +1,1261 @@
     5.4 +#
     5.5 +# Automatically generated make config: don't edit
     5.6 +# Linux kernel version: 2.6.12
     5.7 +# Thu Sep 15 11:04:33 2005
     5.8 +#
     5.9 +
    5.10 +#
    5.11 +# Code maturity level options
    5.12 +#
    5.13 +CONFIG_EXPERIMENTAL=y
    5.14 +# CONFIG_CLEAN_COMPILE is not set
    5.15 +CONFIG_BROKEN=y
    5.16 +CONFIG_BROKEN_ON_SMP=y
    5.17 +CONFIG_LOCK_KERNEL=y
    5.18 +CONFIG_INIT_ENV_ARG_LIMIT=32
    5.19 +
    5.20 +#
    5.21 +# General setup
    5.22 +#
    5.23 +CONFIG_LOCALVERSION=""
    5.24 +CONFIG_SWAP=y
    5.25 +CONFIG_SYSVIPC=y
    5.26 +# CONFIG_POSIX_MQUEUE is not set
    5.27 +CONFIG_BSD_PROCESS_ACCT=y
    5.28 +# CONFIG_BSD_PROCESS_ACCT_V3 is not set
    5.29 +CONFIG_SYSCTL=y
    5.30 +# CONFIG_AUDIT is not set
    5.31 +CONFIG_HOTPLUG=y
    5.32 +CONFIG_KOBJECT_UEVENT=y
    5.33 +# CONFIG_IKCONFIG is not set
    5.34 +# CONFIG_CPUSETS is not set
    5.35 +# CONFIG_EMBEDDED is not set
    5.36 +CONFIG_KALLSYMS=y
    5.37 +# CONFIG_KALLSYMS_ALL is not set
    5.38 +# CONFIG_KALLSYMS_EXTRA_PASS is not set
    5.39 +CONFIG_PRINTK=y
    5.40 +CONFIG_BUG=y
    5.41 +CONFIG_BASE_FULL=y
    5.42 +CONFIG_FUTEX=y
    5.43 +CONFIG_EPOLL=y
    5.44 +CONFIG_SHMEM=y
    5.45 +CONFIG_CC_ALIGN_FUNCTIONS=0
    5.46 +CONFIG_CC_ALIGN_LABELS=0
    5.47 +CONFIG_CC_ALIGN_LOOPS=0
    5.48 +CONFIG_CC_ALIGN_JUMPS=0
    5.49 +# CONFIG_TINY_SHMEM is not set
    5.50 +CONFIG_BASE_SMALL=0
    5.51 +
    5.52 +#
    5.53 +# Loadable module support
    5.54 +#
    5.55 +CONFIG_MODULES=y
    5.56 +# CONFIG_MODULE_UNLOAD is not set
    5.57 +CONFIG_OBSOLETE_MODPARM=y
    5.58 +# CONFIG_MODVERSIONS is not set
    5.59 +# CONFIG_MODULE_SRCVERSION_ALL is not set
    5.60 +# CONFIG_KMOD is not set
    5.61 +
    5.62 +#
    5.63 +# Processor type and features
    5.64 +#
    5.65 +CONFIG_IA64=y
    5.66 +CONFIG_64BIT=y
    5.67 +CONFIG_MMU=y
    5.68 +CONFIG_RWSEM_XCHGADD_ALGORITHM=y
    5.69 +CONFIG_GENERIC_CALIBRATE_DELAY=y
    5.70 +CONFIG_TIME_INTERPOLATION=y
    5.71 +CONFIG_EFI=y
    5.72 +CONFIG_GENERIC_IOMAP=y
    5.73 +CONFIG_XEN=y
    5.74 +CONFIG_XEN_VT=n
    5.75 +CONFIG_ARCH_XEN=y
    5.76 +CONFIG_XEN_PRIVILEGED_GUEST=y
    5.77 +CONFIG_XEN_PHYSDEV_ACCESS=y
    5.78 +CONFIG_XEN_BLKDEV_GRANT=y
    5.79 +CONFIG_XEN_BLKDEV_FRONTEND=y
    5.80 +CONFIG_VGA_CONSOLE=y
    5.81 +CONFIG_FRAMEBUFFER_CONSOLE=n
    5.82 +CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
    5.83 +# CONFIG_IA64_GENERIC is not set
    5.84 +# CONFIG_IA64_DIG is not set
    5.85 +CONFIG_IA64_HP_ZX1=y
    5.86 +# CONFIG_IA64_HP_ZX1_SWIOTLB is not set
    5.87 +# CONFIG_IA64_SGI_SN2 is not set
    5.88 +# CONFIG_IA64_HP_SIM is not set
    5.89 +# CONFIG_ITANIUM is not set
    5.90 +CONFIG_MCKINLEY=y
    5.91 +# CONFIG_IA64_PAGE_SIZE_4KB is not set
    5.92 +# CONFIG_IA64_PAGE_SIZE_8KB is not set
    5.93 +CONFIG_IA64_PAGE_SIZE_16KB=y
    5.94 +# CONFIG_IA64_PAGE_SIZE_64KB is not set
    5.95 +CONFIG_IA64_L1_CACHE_SHIFT=7
    5.96 +# CONFIG_NUMA is not set
    5.97 +CONFIG_VIRTUAL_MEM_MAP=y
    5.98 +CONFIG_HOLES_IN_ZONE=y
    5.99 +# CONFIG_IA64_CYCLONE is not set
   5.100 +CONFIG_IOSAPIC=y
   5.101 +CONFIG_FORCE_MAX_ZONEORDER=18
   5.102 +CONFIG_SMP=y
   5.103 +CONFIG_NR_CPUS=16
   5.104 +# CONFIG_HOTPLUG_CPU is not set
   5.105 +# CONFIG_SCHED_SMT is not set
   5.106 +# CONFIG_PREEMPT is not set
   5.107 +CONFIG_HAVE_DEC_LOCK=y
   5.108 +# CONFIG_IA32_SUPPORT is not set
   5.109 +CONFIG_IA64_MCA_RECOVERY=y
   5.110 +CONFIG_PERFMON=y
   5.111 +CONFIG_IA64_PALINFO=y
   5.112 +CONFIG_ACPI_DEALLOCATE_IRQ=y
   5.113 +
   5.114 +#
   5.115 +# Firmware Drivers
   5.116 +#
   5.117 +CONFIG_EFI_VARS=y
   5.118 +CONFIG_EFI_PCDP=y
   5.119 +CONFIG_BINFMT_ELF=y
   5.120 +CONFIG_BINFMT_MISC=y
   5.121 +
   5.122 +#
   5.123 +# Power management and ACPI
   5.124 +#
   5.125 +CONFIG_PM=y
   5.126 +CONFIG_ACPI=y
   5.127 +
   5.128 +#
   5.129 +# ACPI (Advanced Configuration and Power Interface) Support
   5.130 +#
   5.131 +CONFIG_ACPI_BOOT=y
   5.132 +CONFIG_ACPI_INTERPRETER=y
   5.133 +CONFIG_ACPI_BUTTON=y
   5.134 +# CONFIG_ACPI_VIDEO is not set
   5.135 +CONFIG_ACPI_FAN=y
   5.136 +CONFIG_ACPI_PROCESSOR=y
   5.137 +CONFIG_ACPI_THERMAL=y
   5.138 +CONFIG_ACPI_BLACKLIST_YEAR=0
   5.139 +# CONFIG_ACPI_DEBUG is not set
   5.140 +CONFIG_ACPI_BUS=y
   5.141 +CONFIG_ACPI_POWER=y
   5.142 +CONFIG_ACPI_PCI=y
   5.143 +CONFIG_ACPI_SYSTEM=y
   5.144 +# CONFIG_ACPI_CONTAINER is not set
   5.145 +
   5.146 +#
   5.147 +# Bus options (PCI, PCMCIA)
   5.148 +#
   5.149 +CONFIG_PCI=y
   5.150 +CONFIG_PCI_DOMAINS=y
   5.151 +# CONFIG_PCI_MSI is not set
   5.152 +CONFIG_PCI_LEGACY_PROC=y
   5.153 +CONFIG_PCI_NAMES=y
   5.154 +# CONFIG_PCI_DEBUG is not set
   5.155 +
   5.156 +#
   5.157 +# PCI Hotplug Support
   5.158 +#
   5.159 +CONFIG_HOTPLUG_PCI=y
   5.160 +# CONFIG_HOTPLUG_PCI_FAKE is not set
   5.161 +CONFIG_HOTPLUG_PCI_ACPI=y
   5.162 +# CONFIG_HOTPLUG_PCI_ACPI_IBM is not set
   5.163 +# CONFIG_HOTPLUG_PCI_CPCI is not set
   5.164 +# CONFIG_HOTPLUG_PCI_SHPC is not set
   5.165 +
   5.166 +#
   5.167 +# PCCARD (PCMCIA/CardBus) support
   5.168 +#
   5.169 +# CONFIG_PCCARD is not set
   5.170 +
   5.171 +#
   5.172 +# Device Drivers
   5.173 +#
   5.174 +
   5.175 +#
   5.176 +# Generic Driver Options
   5.177 +#
   5.178 +CONFIG_STANDALONE=y
   5.179 +CONFIG_PREVENT_FIRMWARE_BUILD=y
   5.180 +# CONFIG_FW_LOADER is not set
   5.181 +# CONFIG_DEBUG_DRIVER is not set
   5.182 +
   5.183 +#
   5.184 +# Memory Technology Devices (MTD)
   5.185 +#
   5.186 +# CONFIG_MTD is not set
   5.187 +
   5.188 +#
   5.189 +# Parallel port support
   5.190 +#
   5.191 +# CONFIG_PARPORT is not set
   5.192 +
   5.193 +#
   5.194 +# Plug and Play support
   5.195 +#
   5.196 +# CONFIG_PNP is not set
   5.197 +
   5.198 +#
   5.199 +# Block devices
   5.200 +#
   5.201 +# CONFIG_BLK_CPQ_DA is not set
   5.202 +# CONFIG_BLK_CPQ_CISS_DA is not set
   5.203 +# CONFIG_BLK_DEV_DAC960 is not set
   5.204 +# CONFIG_BLK_DEV_UMEM is not set
   5.205 +# CONFIG_BLK_DEV_COW_COMMON is not set
   5.206 +CONFIG_BLK_DEV_LOOP=y
   5.207 +# CONFIG_BLK_DEV_CRYPTOLOOP is not set
   5.208 +# CONFIG_BLK_DEV_NBD is not set
   5.209 +# CONFIG_BLK_DEV_SX8 is not set
   5.210 +# CONFIG_BLK_DEV_UB is not set
   5.211 +CONFIG_BLK_DEV_RAM=y
   5.212 +CONFIG_BLK_DEV_RAM_COUNT=16
   5.213 +CONFIG_BLK_DEV_RAM_SIZE=4096
   5.214 +CONFIG_BLK_DEV_INITRD=y
   5.215 +CONFIG_INITRAMFS_SOURCE=""
   5.216 +# CONFIG_CDROM_PKTCDVD is not set
   5.217 +
   5.218 +#
   5.219 +# IO Schedulers
   5.220 +#
   5.221 +CONFIG_IOSCHED_NOOP=y
   5.222 +CONFIG_IOSCHED_AS=y
   5.223 +CONFIG_IOSCHED_DEADLINE=y
   5.224 +CONFIG_IOSCHED_CFQ=y
   5.225 +# CONFIG_ATA_OVER_ETH is not set
   5.226 +
   5.227 +#
   5.228 +# ATA/ATAPI/MFM/RLL support
   5.229 +#
   5.230 +# CONFIG_IDE is not set
   5.231 +
   5.232 +#
   5.233 +# SCSI device support
   5.234 +#
   5.235 +CONFIG_SCSI=y
   5.236 +CONFIG_SCSI_PROC_FS=y
   5.237 +
   5.238 +#
   5.239 +# SCSI support type (disk, tape, CD-ROM)
   5.240 +#
   5.241 +CONFIG_BLK_DEV_SD=y
   5.242 +CONFIG_CHR_DEV_ST=y
   5.243 +CONFIG_CHR_DEV_OSST=y
   5.244 +CONFIG_BLK_DEV_SR=y
   5.245 +CONFIG_BLK_DEV_SR_VENDOR=y
   5.246 +CONFIG_CHR_DEV_SG=y
   5.247 +
   5.248 +#
   5.249 +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
   5.250 +#
   5.251 +CONFIG_SCSI_MULTI_LUN=y
   5.252 +CONFIG_SCSI_CONSTANTS=y
   5.253 +CONFIG_SCSI_LOGGING=y
   5.254 +
   5.255 +#
   5.256 +# SCSI Transport Attributes
   5.257 +#
   5.258 +CONFIG_SCSI_SPI_ATTRS=y
   5.259 +# CONFIG_SCSI_FC_ATTRS is not set
   5.260 +# CONFIG_SCSI_ISCSI_ATTRS is not set
   5.261 +
   5.262 +#
   5.263 +# SCSI low-level drivers
   5.264 +#
   5.265 +# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
   5.266 +# CONFIG_SCSI_3W_9XXX is not set
   5.267 +# CONFIG_SCSI_ACARD is not set
   5.268 +# CONFIG_SCSI_AACRAID is not set
   5.269 +# CONFIG_SCSI_AIC7XXX is not set
   5.270 +# CONFIG_SCSI_AIC7XXX_OLD is not set
   5.271 +# CONFIG_SCSI_AIC79XX is not set
   5.272 +# CONFIG_SCSI_ADVANSYS is not set
   5.273 +# CONFIG_MEGARAID_NEWGEN is not set
   5.274 +# CONFIG_MEGARAID_LEGACY is not set
   5.275 +# CONFIG_SCSI_SATA is not set
   5.276 +# CONFIG_SCSI_CPQFCTS is not set
   5.277 +# CONFIG_SCSI_DMX3191D is not set
   5.278 +# CONFIG_SCSI_EATA_PIO is not set
   5.279 +# CONFIG_SCSI_FUTURE_DOMAIN is not set
   5.280 +# CONFIG_SCSI_IPS is not set
   5.281 +# CONFIG_SCSI_INITIO is not set
   5.282 +# CONFIG_SCSI_INIA100 is not set
   5.283 +CONFIG_SCSI_SYM53C8XX_2=y
   5.284 +CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
   5.285 +CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
   5.286 +CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
   5.287 +# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set
   5.288 +# CONFIG_SCSI_IPR is not set
   5.289 +# CONFIG_SCSI_PCI2000 is not set
   5.290 +# CONFIG_SCSI_PCI2220I is not set
   5.291 +# CONFIG_SCSI_QLOGIC_ISP is not set
   5.292 +# CONFIG_SCSI_QLOGIC_FC is not set
   5.293 +CONFIG_SCSI_QLOGIC_1280=y
   5.294 +# CONFIG_SCSI_QLOGIC_1280_1040 is not set
   5.295 +CONFIG_SCSI_QLA2XXX=y
   5.296 +# CONFIG_SCSI_QLA21XX is not set
   5.297 +# CONFIG_SCSI_QLA22XX is not set
   5.298 +# CONFIG_SCSI_QLA2300 is not set
   5.299 +# CONFIG_SCSI_QLA2322 is not set
   5.300 +# CONFIG_SCSI_QLA6312 is not set
   5.301 +# CONFIG_SCSI_LPFC is not set
   5.302 +# CONFIG_SCSI_DC395x is not set
   5.303 +# CONFIG_SCSI_DC390T is not set
   5.304 +# CONFIG_SCSI_DEBUG is not set
   5.305 +
   5.306 +#
   5.307 +# Multi-device support (RAID and LVM)
   5.308 +#
   5.309 +# CONFIG_MD is not set
   5.310 +
   5.311 +#
   5.312 +# Fusion MPT device support
   5.313 +#
   5.314 +CONFIG_FUSION=y
   5.315 +CONFIG_FUSION_MAX_SGE=40
   5.316 +# CONFIG_FUSION_CTL is not set
   5.317 +
   5.318 +#
   5.319 +# IEEE 1394 (FireWire) support
   5.320 +#
   5.321 +# CONFIG_IEEE1394 is not set
   5.322 +
   5.323 +#
   5.324 +# I2O device support
   5.325 +#
   5.326 +# CONFIG_I2O is not set
   5.327 +
   5.328 +#
   5.329 +# Networking support
   5.330 +#
   5.331 +CONFIG_NET=y
   5.332 +
   5.333 +#
   5.334 +# Networking options
   5.335 +#
   5.336 +CONFIG_PACKET=y
   5.337 +# CONFIG_PACKET_MMAP is not set
   5.338 +CONFIG_UNIX=y
   5.339 +# CONFIG_NET_KEY is not set
   5.340 +CONFIG_INET=y
   5.341 +CONFIG_IP_MULTICAST=y
   5.342 +# CONFIG_IP_ADVANCED_ROUTER is not set
   5.343 +# CONFIG_IP_PNP is not set
   5.344 +# CONFIG_NET_IPIP is not set
   5.345 +# CONFIG_NET_IPGRE is not set
   5.346 +# CONFIG_IP_MROUTE is not set
   5.347 +# CONFIG_ARPD is not set
   5.348 +# CONFIG_SYN_COOKIES is not set
   5.349 +# CONFIG_INET_AH is not set
   5.350 +# CONFIG_INET_ESP is not set
   5.351 +# CONFIG_INET_IPCOMP is not set
   5.352 +# CONFIG_INET_TUNNEL is not set
   5.353 +# CONFIG_IP_TCPDIAG is not set
   5.354 +# CONFIG_IP_TCPDIAG_IPV6 is not set
   5.355 +
   5.356 +#
   5.357 +# IP: Virtual Server Configuration
   5.358 +#
   5.359 +# CONFIG_IP_VS is not set
   5.360 +# CONFIG_IPV6 is not set
   5.361 +CONFIG_NETFILTER=y
   5.362 +# CONFIG_NETFILTER_DEBUG is not set
   5.363 +
   5.364 +#
   5.365 +# IP: Netfilter Configuration
   5.366 +#
   5.367 +# CONFIG_IP_NF_CONNTRACK is not set
   5.368 +# CONFIG_IP_NF_CONNTRACK_MARK is not set
   5.369 +# CONFIG_IP_NF_QUEUE is not set
   5.370 +# CONFIG_IP_NF_IPTABLES is not set
   5.371 +CONFIG_IP_NF_ARPTABLES=y
   5.372 +# CONFIG_IP_NF_ARPFILTER is not set
   5.373 +# CONFIG_IP_NF_ARP_MANGLE is not set
   5.374 +
   5.375 +#
   5.376 +# SCTP Configuration (EXPERIMENTAL)
   5.377 +#
   5.378 +# CONFIG_IP_SCTP is not set
   5.379 +# CONFIG_ATM is not set
   5.380 +# CONFIG_BRIDGE is not set
   5.381 +# CONFIG_VLAN_8021Q is not set
   5.382 +# CONFIG_DECNET is not set
   5.383 +# CONFIG_LLC2 is not set
   5.384 +# CONFIG_IPX is not set
   5.385 +# CONFIG_ATALK is not set
   5.386 +# CONFIG_X25 is not set
   5.387 +# CONFIG_LAPB is not set
   5.388 +# CONFIG_NET_DIVERT is not set
   5.389 +# CONFIG_ECONET is not set
   5.390 +# CONFIG_WAN_ROUTER is not set
   5.391 +
   5.392 +#
   5.393 +# QoS and/or fair queueing
   5.394 +#
   5.395 +# CONFIG_NET_SCHED is not set
   5.396 +# CONFIG_NET_CLS_ROUTE is not set
   5.397 +
   5.398 +#
   5.399 +# Network testing
   5.400 +#
   5.401 +# CONFIG_NET_PKTGEN is not set
   5.402 +# CONFIG_NETPOLL is not set
   5.403 +# CONFIG_NET_POLL_CONTROLLER is not set
   5.404 +# CONFIG_HAMRADIO is not set
   5.405 +# CONFIG_IRDA is not set
   5.406 +# CONFIG_BT is not set
   5.407 +CONFIG_NETDEVICES=y
   5.408 +CONFIG_DUMMY=y
   5.409 +# CONFIG_BONDING is not set
   5.410 +# CONFIG_EQUALIZER is not set
   5.411 +# CONFIG_TUN is not set
   5.412 +
   5.413 +#
   5.414 +# ARCnet devices
   5.415 +#
   5.416 +# CONFIG_ARCNET is not set
   5.417 +
   5.418 +#
   5.419 +# Ethernet (10 or 100Mbit)
   5.420 +#
   5.421 +CONFIG_NET_ETHERNET=y
   5.422 +CONFIG_MII=y
   5.423 +# CONFIG_HAPPYMEAL is not set
   5.424 +# CONFIG_SUNGEM is not set
   5.425 +# CONFIG_NET_VENDOR_3COM is not set
   5.426 +
   5.427 +#
   5.428 +# Tulip family network device support
   5.429 +#
   5.430 +CONFIG_NET_TULIP=y
   5.431 +# CONFIG_DE2104X is not set
   5.432 +CONFIG_TULIP=y
   5.433 +CONFIG_TULIP_MWI=y
   5.434 +CONFIG_TULIP_MMIO=y
   5.435 +CONFIG_TULIP_NAPI=y
   5.436 +CONFIG_TULIP_NAPI_HW_MITIGATION=y
   5.437 +# CONFIG_DE4X5 is not set
   5.438 +# CONFIG_WINBOND_840 is not set
   5.439 +# CONFIG_DM9102 is not set
   5.440 +# CONFIG_HP100 is not set
   5.441 +CONFIG_NET_PCI=y
   5.442 +# CONFIG_PCNET32 is not set
   5.443 +# CONFIG_AMD8111_ETH is not set
   5.444 +# CONFIG_ADAPTEC_STARFIRE is not set
   5.445 +# CONFIG_B44 is not set
   5.446 +# CONFIG_FORCEDETH is not set
   5.447 +# CONFIG_DGRS is not set
   5.448 +# CONFIG_EEPRO100 is not set
   5.449 +CONFIG_E100=y
   5.450 +# CONFIG_FEALNX is not set
   5.451 +# CONFIG_NATSEMI is not set
   5.452 +# CONFIG_NE2K_PCI is not set
   5.453 +# CONFIG_8139CP is not set
   5.454 +# CONFIG_8139TOO is not set
   5.455 +# CONFIG_SIS900 is not set
   5.456 +# CONFIG_EPIC100 is not set
   5.457 +# CONFIG_SUNDANCE is not set
   5.458 +# CONFIG_VIA_RHINE is not set
   5.459 +
   5.460 +#
   5.461 +# Ethernet (1000 Mbit)
   5.462 +#
   5.463 +# CONFIG_ACENIC is not set
   5.464 +# CONFIG_DL2K is not set
   5.465 +CONFIG_E1000=y
   5.466 +# CONFIG_E1000_NAPI is not set
   5.467 +# CONFIG_NS83820 is not set
   5.468 +# CONFIG_HAMACHI is not set
   5.469 +# CONFIG_YELLOWFIN is not set
   5.470 +# CONFIG_R8169 is not set
   5.471 +# CONFIG_SK98LIN is not set
   5.472 +# CONFIG_VIA_VELOCITY is not set
   5.473 +CONFIG_TIGON3=y
   5.474 +# CONFIG_BNX2 is not set
   5.475 +
   5.476 +#
   5.477 +# Ethernet (10000 Mbit)
   5.478 +#
   5.479 +# CONFIG_IXGB is not set
   5.480 +# CONFIG_S2IO is not set
   5.481 +
   5.482 +#
   5.483 +# Token Ring devices
   5.484 +#
   5.485 +# CONFIG_TR is not set
   5.486 +
   5.487 +#
   5.488 +# Wireless LAN (non-hamradio)
   5.489 +#
   5.490 +# CONFIG_NET_RADIO is not set
   5.491 +
   5.492 +#
   5.493 +# Wan interfaces
   5.494 +#
   5.495 +# CONFIG_WAN is not set
   5.496 +# CONFIG_FDDI is not set
   5.497 +# CONFIG_HIPPI is not set
   5.498 +# CONFIG_PPP is not set
   5.499 +# CONFIG_SLIP is not set
   5.500 +# CONFIG_NET_FC is not set
   5.501 +# CONFIG_SHAPER is not set
   5.502 +# CONFIG_NETCONSOLE is not set
   5.503 +
   5.504 +#
   5.505 +# ISDN subsystem
   5.506 +#
   5.507 +# CONFIG_ISDN is not set
   5.508 +
   5.509 +#
   5.510 +# Telephony Support
   5.511 +#
   5.512 +# CONFIG_PHONE is not set
   5.513 +
   5.514 +#
   5.515 +# Input device support
   5.516 +#
   5.517 +CONFIG_INPUT=y
   5.518 +
   5.519 +#
   5.520 +# Userland interfaces
   5.521 +#
   5.522 +CONFIG_INPUT_MOUSEDEV=y
   5.523 +CONFIG_INPUT_MOUSEDEV_PSAUX=y
   5.524 +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
   5.525 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
   5.526 +CONFIG_INPUT_JOYDEV=y
   5.527 +# CONFIG_INPUT_TSDEV is not set
   5.528 +CONFIG_INPUT_EVDEV=y
   5.529 +# CONFIG_INPUT_EVBUG is not set
   5.530 +
   5.531 +#
   5.532 +# Input Device Drivers
   5.533 +#
   5.534 +# CONFIG_INPUT_KEYBOARD is not set
   5.535 +# CONFIG_INPUT_MOUSE is not set
   5.536 +# CONFIG_INPUT_JOYSTICK is not set
   5.537 +# CONFIG_INPUT_TOUCHSCREEN is not set
   5.538 +# CONFIG_INPUT_MISC is not set
   5.539 +
   5.540 +#
   5.541 +# Hardware I/O ports
   5.542 +#
   5.543 +CONFIG_SERIO=y
   5.544 +# CONFIG_SERIO_I8042 is not set
   5.545 +# CONFIG_SERIO_SERPORT is not set
   5.546 +# CONFIG_SERIO_PCIPS2 is not set
   5.547 +# CONFIG_SERIO_RAW is not set
   5.548 +# CONFIG_GAMEPORT is not set
   5.549 +
   5.550 +#
   5.551 +# Character devices
   5.552 +#
   5.553 +# CONFIG_VT is not set
   5.554 +# CONFIG_SERIAL_NONSTANDARD is not set
   5.555 +
   5.556 +#
   5.557 +# Serial drivers
   5.558 +#
   5.559 +CONFIG_SERIAL_8250=y
   5.560 +CONFIG_SERIAL_8250_CONSOLE=y
   5.561 +CONFIG_SERIAL_8250_ACPI=y
   5.562 +CONFIG_SERIAL_8250_NR_UARTS=8
   5.563 +CONFIG_SERIAL_8250_EXTENDED=y
   5.564 +CONFIG_SERIAL_8250_SHARE_IRQ=y
   5.565 +# CONFIG_SERIAL_8250_DETECT_IRQ is not set
   5.566 +# CONFIG_SERIAL_8250_MULTIPORT is not set
   5.567 +# CONFIG_SERIAL_8250_RSA is not set
   5.568 +
   5.569 +#
   5.570 +# Non-8250 serial port support
   5.571 +#
   5.572 +CONFIG_SERIAL_CORE=y
   5.573 +CONFIG_SERIAL_CORE_CONSOLE=y
   5.574 +# CONFIG_SERIAL_JSM is not set
   5.575 +CONFIG_UNIX98_PTYS=y
   5.576 +CONFIG_LEGACY_PTYS=y
   5.577 +CONFIG_LEGACY_PTY_COUNT=256
   5.578 +
   5.579 +#
   5.580 +# IPMI
   5.581 +#
   5.582 +# CONFIG_IPMI_HANDLER is not set
   5.583 +
   5.584 +#
   5.585 +# Watchdog Cards
   5.586 +#
   5.587 +# CONFIG_WATCHDOG is not set
   5.588 +# CONFIG_HW_RANDOM is not set
   5.589 +CONFIG_EFI_RTC=y
   5.590 +# CONFIG_DTLK is not set
   5.591 +# CONFIG_R3964 is not set
   5.592 +# CONFIG_APPLICOM is not set
   5.593 +
   5.594 +#
   5.595 +# Ftape, the floppy tape device driver
   5.596 +#
   5.597 +CONFIG_AGP=y
   5.598 +CONFIG_AGP_HP_ZX1=y
   5.599 +CONFIG_DRM=y
   5.600 +# CONFIG_DRM_TDFX is not set
   5.601 +# CONFIG_DRM_GAMMA is not set
   5.602 +# CONFIG_DRM_R128 is not set
   5.603 +CONFIG_DRM_RADEON=y
   5.604 +# CONFIG_DRM_MGA is not set
   5.605 +# CONFIG_DRM_SIS is not set
   5.606 +# CONFIG_RAW_DRIVER is not set
   5.607 +# CONFIG_HPET is not set
   5.608 +# CONFIG_HANGCHECK_TIMER is not set
   5.609 +
   5.610 +#
   5.611 +# TPM devices
   5.612 +#
   5.613 +# CONFIG_TCG_TPM is not set
   5.614 +
   5.615 +#
   5.616 +# I2C support
   5.617 +#
   5.618 +CONFIG_I2C=y
   5.619 +CONFIG_I2C_CHARDEV=y
   5.620 +
   5.621 +#
   5.622 +# I2C Algorithms
   5.623 +#
   5.624 +CONFIG_I2C_ALGOBIT=y
   5.625 +CONFIG_I2C_ALGOPCF=y
   5.626 +# CONFIG_I2C_ALGOPCA is not set
   5.627 +
   5.628 +#
   5.629 +# I2C Hardware Bus support
   5.630 +#
   5.631 +# CONFIG_I2C_ALI1535 is not set
   5.632 +# CONFIG_I2C_ALI1563 is not set
   5.633 +# CONFIG_I2C_ALI15X3 is not set
   5.634 +# CONFIG_I2C_AMD756 is not set
   5.635 +# CONFIG_I2C_AMD8111 is not set
   5.636 +# CONFIG_I2C_I801 is not set
   5.637 +# CONFIG_I2C_I810 is not set
   5.638 +# CONFIG_I2C_PIIX4 is not set
   5.639 +# CONFIG_I2C_ISA is not set
   5.640 +# CONFIG_I2C_NFORCE2 is not set
   5.641 +# CONFIG_I2C_PARPORT_LIGHT is not set
   5.642 +# CONFIG_I2C_PROSAVAGE is not set
   5.643 +# CONFIG_I2C_SAVAGE4 is not set
   5.644 +# CONFIG_SCx200_ACB is not set
   5.645 +# CONFIG_I2C_SIS5595 is not set
   5.646 +# CONFIG_I2C_SIS630 is not set
   5.647 +# CONFIG_I2C_SIS96X is not set
   5.648 +# CONFIG_I2C_STUB is not set
   5.649 +# CONFIG_I2C_VIA is not set
   5.650 +# CONFIG_I2C_VIAPRO is not set
   5.651 +# CONFIG_I2C_VOODOO3 is not set
   5.652 +# CONFIG_I2C_PCA_ISA is not set
   5.653 +
   5.654 +#
   5.655 +# Hardware Sensors Chip support
   5.656 +#
   5.657 +# CONFIG_I2C_SENSOR is not set
   5.658 +# CONFIG_SENSORS_ADM1021 is not set
   5.659 +# CONFIG_SENSORS_ADM1025 is not set
   5.660 +# CONFIG_SENSORS_ADM1026 is not set
   5.661 +# CONFIG_SENSORS_ADM1031 is not set
   5.662 +# CONFIG_SENSORS_ASB100 is not set
   5.663 +# CONFIG_SENSORS_DS1621 is not set
   5.664 +# CONFIG_SENSORS_FSCHER is not set
   5.665 +# CONFIG_SENSORS_FSCPOS is not set
   5.666 +# CONFIG_SENSORS_GL518SM is not set
   5.667 +# CONFIG_SENSORS_GL520SM is not set
   5.668 +# CONFIG_SENSORS_IT87 is not set
   5.669 +# CONFIG_SENSORS_LM63 is not set
   5.670 +# CONFIG_SENSORS_LM75 is not set
   5.671 +# CONFIG_SENSORS_LM77 is not set
   5.672 +# CONFIG_SENSORS_LM78 is not set
   5.673 +# CONFIG_SENSORS_LM80 is not set
   5.674 +# CONFIG_SENSORS_LM83 is not set
   5.675 +# CONFIG_SENSORS_LM85 is not set
   5.676 +# CONFIG_SENSORS_LM87 is not set
   5.677 +# CONFIG_SENSORS_LM90 is not set
   5.678 +# CONFIG_SENSORS_LM92 is not set
   5.679 +# CONFIG_SENSORS_MAX1619 is not set
   5.680 +# CONFIG_SENSORS_PC87360 is not set
   5.681 +# CONFIG_SENSORS_SMSC47B397 is not set
   5.682 +# CONFIG_SENSORS_SIS5595 is not set
   5.683 +# CONFIG_SENSORS_SMSC47M1 is not set
   5.684 +# CONFIG_SENSORS_VIA686A is not set
   5.685 +# CONFIG_SENSORS_W83781D is not set
   5.686 +# CONFIG_SENSORS_W83L785TS is not set
   5.687 +# CONFIG_SENSORS_W83627HF is not set
   5.688 +
   5.689 +#
   5.690 +# Other I2C Chip support
   5.691 +#
   5.692 +# CONFIG_SENSORS_DS1337 is not set
   5.693 +# CONFIG_SENSORS_EEPROM is not set
   5.694 +# CONFIG_SENSORS_PCF8574 is not set
   5.695 +# CONFIG_SENSORS_PCF8591 is not set
   5.696 +# CONFIG_SENSORS_RTC8564 is not set
   5.697 +# CONFIG_I2C_DEBUG_CORE is not set
   5.698 +# CONFIG_I2C_DEBUG_ALGO is not set
   5.699 +# CONFIG_I2C_DEBUG_BUS is not set
   5.700 +# CONFIG_I2C_DEBUG_CHIP is not set
   5.701 +
   5.702 +#
   5.703 +# Dallas's 1-wire bus
   5.704 +#
   5.705 +# CONFIG_W1 is not set
   5.706 +
   5.707 +#
   5.708 +# Misc devices
   5.709 +#
   5.710 +
   5.711 +#
   5.712 +# Multimedia devices
   5.713 +#
   5.714 +CONFIG_VIDEO_DEV=y
   5.715 +
   5.716 +#
   5.717 +# Video For Linux
   5.718 +#
   5.719 +
   5.720 +#
   5.721 +# Video Adapters
   5.722 +#
   5.723 +# CONFIG_VIDEO_BT848 is not set
   5.724 +# CONFIG_VIDEO_CPIA is not set
   5.725 +# CONFIG_VIDEO_SAA5246A is not set
   5.726 +# CONFIG_VIDEO_SAA5249 is not set
   5.727 +# CONFIG_TUNER_3036 is not set
   5.728 +# CONFIG_VIDEO_STRADIS is not set
   5.729 +# CONFIG_VIDEO_ZORAN is not set
   5.730 +# CONFIG_VIDEO_ZR36120 is not set
   5.731 +# CONFIG_VIDEO_SAA7134 is not set
   5.732 +# CONFIG_VIDEO_MXB is not set
   5.733 +# CONFIG_VIDEO_DPC is not set
   5.734 +# CONFIG_VIDEO_HEXIUM_ORION is not set
   5.735 +# CONFIG_VIDEO_HEXIUM_GEMINI is not set
   5.736 +# CONFIG_VIDEO_CX88 is not set
   5.737 +# CONFIG_VIDEO_OVCAMCHIP is not set
   5.738 +
   5.739 +#
   5.740 +# Radio Adapters
   5.741 +#
   5.742 +# CONFIG_RADIO_GEMTEK_PCI is not set
   5.743 +# CONFIG_RADIO_MAXIRADIO is not set
   5.744 +# CONFIG_RADIO_MAESTRO is not set
   5.745 +
   5.746 +#
   5.747 +# Digital Video Broadcasting Devices
   5.748 +#
   5.749 +# CONFIG_DVB is not set
   5.750 +
   5.751 +#
   5.752 +# Graphics support
   5.753 +#
   5.754 +CONFIG_FB=y
   5.755 +CONFIG_FB_CFB_FILLRECT=y
   5.756 +CONFIG_FB_CFB_COPYAREA=y
   5.757 +CONFIG_FB_CFB_IMAGEBLIT=y
   5.758 +CONFIG_FB_SOFT_CURSOR=y
   5.759 +# CONFIG_FB_MACMODES is not set
   5.760 +CONFIG_FB_MODE_HELPERS=y
   5.761 +# CONFIG_FB_TILEBLITTING is not set
   5.762 +# CONFIG_FB_CIRRUS is not set
   5.763 +# CONFIG_FB_PM2 is not set
   5.764 +# CONFIG_FB_CYBER2000 is not set
   5.765 +# CONFIG_FB_ASILIANT is not set
   5.766 +# CONFIG_FB_IMSTT is not set
   5.767 +# CONFIG_FB_NVIDIA is not set
   5.768 +# CONFIG_FB_RIVA is not set
   5.769 +# CONFIG_FB_MATROX is not set
   5.770 +# CONFIG_FB_RADEON_OLD is not set
   5.771 +CONFIG_FB_RADEON=y
   5.772 +CONFIG_FB_RADEON_I2C=y
   5.773 +CONFIG_FB_RADEON_DEBUG=y
   5.774 +# CONFIG_FB_ATY128 is not set
   5.775 +# CONFIG_FB_ATY is not set
   5.776 +# CONFIG_FB_SAVAGE is not set
   5.777 +# CONFIG_FB_SIS is not set
   5.778 +# CONFIG_FB_NEOMAGIC is not set
   5.779 +# CONFIG_FB_KYRO is not set
   5.780 +# CONFIG_FB_3DFX is not set
   5.781 +# CONFIG_FB_VOODOO1 is not set
   5.782 +# CONFIG_FB_TRIDENT is not set
   5.783 +# CONFIG_FB_PM3 is not set
   5.784 +# CONFIG_FB_S1D13XXX is not set
   5.785 +# CONFIG_FB_VIRTUAL is not set
   5.786 +
   5.787 +#
   5.788 +# Logo configuration
   5.789 +#
   5.790 +CONFIG_LOGO=y
   5.791 +# CONFIG_LOGO_LINUX_MONO is not set
   5.792 +# CONFIG_LOGO_LINUX_VGA16 is not set
   5.793 +CONFIG_LOGO_LINUX_CLUT224=y
   5.794 +# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
   5.795 +
   5.796 +#
   5.797 +# Sound
   5.798 +#
   5.799 +CONFIG_SOUND=y
   5.800 +
   5.801 +#
   5.802 +# Advanced Linux Sound Architecture
   5.803 +#
   5.804 +CONFIG_SND=y
   5.805 +CONFIG_SND_TIMER=y
   5.806 +CONFIG_SND_PCM=y
   5.807 +CONFIG_SND_HWDEP=y
   5.808 +CONFIG_SND_RAWMIDI=y
   5.809 +CONFIG_SND_SEQUENCER=y
   5.810 +# CONFIG_SND_SEQ_DUMMY is not set
   5.811 +CONFIG_SND_OSSEMUL=y
   5.812 +CONFIG_SND_MIXER_OSS=y
   5.813 +CONFIG_SND_PCM_OSS=y
   5.814 +CONFIG_SND_SEQUENCER_OSS=y
   5.815 +# CONFIG_SND_VERBOSE_PRINTK is not set
   5.816 +# CONFIG_SND_DEBUG is not set
   5.817 +
   5.818 +#
   5.819 +# Generic devices
   5.820 +#
   5.821 +CONFIG_SND_MPU401_UART=y
   5.822 +CONFIG_SND_OPL3_LIB=y
   5.823 +# CONFIG_SND_DUMMY is not set
   5.824 +# CONFIG_SND_VIRMIDI is not set
   5.825 +# CONFIG_SND_MTPAV is not set
   5.826 +# CONFIG_SND_SERIAL_U16550 is not set
   5.827 +# CONFIG_SND_MPU401 is not set
   5.828 +
   5.829 +#
   5.830 +# PCI devices
   5.831 +#
   5.832 +CONFIG_SND_AC97_CODEC=y
   5.833 +# CONFIG_SND_ALI5451 is not set
   5.834 +# CONFIG_SND_ATIIXP is not set
   5.835 +# CONFIG_SND_ATIIXP_MODEM is not set
   5.836 +# CONFIG_SND_AU8810 is not set
   5.837 +# CONFIG_SND_AU8820 is not set
   5.838 +# CONFIG_SND_AU8830 is not set
   5.839 +# CONFIG_SND_AZT3328 is not set
   5.840 +# CONFIG_SND_BT87X is not set
   5.841 +# CONFIG_SND_CS46XX is not set
   5.842 +# CONFIG_SND_CS4281 is not set
   5.843 +# CONFIG_SND_EMU10K1 is not set
   5.844 +# CONFIG_SND_EMU10K1X is not set
   5.845 +# CONFIG_SND_CA0106 is not set
   5.846 +# CONFIG_SND_KORG1212 is not set
   5.847 +# CONFIG_SND_MIXART is not set
   5.848 +# CONFIG_SND_NM256 is not set
   5.849 +# CONFIG_SND_RME32 is not set
   5.850 +# CONFIG_SND_RME96 is not set
   5.851 +# CONFIG_SND_RME9652 is not set
   5.852 +# CONFIG_SND_HDSP is not set
   5.853 +# CONFIG_SND_TRIDENT is not set
   5.854 +# CONFIG_SND_YMFPCI is not set
   5.855 +# CONFIG_SND_ALS4000 is not set
   5.856 +# CONFIG_SND_CMIPCI is not set
   5.857 +# CONFIG_SND_ENS1370 is not set
   5.858 +# CONFIG_SND_ENS1371 is not set
   5.859 +# CONFIG_SND_ES1938 is not set
   5.860 +# CONFIG_SND_ES1968 is not set
   5.861 +# CONFIG_SND_MAESTRO3 is not set
   5.862 +CONFIG_SND_FM801=y
   5.863 +CONFIG_SND_FM801_TEA575X=y
   5.864 +# CONFIG_SND_ICE1712 is not set
   5.865 +# CONFIG_SND_ICE1724 is not set
   5.866 +# CONFIG_SND_INTEL8X0 is not set
   5.867 +# CONFIG_SND_INTEL8X0M is not set
   5.868 +# CONFIG_SND_SONICVIBES is not set
   5.869 +# CONFIG_SND_VIA82XX is not set
   5.870 +# CONFIG_SND_VIA82XX_MODEM is not set
   5.871 +# CONFIG_SND_VX222 is not set
   5.872 +# CONFIG_SND_HDA_INTEL is not set
   5.873 +
   5.874 +#
   5.875 +# USB devices
   5.876 +#
   5.877 +# CONFIG_SND_USB_AUDIO is not set
   5.878 +
   5.879 +#
   5.880 +# Open Sound System
   5.881 +#
   5.882 +# CONFIG_SOUND_PRIME is not set
   5.883 +
   5.884 +#
   5.885 +# USB support
   5.886 +#
   5.887 +CONFIG_USB_ARCH_HAS_HCD=y
   5.888 +CONFIG_USB_ARCH_HAS_OHCI=y
   5.889 +CONFIG_USB=y
   5.890 +# CONFIG_USB_DEBUG is not set
   5.891 +
   5.892 +#
   5.893 +# Miscellaneous USB options
   5.894 +#
   5.895 +# CONFIG_USB_DEVICEFS is not set
   5.896 +CONFIG_USB_BANDWIDTH=y
   5.897 +# CONFIG_USB_DYNAMIC_MINORS is not set
   5.898 +# CONFIG_USB_SUSPEND is not set
   5.899 +# CONFIG_USB_OTG is not set
   5.900 +
   5.901 +#
   5.902 +# USB Host Controller Drivers
   5.903 +#
   5.904 +CONFIG_USB_EHCI_HCD=y
   5.905 +# CONFIG_USB_EHCI_SPLIT_ISO is not set
   5.906 +# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
   5.907 +CONFIG_USB_OHCI_HCD=y
   5.908 +# CONFIG_USB_OHCI_BIG_ENDIAN is not set
   5.909 +CONFIG_USB_OHCI_LITTLE_ENDIAN=y
   5.910 +CONFIG_USB_UHCI_HCD=y
   5.911 +# CONFIG_USB_SL811_HCD is not set
   5.912 +
   5.913 +#
   5.914 +# USB Device Class drivers
   5.915 +#
   5.916 +# CONFIG_USB_AUDIO is not set
   5.917 +# CONFIG_USB_BLUETOOTH_TTY is not set
   5.918 +# CONFIG_USB_MIDI is not set
   5.919 +# CONFIG_USB_ACM is not set
   5.920 +# CONFIG_USB_PRINTER is not set
   5.921 +
   5.922 +#
   5.923 +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
   5.924 +#
   5.925 +CONFIG_USB_STORAGE=y
   5.926 +# CONFIG_USB_STORAGE_DEBUG is not set
   5.927 +# CONFIG_USB_STORAGE_DATAFAB is not set
   5.928 +# CONFIG_USB_STORAGE_FREECOM is not set
   5.929 +# CONFIG_USB_STORAGE_DPCM is not set
   5.930 +# CONFIG_USB_STORAGE_USBAT is not set
   5.931 +# CONFIG_USB_STORAGE_SDDR09 is not set
   5.932 +# CONFIG_USB_STORAGE_SDDR55 is not set
   5.933 +# CONFIG_USB_STORAGE_JUMPSHOT is not set
   5.934 +
   5.935 +#
   5.936 +# USB Input Devices
   5.937 +#
   5.938 +CONFIG_USB_HID=y
   5.939 +CONFIG_USB_HIDINPUT=y
   5.940 +# CONFIG_HID_FF is not set
   5.941 +CONFIG_USB_HIDDEV=y
   5.942 +# CONFIG_USB_AIPTEK is not set
   5.943 +# CONFIG_USB_WACOM is not set
   5.944 +# CONFIG_USB_KBTAB is not set
   5.945 +# CONFIG_USB_POWERMATE is not set
   5.946 +# CONFIG_USB_MTOUCH is not set
   5.947 +# CONFIG_USB_EGALAX is not set
   5.948 +# CONFIG_USB_XPAD is not set
   5.949 +# CONFIG_USB_ATI_REMOTE is not set
   5.950 +
   5.951 +#
   5.952 +# USB Imaging devices
   5.953 +#
   5.954 +# CONFIG_USB_MDC800 is not set
   5.955 +# CONFIG_USB_MICROTEK is not set
   5.956 +
   5.957 +#
   5.958 +# USB Multimedia devices
   5.959 +#
   5.960 +# CONFIG_USB_DABUSB is not set
   5.961 +# CONFIG_USB_VICAM is not set
   5.962 +# CONFIG_USB_DSBR is not set
   5.963 +# CONFIG_USB_IBMCAM is not set
   5.964 +# CONFIG_USB_KONICAWC is not set
   5.965 +# CONFIG_USB_OV511 is not set
   5.966 +# CONFIG_USB_SE401 is not set
   5.967 +# CONFIG_USB_SN9C102 is not set
   5.968 +# CONFIG_USB_STV680 is not set
   5.969 +# CONFIG_USB_PWC is not set
   5.970 +
   5.971 +#
   5.972 +# USB Network Adapters
   5.973 +#
   5.974 +# CONFIG_USB_CATC is not set
   5.975 +# CONFIG_USB_KAWETH is not set
   5.976 +# CONFIG_USB_PEGASUS is not set
   5.977 +# CONFIG_USB_RTL8150 is not set
   5.978 +# CONFIG_USB_USBNET is not set
   5.979 +CONFIG_USB_MON=y
   5.980 +
   5.981 +#
   5.982 +# USB port drivers
   5.983 +#
   5.984 +
   5.985 +#
   5.986 +# USB Serial Converter support
   5.987 +#
   5.988 +# CONFIG_USB_SERIAL is not set
   5.989 +
   5.990 +#
   5.991 +# USB Miscellaneous drivers
   5.992 +#
   5.993 +# CONFIG_USB_EMI62 is not set
   5.994 +# CONFIG_USB_EMI26 is not set
   5.995 +# CONFIG_USB_AUERSWALD is not set
   5.996 +# CONFIG_USB_RIO500 is not set
   5.997 +# CONFIG_USB_LEGOTOWER is not set
   5.998 +# CONFIG_USB_LCD is not set
   5.999 +# CONFIG_USB_LED is not set
  5.1000 +# CONFIG_USB_CYTHERM is not set
  5.1001 +# CONFIG_USB_PHIDGETKIT is not set
  5.1002 +# CONFIG_USB_PHIDGETSERVO is not set
  5.1003 +# CONFIG_USB_IDMOUSE is not set
  5.1004 +# CONFIG_USB_SISUSBVGA is not set
  5.1005 +
  5.1006 +#
  5.1007 +# USB ATM/DSL drivers
  5.1008 +#
  5.1009 +
  5.1010 +#
  5.1011 +# USB Gadget Support
  5.1012 +#
  5.1013 +# CONFIG_USB_GADGET is not set
  5.1014 +
  5.1015 +#
  5.1016 +# MMC/SD Card support
  5.1017 +#
  5.1018 +# CONFIG_MMC is not set
  5.1019 +
  5.1020 +#
  5.1021 +# InfiniBand support
  5.1022 +#
  5.1023 +# CONFIG_INFINIBAND is not set
  5.1024 +
  5.1025 +#
  5.1026 +# File systems
  5.1027 +#
  5.1028 +CONFIG_EXT2_FS=y
  5.1029 +CONFIG_EXT2_FS_XATTR=y
  5.1030 +# CONFIG_EXT2_FS_POSIX_ACL is not set
  5.1031 +# CONFIG_EXT2_FS_SECURITY is not set
  5.1032 +CONFIG_EXT3_FS=y
  5.1033 +CONFIG_EXT3_FS_XATTR=y
  5.1034 +# CONFIG_EXT3_FS_POSIX_ACL is not set
  5.1035 +# CONFIG_EXT3_FS_SECURITY is not set
  5.1036 +CONFIG_JBD=y
  5.1037 +# CONFIG_JBD_DEBUG is not set
  5.1038 +CONFIG_FS_MBCACHE=y
  5.1039 +# CONFIG_REISERFS_FS is not set
  5.1040 +# CONFIG_JFS_FS is not set
  5.1041 +
  5.1042 +#
  5.1043 +# XFS support
  5.1044 +#
  5.1045 +# CONFIG_XFS_FS is not set
  5.1046 +# CONFIG_MINIX_FS is not set
  5.1047 +# CONFIG_ROMFS_FS is not set
  5.1048 +# CONFIG_QUOTA is not set
  5.1049 +CONFIG_DNOTIFY=y
  5.1050 +CONFIG_AUTOFS_FS=y
  5.1051 +# CONFIG_AUTOFS4_FS is not set
  5.1052 +
  5.1053 +#
  5.1054 +# CD-ROM/DVD Filesystems
  5.1055 +#
  5.1056 +CONFIG_ISO9660_FS=y
  5.1057 +CONFIG_JOLIET=y
  5.1058 +# CONFIG_ZISOFS is not set
  5.1059 +CONFIG_UDF_FS=y
  5.1060 +CONFIG_UDF_NLS=y
  5.1061 +
  5.1062 +#
  5.1063 +# DOS/FAT/NT Filesystems
  5.1064 +#
  5.1065 +CONFIG_FAT_FS=y
  5.1066 +CONFIG_MSDOS_FS=y
  5.1067 +CONFIG_VFAT_FS=y
  5.1068 +CONFIG_FAT_DEFAULT_CODEPAGE=437
  5.1069 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
  5.1070 +# CONFIG_NTFS_FS is not set
  5.1071 +
  5.1072 +#
  5.1073 +# Pseudo filesystems
  5.1074 +#
  5.1075 +CONFIG_PROC_FS=y
  5.1076 +CONFIG_PROC_KCORE=y
  5.1077 +CONFIG_SYSFS=y
  5.1078 +# CONFIG_DEVFS_FS is not set
  5.1079 +# CONFIG_DEVPTS_FS_XATTR is not set
  5.1080 +CONFIG_TMPFS=y
  5.1081 +CONFIG_TMPFS_XATTR=y
  5.1082 +CONFIG_TMPFS_SECURITY=y
  5.1083 +CONFIG_HUGETLBFS=y
  5.1084 +CONFIG_HUGETLB_PAGE=y
  5.1085 +CONFIG_RAMFS=y
  5.1086 +
  5.1087 +#
  5.1088 +# Miscellaneous filesystems
  5.1089 +#
  5.1090 +# CONFIG_ADFS_FS is not set
  5.1091 +# CONFIG_AFFS_FS is not set
  5.1092 +# CONFIG_HFS_FS is not set
  5.1093 +# CONFIG_HFSPLUS_FS is not set
  5.1094 +# CONFIG_BEFS_FS is not set
  5.1095 +# CONFIG_BFS_FS is not set
  5.1096 +# CONFIG_EFS_FS is not set
  5.1097 +# CONFIG_CRAMFS is not set
  5.1098 +# CONFIG_VXFS_FS is not set
  5.1099 +# CONFIG_HPFS_FS is not set
  5.1100 +# CONFIG_QNX4FS_FS is not set
  5.1101 +# CONFIG_SYSV_FS is not set
  5.1102 +# CONFIG_UFS_FS is not set
  5.1103 +
  5.1104 +#
  5.1105 +# Network File Systems
  5.1106 +#
  5.1107 +CONFIG_NFS_FS=y
  5.1108 +CONFIG_NFS_V3=y
  5.1109 +CONFIG_NFS_V4=y
  5.1110 +# CONFIG_NFS_DIRECTIO is not set
  5.1111 +CONFIG_NFSD=y
  5.1112 +CONFIG_NFSD_V3=y
  5.1113 +# CONFIG_NFSD_V4 is not set
  5.1114 +# CONFIG_NFSD_TCP is not set
  5.1115 +CONFIG_LOCKD=y
  5.1116 +CONFIG_LOCKD_V4=y
  5.1117 +CONFIG_EXPORTFS=y
  5.1118 +CONFIG_SUNRPC=y
  5.1119 +CONFIG_SUNRPC_GSS=y
  5.1120 +CONFIG_RPCSEC_GSS_KRB5=y
  5.1121 +# CONFIG_RPCSEC_GSS_SPKM3 is not set
  5.1122 +# CONFIG_SMB_FS is not set
  5.1123 +# CONFIG_CIFS is not set
  5.1124 +# CONFIG_NCP_FS is not set
  5.1125 +# CONFIG_CODA_FS is not set
  5.1126 +# CONFIG_AFS_FS is not set
  5.1127 +
  5.1128 +#
  5.1129 +# Partition Types
  5.1130 +#
  5.1131 +CONFIG_PARTITION_ADVANCED=y
  5.1132 +# CONFIG_ACORN_PARTITION is not set
  5.1133 +# CONFIG_OSF_PARTITION is not set
  5.1134 +# CONFIG_AMIGA_PARTITION is not set
  5.1135 +# CONFIG_ATARI_PARTITION is not set
  5.1136 +# CONFIG_MAC_PARTITION is not set
  5.1137 +CONFIG_MSDOS_PARTITION=y
  5.1138 +# CONFIG_BSD_DISKLABEL is not set
  5.1139 +# CONFIG_MINIX_SUBPARTITION is not set
  5.1140 +# CONFIG_SOLARIS_X86_PARTITION is not set
  5.1141 +# CONFIG_UNIXWARE_DISKLABEL is not set
  5.1142 +# CONFIG_LDM_PARTITION is not set
  5.1143 +# CONFIG_SGI_PARTITION is not set
  5.1144 +# CONFIG_ULTRIX_PARTITION is not set
  5.1145 +# CONFIG_SUN_PARTITION is not set
  5.1146 +CONFIG_EFI_PARTITION=y
  5.1147 +
  5.1148 +#
  5.1149 +# Native Language Support
  5.1150 +#
  5.1151 +CONFIG_NLS=y
  5.1152 +CONFIG_NLS_DEFAULT="iso8859-1"
  5.1153 +CONFIG_NLS_CODEPAGE_437=y
  5.1154 +CONFIG_NLS_CODEPAGE_737=y
  5.1155 +CONFIG_NLS_CODEPAGE_775=y
  5.1156 +CONFIG_NLS_CODEPAGE_850=y
  5.1157 +CONFIG_NLS_CODEPAGE_852=y
  5.1158 +CONFIG_NLS_CODEPAGE_855=y
  5.1159 +CONFIG_NLS_CODEPAGE_857=y
  5.1160 +CONFIG_NLS_CODEPAGE_860=y
  5.1161 +CONFIG_NLS_CODEPAGE_861=y
  5.1162 +CONFIG_NLS_CODEPAGE_862=y
  5.1163 +CONFIG_NLS_CODEPAGE_863=y
  5.1164 +CONFIG_NLS_CODEPAGE_864=y
  5.1165 +CONFIG_NLS_CODEPAGE_865=y
  5.1166 +CONFIG_NLS_CODEPAGE_866=y
  5.1167 +CONFIG_NLS_CODEPAGE_869=y
  5.1168 +CONFIG_NLS_CODEPAGE_936=y
  5.1169 +CONFIG_NLS_CODEPAGE_950=y
  5.1170 +CONFIG_NLS_CODEPAGE_932=y
  5.1171 +CONFIG_NLS_CODEPAGE_949=y
  5.1172 +CONFIG_NLS_CODEPAGE_874=y
  5.1173 +CONFIG_NLS_ISO8859_8=y
  5.1174 +# CONFIG_NLS_CODEPAGE_1250 is not set
  5.1175 +CONFIG_NLS_CODEPAGE_1251=y
  5.1176 +# CONFIG_NLS_ASCII is not set
  5.1177 +CONFIG_NLS_ISO8859_1=y
  5.1178 +CONFIG_NLS_ISO8859_2=y
  5.1179 +CONFIG_NLS_ISO8859_3=y
  5.1180 +CONFIG_NLS_ISO8859_4=y
  5.1181 +CONFIG_NLS_ISO8859_5=y
  5.1182 +CONFIG_NLS_ISO8859_6=y
  5.1183 +CONFIG_NLS_ISO8859_7=y
  5.1184 +CONFIG_NLS_ISO8859_9=y
  5.1185 +CONFIG_NLS_ISO8859_13=y
  5.1186 +CONFIG_NLS_ISO8859_14=y
  5.1187 +CONFIG_NLS_ISO8859_15=y
  5.1188 +CONFIG_NLS_KOI8_R=y
  5.1189 +CONFIG_NLS_KOI8_U=y
  5.1190 +CONFIG_NLS_UTF8=y
  5.1191 +
  5.1192 +#
  5.1193 +# Library routines
  5.1194 +#
  5.1195 +# CONFIG_CRC_CCITT is not set
  5.1196 +CONFIG_CRC32=y
  5.1197 +# CONFIG_LIBCRC32C is not set
  5.1198 +CONFIG_GENERIC_HARDIRQS=y
  5.1199 +CONFIG_GENERIC_IRQ_PROBE=y
  5.1200 +
  5.1201 +#
  5.1202 +# Profiling support
  5.1203 +#
  5.1204 +# CONFIG_PROFILING is not set
  5.1205 +
  5.1206 +#
  5.1207 +# Kernel hacking
  5.1208 +#
  5.1209 +# CONFIG_PRINTK_TIME is not set
  5.1210 +CONFIG_DEBUG_KERNEL=y
  5.1211 +CONFIG_MAGIC_SYSRQ=y
  5.1212 +CONFIG_LOG_BUF_SHIFT=17
  5.1213 +# CONFIG_SCHEDSTATS is not set
  5.1214 +# CONFIG_DEBUG_SLAB is not set
  5.1215 +# CONFIG_DEBUG_SPINLOCK is not set
  5.1216 +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
  5.1217 +# CONFIG_DEBUG_KOBJECT is not set
  5.1218 +# CONFIG_DEBUG_INFO is not set
  5.1219 +# CONFIG_DEBUG_FS is not set
  5.1220 +CONFIG_IA64_GRANULE_16MB=y
  5.1221 +# CONFIG_IA64_GRANULE_64MB is not set
  5.1222 +CONFIG_IA64_PRINT_HAZARDS=y
  5.1223 +# CONFIG_DISABLE_VHPT is not set
  5.1224 +# CONFIG_IA64_DEBUG_CMPXCHG is not set
  5.1225 +# CONFIG_IA64_DEBUG_IRQ is not set
  5.1226 +
  5.1227 +#
  5.1228 +# Security options
  5.1229 +#
  5.1230 +# CONFIG_KEYS is not set
  5.1231 +# CONFIG_SECURITY is not set
  5.1232 +
  5.1233 +#
  5.1234 +# Cryptographic options
  5.1235 +#
  5.1236 +CONFIG_CRYPTO=y
  5.1237 +# CONFIG_CRYPTO_HMAC is not set
  5.1238 +# CONFIG_CRYPTO_NULL is not set
  5.1239 +# CONFIG_CRYPTO_MD4 is not set
  5.1240 +CONFIG_CRYPTO_MD5=y
  5.1241 +# CONFIG_CRYPTO_SHA1 is not set
  5.1242 +# CONFIG_CRYPTO_SHA256 is not set
  5.1243 +# CONFIG_CRYPTO_SHA512 is not set
  5.1244 +# CONFIG_CRYPTO_WP512 is not set
  5.1245 +# CONFIG_CRYPTO_TGR192 is not set
  5.1246 +CONFIG_CRYPTO_DES=y
  5.1247 +# CONFIG_CRYPTO_BLOWFISH is not set
  5.1248 +# CONFIG_CRYPTO_TWOFISH is not set
  5.1249 +# CONFIG_CRYPTO_SERPENT is not set
  5.1250 +# CONFIG_CRYPTO_AES is not set
  5.1251 +# CONFIG_CRYPTO_CAST5 is not set
  5.1252 +# CONFIG_CRYPTO_CAST6 is not set
  5.1253 +# CONFIG_CRYPTO_TEA is not set
  5.1254 +# CONFIG_CRYPTO_ARC4 is not set
  5.1255 +# CONFIG_CRYPTO_KHAZAD is not set
  5.1256 +# CONFIG_CRYPTO_ANUBIS is not set
  5.1257 +# CONFIG_CRYPTO_DEFLATE is not set
  5.1258 +# CONFIG_CRYPTO_MICHAEL_MIC is not set
  5.1259 +# CONFIG_CRYPTO_CRC32C is not set
  5.1260 +# CONFIG_CRYPTO_TEST is not set
  5.1261 +
  5.1262 +#
  5.1263 +# Hardware crypto devices
  5.1264 +#
     6.1 --- a/tools/libxc/xc_ia64_stubs.c	Mon Nov 21 13:15:08 2005 +0100
     6.2 +++ b/tools/libxc/xc_ia64_stubs.c	Mon Nov 21 13:17:29 2005 +0100
     6.3 @@ -7,6 +7,21 @@
     6.4  #include "xen/arch-ia64.h"
     6.5  #include <xen/io/ioreq.h>
     6.6  
     6.7 +/* this is a very ugly way of getting FPSR_DEFAULT.  struct ia64_fpreg is
     6.8 + * mysteriously declared in two places: /usr/include/asm/fpu.h and
     6.9 + * /usr/include/bits/sigcontext.h.  The former also defines FPSR_DEFAULT,
    6.10 + * the latter doesn't but is included (indirectly) by xg_private.h */
    6.11 +#define __ASSEMBLY__
    6.12 +#include <asm/fpu.h>
    6.13 +#undef __IA64_UL
    6.14 +#define __IA64_UL(x)           ((unsigned long)(x))
    6.15 +#undef __ASSEMBLY__
    6.16 +                                                                                
    6.17 +unsigned long xc_ia64_fpsr_default(void)
    6.18 +{
    6.19 +        return FPSR_DEFAULT;
    6.20 +}
    6.21 +
    6.22  int xc_linux_save(int xc_handle, int io_fd, uint32_t dom, uint32_t max_iters, 
    6.23                    uint32_t max_factor, uint32_t flags)
    6.24  {
     7.1 --- a/tools/libxc/xc_linux_build.c	Mon Nov 21 13:15:08 2005 +0100
     7.2 +++ b/tools/libxc/xc_linux_build.c	Mon Nov 21 13:17:29 2005 +0100
     7.3 @@ -278,7 +278,8 @@ static int setup_pg_tables_64(int xc_han
     7.4  #endif
     7.5  
     7.6  #ifdef __ia64__
     7.7 -#include <asm/fpu.h> /* for FPSR_DEFAULT */
     7.8 +extern unsigned long xc_ia64_fpsr_default(void);
     7.9 +
    7.10  static int setup_guest(int xc_handle,
    7.11                         uint32_t dom,
    7.12                         char *image, unsigned long image_size,
    7.13 @@ -780,7 +781,7 @@ int xc_linux_build(int xc_handle,
    7.14      ctxt->regs.cr_ipsr = 0; /* all necessary bits filled by hypervisor */
    7.15      ctxt->regs.cr_iip = vkern_entry;
    7.16      ctxt->regs.cr_ifs = 1UL << 63;
    7.17 -    ctxt->regs.ar_fpsr = FPSR_DEFAULT;
    7.18 +    ctxt->regs.ar_fpsr = xc_ia64_fpsr_default();
    7.19      /* currently done by hypervisor, should move here */
    7.20      /* ctxt->regs.r28 = dom_fw_setup(); */
    7.21      ctxt->vcpu.privregs = 0;
     8.1 --- a/tools/python/xen/lowlevel/xs/xs.c	Mon Nov 21 13:15:08 2005 +0100
     8.2 +++ b/tools/python/xen/lowlevel/xs/xs.c	Mon Nov 21 13:17:29 2005 +0100
     8.3 @@ -158,7 +158,7 @@ static PyObject *xspy_ls(XsHandle *self,
     8.4      char *path;
     8.5  
     8.6      char **xsval;
     8.7 -    int xsval_n;
     8.8 +    unsigned int xsval_n;
     8.9  
    8.10      if (!parse_transaction_path(self, args, &xh, &th, &path))
    8.11          return NULL;
     9.1 --- a/xen/arch/ia64/Makefile	Mon Nov 21 13:15:08 2005 +0100
     9.2 +++ b/xen/arch/ia64/Makefile	Mon Nov 21 13:17:29 2005 +0100
     9.3 @@ -2,7 +2,7 @@ include $(BASEDIR)/Rules.mk
     9.4  
     9.5  VPATH = xen vmx linux linux-xen
     9.6  
     9.7 -OBJS = xensetup.o setup.o time.o irq.o ia64_ksyms.o process.o smp.o \
     9.8 +OBJS = xensetup.o setup.o time.o irq.o process.o smp.o \
     9.9  	xenmisc.o acpi.o hypercall.o \
    9.10  	machvec.o dom0_ops.o domain.o hpsimserial.o pcdp.o \
    9.11  	idle0_task.o pal.o hpsim.o efi.o efi_stub.o ivt.o mm_contig.o \
    9.12 @@ -10,7 +10,7 @@ OBJS = xensetup.o setup.o time.o irq.o i
    9.13  	extable.o linuxextable.o sort.o xenirq.o xentime.o \
    9.14  	regionreg.o entry.o unaligned.o privop.o vcpu.o \
    9.15  	irq_ia64.o irq_lsapic.o vhpt.o xenasm.o hyperprivop.o dom_fw.o \
    9.16 -	grant_table.o sn_console.o
    9.17 +	grant_table.o sn_console.o # ia64_ksyms.o 
    9.18  
    9.19  OBJS += vmx_init.o vmx_virt.o vmx_vcpu.o vmx_process.o vmx_vsa.o vmx_ivt.o\
    9.20  	vmx_phy_mode.o vmx_utility.o vmx_interrupt.o vmx_entry.o vmmu.o \
    9.21 @@ -45,7 +45,7 @@ asm-offsets.s: asm-offsets.c $(BASEDIR)/
    9.22  
    9.23  asm-xsi-offsets.s: asm-xsi-offsets.c 
    9.24  	$(CC) $(CFLAGS) -S -o $@ $<
    9.25 -	
    9.26 +
    9.27  $(BASEDIR)/include/asm-ia64/asm-xsi-offsets.h: asm-xsi-offsets.s
    9.28  	@(set -e; \
    9.29  	  echo "/*"; \
    10.1 --- a/xen/arch/ia64/tools/xelilo/xen4elilo.patch	Mon Nov 21 13:15:08 2005 +0100
    10.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    10.3 @@ -1,187 +0,0 @@
    10.4 -<Sign-Off: Fred.Yang@intel.com>
    10.5 -diff -r f2309ac2648a xen/arch/ia64/xen/dom_fw.c
    10.6 ---- a/xen/arch/ia64/xen/dom_fw.c	Tue Sep 20 19:03:25 2005
    10.7 -+++ b/xen/arch/ia64/xen/dom_fw.c	Tue Sep 20 20:10:36 2005
    10.8 -@@ -686,6 +686,12 @@
    10.9 - 	bp->console_info.orig_x = 0;
   10.10 - 	bp->console_info.orig_y = 24;
   10.11 - 	bp->fpswa = 0;
   10.12 -+        bp->initrd_start = (dom0_start+dom0_size) -
   10.13 -+                (PAGE_ALIGN(ia64_boot_param->initrd_size) + 4*1024*1024);
   10.14 -+        bp->initrd_size = ia64_boot_param->initrd_size;
   10.15 -+                printf(" initrd start %0xlx", bp->initrd_start);
   10.16 -+                printf(" initrd size %0xlx", bp->initrd_size);
   10.17 -+
   10.18 - 
   10.19 - 	return bp;
   10.20 - }
   10.21 -diff -r f2309ac2648a xen/arch/ia64/xen/domain.c
   10.22 ---- a/xen/arch/ia64/xen/domain.c	Tue Sep 20 19:03:25 2005
   10.23 -+++ b/xen/arch/ia64/xen/domain.c	Tue Sep 20 20:10:36 2005
   10.24 -@@ -830,6 +830,7 @@
   10.25 - 	unsigned long pkern_start;
   10.26 - 	unsigned long pkern_entry;
   10.27 - 	unsigned long pkern_end;
   10.28 -+	unsigned long pinitrd_start = 0;
   10.29 - 	unsigned long ret, progress = 0;
   10.30 - 
   10.31 - //printf("construct_dom0: starting\n");
   10.32 -@@ -848,12 +849,6 @@
   10.33 - 	alloc_start = dom0_start;
   10.34 - 	alloc_end = dom0_start + dom0_size;
   10.35 - 	d->tot_pages = d->max_pages = dom0_size/PAGE_SIZE;
   10.36 --	image_start = __va(ia64_boot_param->initrd_start);
   10.37 --	image_len = ia64_boot_param->initrd_size;
   10.38 --//printk("image_start=%lx, image_len=%lx\n",image_start,image_len);
   10.39 --//printk("First word of image: %lx\n",*(unsigned long *)image_start);
   10.40 --
   10.41 --//printf("construct_dom0: about to call parseelfimage\n");
   10.42 - 	dsi.image_addr = (unsigned long)image_start;
   10.43 - 	dsi.image_len  = image_len;
   10.44 - 	rc = parseelfimage(&dsi);
   10.45 -@@ -890,11 +885,18 @@
   10.46 - 	    return -EINVAL;
   10.47 - 	}
   10.48 - 
   10.49 -+        if(initrd_start&&initrd_len){
   10.50 -+             pinitrd_start=(dom0_start+dom0_size) -
   10.51 -+                          (PAGE_ALIGN(initrd_len) + 4*1024*1024);
   10.52 -+
   10.53 -+             memcpy(__va(pinitrd_start),initrd_start,initrd_len);
   10.54 -+        }
   10.55 -+
   10.56 - 	printk("METAPHYSICAL MEMORY ARRANGEMENT:\n"
   10.57 - 	       " Kernel image:  %lx->%lx\n"
   10.58 - 	       " Entry address: %lx\n"
   10.59 --	       " Init. ramdisk:   (NOT IMPLEMENTED YET)\n",
   10.60 --	       pkern_start, pkern_end, pkern_entry);
   10.61 -+               " Init. ramdisk: %lx len %lx\n",
   10.62 -+               pkern_start, pkern_end, pkern_entry, pinitrd_start, initrd_len);
   10.63 - 
   10.64 - 	if ( (pkern_end - pkern_start) > (d->max_pages * PAGE_SIZE) )
   10.65 - 	{
   10.66 -diff -r f2309ac2648a xen/arch/ia64/xen/xensetup.c
   10.67 ---- a/xen/arch/ia64/xen/xensetup.c	Tue Sep 20 19:03:25 2005
   10.68 -+++ b/xen/arch/ia64/xen/xensetup.c	Tue Sep 20 20:10:36 2005
   10.69 -@@ -153,7 +153,8 @@
   10.70 -     void *heap_start;
   10.71 -     int i;
   10.72 -     unsigned long max_mem, nr_pages, firsthole_start;
   10.73 --    unsigned long dom0_memory_start, dom0_memory_end;
   10.74 -+    unsigned long dom0_memory_start, dom0_memory_size;
   10.75 -+    unsigned long dom0_initrd_start, dom0_initrd_size;
   10.76 -     unsigned long initial_images_start, initial_images_end;
   10.77 - 
   10.78 -     running_on_sim = is_platform_hp_ski();
   10.79 -@@ -191,7 +192,18 @@
   10.80 -     efi_memmap_walk(xen_find_first_hole, &firsthole_start);
   10.81 - 
   10.82 -     initial_images_start = xenheap_phys_end;
   10.83 --    initial_images_end = initial_images_start + ia64_boot_param->initrd_size;
   10.84 -+    initial_images_end = initial_images_start +
   10.85 -+       PAGE_ALIGN(ia64_boot_param->domain_size);
   10.86 -+
   10.87 -+    /* also reserve space for initrd */
   10.88 -+    if (ia64_boot_param->initrd_start && ia64_boot_param->initrd_size)
   10.89 -+       initial_images_end += PAGE_ALIGN(ia64_boot_param->initrd_size);
   10.90 -+    else {
   10.91 -+       /* sanity cleanup */
   10.92 -+       ia64_boot_param->initrd_size = 0;
   10.93 -+       ia64_boot_param->initrd_start = 0;
   10.94 -+    }
   10.95 -+
   10.96 - 
   10.97 -     /* Later may find another memory trunk, even away from xen image... */
   10.98 -     if (initial_images_end > firsthole_start) {
   10.99 -@@ -203,11 +215,21 @@
  10.100 - 
  10.101 -     /* This copy is time consuming, but elilo may load Dom0 image
  10.102 -      * within xenheap range */
  10.103 --    printk("ready to move Dom0 to 0x%lx...", initial_images_start);
  10.104 -+    printk("ready to move Dom0 to 0x%lx with len %lx...", initial_images_start,
  10.105 -+          ia64_boot_param->domain_size);
  10.106 -+
  10.107 -     memmove(__va(initial_images_start),
  10.108 -+          __va(ia64_boot_param->domain_start),
  10.109 -+          ia64_boot_param->domain_size);
  10.110 -+//    ia64_boot_param->domain_start = initial_images_start;
  10.111 -+
  10.112 -+    printk("ready to move initrd to 0x%lx with len %lx...",
  10.113 -+          initial_images_start+PAGE_ALIGN(ia64_boot_param->domain_size),
  10.114 -+          ia64_boot_param->initrd_size);
  10.115 -+    memmove(__va(initial_images_start+PAGE_ALIGN(ia64_boot_param->domain_size)),
  10.116 -+
  10.117 - 	   __va(ia64_boot_param->initrd_start),
  10.118 - 	   ia64_boot_param->initrd_size);
  10.119 --    ia64_boot_param->initrd_start = initial_images_start;
  10.120 -     printk("Done\n");
  10.121 - 
  10.122 -     /* first find highest page frame number */
  10.123 -@@ -335,23 +357,26 @@
  10.124 -      * above our heap. The second module, if present, is an initrd ramdisk.
  10.125 -      */
  10.126 - printk("About to call construct_dom0()\n");
  10.127 --    dom0_memory_start = __va(ia64_boot_param->initrd_start);
  10.128 --    dom0_memory_end = ia64_boot_param->initrd_size;
  10.129 --    if ( construct_dom0(dom0, dom0_memory_start, dom0_memory_end,
  10.130 --			0,
  10.131 --                        0,
  10.132 -+    dom0_memory_start = __va(initial_images_start);
  10.133 -+    dom0_memory_size = ia64_boot_param->domain_size;
  10.134 -+    dom0_initrd_start = __va(initial_images_start +
  10.135 -+                       PAGE_ALIGN(ia64_boot_param->domain_size));
  10.136 -+    dom0_initrd_size = ia64_boot_param->initrd_size;
  10.137 -+
  10.138 -+    if ( construct_dom0(dom0, dom0_memory_start, dom0_memory_size,
  10.139 -+                       dom0_initrd_start,dom0_initrd_size,
  10.140 - 			0) != 0)
  10.141 -         panic("Could not set up DOM0 guest OS\n");
  10.142 - #ifdef CLONE_DOMAIN0
  10.143 -     {
  10.144 -     int i;
  10.145 --    dom0_memory_start = __va(ia64_boot_param->initrd_start);
  10.146 --    dom0_memory_end = ia64_boot_param->initrd_size;
  10.147 -+    dom0_memory_start = __va(ia64_boot_param->domain_start);
  10.148 -+    dom0_memory_size = ia64_boot_param->domain_size;
  10.149 -+
  10.150 -     for (i = 0; i < CLONE_DOMAIN0; i++) {
  10.151 - printk("CONSTRUCTING DOMAIN0 CLONE #%d\n",i+1);
  10.152 --        if ( construct_domU(clones[i], dom0_memory_start, dom0_memory_end,
  10.153 --                        0, 
  10.154 --                        0,
  10.155 -+        if ( construct_domU(clones[i], dom0_memory_start, dom0_memory_size,
  10.156 -+                       dom0_initrd_start,dom0_initrd_size,
  10.157 - 			0) != 0)
  10.158 -             panic("Could not set up DOM0 clone %d\n",i);
  10.159 -     }
  10.160 -@@ -359,8 +384,14 @@
  10.161 - #endif
  10.162 - 
  10.163 -     /* The stash space for the initial kernel image can now be freed up. */
  10.164 --    init_domheap_pages(ia64_boot_param->initrd_start,
  10.165 --		       ia64_boot_param->initrd_start + ia64_boot_param->initrd_size);
  10.166 -+    init_domheap_pages(ia64_boot_param->domain_start,
  10.167 -+                       ia64_boot_param->domain_size);
  10.168 -+    /* throw away initrd area passed from elilo */
  10.169 -+    if (ia64_boot_param->initrd_size) {
  10.170 -+        init_domheap_pages(ia64_boot_param->initrd_start,
  10.171 -+                          ia64_boot_param->initrd_size);
  10.172 -+    }
  10.173 -+
  10.174 -     if (!running_on_sim)  // slow on ski and pages are pre-initialized to zero
  10.175 - 	scrub_heap_pages();
  10.176 - 
  10.177 -diff -r f2309ac2648a xen/include/asm-ia64/linux-xen/asm/system.h
  10.178 ---- a/xen/include/asm-ia64/linux-xen/asm/system.h	Tue Sep 20 19:03:25 2005
  10.179 -+++ b/xen/include/asm-ia64/linux-xen/asm/system.h	Tue Sep 20 20:10:36 2005
  10.180 -@@ -56,6 +56,10 @@
  10.181 - 	__u64 fpswa;		/* physical address of the fpswa interface */
  10.182 - 	__u64 initrd_start;
  10.183 - 	__u64 initrd_size;
  10.184 -+//for loading initrd for dom0
  10.185 -+       __u64 domain_start;     /* virtual address where the boot time domain begins */
  10.186 -+       __u64 domain_size;      /* how big is the boot domain */
  10.187 -+
  10.188 - } *ia64_boot_param;
  10.189 - 
  10.190 - /*
    11.1 --- a/xen/arch/ia64/vmx/mmio.c	Mon Nov 21 13:15:08 2005 +0100
    11.2 +++ b/xen/arch/ia64/vmx/mmio.c	Mon Nov 21 13:17:29 2005 +0100
    11.3 @@ -49,6 +49,8 @@ struct mmio_list *lookup_mmio(u64 gpa, s
    11.4  #define PIB_OFST_INTA           0x1E0000
    11.5  #define PIB_OFST_XTP            0x1E0008
    11.6  
    11.7 +static int write_ipi (VCPU *vcpu, uint64_t addr, uint64_t value);
    11.8 +
    11.9  static void pib_write(VCPU *vcpu, void *src, uint64_t pib_off, size_t s, int ma)
   11.10  {
   11.11      switch (pib_off) {
    12.1 --- a/xen/arch/ia64/vmx/vmmu.c	Mon Nov 21 13:15:08 2005 +0100
    12.2 +++ b/xen/arch/ia64/vmx/vmmu.c	Mon Nov 21 13:17:29 2005 +0100
    12.3 @@ -157,11 +157,13 @@ static thash_cb_t *init_domain_vhpt(stru
    12.4      printk("Allocate domain vhpt at 0x%lx\n", (u64)vbase);
    12.5      memset(vbase, 0, VCPU_TLB_SIZE);
    12.6      vcur = (void*)((u64)vbase + VCPU_TLB_SIZE);
    12.7 -    vhpt = --((thash_cb_t*)vcur);
    12.8 +    vcur -= sizeof (thash_cb_t);
    12.9 +    vhpt = vcur;
   12.10      vhpt->ht = THASH_VHPT;
   12.11      vhpt->vcpu = d;
   12.12      vhpt->hash_func = machine_thash;
   12.13 -    vs = --((vhpt_special *)vcur);
   12.14 +    vs -= sizeof (vhpt_special);
   12.15 +    vs = vcur;
   12.16  
   12.17      /* Setup guest pta */
   12.18      pta_value.val = 0;
   12.19 @@ -199,10 +201,12 @@ thash_cb_t *init_domain_tlb(struct vcpu 
   12.20      printk("Allocate domain tlb at 0x%lx\n", (u64)vbase);
   12.21      memset(vbase, 0, VCPU_TLB_SIZE);
   12.22      vcur = (void*)((u64)vbase + VCPU_TLB_SIZE);
   12.23 -    tlb = --((thash_cb_t*)vcur);
   12.24 +    vcur -= sizeof (thash_cb_t);
   12.25 +    tlb = vcur;
   12.26      tlb->ht = THASH_TLB;
   12.27      tlb->vcpu = d;
   12.28 -    ts = --((tlb_special_t *)vcur);
   12.29 +    vcur -= sizeof (tlb_special_t);
   12.30 +    ts = vcur;
   12.31      tlb->ts = ts;
   12.32      tlb->ts->vhpt = init_domain_vhpt(d);
   12.33      tlb->hash_func = machine_thash;
    13.1 --- a/xen/arch/ia64/xen/dom_fw.c	Mon Nov 21 13:15:08 2005 +0100
    13.2 +++ b/xen/arch/ia64/xen/dom_fw.c	Mon Nov 21 13:17:29 2005 +0100
    13.3 @@ -466,11 +466,8 @@ acpi_update_madt_checksum (unsigned long
    13.4  /* base is physical address of acpi table */
    13.5  void touch_acpi_table(void)
    13.6  {
    13.7 -	u64 count = 0;
    13.8 -	count = acpi_table_parse_madt(ACPI_MADT_LSAPIC, acpi_update_lsapic, NR_CPUS);
    13.9 -	if ( count < 1)
   13.10 +	if (acpi_table_parse_madt(ACPI_MADT_LSAPIC, acpi_update_lsapic, 0) < 0)
   13.11  		printk("Error parsing MADT - no LAPIC entires\n");
   13.12 -	printk("Total %d lsapic entry\n", count);
   13.13  	acpi_table_parse(ACPI_APIC, acpi_update_madt_checksum);
   13.14  
   13.15  	return;
   13.16 @@ -686,6 +683,12 @@ dom_fw_init (struct domain *d, char *arg
   13.17  	bp->console_info.orig_x = 0;
   13.18  	bp->console_info.orig_y = 24;
   13.19  	bp->fpswa = 0;
   13.20 +        bp->initrd_start = (dom0_start+dom0_size) -
   13.21 +                (PAGE_ALIGN(ia64_boot_param->initrd_size) + 4*1024*1024);
   13.22 +        bp->initrd_size = ia64_boot_param->initrd_size;
   13.23 +                printf(" initrd start %0xlx", bp->initrd_start);
   13.24 +                printf(" initrd size %0xlx", bp->initrd_size);
   13.25 +
   13.26  
   13.27  	return bp;
   13.28  }
    14.1 --- a/xen/arch/ia64/xen/domain.c	Mon Nov 21 13:15:08 2005 +0100
    14.2 +++ b/xen/arch/ia64/xen/domain.c	Mon Nov 21 13:17:29 2005 +0100
    14.3 @@ -11,6 +11,7 @@
    14.4   */
    14.5  
    14.6  #include <xen/config.h>
    14.7 +#include <xen/init.h>
    14.8  #include <xen/lib.h>
    14.9  #include <xen/errno.h>
   14.10  #include <xen/sched.h>
   14.11 @@ -48,15 +49,8 @@
   14.12  
   14.13  #define CONFIG_DOMAIN0_CONTIGUOUS
   14.14  unsigned long dom0_start = -1L;
   14.15 -unsigned long dom0_size = 512*1024*1024; //FIXME: Should be configurable
   14.16 -//FIXME: alignment should be 256MB, lest Linux use a 256MB page size
   14.17 -unsigned long dom0_align = 256*1024*1024;
   14.18 -#ifdef DOMU_BUILD_STAGING
   14.19 -unsigned long domU_staging_size = 32*1024*1024; //FIXME: Should be configurable
   14.20 -unsigned long domU_staging_start;
   14.21 -unsigned long domU_staging_align = 64*1024;
   14.22 -unsigned long *domU_staging_area;
   14.23 -#endif
   14.24 +unsigned long dom0_size = 512*1024*1024;
   14.25 +unsigned long dom0_align = 64*1024*1024;
   14.26  
   14.27  // initialized by arch/ia64/setup.c:find_initrd()
   14.28  unsigned long initrd_start = 0, initrd_end = 0;
   14.29 @@ -750,46 +744,6 @@ void alloc_dom0(void)
   14.30  
   14.31  }
   14.32  
   14.33 -#ifdef DOMU_BUILD_STAGING
   14.34 -void alloc_domU_staging(void)
   14.35 -{
   14.36 -	domU_staging_size = 32*1024*1024; //FIXME: Should be configurable
   14.37 -	printf("alloc_domU_staging: starting (initializing %d MB...)\n",domU_staging_size/(1024*1024));
   14.38 -	domU_staging_start = alloc_boot_pages(
   14.39 -            domU_staging_size >> PAGE_SHIFT, domU_staging_align >> PAGE_SHIFT);
   14.40 -        domU_staging_start <<= PAGE_SHIFT;
   14.41 -	if (!domU_staging_size) {
   14.42 -		printf("alloc_domU_staging: can't allocate, spinning...\n");
   14.43 -		while(1);
   14.44 -	}
   14.45 -	else domU_staging_area = (unsigned long *)__va(domU_staging_start);
   14.46 -	printf("alloc_domU_staging: domU_staging_area=%p\n",domU_staging_area);
   14.47 -
   14.48 -}
   14.49 -
   14.50 -unsigned long
   14.51 -domU_staging_read_8(unsigned long at)
   14.52 -{
   14.53 -	// no way to return errors so just do it
   14.54 -	return domU_staging_area[at>>3];
   14.55 -	
   14.56 -}
   14.57 -
   14.58 -unsigned long
   14.59 -domU_staging_write_32(unsigned long at, unsigned long a, unsigned long b,
   14.60 -	unsigned long c, unsigned long d)
   14.61 -{
   14.62 -	if (at + 32 > domU_staging_size) return -1;
   14.63 -	if (at & 0x1f) return -1;
   14.64 -	at >>= 3;
   14.65 -	domU_staging_area[at++] = a;
   14.66 -	domU_staging_area[at++] = b;
   14.67 -	domU_staging_area[at++] = c;
   14.68 -	domU_staging_area[at] = d;
   14.69 -	return 0;
   14.70 -	
   14.71 -}
   14.72 -#endif
   14.73  
   14.74  /*
   14.75   * Domain 0 has direct access to all devices absolutely. However
   14.76 @@ -823,6 +777,7 @@ int construct_dom0(struct domain *d,
   14.77  	unsigned long pkern_start;
   14.78  	unsigned long pkern_entry;
   14.79  	unsigned long pkern_end;
   14.80 +	unsigned long pinitrd_start = 0;
   14.81  	unsigned long ret, progress = 0;
   14.82  
   14.83  //printf("construct_dom0: starting\n");
   14.84 @@ -841,12 +796,6 @@ int construct_dom0(struct domain *d,
   14.85  	alloc_start = dom0_start;
   14.86  	alloc_end = dom0_start + dom0_size;
   14.87  	d->tot_pages = d->max_pages = dom0_size/PAGE_SIZE;
   14.88 -	image_start = __va(ia64_boot_param->initrd_start);
   14.89 -	image_len = ia64_boot_param->initrd_size;
   14.90 -//printk("image_start=%lx, image_len=%lx\n",image_start,image_len);
   14.91 -//printk("First word of image: %lx\n",*(unsigned long *)image_start);
   14.92 -
   14.93 -//printf("construct_dom0: about to call parseelfimage\n");
   14.94  	dsi.image_addr = (unsigned long)image_start;
   14.95  	dsi.image_len  = image_len;
   14.96  	rc = parseelfimage(&dsi);
   14.97 @@ -883,11 +832,18 @@ int construct_dom0(struct domain *d,
   14.98  	    return -EINVAL;
   14.99  	}
  14.100  
  14.101 +        if(initrd_start&&initrd_len){
  14.102 +             pinitrd_start=(dom0_start+dom0_size) -
  14.103 +                          (PAGE_ALIGN(initrd_len) + 4*1024*1024);
  14.104 +
  14.105 +             memcpy(__va(pinitrd_start),initrd_start,initrd_len);
  14.106 +        }
  14.107 +
  14.108  	printk("METAPHYSICAL MEMORY ARRANGEMENT:\n"
  14.109  	       " Kernel image:  %lx->%lx\n"
  14.110  	       " Entry address: %lx\n"
  14.111 -	       " Init. ramdisk:   (NOT IMPLEMENTED YET)\n",
  14.112 -	       pkern_start, pkern_end, pkern_entry);
  14.113 +               " Init. ramdisk: %lx len %lx\n",
  14.114 +               pkern_start, pkern_end, pkern_entry, pinitrd_start, initrd_len);
  14.115  
  14.116  	if ( (pkern_end - pkern_start) > (d->max_pages * PAGE_SIZE) )
  14.117  	{
  14.118 @@ -1074,29 +1030,6 @@ void reconstruct_domU(struct vcpu *v)
  14.119  }
  14.120  #endif
  14.121  
  14.122 -// FIXME: When dom0 can construct domains, this goes away (or is rewritten)
  14.123 -int launch_domainU(unsigned long size)
  14.124 -{
  14.125 -#ifdef CLONE_DOMAIN0
  14.126 -	static int next = CLONE_DOMAIN0+1;
  14.127 -#else
  14.128 -	static int next = 1;
  14.129 -#endif	
  14.130 -
  14.131 -	struct domain *d = do_createdomain(next,0);
  14.132 -	if (!d) {
  14.133 -		printf("launch_domainU: couldn't create\n");
  14.134 -		return 1;
  14.135 -	}
  14.136 -	else next++;
  14.137 -	if (construct_domU(d, (unsigned long)domU_staging_area, size,0,0,0)) {
  14.138 -		printf("launch_domainU: couldn't construct(id=%d,%lx,%lx)\n",
  14.139 -			d->domain_id,domU_staging_area,size);
  14.140 -		return 2;
  14.141 -	}
  14.142 -	domain_unpause_by_systemcontroller(d);
  14.143 -}
  14.144 -
  14.145  void machine_restart(char * __unused)
  14.146  {
  14.147  	if (platform_is_hp_ski()) dummy();
  14.148 @@ -1154,3 +1087,54 @@ void sync_vcpu_execstate(struct vcpu *v)
  14.149  	}
  14.150  	// FIXME SMP: Anything else needed here for SMP?
  14.151  }
  14.152 +
  14.153 +// FIXME: It would be nice to print out a nice error message for bad
  14.154 +//  values of these boot-time parameters, but it seems we are too early
  14.155 +//  in the boot and attempts to print freeze the system?
  14.156 +#define abort(x...) do {} while(0)
  14.157 +#define warn(x...) do {} while(0)
  14.158 +
  14.159 +static void parse_dom0_mem(char *s)
  14.160 +{
  14.161 +	unsigned long bytes = parse_size_and_unit(s);
  14.162 +
  14.163 +	if (dom0_size < 4 * 1024 * 1024) {
  14.164 +		abort("parse_dom0_mem: too small, boot aborted"
  14.165 +			" (try e.g. dom0_mem=256M or dom0_mem=65536K)\n");
  14.166 +	}
  14.167 +	if (dom0_size % dom0_align) {
  14.168 +		dom0_size = ((dom0_size / dom0_align) + 1) * dom0_align;
  14.169 +		warn("parse_dom0_mem: dom0_size rounded up from"
  14.170 +			" %lx to %lx bytes, due to dom0_align=%lx\n",
  14.171 +			bytes,dom0_size,dom0_align);
  14.172 +	}
  14.173 +	else dom0_size = bytes;
  14.174 +}
  14.175 +custom_param("dom0_mem", parse_dom0_mem);
  14.176 +
  14.177 +
  14.178 +static void parse_dom0_align(char *s)
  14.179 +{
  14.180 +	unsigned long bytes = parse_size_and_unit(s);
  14.181 +
  14.182 +	if ((bytes - 1) ^ bytes) { /* not a power of two */
  14.183 +		abort("parse_dom0_align: dom0_align must be power of two, "
  14.184 +			"boot aborted"
  14.185 +			" (try e.g. dom0_align=256M or dom0_align=65536K)\n");
  14.186 +	}
  14.187 +	else if (bytes < PAGE_SIZE) {
  14.188 +		abort("parse_dom0_align: dom0_align must be >= %ld, "
  14.189 +			"boot aborted"
  14.190 +			" (try e.g. dom0_align=256M or dom0_align=65536K)\n",
  14.191 +			PAGE_SIZE);
  14.192 +	}
  14.193 +	else dom0_align = bytes;
  14.194 +	if (dom0_size % dom0_align) {
  14.195 +		dom0_size = (dom0_size / dom0_align + 1) * dom0_align;
  14.196 +		warn("parse_dom0_align: dom0_size rounded up from"
  14.197 +			" %ld to %ld bytes, due to dom0_align=%lx\n",
  14.198 +			bytes,dom0_size,dom0_align);
  14.199 +	}
  14.200 +}
  14.201 +custom_param("dom0_align", parse_dom0_align);
  14.202 +
    15.1 --- a/xen/arch/ia64/xen/hypercall.c	Mon Nov 21 13:15:08 2005 +0100
    15.2 +++ b/xen/arch/ia64/xen/hypercall.c	Mon Nov 21 13:17:29 2005 +0100
    15.3 @@ -123,32 +123,16 @@ ia64_hypercall (struct pt_regs *regs)
    15.4  		// FIXME: need fixes in efi.h from 2.6.9
    15.5  		regs->r8 = EFI_UNSUPPORTED;
    15.6  		break;
    15.7 -	    case 0xffff: // test dummy hypercall
    15.8 +	    case 0xffff:
    15.9  		regs->r8 = dump_privop_counts_to_user(
   15.10  			vcpu_get_gr(v,32),
   15.11  			vcpu_get_gr(v,33));
   15.12  		break;
   15.13 -	    case 0xfffe: // test dummy hypercall
   15.14 +	    case 0xfffe:
   15.15  		regs->r8 = zero_privop_counts_to_user(
   15.16  			vcpu_get_gr(v,32),
   15.17  			vcpu_get_gr(v,33));
   15.18  		break;
   15.19 -	    case 0xfffd: // test dummy hypercall
   15.20 -		regs->r8 = launch_domainU(
   15.21 -			vcpu_get_gr(v,32));
   15.22 -		break;
   15.23 -	    case 0xfffc: // test dummy hypercall
   15.24 -		regs->r8 = domU_staging_write_32(
   15.25 -			vcpu_get_gr(v,32),
   15.26 -			vcpu_get_gr(v,33),
   15.27 -			vcpu_get_gr(v,34),
   15.28 -			vcpu_get_gr(v,35),
   15.29 -			vcpu_get_gr(v,36));
   15.30 -		break;
   15.31 -	    case 0xfffb: // test dummy hypercall
   15.32 -		regs->r8 = domU_staging_read_8(vcpu_get_gr(v,32));
   15.33 -		break;
   15.34 -
   15.35  	    case __HYPERVISOR_dom0_op:
   15.36  		regs->r8 = do_dom0_op(regs->r14);
   15.37  		break;
    16.1 --- a/xen/arch/ia64/xen/hyperprivop.S	Mon Nov 21 13:15:08 2005 +0100
    16.2 +++ b/xen/arch/ia64/xen/hyperprivop.S	Mon Nov 21 13:17:29 2005 +0100
    16.3 @@ -1967,6 +1967,12 @@ ENTRY(hyper_itc_d)
    16.4  	extr.u r24=r23,2,6;;		// r24==logps
    16.5  	cmp.gt p7,p0=PAGE_SHIFT,r24
    16.6  (p7)	br.spnt.many dispatch_break_fault ;;
    16.7 +	adds r21=XSI_IFA_OFS-XSI_PSR_IC_OFS,r18 ;;
    16.8 +	ld8 r21=[r21];;
    16.9 +	// for now, punt on region0 inserts
   16.10 +	extr.u r21=r21,61,3;;
   16.11 +	cmp.eq p7,p0=r21,r0
   16.12 +(p7)	br.spnt.many dispatch_break_fault ;;
   16.13  	movl r27=THIS_CPU(cpu_kr)+IA64_KR_CURRENT_OFFSET;;
   16.14  	ld8 r27=[r27];;
   16.15  	adds r27=IA64_VCPU_DOMAIN_OFFSET,r27;;
    17.1 --- a/xen/arch/ia64/xen/process.c	Mon Nov 21 13:15:08 2005 +0100
    17.2 +++ b/xen/arch/ia64/xen/process.c	Mon Nov 21 13:17:29 2005 +0100
    17.3 @@ -698,13 +698,10 @@ ia64_handle_privop (unsigned long ifa, s
    17.4  	IA64FAULT vector;
    17.5  	struct domain *d = current->domain;
    17.6  	struct vcpu *v = current;
    17.7 -	// FIXME: no need to pass itir in to this routine as we need to
    17.8 -	// compute the virtual itir anyway (based on domain's RR.ps)
    17.9 -	// AND ACTUALLY reflect_interruption doesn't use it anyway!
   17.10  	vector = priv_emulate(current,regs,isr);
   17.11  	if (vector != IA64_NO_FAULT && vector != IA64_RFI_IN_PROGRESS) {
   17.12 -		PSCB(current,itir) =
   17.13 -			vcpu_get_itir_on_fault(v,PSCB(current,ifa));
   17.14 +		// Note: if a path results in a vector to reflect that requires
   17.15 +		// iha/itir (e.g. vcpu_force_data_miss), they must be set there
   17.16  		reflect_interruption(isr,regs,vector);
   17.17  	}
   17.18  }
   17.19 @@ -743,10 +740,15 @@ ia64_handle_reflection (unsigned long if
   17.20  		vector = IA64_DISABLED_FPREG_VECTOR;
   17.21  		break;
   17.22  	    case 26:
   17.23 +		if (((isr >> 4L) & 0xfL) == 1) {
   17.24 +			//regs->eml_unat = 0;  FIXME: DO WE NEED THIS??
   17.25 +			printf("ia64_handle_reflection: handling regNaT fault");
   17.26 +			vector = IA64_NAT_CONSUMPTION_VECTOR; break;
   17.27 +		}
   17.28  printf("*** NaT fault... attempting to handle as privop\n");
   17.29  printf("isr=%p, ifa=%p,iip=%p,ipsr=%p\n",isr,ifa,regs->cr_iip,psr);
   17.30 -		regs->eml_unat = 0;
   17.31 -		return;
   17.32 +		//regs->eml_unat = 0;  FIXME: DO WE NEED THIS???
   17.33 +		// certain NaT faults are higher priority than privop faults
   17.34  		vector = priv_emulate(v,regs,isr);
   17.35  		if (vector == IA64_NO_FAULT) {
   17.36  printf("*** Handled privop masquerading as NaT fault\n");
    18.1 --- a/xen/arch/ia64/xen/regionreg.c	Mon Nov 21 13:15:08 2005 +0100
    18.2 +++ b/xen/arch/ia64/xen/regionreg.c	Mon Nov 21 13:17:29 2005 +0100
    18.3 @@ -190,12 +190,6 @@ set_rr(unsigned long rr, unsigned long r
    18.4  	ia64_srlz_d();
    18.5  }
    18.6  
    18.7 -unsigned long
    18.8 -get_rr(unsigned long rr)
    18.9 -{
   18.10 -	return vmUnmangleRID(ia64_get_rr(rr));
   18.11 -}
   18.12 -
   18.13  static inline int validate_page_size(unsigned long ps)
   18.14  {
   18.15  	switch(ps) {
    19.1 --- a/xen/arch/ia64/xen/vcpu.c	Mon Nov 21 13:15:08 2005 +0100
    19.2 +++ b/xen/arch/ia64/xen/vcpu.c	Mon Nov 21 13:17:29 2005 +0100
    19.3 @@ -147,6 +147,9 @@ void vcpu_load_kernel_regs(VCPU *vcpu)
    19.4  	ia64_set_kr(7, VCPU(vcpu, krs[7]));
    19.5  }
    19.6  
    19.7 +/* GCC 4.0.2 seems not to be able to suppress this call!.  */
    19.8 +#define ia64_setreg_unknown_kr() return IA64_ILLOP_FAULT
    19.9 +
   19.10  IA64FAULT vcpu_set_ar(VCPU *vcpu, UINT64 reg, UINT64 val)
   19.11  {
   19.12  	if (reg == 44) return (vcpu_set_itc(vcpu,val));
   19.13 @@ -342,19 +345,17 @@ IA64FAULT vcpu_set_psr_l(VCPU *vcpu, UIN
   19.14  
   19.15  IA64FAULT vcpu_get_psr(VCPU *vcpu, UINT64 *pval)
   19.16  {
   19.17 -	UINT64 psr;
   19.18 +	REGS *regs = vcpu_regs(vcpu);
   19.19  	struct ia64_psr newpsr;
   19.20  
   19.21 -	// TODO: This needs to return a "filtered" view of
   19.22 -	// the psr, not the actual psr.  Probably the psr needs
   19.23 -	// to be a field in regs (in addition to ipsr).
   19.24 -	__asm__ __volatile ("mov %0=psr;;" : "=r"(psr) :: "memory");
   19.25 -	newpsr = *(struct ia64_psr *)&psr;
   19.26 +	newpsr = *(struct ia64_psr *)&regs->cr_ipsr;
   19.27  	if (newpsr.cpl == 2) newpsr.cpl = 0;
   19.28  	if (PSCB(vcpu,interrupt_delivery_enabled)) newpsr.i = 1;
   19.29  	else newpsr.i = 0;
   19.30  	if (PSCB(vcpu,interrupt_collection_enabled)) newpsr.ic = 1;
   19.31  	else newpsr.ic = 0;
   19.32 +	if (PSCB(vcpu,metaphysical_mode)) newpsr.dt = 0;
   19.33 +	else newpsr.dt = 1;
   19.34  // FIXME: need new field in mapped_regs_t for virtual psr.pp (psr.be too?)
   19.35  	if (PSCB(vcpu,tmp[8])) newpsr.pp = 1;
   19.36  	else newpsr.pp = 0;
   19.37 @@ -1183,6 +1184,8 @@ Privileged operation emulation routines
   19.38  IA64FAULT vcpu_force_data_miss(VCPU *vcpu, UINT64 ifa)
   19.39  {
   19.40  	PSCB(vcpu,ifa) = ifa;
   19.41 +	PSCB(vcpu,itir) = vcpu_get_itir_on_fault(vcpu,ifa);
   19.42 +	vcpu_thash(current, ifa, &PSCB(current,iha));
   19.43  	return (vcpu_get_rr_ve(vcpu,ifa) ? IA64_DATA_TLB_VECTOR : IA64_ALT_DATA_TLB_VECTOR);
   19.44  }
   19.45  
   19.46 @@ -1256,7 +1259,6 @@ IA64FAULT vcpu_thash(VCPU *vcpu, UINT64 
   19.47  	UINT64 Mask = (1L << pta_sz) - 1;
   19.48  	UINT64 Mask_60_15 = (Mask >> 15) & 0x3fffffffffff;
   19.49  	UINT64 compMask_60_15 = ~Mask_60_15;
   19.50 -	//UINT64 rr_ps = RR_TO_PS(get_rr(vadr));
   19.51  	UINT64 rr_ps = vcpu_get_rr_ps(vcpu,vadr);
   19.52  	UINT64 VHPT_offset = (vadr >> rr_ps) << 3;
   19.53  	UINT64 VHPT_addr1 = vadr & 0xe000000000000000L;
   19.54 @@ -1287,29 +1289,39 @@ unsigned long fast_vhpt_translate_count 
   19.55  unsigned long recover_to_page_fault_count = 0;
   19.56  unsigned long recover_to_break_fault_count = 0;
   19.57  
   19.58 +int warn_region0_address = 0; // FIXME later: tie to a boot parameter?
   19.59 +
   19.60  IA64FAULT vcpu_translate(VCPU *vcpu, UINT64 address, BOOLEAN is_data, UINT64 *pteval, UINT64 *itir, UINT64 *iha)
   19.61  {
   19.62 +	unsigned long region = address >> 61;
   19.63  	unsigned long pta, pte, rid, rr;
   19.64  	int i;
   19.65  	TR_ENTRY *trp;
   19.66  
   19.67 -	if (!(address >> 61)) {
   19.68 -		if (!PSCB(vcpu,metaphysical_mode)) {
   19.69 -			REGS *regs = vcpu_regs(vcpu);
   19.70 -			unsigned long viip = PSCB(vcpu,iip);
   19.71 -			unsigned long vipsr = PSCB(vcpu,ipsr);
   19.72 -			unsigned long iip = regs->cr_iip;
   19.73 -			unsigned long ipsr = regs->cr_ipsr;
   19.74 -			printk("vcpu_translate: bad address %p, viip=%p, vipsr=%p, iip=%p, ipsr=%p continuing\n", address, viip, vipsr, iip, ipsr);
   19.75 +	if (PSCB(vcpu,metaphysical_mode) && !(!is_data && region)) {
   19.76 +		// dom0 may generate an uncacheable physical address (msb=1)
   19.77 +		if (region && ((region != 4) || (vcpu->domain != dom0))) {
   19.78 +// FIXME: This seems to happen even though it shouldn't.  Need to track
   19.79 +// this down, but since it has been apparently harmless, just flag it for now
   19.80 +//			panic_domain(vcpu_regs(vcpu),
   19.81 +			printk(
   19.82 +			 "vcpu_translate: bad physical address: %p\n",address);
   19.83  		}
   19.84 -
   19.85  		*pteval = (address & _PAGE_PPN_MASK) | __DIRTY_BITS | _PAGE_PL_2 | _PAGE_AR_RWX;
   19.86  		*itir = PAGE_SHIFT << 2;
   19.87  		phys_translate_count++;
   19.88  		return IA64_NO_FAULT;
   19.89  	}
   19.90 +	else if (!region && warn_region0_address) {
   19.91 +		REGS *regs = vcpu_regs(vcpu);
   19.92 +		unsigned long viip = PSCB(vcpu,iip);
   19.93 +		unsigned long vipsr = PSCB(vcpu,ipsr);
   19.94 +		unsigned long iip = regs->cr_iip;
   19.95 +		unsigned long ipsr = regs->cr_ipsr;
   19.96 +		printk("vcpu_translate: bad address %p, viip=%p, vipsr=%p, iip=%p, ipsr=%p continuing\n", address, viip, vipsr, iip, ipsr);
   19.97 +	}
   19.98  
   19.99 -	rr = PSCB(vcpu,rrs)[address>>61];
  19.100 +	rr = PSCB(vcpu,rrs)[region];
  19.101  	rid = rr & RR_RID_MASK;
  19.102  	if (is_data) {
  19.103  		if (vcpu_quick_region_check(vcpu->arch.dtr_regions,address)) {
  19.104 @@ -1685,7 +1697,7 @@ static void vcpu_set_tr_entry(TR_ENTRY *
  19.105  	UINT64 ps;
  19.106  
  19.107  	trp->itir = itir;
  19.108 -	trp->rid = virtualize_rid(current, get_rr(ifa) & RR_RID_MASK);
  19.109 +	trp->rid = VCPU(current,rrs[ifa>>61]) & RR_RID_MASK;
  19.110  	trp->p = 1;
  19.111  	ps = trp->ps;
  19.112  	trp->page_flags = pte;
  19.113 @@ -1760,7 +1772,8 @@ void vcpu_itc_no_srlz(VCPU *vcpu, UINT64
  19.114  	// PAGE_SIZE mapping in the vhpt for now, else purging is complicated
  19.115  	else vhpt_insert(vaddr,pte,PAGE_SHIFT<<2);
  19.116  #endif
  19.117 -	if ((mp_pte == -1UL) || (IorD & 0x4)) return;  // don't place in 1-entry TLB
  19.118 +	if ((mp_pte == -1UL) || (IorD & 0x4)) // don't place in 1-entry TLB
  19.119 +		return;
  19.120  	if (IorD & 0x1) {
  19.121  		vcpu_set_tr_entry(&PSCBX(vcpu,itlb),pte,ps<<2,vaddr);
  19.122  		PSCBX(vcpu,itlb_pte) = mp_pte;
  19.123 @@ -1775,6 +1788,7 @@ IA64FAULT vcpu_itc_d(VCPU *vcpu, UINT64 
  19.124  {
  19.125  	unsigned long pteval, logps = (itir >> 2) & 0x3f;
  19.126  	unsigned long translate_domain_pte(UINT64,UINT64,UINT64);
  19.127 +	BOOLEAN swap_rr0 = (!(ifa>>61) && PSCB(vcpu,metaphysical_mode));
  19.128  
  19.129  	if (logps < PAGE_SHIFT) {
  19.130  		printf("vcpu_itc_d: domain trying to use smaller page size!\n");
  19.131 @@ -1784,7 +1798,9 @@ IA64FAULT vcpu_itc_d(VCPU *vcpu, UINT64 
  19.132  	//itir = (itir & ~0xfc) | (PAGE_SHIFT<<2); // ignore domain's pagesize
  19.133  	pteval = translate_domain_pte(pte,ifa,itir);
  19.134  	if (!pteval) return IA64_ILLOP_FAULT;
  19.135 +	if (swap_rr0) set_one_rr(0x0,PSCB(vcpu,rrs[0]));
  19.136  	vcpu_itc_no_srlz(vcpu,2,ifa,pteval,pte,logps);
  19.137 +	if (swap_rr0) set_metaphysical_rr0();
  19.138  	return IA64_NO_FAULT;
  19.139  }
  19.140  
  19.141 @@ -1792,6 +1808,7 @@ IA64FAULT vcpu_itc_i(VCPU *vcpu, UINT64 
  19.142  {
  19.143  	unsigned long pteval, logps = (itir >> 2) & 0x3f;
  19.144  	unsigned long translate_domain_pte(UINT64,UINT64,UINT64);
  19.145 +	BOOLEAN swap_rr0 = (!(ifa>>61) && PSCB(vcpu,metaphysical_mode));
  19.146  
  19.147  	// FIXME: validate ifa here (not in Xen space), COULD MACHINE CHECK!
  19.148  	if (logps < PAGE_SHIFT) {
  19.149 @@ -1803,7 +1820,9 @@ IA64FAULT vcpu_itc_i(VCPU *vcpu, UINT64 
  19.150  	pteval = translate_domain_pte(pte,ifa,itir);
  19.151  	// FIXME: what to do if bad physical address? (machine check?)
  19.152  	if (!pteval) return IA64_ILLOP_FAULT;
  19.153 +	if (swap_rr0) set_one_rr(0x0,PSCB(vcpu,rrs[0]));
  19.154  	vcpu_itc_no_srlz(vcpu, 1,ifa,pteval,pte,logps);
  19.155 +	if (swap_rr0) set_metaphysical_rr0();
  19.156  	return IA64_NO_FAULT;
  19.157  }
  19.158  
    20.1 --- a/xen/arch/ia64/xen/xensetup.c	Mon Nov 21 13:15:08 2005 +0100
    20.2 +++ b/xen/arch/ia64/xen/xensetup.c	Mon Nov 21 13:17:29 2005 +0100
    20.3 @@ -153,7 +153,8 @@ void start_kernel(void)
    20.4      void *heap_start;
    20.5      int i;
    20.6      unsigned long max_mem, nr_pages, firsthole_start;
    20.7 -    unsigned long dom0_memory_start, dom0_memory_end;
    20.8 +    unsigned long dom0_memory_start, dom0_memory_size;
    20.9 +    unsigned long dom0_initrd_start, dom0_initrd_size;
   20.10      unsigned long initial_images_start, initial_images_end;
   20.11  
   20.12      running_on_sim = is_platform_hp_ski();
   20.13 @@ -190,8 +191,30 @@ void start_kernel(void)
   20.14      firsthole_start = 0;
   20.15      efi_memmap_walk(xen_find_first_hole, &firsthole_start);
   20.16  
   20.17 +    if (ia64_boot_param->domain_start == 0
   20.18 +	|| ia64_boot_param->domain_size == 0) {
   20.19 +	    /* This is possible only with the old elilo, which does not support
   20.20 +	       a vmm.  Fix now, and continue without initrd.  */
   20.21 +	    printk ("Your elilo is not Xen-aware.  Bootparams fixed\n");
   20.22 +	    ia64_boot_param->domain_start = ia64_boot_param->initrd_start;
   20.23 +	    ia64_boot_param->domain_size = ia64_boot_param->initrd_size;
   20.24 +	    ia64_boot_param->initrd_start = 0;
   20.25 +	    ia64_boot_param->initrd_size = 0;
   20.26 +    }
   20.27 +
   20.28      initial_images_start = xenheap_phys_end;
   20.29 -    initial_images_end = initial_images_start + ia64_boot_param->initrd_size;
   20.30 +    initial_images_end = initial_images_start +
   20.31 +       PAGE_ALIGN(ia64_boot_param->domain_size);
   20.32 +
   20.33 +    /* also reserve space for initrd */
   20.34 +    if (ia64_boot_param->initrd_start && ia64_boot_param->initrd_size)
   20.35 +       initial_images_end += PAGE_ALIGN(ia64_boot_param->initrd_size);
   20.36 +    else {
   20.37 +       /* sanity cleanup */
   20.38 +       ia64_boot_param->initrd_size = 0;
   20.39 +       ia64_boot_param->initrd_start = 0;
   20.40 +    }
   20.41 +
   20.42  
   20.43      /* Later may find another memory trunk, even away from xen image... */
   20.44      if (initial_images_end > firsthole_start) {
   20.45 @@ -203,11 +226,21 @@ void start_kernel(void)
   20.46  
   20.47      /* This copy is time consuming, but elilo may load Dom0 image
   20.48       * within xenheap range */
   20.49 -    printk("ready to move Dom0 to 0x%lx...", initial_images_start);
   20.50 +    printk("ready to move Dom0 to 0x%lx with len %lx...", initial_images_start,
   20.51 +          ia64_boot_param->domain_size);
   20.52 +
   20.53      memmove(__va(initial_images_start),
   20.54 +          __va(ia64_boot_param->domain_start),
   20.55 +          ia64_boot_param->domain_size);
   20.56 +//    ia64_boot_param->domain_start = initial_images_start;
   20.57 +
   20.58 +    printk("ready to move initrd to 0x%lx with len %lx...",
   20.59 +          initial_images_start+PAGE_ALIGN(ia64_boot_param->domain_size),
   20.60 +          ia64_boot_param->initrd_size);
   20.61 +    memmove(__va(initial_images_start+PAGE_ALIGN(ia64_boot_param->domain_size)),
   20.62 +
   20.63  	   __va(ia64_boot_param->initrd_start),
   20.64  	   ia64_boot_param->initrd_size);
   20.65 -    ia64_boot_param->initrd_start = initial_images_start;
   20.66      printk("Done\n");
   20.67  
   20.68      /* first find highest page frame number */
   20.69 @@ -235,9 +268,6 @@ void start_kernel(void)
   20.70      __ia64_init_fpu();
   20.71  
   20.72      alloc_dom0();
   20.73 -#ifdef DOMU_BUILD_STAGING
   20.74 -    alloc_domU_staging();
   20.75 -#endif
   20.76  
   20.77      end_boot_allocator();
   20.78  
   20.79 @@ -329,13 +359,16 @@ printk("About to call do_createdomain()\
   20.80       * We're going to setup domain0 using the module(s) that we stashed safely
   20.81       * above our heap. The second module, if present, is an initrd ramdisk.
   20.82       */
   20.83 -printk("About to call construct_dom0()\n");
   20.84 -    dom0_memory_start = __va(ia64_boot_param->initrd_start);
   20.85 -    dom0_memory_end = ia64_boot_param->initrd_size;
   20.86 -    if ( construct_dom0(dom0, dom0_memory_start, dom0_memory_end,
   20.87 -			0,
   20.88 -                        0,
   20.89 -			0) != 0)
   20.90 +    printk("About to call construct_dom0()\n");
   20.91 +    dom0_memory_start = __va(initial_images_start);
   20.92 +    dom0_memory_size = ia64_boot_param->domain_size;
   20.93 +    dom0_initrd_start = __va(initial_images_start +
   20.94 +			     PAGE_ALIGN(ia64_boot_param->domain_size));
   20.95 +    dom0_initrd_size = ia64_boot_param->initrd_size;
   20.96 + 
   20.97 +    if ( construct_dom0(dom0, dom0_memory_start, dom0_memory_size,
   20.98 +                        dom0_initrd_start,dom0_initrd_size,
   20.99 +  			0) != 0)
  20.100          panic("Could not set up DOM0 guest OS\n");
  20.101  
  20.102      /* PIN domain0 on CPU 0.  */
  20.103 @@ -345,22 +378,28 @@ printk("About to call construct_dom0()\n
  20.104  #ifdef CLONE_DOMAIN0
  20.105      {
  20.106      int i;
  20.107 -    dom0_memory_start = __va(ia64_boot_param->initrd_start);
  20.108 -    dom0_memory_end = ia64_boot_param->initrd_size;
  20.109 +    dom0_memory_start = __va(ia64_boot_param->domain_start);
  20.110 +    dom0_memory_size = ia64_boot_param->domain_size;
  20.111 +
  20.112      for (i = 0; i < CLONE_DOMAIN0; i++) {
  20.113 -printk("CONSTRUCTING DOMAIN0 CLONE #%d\n",i+1);
  20.114 -        if ( construct_domU(clones[i], dom0_memory_start, dom0_memory_end,
  20.115 -                        0, 
  20.116 -                        0,
  20.117 -			0) != 0)
  20.118 +      printk("CONSTRUCTING DOMAIN0 CLONE #%d\n",i+1);
  20.119 +      if ( construct_domU(clones[i], dom0_memory_start, dom0_memory_size,
  20.120 +			  dom0_initrd_start,dom0_initrd_size,
  20.121 +			  0) != 0)
  20.122              panic("Could not set up DOM0 clone %d\n",i);
  20.123      }
  20.124      }
  20.125  #endif
  20.126  
  20.127      /* The stash space for the initial kernel image can now be freed up. */
  20.128 -    init_domheap_pages(ia64_boot_param->initrd_start,
  20.129 -		       ia64_boot_param->initrd_start + ia64_boot_param->initrd_size);
  20.130 +    init_domheap_pages(ia64_boot_param->domain_start,
  20.131 +                       ia64_boot_param->domain_size);
  20.132 +    /* throw away initrd area passed from elilo */
  20.133 +    if (ia64_boot_param->initrd_size) {
  20.134 +        init_domheap_pages(ia64_boot_param->initrd_start,
  20.135 +                          ia64_boot_param->initrd_size);
  20.136 +    }
  20.137 +
  20.138      if (!running_on_sim)  // slow on ski and pages are pre-initialized to zero
  20.139  	scrub_heap_pages();
  20.140  
    21.1 --- a/xen/include/asm-ia64/config.h	Mon Nov 21 13:15:08 2005 +0100
    21.2 +++ b/xen/include/asm-ia64/config.h	Mon Nov 21 13:17:29 2005 +0100
    21.3 @@ -5,7 +5,7 @@
    21.4  // control flags for turning on/off features under test
    21.5  #undef CLONE_DOMAIN0
    21.6  //#define CLONE_DOMAIN0 1
    21.7 -#define DOMU_BUILD_STAGING
    21.8 +#undef DOMU_BUILD_STAGING
    21.9  #define VHPT_GLOBAL
   21.10  #define DOMU_AUTO_RESTART
   21.11  
    22.1 --- a/xen/include/asm-ia64/linux-xen/asm/system.h	Mon Nov 21 13:15:08 2005 +0100
    22.2 +++ b/xen/include/asm-ia64/linux-xen/asm/system.h	Mon Nov 21 13:17:29 2005 +0100
    22.3 @@ -56,6 +56,10 @@ extern struct ia64_boot_param {
    22.4  	__u64 fpswa;		/* physical address of the fpswa interface */
    22.5  	__u64 initrd_start;
    22.6  	__u64 initrd_size;
    22.7 +//for loading initrd for dom0
    22.8 +       __u64 domain_start;     /* virtual address where the boot time domain begins */
    22.9 +       __u64 domain_size;      /* how big is the boot domain */
   22.10 +
   22.11  } *ia64_boot_param;
   22.12  
   22.13  /*
    23.1 --- a/xen/include/asm-ia64/linux-xen/linux/README.origin	Mon Nov 21 13:15:08 2005 +0100
    23.2 +++ b/xen/include/asm-ia64/linux-xen/linux/README.origin	Mon Nov 21 13:17:29 2005 +0100
    23.3 @@ -6,5 +6,6 @@
    23.4  # easily updated to future versions of the corresponding Linux files.
    23.5  
    23.6  cpumask.h 		-> linux/include/linux/cpumask.h
    23.7 +gfp.h	 		-> linux/include/linux/gfp.h
    23.8  hardirq.h 		-> linux/include/linux/hardirq.h
    23.9  interrupt.h 		-> linux/include/linux/interrupt.h
    24.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    24.2 +++ b/xen/include/asm-ia64/linux-xen/linux/gfp.h	Mon Nov 21 13:17:29 2005 +0100
    24.3 @@ -0,0 +1,145 @@
    24.4 +#ifndef __LINUX_GFP_H
    24.5 +#define __LINUX_GFP_H
    24.6 +
    24.7 +#ifdef XEN
    24.8 +#include <asm/bitops.h>
    24.9 +#endif
   24.10 +#include <linux/mmzone.h>
   24.11 +#include <linux/stddef.h>
   24.12 +#include <linux/linkage.h>
   24.13 +#include <linux/config.h>
   24.14 +
   24.15 +struct vm_area_struct;
   24.16 +
   24.17 +/*
   24.18 + * GFP bitmasks..
   24.19 + */
   24.20 +/* Zone modifiers in GFP_ZONEMASK (see linux/mmzone.h - low two bits) */
   24.21 +#define __GFP_DMA	0x01u
   24.22 +#define __GFP_HIGHMEM	0x02u
   24.23 +
   24.24 +/*
   24.25 + * Action modifiers - doesn't change the zoning
   24.26 + *
   24.27 + * __GFP_REPEAT: Try hard to allocate the memory, but the allocation attempt
   24.28 + * _might_ fail.  This depends upon the particular VM implementation.
   24.29 + *
   24.30 + * __GFP_NOFAIL: The VM implementation _must_ retry infinitely: the caller
   24.31 + * cannot handle allocation failures.
   24.32 + *
   24.33 + * __GFP_NORETRY: The VM implementation must not retry indefinitely.
   24.34 + */
   24.35 +#define __GFP_WAIT	0x10u	/* Can wait and reschedule? */
   24.36 +#define __GFP_HIGH	0x20u	/* Should access emergency pools? */
   24.37 +#define __GFP_IO	0x40u	/* Can start physical IO? */
   24.38 +#define __GFP_FS	0x80u	/* Can call down to low-level FS? */
   24.39 +#define __GFP_COLD	0x100u	/* Cache-cold page required */
   24.40 +#define __GFP_NOWARN	0x200u	/* Suppress page allocation failure warning */
   24.41 +#define __GFP_REPEAT	0x400u	/* Retry the allocation.  Might fail */
   24.42 +#define __GFP_NOFAIL	0x800u	/* Retry for ever.  Cannot fail */
   24.43 +#define __GFP_NORETRY	0x1000u	/* Do not retry.  Might fail */
   24.44 +#define __GFP_NO_GROW	0x2000u	/* Slab internal usage */
   24.45 +#define __GFP_COMP	0x4000u	/* Add compound page metadata */
   24.46 +#define __GFP_ZERO	0x8000u	/* Return zeroed page on success */
   24.47 +#define __GFP_NOMEMALLOC 0x10000u /* Don't use emergency reserves */
   24.48 +#define __GFP_NORECLAIM  0x20000u /* No realy zone reclaim during allocation */
   24.49 +
   24.50 +#define __GFP_BITS_SHIFT 20	/* Room for 20 __GFP_FOO bits */
   24.51 +#define __GFP_BITS_MASK ((1 << __GFP_BITS_SHIFT) - 1)
   24.52 +
   24.53 +/* if you forget to add the bitmask here kernel will crash, period */
   24.54 +#define GFP_LEVEL_MASK (__GFP_WAIT|__GFP_HIGH|__GFP_IO|__GFP_FS| \
   24.55 +			__GFP_COLD|__GFP_NOWARN|__GFP_REPEAT| \
   24.56 +			__GFP_NOFAIL|__GFP_NORETRY|__GFP_NO_GROW|__GFP_COMP| \
   24.57 +			__GFP_NOMEMALLOC|__GFP_NORECLAIM)
   24.58 +
   24.59 +#define GFP_ATOMIC	(__GFP_HIGH)
   24.60 +#define GFP_NOIO	(__GFP_WAIT)
   24.61 +#define GFP_NOFS	(__GFP_WAIT | __GFP_IO)
   24.62 +#define GFP_KERNEL	(__GFP_WAIT | __GFP_IO | __GFP_FS)
   24.63 +#define GFP_USER	(__GFP_WAIT | __GFP_IO | __GFP_FS)
   24.64 +#define GFP_HIGHUSER	(__GFP_WAIT | __GFP_IO | __GFP_FS | __GFP_HIGHMEM)
   24.65 +
   24.66 +/* Flag - indicates that the buffer will be suitable for DMA.  Ignored on some
   24.67 +   platforms, used as appropriate on others */
   24.68 +
   24.69 +#define GFP_DMA		__GFP_DMA
   24.70 +
   24.71 +
   24.72 +/*
   24.73 + * There is only one page-allocator function, and two main namespaces to
   24.74 + * it. The alloc_page*() variants return 'struct page *' and as such
   24.75 + * can allocate highmem pages, the *get*page*() variants return
   24.76 + * virtual kernel addresses to the allocated page(s).
   24.77 + */
   24.78 +
   24.79 +/*
   24.80 + * We get the zone list from the current node and the gfp_mask.
   24.81 + * This zone list contains a maximum of MAXNODES*MAX_NR_ZONES zones.
   24.82 + *
   24.83 + * For the normal case of non-DISCONTIGMEM systems the NODE_DATA() gets
   24.84 + * optimized to &contig_page_data at compile-time.
   24.85 + */
   24.86 +
   24.87 +#ifndef HAVE_ARCH_FREE_PAGE
   24.88 +static inline void arch_free_page(struct page *page, int order) { }
   24.89 +#endif
   24.90 +
   24.91 +extern struct page *
   24.92 +FASTCALL(__alloc_pages(unsigned int, unsigned int, struct zonelist *));
   24.93 +
   24.94 +static inline struct page *alloc_pages_node(int nid, unsigned int __nocast gfp_mask,
   24.95 +						unsigned int order)
   24.96 +{
   24.97 +	if (unlikely(order >= MAX_ORDER))
   24.98 +		return NULL;
   24.99 +
  24.100 +	return __alloc_pages(gfp_mask, order,
  24.101 +		NODE_DATA(nid)->node_zonelists + (gfp_mask & GFP_ZONEMASK));
  24.102 +}
  24.103 +
  24.104 +#ifdef CONFIG_NUMA
  24.105 +extern struct page *alloc_pages_current(unsigned int __nocast gfp_mask, unsigned order);
  24.106 +
  24.107 +static inline struct page *
  24.108 +alloc_pages(unsigned int __nocast gfp_mask, unsigned int order)
  24.109 +{
  24.110 +	if (unlikely(order >= MAX_ORDER))
  24.111 +		return NULL;
  24.112 +
  24.113 +	return alloc_pages_current(gfp_mask, order);
  24.114 +}
  24.115 +extern struct page *alloc_page_vma(unsigned __nocast gfp_mask,
  24.116 +			struct vm_area_struct *vma, unsigned long addr);
  24.117 +#else
  24.118 +#define alloc_pages(gfp_mask, order) \
  24.119 +		alloc_pages_node(numa_node_id(), gfp_mask, order)
  24.120 +#define alloc_page_vma(gfp_mask, vma, addr) alloc_pages(gfp_mask, 0)
  24.121 +#endif
  24.122 +#define alloc_page(gfp_mask) alloc_pages(gfp_mask, 0)
  24.123 +
  24.124 +extern unsigned long FASTCALL(__get_free_pages(unsigned int __nocast gfp_mask, unsigned int order));
  24.125 +extern unsigned long FASTCALL(get_zeroed_page(unsigned int __nocast gfp_mask));
  24.126 +
  24.127 +#define __get_free_page(gfp_mask) \
  24.128 +		__get_free_pages((gfp_mask),0)
  24.129 +
  24.130 +#define __get_dma_pages(gfp_mask, order) \
  24.131 +		__get_free_pages((gfp_mask) | GFP_DMA,(order))
  24.132 +
  24.133 +extern void FASTCALL(__free_pages(struct page *page, unsigned int order));
  24.134 +extern void FASTCALL(free_pages(unsigned long addr, unsigned int order));
  24.135 +extern void FASTCALL(free_hot_page(struct page *page));
  24.136 +extern void FASTCALL(free_cold_page(struct page *page));
  24.137 +
  24.138 +#define __free_page(page) __free_pages((page), 0)
  24.139 +#define free_page(addr) free_pages((addr),0)
  24.140 +
  24.141 +void page_alloc_init(void);
  24.142 +#ifdef CONFIG_NUMA
  24.143 +void drain_remote_pages(void);
  24.144 +#else
  24.145 +static inline void drain_remote_pages(void) { };
  24.146 +#endif
  24.147 +
  24.148 +#endif /* __LINUX_GFP_H */
    25.1 --- a/xen/include/asm-ia64/linux-xen/linux/interrupt.h	Mon Nov 21 13:15:08 2005 +0100
    25.2 +++ b/xen/include/asm-ia64/linux-xen/linux/interrupt.h	Mon Nov 21 13:17:29 2005 +0100
    25.3 @@ -131,7 +131,9 @@ extern void open_softirq(int nr, void (*
    25.4  extern void softirq_init(void);
    25.5  #define __raise_softirq_irqoff(nr) do { local_softirq_pending() |= 1UL << (nr); } while (0)
    25.6  extern void FASTCALL(raise_softirq_irqoff(unsigned int nr));
    25.7 +#ifndef XEN
    25.8  extern void FASTCALL(raise_softirq(unsigned int nr));
    25.9 +#endif
   25.10  
   25.11  
   25.12  /* Tasklets --- multithreaded analogue of BHs.
    26.1 --- a/xen/include/asm-ia64/linux/README.origin	Mon Nov 21 13:15:08 2005 +0100
    26.2 +++ b/xen/include/asm-ia64/linux/README.origin	Mon Nov 21 13:17:29 2005 +0100
    26.3 @@ -10,7 +10,6 @@ bitops.h		->linux/include/linux/bitops.h
    26.4  dma-mapping.h		->linux/include/linux/dma-mapping.h
    26.5  efi.h			->linux/include/linux/efi.h
    26.6  err.h			->linux/include/linux/err.h
    26.7 -gfp.h			->linux/include/linux/gfp.h
    26.8  initrd.h		->linux/include/linux/initrd.h
    26.9  jiffies.h		->linux/include/linux/jiffies.h
   26.10  kmalloc_sizes.h		->linux/include/linux/kmalloc_sizes.h
    27.1 --- a/xen/include/asm-ia64/linux/gfp.h	Mon Nov 21 13:15:08 2005 +0100
    27.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    27.3 @@ -1,142 +0,0 @@
    27.4 -#ifndef __LINUX_GFP_H
    27.5 -#define __LINUX_GFP_H
    27.6 -
    27.7 -#include <linux/mmzone.h>
    27.8 -#include <linux/stddef.h>
    27.9 -#include <linux/linkage.h>
   27.10 -#include <linux/config.h>
   27.11 -
   27.12 -struct vm_area_struct;
   27.13 -
   27.14 -/*
   27.15 - * GFP bitmasks..
   27.16 - */
   27.17 -/* Zone modifiers in GFP_ZONEMASK (see linux/mmzone.h - low two bits) */
   27.18 -#define __GFP_DMA	0x01u
   27.19 -#define __GFP_HIGHMEM	0x02u
   27.20 -
   27.21 -/*
   27.22 - * Action modifiers - doesn't change the zoning
   27.23 - *
   27.24 - * __GFP_REPEAT: Try hard to allocate the memory, but the allocation attempt
   27.25 - * _might_ fail.  This depends upon the particular VM implementation.
   27.26 - *
   27.27 - * __GFP_NOFAIL: The VM implementation _must_ retry infinitely: the caller
   27.28 - * cannot handle allocation failures.
   27.29 - *
   27.30 - * __GFP_NORETRY: The VM implementation must not retry indefinitely.
   27.31 - */
   27.32 -#define __GFP_WAIT	0x10u	/* Can wait and reschedule? */
   27.33 -#define __GFP_HIGH	0x20u	/* Should access emergency pools? */
   27.34 -#define __GFP_IO	0x40u	/* Can start physical IO? */
   27.35 -#define __GFP_FS	0x80u	/* Can call down to low-level FS? */
   27.36 -#define __GFP_COLD	0x100u	/* Cache-cold page required */
   27.37 -#define __GFP_NOWARN	0x200u	/* Suppress page allocation failure warning */
   27.38 -#define __GFP_REPEAT	0x400u	/* Retry the allocation.  Might fail */
   27.39 -#define __GFP_NOFAIL	0x800u	/* Retry for ever.  Cannot fail */
   27.40 -#define __GFP_NORETRY	0x1000u	/* Do not retry.  Might fail */
   27.41 -#define __GFP_NO_GROW	0x2000u	/* Slab internal usage */
   27.42 -#define __GFP_COMP	0x4000u	/* Add compound page metadata */
   27.43 -#define __GFP_ZERO	0x8000u	/* Return zeroed page on success */
   27.44 -#define __GFP_NOMEMALLOC 0x10000u /* Don't use emergency reserves */
   27.45 -#define __GFP_NORECLAIM  0x20000u /* No realy zone reclaim during allocation */
   27.46 -
   27.47 -#define __GFP_BITS_SHIFT 20	/* Room for 20 __GFP_FOO bits */
   27.48 -#define __GFP_BITS_MASK ((1 << __GFP_BITS_SHIFT) - 1)
   27.49 -
   27.50 -/* if you forget to add the bitmask here kernel will crash, period */
   27.51 -#define GFP_LEVEL_MASK (__GFP_WAIT|__GFP_HIGH|__GFP_IO|__GFP_FS| \
   27.52 -			__GFP_COLD|__GFP_NOWARN|__GFP_REPEAT| \
   27.53 -			__GFP_NOFAIL|__GFP_NORETRY|__GFP_NO_GROW|__GFP_COMP| \
   27.54 -			__GFP_NOMEMALLOC|__GFP_NORECLAIM)
   27.55 -
   27.56 -#define GFP_ATOMIC	(__GFP_HIGH)
   27.57 -#define GFP_NOIO	(__GFP_WAIT)
   27.58 -#define GFP_NOFS	(__GFP_WAIT | __GFP_IO)
   27.59 -#define GFP_KERNEL	(__GFP_WAIT | __GFP_IO | __GFP_FS)
   27.60 -#define GFP_USER	(__GFP_WAIT | __GFP_IO | __GFP_FS)
   27.61 -#define GFP_HIGHUSER	(__GFP_WAIT | __GFP_IO | __GFP_FS | __GFP_HIGHMEM)
   27.62 -
   27.63 -/* Flag - indicates that the buffer will be suitable for DMA.  Ignored on some
   27.64 -   platforms, used as appropriate on others */
   27.65 -
   27.66 -#define GFP_DMA		__GFP_DMA
   27.67 -
   27.68 -
   27.69 -/*
   27.70 - * There is only one page-allocator function, and two main namespaces to
   27.71 - * it. The alloc_page*() variants return 'struct page *' and as such
   27.72 - * can allocate highmem pages, the *get*page*() variants return
   27.73 - * virtual kernel addresses to the allocated page(s).
   27.74 - */
   27.75 -
   27.76 -/*
   27.77 - * We get the zone list from the current node and the gfp_mask.
   27.78 - * This zone list contains a maximum of MAXNODES*MAX_NR_ZONES zones.
   27.79 - *
   27.80 - * For the normal case of non-DISCONTIGMEM systems the NODE_DATA() gets
   27.81 - * optimized to &contig_page_data at compile-time.
   27.82 - */
   27.83 -
   27.84 -#ifndef HAVE_ARCH_FREE_PAGE
   27.85 -static inline void arch_free_page(struct page *page, int order) { }
   27.86 -#endif
   27.87 -
   27.88 -extern struct page *
   27.89 -FASTCALL(__alloc_pages(unsigned int, unsigned int, struct zonelist *));
   27.90 -
   27.91 -static inline struct page *alloc_pages_node(int nid, unsigned int __nocast gfp_mask,
   27.92 -						unsigned int order)
   27.93 -{
   27.94 -	if (unlikely(order >= MAX_ORDER))
   27.95 -		return NULL;
   27.96 -
   27.97 -	return __alloc_pages(gfp_mask, order,
   27.98 -		NODE_DATA(nid)->node_zonelists + (gfp_mask & GFP_ZONEMASK));
   27.99 -}
  27.100 -
  27.101 -#ifdef CONFIG_NUMA
  27.102 -extern struct page *alloc_pages_current(unsigned int __nocast gfp_mask, unsigned order);
  27.103 -
  27.104 -static inline struct page *
  27.105 -alloc_pages(unsigned int __nocast gfp_mask, unsigned int order)
  27.106 -{
  27.107 -	if (unlikely(order >= MAX_ORDER))
  27.108 -		return NULL;
  27.109 -
  27.110 -	return alloc_pages_current(gfp_mask, order);
  27.111 -}
  27.112 -extern struct page *alloc_page_vma(unsigned __nocast gfp_mask,
  27.113 -			struct vm_area_struct *vma, unsigned long addr);
  27.114 -#else
  27.115 -#define alloc_pages(gfp_mask, order) \
  27.116 -		alloc_pages_node(numa_node_id(), gfp_mask, order)
  27.117 -#define alloc_page_vma(gfp_mask, vma, addr) alloc_pages(gfp_mask, 0)
  27.118 -#endif
  27.119 -#define alloc_page(gfp_mask) alloc_pages(gfp_mask, 0)
  27.120 -
  27.121 -extern unsigned long FASTCALL(__get_free_pages(unsigned int __nocast gfp_mask, unsigned int order));
  27.122 -extern unsigned long FASTCALL(get_zeroed_page(unsigned int __nocast gfp_mask));
  27.123 -
  27.124 -#define __get_free_page(gfp_mask) \
  27.125 -		__get_free_pages((gfp_mask),0)
  27.126 -
  27.127 -#define __get_dma_pages(gfp_mask, order) \
  27.128 -		__get_free_pages((gfp_mask) | GFP_DMA,(order))
  27.129 -
  27.130 -extern void FASTCALL(__free_pages(struct page *page, unsigned int order));
  27.131 -extern void FASTCALL(free_pages(unsigned long addr, unsigned int order));
  27.132 -extern void FASTCALL(free_hot_page(struct page *page));
  27.133 -extern void FASTCALL(free_cold_page(struct page *page));
  27.134 -
  27.135 -#define __free_page(page) __free_pages((page), 0)
  27.136 -#define free_page(addr) free_pages((addr),0)
  27.137 -
  27.138 -void page_alloc_init(void);
  27.139 -#ifdef CONFIG_NUMA
  27.140 -void drain_remote_pages(void);
  27.141 -#else
  27.142 -static inline void drain_remote_pages(void) { };
  27.143 -#endif
  27.144 -
  27.145 -#endif /* __LINUX_GFP_H */
    28.1 --- a/xen/include/asm-ia64/mm.h	Mon Nov 21 13:15:08 2005 +0100
    28.2 +++ b/xen/include/asm-ia64/mm.h	Mon Nov 21 13:17:29 2005 +0100
    28.3 @@ -3,7 +3,7 @@
    28.4  
    28.5  #include <xen/config.h>
    28.6  #ifdef LINUX_2_6
    28.7 -#include <xen/gfp.h>
    28.8 +#include <linux/gfp.h>
    28.9  #endif
   28.10  #include <xen/list.h>
   28.11  #include <xen/spinlock.h>
    29.1 --- a/xen/include/asm-ia64/vmmu.h	Mon Nov 21 13:15:08 2005 +0100
    29.2 +++ b/xen/include/asm-ia64/vmmu.h	Mon Nov 21 13:17:29 2005 +0100
    29.3 @@ -222,7 +222,10 @@ typedef struct thash_cb {
    29.4  #define ITR(hcb,id)             ((hcb)->ts->itr[id])
    29.5  #define DTR(hcb,id)             ((hcb)->ts->dtr[id])
    29.6  #define INVALIDATE_HASH(hcb,hash)           {   \
    29.7 -           INVALID_ENTRY(hcb, hash) = 1;        \
    29.8 +           if ((hcb)->ht==THASH_TLB)            \
    29.9 +             INVALID_TLB(hash) = 1;             \
   29.10 +           else                                 \
   29.11 +             INVALID_VHPT(hash) = 1;            \
   29.12             hash->next = NULL; }
   29.13  
   29.14  #define PURGABLE_ENTRY(hcb,en)  1
    30.1 --- a/xen/include/asm-ia64/vmx_vcpu.h	Mon Nov 21 13:15:08 2005 +0100
    30.2 +++ b/xen/include/asm-ia64/vmx_vcpu.h	Mon Nov 21 13:17:29 2005 +0100
    30.3 @@ -71,7 +71,9 @@ extern thash_cb_t *vmx_vcpu_get_vtlb(VCP
    30.4  extern thash_cb_t *vmx_vcpu_get_vhpt(VCPU *vcpu);
    30.5  extern ia64_rr vmx_vcpu_rr(VCPU *vcpu,UINT64 vadr);
    30.6  extern IA64FAULT vmx_vcpu_set_rr(VCPU *vcpu, UINT64 reg, UINT64 val);
    30.7 +#if 0
    30.8  extern IA64FAULT vmx_vcpu_get_rr(VCPU *vcpu, UINT64 reg, UINT64 *pval);
    30.9 +#endif
   30.10  extern IA64FAULT vmx_vcpu_get_pkr(VCPU *vcpu, UINT64 reg, UINT64 *pval);
   30.11  IA64FAULT vmx_vcpu_set_pkr(VCPU *vcpu, UINT64 reg, UINT64 val);
   30.12  extern IA64FAULT vmx_vcpu_itc_i(VCPU *vcpu, UINT64 pte, UINT64 itir, UINT64 ifa);