devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Murali Karicheri <m-karicheri2@ti.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: linux-arm-kernel@lists.infradead.org, robh+dt@kernel.org,
	pawel.moll@arm.com, mark.rutland@arm.com,
	ijc+devicetree@hellion.org.uk, galak@codeaurora.org,
	bhelgaas@google.com, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org
Subject: Re: [PATCH v2 2/2] PCI: keystone: update to support multiple pci ports
Date: Tue, 9 Sep 2014 18:50:13 -0400	[thread overview]
Message-ID: <540F8425.70304@ti.com> (raw)
In-Reply-To: <3967092.l9bxcqMaSa@wuerfel>

On 09/09/2014 05:52 PM, Arnd Bergmann wrote:
> On Tuesday 09 September 2014 17:49:19 Murali Karicheri wrote:
>> Actually this is an inteded. The vendor ID is in a register indicated by
>> reg offset and as per the device spec, it needs to be read and updated
>> by the software. Now since multiple instances of PCI device needs to be
>> read the same register, the reading happens in the probe() and same is
>> unmapped after that.
>>
>> +       ks_pcie->device_id = readl(reg_p)>>  16;
>> +       devm_iounmap(dev, reg_p);
>> +       devm_release_mem_region(dev, res->start, resource_size(res));
>>
>> Afetr that in ks_pcie_host_init(), it update the device_id in the RC's
>> config space.
>
> I'm not sure I understand the purpose of this. Do you mean you read
> the vendor/device ID of whichever device happens to get probed first
> and then program the same ID into all other devices as well?

My mistake. It is the device ID, not vendor ID. The PCI driver supports 
PCI h/w on K2HK, K2E and K2L SoCs for which PCI device IDs are assigned as

+#define PCIE_RC_K2HK		0xb008
+#define PCIE_RC_K2E		0xb009
+#define PCIE_RC_K2L		0xb00a
+

and the same driver code runs on all these h/w. The device ID is not 
filled in by default by the h/w, in the config space of the RC at offset 
1000h "VENDOR_DEVICE_ID Vendor and Device Identification Register". 
Same is available in a seperate SoC register whose offset is specified 
by index 2. This is read by driver and updated in the config space. The 
Vendor ID is however set by default.

There is a mrrs PCI quirk required for Keystone PCI which depends on 
this vendor ID to be filled correctly as it match vendor id/ device id 
of the bridge device to apply the quirk.

Hope this clarify your question.

Murali

>
> What if the order changes between two boots? Why does the vendor/device
> ID of the host bridge even matter at all?
>
> 	Arnd

  reply	other threads:[~2014-09-09 22:50 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-09 20:17 [PATCH v2 1/2] PCI: keystone: remove handle of PCI mode configuration Murali Karicheri
2014-09-09 20:17 ` [PATCH v2 2/2] PCI: keystone: update to support multiple pci ports Murali Karicheri
2014-09-09 20:28   ` Arnd Bergmann
2014-09-09 20:42     ` Murali Karicheri
2014-09-09 21:09       ` Arnd Bergmann
2014-09-09 21:49         ` Murali Karicheri
2014-09-09 21:51           ` Murali Karicheri
     [not found]           ` <540F75DF.5050904-l0cyMroinI0@public.gmane.org>
2014-09-09 21:52             ` Arnd Bergmann
2014-09-09 22:50               ` Murali Karicheri [this message]
2014-09-10  8:22                 ` Arnd Bergmann
2014-09-10 14:28                   ` Murali Karicheri
2014-09-09 20:22 ` [PATCH v2 1/2] PCI: keystone: remove handle of PCI mode configuration Arnd Bergmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=540F8425.70304@ti.com \
    --to=m-karicheri2@ti.com \
    --cc=arnd@arndb.de \
    --cc=bhelgaas@google.com \
    --cc=devicetree@vger.kernel.org \
    --cc=galak@codeaurora.org \
    --cc=ijc+devicetree@hellion.org.uk \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=pawel.moll@arm.com \
    --cc=robh+dt@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).