From: Jeffrey Hugo <jhugo@codeaurora.org>
To: Bjorn Andersson <bjorn.andersson@sonymobile.com>
Cc: Kumar Gala <galak@codeaurora.org>,
Ohad Ben-Cohen <ohad@wizery.com>,
Rob Herring <robh+dt@kernel.org>, Pawel Moll <pawel.moll@arm.com>,
Mark Rutland <mark.rutland@arm.com>,
Ian Campbell <ijc+devicetree@hellion.org.uk>,
Grant Likely <grant.likely@linaro.org>,
Suman Anna <s-anna@ti.com>,
"open list:OPEN FIRMWARE AND..." <devicetree@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
linux-arm-msm <linux-arm-msm@vger.kernel.org>,
Eric Holmberg <eholmber@codeaurora.org>,
"Cavin, Courtney" <Courtney.Cavin@sonymobile.com>
Subject: Re: [PATCH v3] hwspinlock: qcom: Add support for Qualcomm HW Mutex block
Date: Mon, 08 Sep 2014 11:57:39 -0600 [thread overview]
Message-ID: <540DEE13.4090203@codeaurora.org> (raw)
In-Reply-To: <20140903163448.GB16352@sonymobile.com>
On 9/3/2014 10:34 AM, Bjorn Andersson wrote:
> On Wed 03 Sep 08:22 PDT 2014, Kumar Gala wrote:
>
>>
>> On Sep 3, 2014, at 9:55 AM, Bjorn Andersson <Bjorn.Andersson@sonymobile.com> wrote:
>>
>>> On Wed 03 Sep 05:49 PDT 2014, Kumar Gala wrote:
>>>
>>>>
>>>> On Sep 2, 2014, at 3:04 PM, Bjorn Andersson <Bjorn.Andersson@sonymobile.com> wrote:
>>>>
>>>>> Changes since v2:
>>>>> - MODULE_DEVICE_TABLE
>>>>> - Changed prefix to qcom
>>>>> - Cleaned up includes
>>>>> - Rely on reg and num-locks to figure out stride, instead of of_match data
>>>>
>>>> I know Jeff prefers this method of computing stride, but I’m not a fan as
>>>> there isn’t a reason one could adjust qcom,num-locks in the dt for some
>>>> reason and leave regs alone.
>>>>
>>>
>>> All the current platform it's 32 consecutive mutexes with either 4 or 128 byte
>>> stride, so encoding it as data either way works fine. The hardware you're
>>> trying to describe with your dt is the addresses that spans your mutex
>>> registers and how many there are. So from the HW/dts pov I don't see why you
>>> would like to do this.
>>>
>>> Then looking in the caf code, there is a limit of max 8 mutexes. So apparently
>>> there is some sort of usecase, I just don't know what or if it's valid from a
>>> dt pov.
>>
>> I believe not all the mutexes are meant for the cores running linux.
>> However, I think we just expect linux to play nice and not touch anything it
>> isn’t using explicitly.
>>
>
> I would expect so too.
Currently, and I expect this to continue, the first 8 mutexes involve
usecases which involve Linux. The remaining implemented locks support
usecases which do not involve the Linux cores. Generally we expect
Linux to play nice, however it is possible to have hardware memory
protection units in the SoC configured to prevent the Linux cores from
accessing those upper locks. From the global SoC pov, Linux should only
"see" the first 8.
>
> One problem I see is that it's not very robust relying on the relationship
> between reg and num-locks. I consider this an implementation detail leaking
> into the dt binding and it's not described enough currently...
>
>>> Going to that future awesome SoCs where it's still called tcsr-mutex, but with
>>> a stride of 4096 bytes makes me wonder; is that really a consecutive 128kb with
>>> nothing else in-between that we can ioremap?
>>
>> think 64-bit machines with more address space to burn and wanting to separate
>> resources to use MMUs for protection.
>>
>
> Makes sense, I just don't have any documentation verifying this.
>
>>> I.e. can we really reuse this driver straight off for that SoC?
>>
>> I dont see why not.
>>
>
> As long as the space inbetween is just wasted, there is no issue.
Have a look at the msm8916.dtsi in the downstream repository. I think
it'll help with your questions concerning the 0x1000 stride case.
>
>>>>> diff --git a/Documentation/devicetree/bindings/hwlock/qcom-hwspinlock.txt b/Documentation/devicetree/bindings/hwlock/qcom-hwspinlock.txt
>>>>> +- compatible:
>>>>> + Usage: required
>>>>> + Value type: <string>
>>>>> + Definition: must be one of:
>>>>> + "qcom,sfpb-mutex",
>>>>> + "qcom,tcsr-mutex”
>>>>
>>>> I dont get the purpose of having different compatible strings if there is no
>>>> difference in the code between them.
>>>>
>>>
>>> The semantics are the same, but there are no mutex registers in the tcsr block
>>> in e.g 8960, so the name is just missleading. I assume that's why you didn't
>>> follow caf and used the compatible "sfpb" in the first place?
>>
>> What do you expect the 8960 dt node to look like? I’m not 100% against ‘sfpb’
>>
>> I’m feel like we we should use compat for stride, so we’d end up with something like:
>>
>> qcom,sfpb-mutex: stride 4 bytes, base: 0x01200604, reset: 0x01200600
>> qcom,tcsr-mutex: stride 128 bytes, base: 0xFD484000, reset: 0xFD485380
>> qcom,tcsr-4k-mutex: stride 4k bytes, base: 0x740000, reset: 0x767000
>>
>
> Maybe these are the best names for the 3 hw blocks after all.
>
> The alternative would be either to encode the platform name in the compatible
> or adding the stride as a separate property. The first is waste and the second
> doesn't describe how hw is connected. So netiher are good alternatives.
>
>
> I think your suggestion is reasonable and will move the stride back into
> compat. It's the most robust solution.
>
> Is the 4k block finalized (don't see it in 8994 docs)? Should I add it to the
> driver now as well?
>
> Thanks for your input!
>
> Regards,
> Bjorn
>
Jeffrey Hugo
--
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation.
prev parent reply other threads:[~2014-09-08 17:57 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-02 20:04 [PATCH v3] hwspinlock: qcom: Add support for Qualcomm HW Mutex block Bjorn Andersson
2014-09-02 23:24 ` Jeffrey Hugo
2014-09-03 12:49 ` Kumar Gala
2014-09-03 14:55 ` Bjorn Andersson
2014-09-03 15:22 ` Kumar Gala
2014-09-03 16:34 ` Bjorn Andersson
2014-09-08 17:57 ` Jeffrey Hugo [this message]
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=540DEE13.4090203@codeaurora.org \
--to=jhugo@codeaurora.org \
--cc=Courtney.Cavin@sonymobile.com \
--cc=bjorn.andersson@sonymobile.com \
--cc=devicetree@vger.kernel.org \
--cc=eholmber@codeaurora.org \
--cc=galak@codeaurora.org \
--cc=grant.likely@linaro.org \
--cc=ijc+devicetree@hellion.org.uk \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=ohad@wizery.com \
--cc=pawel.moll@arm.com \
--cc=robh+dt@kernel.org \
--cc=s-anna@ti.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;
as well as URLs for NNTP newsgroup(s).