From: Marc Zyngier <marc.zyngier@arm.com>
To: Shameerali Kolothum Thodi <shameerali.kolothum.thodi@huawei.com>,
Mark Rutland <mark.rutland@arm.com>
Cc: "will.deacon@arm.com" <will.deacon@arm.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Linuxarm <linuxarm@huawei.com>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
John Garry <john.garry@huawei.com>,
"Guohanjun (Hanjun Guo)" <guohanjun@huawei.com>
Subject: Re: [RFC 1/4] irqchip, gicv3-its: Add device tree binding for hisilicon 161010801 erratum
Date: Tue, 24 Jan 2017 15:28:13 +0000 [thread overview]
Message-ID: <97734ae1-86bf-7239-ec54-2ed7a8db85fb@arm.com> (raw)
In-Reply-To: <5FC3163CFD30C246ABAA99954A238FA8174AC4AB@lhreml504-mbs>
On 24/01/17 15:13, Shameerali Kolothum Thodi wrote:
>
>
>> -----Original Message-----
>> From: Mark Rutland [mailto:mark.rutland@arm.com]
>> Sent: Tuesday, January 24, 2017 2:29 PM
>> To: Shameerali Kolothum Thodi
>> Cc: marc.zyngier@arm.com; will.deacon@arm.com; linux-
>> kernel@vger.kernel.org; Linuxarm; devicetree@vger.kernel.org; John
>> Garry; Guohanjun (Hanjun Guo)
>> Subject: Re: [RFC 1/4] irqchip, gicv3-its: Add device tree binding for
>> hisilicon 161010801 erratum
>>
>> On Tue, Jan 24, 2017 at 02:00:30PM +0000, Shameerali Kolothum Thodi
>> wrote:
>>>> -----Original Message-----
>>>> From: Mark Rutland [mailto:mark.rutland@arm.com]
>>
>>>> On Tue, Jan 24, 2017 at 01:42:56PM +0000, Shameerali Kolothum Thodi
>>>> wrote:
>>
>>>>> +Optional
>>>>> +- hisilicon,erratum-161010801 : A boolean property. Indicates
>> the
>>>>> +presence of
>>>>> + erratum 161010801, which says that these platforms doesn't
>>>>> +support SMMU
>>>>> + mapping for MSI transactions and those transactions has to be
>>>>> +bypassed
>>>>> + by SMMU.
>>>>
>>>> What exactly is meant by "doesn't support SMMU mapping" here? What
>>>> precisely is the problem in HW?
>>>
>>> On this platforms the ITS doorbell deviceID information is embedded
>> in
>>> the MSI payload. To do this, the PCIe controller differentiates the
>>> MSI payload and DMA payload and modifies the MSI payload to add the
>> deviceID information.
>>> The way it modifies this is by comparing against a SYS_CTRL register
>>> which is configured by UEFI with the ITS doorbell phys address.
>>
>> Ok. Some part of this will need to go in the binding description.
>>
>> How does this interact with translations via the SMMU?
>>
>> Do writes matching this address:
>>
>> (a) always bypass translation.
>> (b) get translated after modification.
>> (c) other?
>
> PCIe RC has a configuration setting to enable/disable SMMU
> bypass for PCIe MSI write and with this patch series we
> are using the disable mode. So it bypasses SMMU always for
> MSI but not for DMA.
>
> As per our SoC engineers this implementation seems to be based on an earlier
> version of GIC spec earlier version the GIC spec(Document
> number:PRD03-GENC-010745 18.0) where it says:
>
> "Implementations may choose to transform writes to GITS_TRANSLATER by either:
> -multiplexing the device ID onto the address bus (which is what GIC-500 provides
> a mechanism for), or
> -extending the data value to 64 bits, providing the device ID in the upper bits,
> and transforming the access to become a 64-bit write"
Crucially, that should be done by performing the up-scaling just as the
write reaches the ITS translation register, and *not* when the write
leaves the RC. If you up-scale it early, you end-up in this silly situation.
> Though I can't find the same in latest GIC spec.
Because that's not an architecture feature, but an implement decision.
And whatever the implementation does, it should be invisible to SW.
Unfortunately, bypassing the SMMU is not exactly invisible...
Thanks,
M.
--
Jazz is not dead. It just smells funny...
next prev parent reply other threads:[~2017-01-24 15:28 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <588625E3.9040703@huawei.com>
2017-01-24 13:42 ` [RFC 1/4] irqchip, gicv3-its: Add device tree binding for hisilicon 161010801 erratum Shameerali Kolothum Thodi
2017-01-24 13:52 ` Mark Rutland
2017-01-24 14:00 ` Shameerali Kolothum Thodi
2017-01-24 14:28 ` Mark Rutland
2017-01-24 15:13 ` Shameerali Kolothum Thodi
2017-01-24 15:28 ` Marc Zyngier [this message]
2017-01-24 15:42 ` Shameerali Kolothum Thodi
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=97734ae1-86bf-7239-ec54-2ed7a8db85fb@arm.com \
--to=marc.zyngier@arm.com \
--cc=devicetree@vger.kernel.org \
--cc=guohanjun@huawei.com \
--cc=john.garry@huawei.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxarm@huawei.com \
--cc=mark.rutland@arm.com \
--cc=shameerali.kolothum.thodi@huawei.com \
--cc=will.deacon@arm.com \
/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