From: Ben Dooks <ben.dooks@codethink.co.uk>
To: Stephen Warren <swarren@wwwdotorg.org>
Cc: Terry Hu <kejia.hu@codethink.co.uk>,
Device Tree list <devicetree@vger.kernel.org>,
jorgesanjuan <jorge.sanjuan@codethink.co.uk>,
Thomas Preston <thomas.preston@codethink.co.uk>,
linux-tegra <linux-tegra@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
Beth White <beth.white@codethink.co.uk>
Subject: Re: RFC: tegra2/tegra3 automotive part changes
Date: Fri, 20 Jul 2018 11:25:57 +0100 [thread overview]
Message-ID: <2e51c020-bca4-1e50-f0ad-cd2ece224cf8@codethink.co.uk> (raw)
In-Reply-To: <c8d947bb-a790-56f4-8ab4-2259f736d445@wwwdotorg.org>
On 13/07/18 17:53, Stephen Warren wrote:
> On 07/13/2018 03:41 AM, Ben Dooks wrote:
>> On 12/07/18 16:56, Stephen Warren wrote:
>>> On 07/12/2018 07:36 AM, Ben Dooks wrote:
>>>> Hello, we are looking at up-streaming some of the work we have
>>>> done on the tegra2 and tegra3 automotive devices. The automotive
>>>> grade devices are close the commercial parts so we would like to
>>>> discuss the core changes before submitting.
>>>>
>>>> The changes are mostly with things like the clock setup and a
>>>> few peripheral quirks (IIRC these are mostly MMC).
>>>>
>>>> We are proposing to change the device-tree properties for the root
>>>> node and any other affected devices from "nvidia,tegraXX" to a new
>>>> "nvidia,tegraXXa". We would welcome discussion on whether to update
>>>> all the devices at the start
>>>>
>>>> An example of tegra30a.dtsi:
>>>>
>>>> #include "tegra30.dtsi"
>>>>
>>>> / {
>>>> compatible = "nvidia,tegra30a";
>>>>
>>>> clock@60006000 {
>>>> compatible = "nvidia,tegra30a-car";
>>>> };
>>>> }
>>>
>>> This doesn't sound right. Auto and commercial parts are identical
>>> AFAIK; it's just qualification differences. Hence at most you'd add
>>> an extra compatible value and not remove the old one. Better might be
>>> to detect this at run-time from the fuses. I think we already do some
>>> of that already; search for speedo related code in arch/arm/mach-tegra/.
>>
>> The nvidia pdk for the automotive didn't set the clocks up in the
>> same way and we where told that there are certain clock restrictions
>> for the automotive parts that the commercial ones do not have. Some of
>> this came from internal discussions with nvidia and NDA'd datasheets
>> so I don't know how much actual data I can share.
>
> I believe this just changes the *selection* of values to use (clock
> rates, clock sources), not *how* to program them (set of registers and
> fields, programming algorithm), which is what the DT compatible is
> mainly about. In other words, it's mainly a performance/configuration
> decision not different HW.
>
>> To get the 4.4 kernel to be similar enough to work with the tegra30a
>> we had to do some changes to the clock initialisation. For things
>> like the clock I am not sure if leaving a tegra30-car in there would
>> be a good idea, it may boot but probably won't be stable.
>>
>> For the fuses, is the fuse driver up early enough to allow the clock
>> driver could use this? otherwise I think the device-tree change would
>> be the only way. I'm not sure if I have the information to hand on
>> how to differentiate the tegra30 and tegra20.
>>
>> PS, we'll want to do the same for the tegra20.
>
> As Job mentioned, the fuse driver should/could be available early enough
> without issue. It may have to (and probably already does) hard-code the
> physical address of the fuses rather than being configured from DT for
> this. I think if you read the chip "SKU" value from fuses, that should
> indicate which sets of restrictions on clocks/... are required, and
> there are many more SKUs than just "regular" and "automotive", although
> all the different SKUs may be bucketed into fewer sets of
> restriction/configuration data.
>
> Briefly looking at drivers/soc/tegra/fuse/speedo-tegra20.c, some (a very
> little) of this may already be there
Ok, the logs I have from one of the automotive systems has:
[] Tegra Revision: A03 SKU: 176 CPU Process: 3 SoC Process: 0
So would a test for:
sku_info->revision == TEGRA_REVISION_A03 &&
sku_info->sku_id == 176
be ok, or does that need some sort of mask?
I've not tried updating speedo-tegra30.c as I didn't really understand
what all the values where (and we didn't use cpufreq-scaling)
--
Ben Dooks http://www.codethink.co.uk/
Senior Engineer Codethink - Providing Genius
https://www.codethink.co.uk/privacy.html
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2018-07-20 10:25 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-12 13:36 RFC: tegra2/tegra3 automotive part changes Ben Dooks
2018-07-12 13:50 ` Mikko Perttunen
2018-07-12 15:07 ` Ben Dooks
2018-07-12 15:56 ` Stephen Warren
2018-07-13 9:41 ` Ben Dooks
2018-07-13 9:58 ` Jon Hunter
2018-07-13 12:51 ` Ben Dooks
2018-07-13 16:53 ` Stephen Warren
2018-07-20 10:25 ` Ben Dooks [this message]
2018-07-24 19:25 ` Stephen Warren
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=2e51c020-bca4-1e50-f0ad-cd2ece224cf8@codethink.co.uk \
--to=ben.dooks@codethink.co.uk \
--cc=beth.white@codethink.co.uk \
--cc=devicetree@vger.kernel.org \
--cc=jorge.sanjuan@codethink.co.uk \
--cc=kejia.hu@codethink.co.uk \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-tegra@vger.kernel.org \
--cc=swarren@wwwdotorg.org \
--cc=thomas.preston@codethink.co.uk \
/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).