devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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

  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).