[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] PCI-E serial board not working under Xen


  • To: "Jan Beulich" <JBeulich@xxxxxxxx>
  • From: "Andres Lagar-Cavilla" <andres@xxxxxxxxxxxxxxxx>
  • Date: Wed, 23 Nov 2011 09:22:18 -0800
  • Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
  • Delivery-date: Wed, 23 Nov 2011 17:23:06 +0000
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=lagarcavilla.org; h=message-id :in-reply-to:references:date:subject:from:to:cc:reply-to :mime-version:content-type:content-transfer-encoding; q=dns; s= lagarcavilla.org; b=P+GSe8pYJwj6S9OAY6fQRV2WXYBRXOIcu31uxMqx12vS neO7CcE3e0LGG69M3yjACjEE8wiPq/33CC2JHNo83VbeFABKP5vrUCMOFIS12Ilb KUk+w3+eyg2QuIWWGIGkB7DpQt300KIclMpRo1YZoaJenKY6KmEa6Ur+yJ14zMw=
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

Thanks, I will try a few things to get my card working. The main obstacle
seems to get an x86 ioremap for this card. As I've mentioned, I'm
basically poking in the dark here wrt configuring a pci dev.

Andres

>>>> On 23.11.11 at 16:55, "Andres Lagar-Cavilla" <andres@xxxxxxxxxxxxxxxx>
>>>> wrote:
>> First off, ns16550_parse_port_config string compares "pci" with
>> strncmp(conf, "pci", 5) which obviously fails. It should be 3. I can
>> send
>> trivial patch.
>
> Yes, please. (It must be an oversight in an earlier change.)
>
>> Once that is left behind, reading the bar with pci_conf_read32(0,b,d,f,
>> PCI_BASE_ADDRESS_0) yields the mmio address of the first accessible
>> region, instead of the bar.
>
> This is an assumption, not a bug (not sure what, if any, conventions
> exist here). If your card doesn't meet it, then you'll have to either
> provide a patch (without breaking anyone else) or deal with this for
> yourself. But read on.
>
> Also, what is being read is the BAR, just that in your case it doesn't
> point
> into IO port space.
>
>> Linux inits this card fine, and reports three mmio regions at 0xfb600000
>> (size 16k), 0xfb400000 (size 2M) and 0xfb200000 (size 2M), BAR 1 with
>> the
>> actual IO port at 0xfb601000 (one page inside the first mmio region). It
>> gets irq 19.
>>
>> Going back to Xen, instead of reading bar=1, it reads the mmio offset of
>> the first region and then it naturally bails out. Even if it were to get
>> the right bar, the io_base value it would compute (bar & 0xfffe) would
>> be
>> useless.
>
> On x86, the code assumes that the interface is through an IO port; the
> MMIO variant, iirc, so far is there only for ia64. The primary issue being
> that the (stub) ioremap() x86 has isn't suitable for this purpose.
>
>> I've tried passing the explicit parameters
>> (com1=115200,8n1,0xfb601000,19,03:00.0), and the mere mention of an mmio
>> io port for the serial card hard freezes the hypervisor immediately.
>
> That's, as mentioned above, a result of the stubbed out ioremap().
>
> Jan
>
>



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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.