public inbox for linux-tegra@vger.kernel.org
 help / color / mirror / Atom feed
From: Stephen Warren <swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
To: Marcel Ziswiler <marcel-mitwqZ+T+m9Wk0Htik3J/w@public.gmane.org>,
	linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Cc: Thierry Reding
	<thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	Lucas Stach <dev-8ppwABl0HbeELgA04lAiVw@public.gmane.org>
Subject: Re: Oops on Tegra30 with CPU Process: 1
Date: Mon, 21 Apr 2014 11:13:33 -0600	[thread overview]
Message-ID: <535551BD.5000207@wwwdotorg.org> (raw)
In-Reply-To: <53545792.30709-mitwqZ+T+m9Wk0Htik3J/w@public.gmane.org>

On 04/20/2014 05:26 PM, Marcel Ziswiler wrote:
> On 04/14/2014 10:18 PM, Stephen Warren wrote:
>> On 04/14/2014 01:16 PM, Stephen Warren wrote:
>>> On 04/08/2014 08:32 AM, Marcel Ziswiler wrote:
>>>> Hi there
>>>>
>>>> I have the following Toradex Colibri T30 modules with different ATE prog
>>>> versions, Tegra30 SKUs as well as CPU process numbers:
>>>>
>>>> Colibri T30 V1.1B (working)
>>>>
>>>> [    0.000000] fuse_speedo_calib: ATE prog ver 3.6
>>>> [    0.000000] Tegra30: CPU Speedo ID 2, Soc Speedo ID 2
>>>> [    0.000000] Tegra Revision: A03 SKU: 129 CPU Process: 2 Core
>>>> Process: 0
>>>>
>>>> Colibri T30 V1.1C (below crash)
>>>>
>>>> [    0.000000] fuse_speedo_calib: ATE prog ver 3.7
>>>> [    0.000000] Tegra30: CPU Speedo ID 2, Soc Speedo ID 2
>>>> [    0.000000] Tegra Revision: A03 SKU: 129 CPU Process: 1 Core
>>>> Process: 0
...
>> Uggh. I just realized that 1.0V on VDD_CPU (which is what mainline
>> U-Boot and the kernel set up) is enough to run the CPU at 1.0GHz. I
>> thought U-Boot programmed the CPU clock to that rate, but according to
>> U-Boot's arch/arm/cpu/arm720t/tegra-common/cpu.c tegra_pll_x_table[], it
>> actually runs the CPUs at 1.4GHz. In order to solve that problem, you'll
>> want to try either:
...
>> 2) Adjusting the code that programs VDD_CPU, both in:
>>
>> 2a) U-Boot's TPS65911_VDDCTRL_OP_DATA value in
>> arch/arm/cpu/arm720t/tegra30/cpu.c.
>>
>> That value should be:
>>
>> # CPU Process 2:
>> (0x2a00 | TPS65911_VDDCTRL_OP_REG)
>>
>> # CPU Process 1:
>> (0x2c00 | TPS65911_VDDCTRL_OP_REG)
>>
>> 2b) The kernel's regulator configuration in DT; whatever the Colibri
>> equivalent of the following from arch/arm/boot/dts/tegra30-cardhu.dtsi:
>>
>> vddctrl_reg: vddctrl {
>>     regulator-name = "vdd_cpu,vdd_sys";
>>     regulator-min-microvolt = <1000000>;
>>     regulator-max-microvolt = <1000000>;
>>     regulator-always-on;
>> };
>>
>> Both regulator-min/max-microvolt should be 1.125V (1125000) for CPU
>> process 2, and 1.15V (1150000) for CPU process 1.
> 
> At least approach 2b) indeed makes em fly again. Rock solid without any
> more crashes (;-p).

Great. Thanks for the confirmation.

It might be slightly better to apply the fix to U-Boot in addition to
the kernel DT, since that way the correct voltage will be applied for
the entire run-time of the main CPUs, rather than only starting at some
point during the kernel boot.

Evidently from your practical test results, the correct voltage only
appears to matter once user-space boots up and the CPU load gets higher
(and likely when multiple CPUs are doing real work). However, it seems
at least theoretically possible that even U-Boot might trigger the
problem, and hence should probably set up the regulators correctly.

  parent reply	other threads:[~2014-04-21 17:13 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-08 14:32 Oops on Tegra30 with CPU Process: 1 Marcel Ziswiler
     [not found] ` <53440884.7010304-mitwqZ+T+m9Wk0Htik3J/w@public.gmane.org>
2014-04-11 16:14   ` Stephen Warren
2014-04-14 19:16   ` Stephen Warren
     [not found]     ` <534C3422.1050004-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2014-04-14 20:18       ` Stephen Warren
     [not found]         ` <534C427E.5030404-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2014-04-20 23:26           ` Marcel Ziswiler
     [not found]             ` <53545792.30709-mitwqZ+T+m9Wk0Htik3J/w@public.gmane.org>
2014-04-21 17:13               ` Stephen Warren [this message]
2014-04-20 23:24       ` Marcel Ziswiler

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=535551BD.5000207@wwwdotorg.org \
    --to=swarren-3lzwwm7+weoh9zmkesr00q@public.gmane.org \
    --cc=dev-8ppwABl0HbeELgA04lAiVw@public.gmane.org \
    --cc=linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=marcel-mitwqZ+T+m9Wk0Htik3J/w@public.gmane.org \
    --cc=thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.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