WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-users

[Xen-users] PCI passthrough partial success

To: xen-users@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-users] PCI passthrough partial success
From: Andy Burns <lists.xensource.com@xxxxxxxxxxxxxx>
Date: Sun, 29 Jun 2008 09:49:46 +0100
Delivery-date: Sun, 29 Jun 2008 01:50:28 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-users-request@lists.xensource.com?subject=help>
List-id: Xen user discussion <xen-users.lists.xensource.com>
List-post: <mailto:xen-users@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-users>, <mailto:xen-users-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-users>, <mailto:xen-users-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-users-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.14) Gecko/20080421 Lightning/0.8 Thunderbird/2.0.0.14 Mnenhy/0.7.5.0
I'm trying to use PCI passthrough of a DVB-T tuner from a fedora8 dom0, to a centOS5.2 domU for a mythtv-backend.

On the dom0 I have the following packages installed

kernel-xen.x86_64                  2.6.21.7-3.fc8
libvirt.x86_64                     0.4.3-1.fc8
libvirt-python.x86_64              0.4.3-1.fc8
python-virtinst.noarch             0.300.2-4.fc8
virt-manager.x86_64                0.5.3-2.fc8
virt-viewer.x86_64                 0.0.2-2.fc8
xen.x86_64                         3.1.2-2.fc8
xen-libs.x86_64                    3.1.2-2.fc8

On the domU I have the following kernel installed

kernel-xen.x86_64                  2.6.18.92.1.6.el5.centos.plus

Additionally I had to manually compile the saa7134_dvb.ko module for the digital section of the card as the centosplus kernel only had the saa7134.ko module for the analogue section of the card.

I tried adding a pciback.hide entry to grub.conf for the dom0, but this wasn't recognised, presumably because pciback is compiled as a module on fedora8 dom0 kernel?

I realise I can add entries to modprobe.conf to ensure no dom0 drivers bind to my device, but for now I'm using the following script to get dom0 to relinquish the card and make it available for the domU.

rmmod saa7134
modprobe pciback
SLOT=0000:08:01.0
echo -n $SLOT > /sys/bus/pci/drivers/pciback/new_slot
echo -n $SLOT > /sys/bus/pci/drivers/pciback/bind

I then create my domU with this config file

memory = 1024
name = "mythbe"
vif = [ 'mac=00:16:3E:76:E8:92, bridge=eth0' ]
disk = [ 'phy:/dev/vgr1/lvmythroot,xvda,w',
         'phy:/dev/vgr5/lvmythdata,xvdb,w' ]
pci = ['08:01.0']
bootloader = "/usr/bin/pygrub"
vcpus = 1
on_reboot = 'restart'
on_crash = 'restart'

I see a few PCI related messages on the console and/or dmesg

PCI: Fatal: No PCI config space access function found
PCI: setting up Xen PCI frontend stub
PCI: System does not support PCI
PCI: System does not support PCI
pcifront pci-0: Installing PCI frontend
pcifront pci-0: Creating PCI Frontend Bus 0000:00
pci_hotplug: PCI Hot Plug PCI Core version: 0.5
ohci_hcd: 2005 April 22 USB 1.1 'Open' Host Controller (OHCI) Driver (PCI)
PCI: Enabling device 0000:00:00.0 (0000 -> 0002)

The DVB-T card is visble in the domU

# lspci -v

00:00.0 Multimedia controller: Philips Semiconductors SAA7130 Video Broadcast Decoder (rev 01)
        Subsystem: Compro Technology, Inc. Videomate DVB-T200
        Flags: bus master, medium devsel, latency 64, IRQ 17
        Memory at febffc00 (32-bit, non-prefetchable) [size=1K]
        Capabilities: [40] Power Management version 1

I assume it's normal that the bus/device/function numbers have been changed between dom0 and domU?

Also the driver modules are being loaded

# lsmod | grep saa

saa7134_dvb            48004  0
dvb_pll                48965  1 saa7134_dvb
mt352                  40133  1 saa7134_dvb
video_buf_dvb          40133  1 saa7134_dvb
nxt200x                46661  1 saa7134_dvb
tda1004x               48581  1 saa7134_dvb
saa7134               159017  1 saa7134_dvb
video_buf              59717  3 saa7134_dvb,video_buf_dvb,saa7134
compat_ioctl32         41793  1 saa7134
ir_kbd_i2c             42961  1 saa7134
i2c_core 56129 7 saa7134_dvb,dvb_pll,mt352,nxt200x,tda1004x,saa7134,ir_kbd_i2c
ir_common              63173  2 saa7134,ir_kbd_i2c
videodev               58049  1 saa7134
v4l1_compat            44613  2 saa7134,videodev
v4l2_common            57153  3 saa7134,compat_ioctl32,videodev

However I see an error in dmesg too

# dmesg|grep -i saa

saa7130/34: v4l2 driver version 0.2.14 loaded
saa7130[0]: found at 0000:00:00.0, rev: 1, irq: 17, latency: 64, mmio: 0xfebffc00 saa7130[0]: subsystem: 185b:c901, board: Compro Videomate DVB-T200 [card=71,autodetected]
saa7130[0]: can't ioremap() MMIO memory
saa7134: probe of 0000:00:00.0 failed with error -5

Am I right in thinking pciback.permissive is now removed? Certainly modinfo is unaware of it.

Any suggestions for how to stop the ioremap() call from failing and preventing the driver from loading properly?


Thanks.

_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-users

<Prev in Thread] Current Thread [Next in Thread>