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-devel

Re: [Xen-devel] MMIO ioremap() error with PCI passthrough

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: Re: [Xen-devel] MMIO ioremap() error with PCI passthrough
From: Andy Burns <lists.xensource.com@xxxxxxxxxxxxxx>
Date: Tue, 01 Jul 2008 17:42:18 +0100
Delivery-date: Tue, 01 Jul 2008 09:42:45 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <486A50C1.7060000@xxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <C48FF03E.235B9%keir.fraser@xxxxxxxxxxxxx> <486A50C1.7060000@xxxxxxxxxxxxxx>
Sender: xen-devel-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
On 01/07/2008 16:44, Andy Burns wrote:

I'll try changing the size argument to 0x400 and rebuilding the saa7134 module.

OK, changing the ioremap() in the saa7134 driver to only request 1K allowed the driver to load :-)

saa7130/34: v4l2 driver version 0.2.14 loaded
PCI: Enabling device 0000:00:00.0 (0000 -> 0002)
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,auto
detected]
saa7130[0]: board init: gpio is 843f00
input: saa7134 IR (Compro Videomate DV as /class/input/input1
saa7130[0]: i2c eeprom 00: 5b 18 01 c9 54 20 1c 00 43 43 a9 1c 55 d2 b2 92
saa7130[0]: i2c eeprom 10: 00 ff 86 0f ff 20 ff ff ff ff ff ff ff ff ff ff
saa7130[0]: i2c eeprom 20: 01 40 01 03 03 ff 03 01 08 ff 00 88 ff ff ff ff
saa7130[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7130[0]: i2c eeprom 40: ff d0 00 c2 86 10 ff ff ff ff ff ff ff ff ff ff
saa7130[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff cb
saa7130[0]: i2c eeprom 60: 30 26 ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7130[0]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7130[0]: registered device video0 [v4l2]
saa7130[0]: registered device vbi0

From my extra printk() debugging the driver now requests 1K, and within __direct_remap_pfn_range() the size has been rounded up to 4K, presumably this *is* correct as the mfn seems to has been rounded down?

REMAP: phys=0xfebffc00, len=1024
REMAPPFN: addr=0xffffc2000002e000, mfn=0xfebff, size=4096

I checked in 2.6.26 git to see if the saa7134 driver had been altered so the size had been reduced in more recent kernels, but it has not. I'll check with the V4L developers whether it should be hardcoded to 1K instead of 4K, or whether it needs to be sized dynamically for different cards.

However about 40 seconds after loading the module, I get the following error :-(

irq 17: nobody cared (try booting with the "irqpoll" option)

Call Trace:
 <IRQ>  [<ffffffff802af539>] __report_bad_irq+0x30/0x7d
 [<ffffffff802af770>] note_interrupt+0x1ea/0x22b
 [<ffffffff802aec76>] __do_IRQ+0xbd/0x103
 [<ffffffff8028d06f>] _local_bh_enable+0x61/0xc5
 [<ffffffff8026db3a>] do_IRQ+0xe7/0xf5
 [<ffffffff8039f151>] evtchn_do_upcall+0x86/0xe0
 [<ffffffff802608ce>] do_hypervisor_callback+0x1e/0x2c
 <EOI>  [<ffffffff802063aa>] hypercall_page+0x3aa/0x1000
 [<ffffffff802063aa>] hypercall_page+0x3aa/0x1000
 [<ffffffff8026f12b>] raw_safe_halt+0x84/0xa8
 [<ffffffff8026c675>] xen_idle+0x38/0x4a
 [<ffffffff8024a9bb>] cpu_idle+0x97/0xba
 [<ffffffff805f6b09>] start_kernel+0x21f/0x224
 [<ffffffff805f61e5>] _sinittext+0x1e5/0x1eb

handlers:
[<ffffffff88142ff6>] (saa7134_irq+0x0/0x284 [saa7134])
Disabling IRQ #17

mythbe kernel: Disabling IRQ #17

I tried adding irqpoll to the relevent stanza in /etc/grub.conf but the error still occurs.

Is this likely that the interrupt handler for the card isn't being wired up by pcifront, or perhaps a stray interrupt generated by the card?



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