linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jisheng Zhang <jszhang@marvell.com>
To: Jaehoon Chung <jh80.chung@samsung.com>,
	Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>,
	"robh@kernel.org" <robh@kernel.org>,
	"arnd@arndb.de" <arnd@arndb.de>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
	Liviu Dudau <Liviu.Dudau@arm.com>,
	"bhelgaas@google.com" <bhelgaas@google.com>
Cc: "linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>, CPGS <cpgs@samsung.com>
Subject: Re: [Query] Direction of adding arm64 support to PCIe designware driver
Date: Thu, 9 Apr 2015 10:43:35 +0800	[thread overview]
Message-ID: <20150409104335.3b016ffd@xhacker> (raw)
In-Reply-To: <5525D789.2060200@samsung.com>

Hi Lorenzo, Jaehoon

On Wed, 8 Apr 2015 18:36:09 -0700
Jaehoon Chung <jh80.chung@samsung.com> wrote:

> Hi.
> 
> On 04/08/2015 07:32 PM, Lorenzo Pieralisi wrote:
> > Hi Jisheng,
> > 
> > On Fri, Apr 03, 2015 at 10:46:21AM +0100, Jisheng Zhang wrote:
> >> Hi all,
> >>
> >> Currently, the pci designware driver still lacks of arm64 support and I noticed
> >> that many works are done to achieve this goal.
> >>
> >> Some patches are merged and some are under discussion. And Per my understanding, 
> >> even w/ these patches merged, the driver still doesn't support arm64. Could you
> >> please kindly point out the direction to add arm64 support to the PCIe
> >> designware driver?
> > 
> > We should remove pci_sys_data dependency since ARM depends on that.
> > I removed it from a couple of places already (eg pci_mmap_page_range).
> > 
> > Now, pcibios_align_resource and pcibios_msi_controller need patching.
> > 
> > I have a patch for pcibios_align_resource() (I am waiting for Yijing
> > Wang series to get merged so that we can move the align_resource
> > function pointer in the host bridge):
> > 
> > https://lkml.org/lkml/2015/4/3/171
> > 
> > For MSI, code converted to use CONFIG_PCI_MSI_IRQ_DOMAIN should
> > not need pcibios_msi_controller ARM function, but if we still compile
> > that function in we do need pci_sys_data on ARM, so we have to have
> > it even if it can be dead code in some platforms, I have to vet all
> > ARM PCI host controllers to check, but removing it would break MSI
> > support.
> > 
> > Does it help ? MSIs are the most important change required,
> > align_resource() pointer can be sorted out easily once Yijing's
> > code gets in.

I haven't go to that deeper, and didn't fully understand the pcibios_align_resource()
does.

> 
> I'm not sure whether my working is right..I used the pcie_port instead of pci_sys_data.
> 
> static inline struct *sys_to_pcie(struct pci_sys_data *sys)
> -> static inline struct *sys_to_pcie(struct pcie_port *pp)
> 
> And add "struct list_head resources" as member of pcie_port.
> 
> diff --git a/drivers/pci/host/pcie-designware.h b/drivers/pci/host/pcie-designware.h
> index 91484a9..1cde583 100644
> --- a/drivers/pci/host/pcie-designware.h
> +++ b/drivers/pci/host/pcie-designware.h
> @@ -53,6 +53,7 @@ struct pcie_port {
>         struct irq_domain       *irq_domain;
>         unsigned long           msi_data;
>         DECLARE_BITMAP(msi_irq_in_use, MAX_MSI_IRQS);
> +       struct list_head        resources;
>  };
> 
> and just used pci_scan_root_bus(). (before call this, it's added the offset of resources..)
> So i got the below message.
> 
> [    2.396822] exynos-pcie 156b0000.pcie: Link up!
> [    2.397011] exynos-pcie 156b0000.pcie: PCI host bridge to bus 0000:00
> [    2.397021] pci_bus 0000:00: root bus resource [io  0x1000-0xffff]
> [    2.397026] pci_bus 0000:00: root bus resource [mem 0x0c011000-0x0ffffffe]
> [    2.397033] pci_bus 0000:00: root bus resource [bus 00-ff]
> [    2.409000] pci 0000:00:00.0: BAR 8: assigned [mem 0x0c200000-0x0c7fffff]
> [    2.409009] pci 0000:01:00.0: BAR 2: assigned [mem 0x0c400000-0x0c7fffff 64bit]
> [    2.409509] pci 0000:01:00.0: BAR 0: assigned [mem 0x0c200000-0x0c207fff 64bit]
> [    2.410008] pci 0000:00:00.0: PCI bridge to [bus 01]
> [    2.410027] pci 0000:00:00.0:   bridge window [mem 0x0c200000-0x0c7fffff]
> 
> Well, i needs to work more and get the knowledge for pcie. (It's not working completely.)
> If somebody is working this, it's great..otherwise I will send the RFC patch to get comment for my code.
> 

I'm doing based on Lorenzo's patches to port the designware driver to new DT parsing API

http://lists.infradead.org/pipermail/linux-arm-kernel/2015-January/314008.html

Then modify the driver as drivers/pci/host/pci-versatile.c does to remove pci_sys_data

I'm not sure my direction is correct or not, that's why I sent out this email a few days ago.

And I still dunno are there other changes necessary to remove pci_sys_data from
the desginware driver.

Thanks for all your hints,
Jisheng

  reply	other threads:[~2015-04-09  2:47 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-03  9:46 [Query] Direction of adding arm64 support to PCIe designware driver Jisheng Zhang
2015-04-08 10:32 ` Lorenzo Pieralisi
2015-04-09  1:36   ` Jaehoon Chung
2015-04-09  2:43     ` Jisheng Zhang [this message]
2015-04-09  2:47     ` Minghuan.Lian
2015-04-09  3:29       ` Jisheng Zhang
2015-04-13  9:16 ` Liviu Dudau

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=20150409104335.3b016ffd@xhacker \
    --to=jszhang@marvell.com \
    --cc=Liviu.Dudau@arm.com \
    --cc=arnd@arndb.de \
    --cc=bhelgaas@google.com \
    --cc=cpgs@samsung.com \
    --cc=jh80.chung@samsung.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=robh@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).