-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/g…
…it/aegl/linux-2.6 * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6: (41 commits) [IA64] Fix annoying IA64_TR_ALLOC_MAX message. [IA64] kill sys32_pipe [IA64] remove sys32_pause [IA64] Add Variable Page Size and IA64 Support in Intel IOMMU ia64/pv_ops: paravirtualized instruction checker. ia64/xen: a recipe for using xen/ia64 with pv_ops. ia64/pv_ops: update Kconfig for paravirtualized guest and xen. ia64/xen: preliminary support for save/restore. ia64/xen: define xen machine vector for domU. ia64/pv_ops/xen: implement xen pv_time_ops. ia64/pv_ops/xen: implement xen pv_irq_ops. ia64/pv_ops/xen: define the nubmer of irqs which xen needs. ia64/pv_ops/xen: implement xen pv_iosapic_ops. ia64/pv_ops/xen: paravirtualize entry.S for ia64/xen. ia64/pv_ops/xen: paravirtualize ivt.S for xen. ia64/pv_ops/xen: paravirtualize DO_SAVE_MIN for xen. ia64/pv_ops/xen: define xen paravirtualized instructions for hand written assembly code ia64/pv_ops/xen: define xen pv_cpu_ops. ia64/pv_ops/xen: define xen pv_init_ops for various xen initialization. ia64/pv_ops/xen: elf note based xen startup. ...
- Loading branch information
Showing
80 changed files
with
5,546 additions
and
185 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,183 @@ | ||
Recipe for getting/building/running Xen/ia64 with pv_ops | ||
-------------------------------------------------------- | ||
|
||
This recipe describes how to get xen-ia64 source and build it, | ||
and run domU with pv_ops. | ||
|
||
============ | ||
Requirements | ||
============ | ||
|
||
- python | ||
- mercurial | ||
it (aka "hg") is an open-source source code | ||
management software. See the below. | ||
http://www.selenic.com/mercurial/wiki/ | ||
- git | ||
- bridge-utils | ||
|
||
================================= | ||
Getting and Building Xen and Dom0 | ||
================================= | ||
|
||
My environment is; | ||
Machine : Tiger4 | ||
Domain0 OS : RHEL5 | ||
DomainU OS : RHEL5 | ||
|
||
1. Download source | ||
# hg clone http://xenbits.xensource.com/ext/ia64/xen-unstable.hg | ||
# cd xen-unstable.hg | ||
# hg clone http://xenbits.xensource.com/ext/ia64/linux-2.6.18-xen.hg | ||
|
||
2. # make world | ||
|
||
3. # make install-tools | ||
|
||
4. copy kernels and xen | ||
# cp xen/xen.gz /boot/efi/efi/redhat/ | ||
# cp build-linux-2.6.18-xen_ia64/vmlinux.gz \ | ||
/boot/efi/efi/redhat/vmlinuz-2.6.18.8-xen | ||
|
||
5. make initrd for Dom0/DomU | ||
# make -C linux-2.6.18-xen.hg ARCH=ia64 modules_install \ | ||
O=$(/bin/pwd)/build-linux-2.6.18-xen_ia64 | ||
# mkinitrd -f /boot/efi/efi/redhat/initrd-2.6.18.8-xen.img \ | ||
2.6.18.8-xen --builtin mptspi --builtin mptbase \ | ||
--builtin mptscsih --builtin uhci-hcd --builtin ohci-hcd \ | ||
--builtin ehci-hcd | ||
|
||
================================ | ||
Making a disk image for guest OS | ||
================================ | ||
|
||
1. make file | ||
# dd if=/dev/zero of=/root/rhel5.img bs=1M seek=4096 count=0 | ||
# mke2fs -F -j /root/rhel5.img | ||
# mount -o loop /root/rhel5.img /mnt | ||
# cp -ax /{dev,var,etc,usr,bin,sbin,lib} /mnt | ||
# mkdir /mnt/{root,proc,sys,home,tmp} | ||
|
||
Note: You may miss some device files. If so, please create them | ||
with mknod. Or you can use tar instead of cp. | ||
|
||
2. modify DomU's fstab | ||
# vi /mnt/etc/fstab | ||
/dev/xvda1 / ext3 defaults 1 1 | ||
none /dev/pts devpts gid=5,mode=620 0 0 | ||
none /dev/shm tmpfs defaults 0 0 | ||
none /proc proc defaults 0 0 | ||
none /sys sysfs defaults 0 0 | ||
|
||
3. modify inittab | ||
set runlevel to 3 to avoid X trying to start | ||
# vi /mnt/etc/inittab | ||
id:3:initdefault: | ||
Start a getty on the hvc0 console | ||
X0:2345:respawn:/sbin/mingetty hvc0 | ||
tty1-6 mingetty can be commented out | ||
|
||
4. add hvc0 into /etc/securetty | ||
# vi /mnt/etc/securetty (add hvc0) | ||
|
||
5. umount | ||
# umount /mnt | ||
|
||
FYI, virt-manager can also make a disk image for guest OS. | ||
It's GUI tools and easy to make it. | ||
|
||
================== | ||
Boot Xen & Domain0 | ||
================== | ||
|
||
1. replace elilo | ||
elilo of RHEL5 can boot Xen and Dom0. | ||
If you use old elilo (e.g RHEL4), please download from the below | ||
http://elilo.sourceforge.net/cgi-bin/blosxom | ||
and copy into /boot/efi/efi/redhat/ | ||
# cp elilo-3.6-ia64.efi /boot/efi/efi/redhat/elilo.efi | ||
|
||
2. modify elilo.conf (like the below) | ||
# vi /boot/efi/efi/redhat/elilo.conf | ||
prompt | ||
timeout=20 | ||
default=xen | ||
relocatable | ||
|
||
image=vmlinuz-2.6.18.8-xen | ||
label=xen | ||
vmm=xen.gz | ||
initrd=initrd-2.6.18.8-xen.img | ||
read-only | ||
append=" -- rhgb root=/dev/sda2" | ||
|
||
The append options before "--" are for xen hypervisor, | ||
the options after "--" are for dom0. | ||
|
||
FYI, your machine may need console options like | ||
"com1=19200,8n1 console=vga,com1". For example, | ||
append="com1=19200,8n1 console=vga,com1 -- rhgb console=tty0 \ | ||
console=ttyS0 root=/dev/sda2" | ||
|
||
===================================== | ||
Getting and Building domU with pv_ops | ||
===================================== | ||
|
||
1. get pv_ops tree | ||
# git clone http://people.valinux.co.jp/~yamahata/xen-ia64/linux-2.6-xen-ia64.git/ | ||
|
||
2. git branch (if necessary) | ||
# cd linux-2.6-xen-ia64/ | ||
# git checkout -b your_branch origin/xen-ia64-domu-minimal-2008may19 | ||
(Note: The current branch is xen-ia64-domu-minimal-2008may19. | ||
But you would find the new branch. You can see with | ||
"git branch -r" to get the branch lists. | ||
http://people.valinux.co.jp/~yamahata/xen-ia64/for_eagl/linux-2.6-ia64-pv-ops.git/ | ||
is also available. The tree is based on | ||
git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6 test) | ||
|
||
|
||
3. copy .config for pv_ops of domU | ||
# cp arch/ia64/configs/xen_domu_wip_defconfig .config | ||
|
||
4. make kernel with pv_ops | ||
# make oldconfig | ||
# make | ||
|
||
5. install the kernel and initrd | ||
# cp vmlinux.gz /boot/efi/efi/redhat/vmlinuz-2.6-pv_ops-xenU | ||
# make modules_install | ||
# mkinitrd -f /boot/efi/efi/redhat/initrd-2.6-pv_ops-xenU.img \ | ||
2.6.26-rc3xen-ia64-08941-g1b12161 --builtin mptspi \ | ||
--builtin mptbase --builtin mptscsih --builtin uhci-hcd \ | ||
--builtin ohci-hcd --builtin ehci-hcd | ||
|
||
======================== | ||
Boot DomainU with pv_ops | ||
======================== | ||
|
||
1. make config of DomU | ||
# vi /etc/xen/rhel5 | ||
kernel = "/boot/efi/efi/redhat/vmlinuz-2.6-pv_ops-xenU" | ||
ramdisk = "/boot/efi/efi/redhat/initrd-2.6-pv_ops-xenU.img" | ||
vcpus = 1 | ||
memory = 512 | ||
name = "rhel5" | ||
disk = [ 'file:/root/rhel5.img,xvda1,w' ] | ||
root = "/dev/xvda1 ro" | ||
extra= "rhgb console=hvc0" | ||
|
||
2. After boot xen and dom0, start xend | ||
# /etc/init.d/xend start | ||
( In the debugging case, # XEND_DEBUG=1 xend trace_start ) | ||
|
||
3. start domU | ||
# xm create -c rhel5 | ||
|
||
========= | ||
Reference | ||
========= | ||
- Wiki of Xen/IA64 upstream merge | ||
http://wiki.xensource.com/xenwiki/XenIA64/UpstreamMerge | ||
|
||
Written by Akio Takebe <takebe_akio@jp.fujitsu.com> on 28 May 2008 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
#include <linux/types.h> | ||
#include <linux/kernel.h> | ||
#include <linux/module.h> | ||
#include <linux/intel-iommu.h> | ||
|
||
void * | ||
vtd_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle, | ||
gfp_t flags) | ||
{ | ||
return intel_alloc_coherent(dev, size, dma_handle, flags); | ||
} | ||
EXPORT_SYMBOL_GPL(vtd_alloc_coherent); | ||
|
||
void | ||
vtd_free_coherent(struct device *dev, size_t size, void *vaddr, | ||
dma_addr_t dma_handle) | ||
{ | ||
intel_free_coherent(dev, size, vaddr, dma_handle); | ||
} | ||
EXPORT_SYMBOL_GPL(vtd_free_coherent); | ||
|
||
dma_addr_t | ||
vtd_map_single_attrs(struct device *dev, void *addr, size_t size, | ||
int dir, struct dma_attrs *attrs) | ||
{ | ||
return intel_map_single(dev, (phys_addr_t)addr, size, dir); | ||
} | ||
EXPORT_SYMBOL_GPL(vtd_map_single_attrs); | ||
|
||
void | ||
vtd_unmap_single_attrs(struct device *dev, dma_addr_t iova, size_t size, | ||
int dir, struct dma_attrs *attrs) | ||
{ | ||
intel_unmap_single(dev, iova, size, dir); | ||
} | ||
EXPORT_SYMBOL_GPL(vtd_unmap_single_attrs); | ||
|
||
int | ||
vtd_map_sg_attrs(struct device *dev, struct scatterlist *sglist, int nents, | ||
int dir, struct dma_attrs *attrs) | ||
{ | ||
return intel_map_sg(dev, sglist, nents, dir); | ||
} | ||
EXPORT_SYMBOL_GPL(vtd_map_sg_attrs); | ||
|
||
void | ||
vtd_unmap_sg_attrs(struct device *dev, struct scatterlist *sglist, | ||
int nents, int dir, struct dma_attrs *attrs) | ||
{ | ||
intel_unmap_sg(dev, sglist, nents, dir); | ||
} | ||
EXPORT_SYMBOL_GPL(vtd_unmap_sg_attrs); | ||
|
||
int | ||
vtd_dma_mapping_error(struct device *dev, dma_addr_t dma_addr) | ||
{ | ||
return 0; | ||
} | ||
EXPORT_SYMBOL_GPL(vtd_dma_mapping_error); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
#define MACHVEC_PLATFORM_NAME dig_vtd | ||
#define MACHVEC_PLATFORM_HEADER <asm/machvec_dig_vtd.h> | ||
#include <asm/machvec_init.h> |
Oops, something went wrong.