linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: marc.zyngier@arm.com (Marc Zyngier)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v7] PCI: Xilinx-NWL-PCIe: Added support for Xilinx NWL PCIe Host Controller
Date: Wed, 04 Nov 2015 15:05:48 +0000	[thread overview]
Message-ID: <563A1ECC.3000609@arm.com> (raw)
In-Reply-To: <8520D5D51A55D047800579B09414719801693D38@XAP-PVEXMBX01.xlnx.xilinx.com>

On 04/11/15 12:30, Bharat Kumar Gogada wrote:
>>
>>>> Also, you still lack support for MSI-X (which would come for free...).
>>>
>>> We don't support MSI-X in root port mode.
>>
>> I don't believe you. If you support single MSI, you support MSI-X (because
>> that's mostly a property of the endpoint).
> 
> In our architecture specification MSI-X is unsupported for Root Port.

I still can't believe it, but in the end, that's your own problem.

>>>>> +	.chip = &nwl_msi_irq_chip,
>>>>> +};
>>>>> +#endif
>>>>> +
>>>>> +
>>>>> +	/* setup AFI/FPCI range */
>>>>> +	msi->pages = __get_free_pages(GFP_KERNEL, 0);
>>>>> +	base = virt_to_phys((void *)msi->pages);
>>>>> +	nwl_bridge_writel(pcie, lower_32_bits(base), I_MSII_BASE_LO);
>>>>> +	nwl_bridge_writel(pcie, upper_32_bits(base), I_MSII_BASE_HI);
>>>>
>>>> I just read this, and I'm puzzled. Actually, puzzled is an
>>>> understatement. Why on Earth do you need to give RAM to your MSI
>> HW?
>>>> This should be a device, not RAM. By the look of it, this could be
>>>> absolutely anything. Are you sure you have to supply RAM here?
>>>>
>>> This is required in our hardware, so that bridge identifies incoming MWr as
>> MSI.
>>
>> I'm asking why this has to be RAM. What is the actual requirement?
> 
> We are allocating RAM for MSI (which is expected) and assigning this address to msi->pages
> this is what EP MSI capability will be programmed with.
> For the bridge to detect an incoming MWr from EP as MSI, hardware needs to know MSI address
> so the same address is programmed in the hardware register for comparison purpose.
> It is the actual requirement from hardware.

I understand that you need to provide an address for the bridge to
match. I'm asking why this has to be RAM as opposed to any other device
address. This seems to be a unique requirement (nobody else does that),
and I'd like to understand why there is this requirement.

Thanks,

	M.
-- 
Jazz is not dead. It just smells funny...

  reply	other threads:[~2015-11-04 15:05 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-03 15:23 [PATCH v7] PCI: Xilinx-NWL-PCIe: Added support for Xilinx NWL PCIe Host Controller Bharat Kumar Gogada
2015-11-03 16:18 ` Marc Zyngier
2015-11-04  6:38   ` Bharat Kumar Gogada
2015-11-04  7:44     ` Amit Tomer
2015-11-04  7:54       ` Bharat Kumar Gogada
2015-11-04  8:52         ` Marc Zyngier
2015-11-04  8:49     ` Marc Zyngier
2015-11-04 12:30       ` Bharat Kumar Gogada
2015-11-04 15:05         ` Marc Zyngier [this message]
2015-11-05 14:26 ` Rob Herring

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=563A1ECC.3000609@arm.com \
    --to=marc.zyngier@arm.com \
    --cc=linux-arm-kernel@lists.infradead.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).