All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Warren <swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
To: Hiroshi Doyu <hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
Cc: "marc.zyngier-5wv7dgnIgG8@public.gmane.org"
	<marc.zyngier-5wv7dgnIgG8@public.gmane.org>,
	"linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	"linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org"
	<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>
Subject: Re: [v2 5/9] clocksource: tegra: Enable ARM arch_timer with TSC
Date: Tue, 08 Jan 2013 23:40:49 -0700	[thread overview]
Message-ID: <50ED10F1.30001@wwwdotorg.org> (raw)
In-Reply-To: <20130109.080031.1063344100374199123.hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>

On 01/08/2013 11:00 PM, Hiroshi Doyu wrote:
> Stephen Warren <swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org> wrote @ Tue, 8 Jan 2013 23:41:42 +0100:
>> On 01/08/2013 09:07 AM, Marc Zyngier wrote:
>>> On 08/01/13 12:47, Hiroshi Doyu wrote:
>>>> Add platform enabler for ARM arch_timer(TSC). TSC is more fine grained
>>>> timer than TMR0. If it's available, it will be used for clock source
>>>> and sched_clock. Otherwise, TMR0 is used. In any case TMR0 is
>>>> necessary for clock event.
>>
>>>> diff --git a/drivers/clocksource/tegra20_timer.c b/drivers/clocksource/tegra20_timer.c
>>
>>>> +/* FIXME: only secure mode is supported. */
>>>
>>> And this is a bug, as far as I'm concerned.
>>>
>>>> +static int tegra_arch_timer_init(void)
>>
>>>> +	clk = clk_get_sys("clk_m", NULL);
>>>> +	if (IS_ERR(clk)) {
>>>> +		freq = 12000000;
>>>> +		pr_warn("Unable to get timer clock. Assuming 12Mhz input clock.\n");
>>>> +	} else {
>>>> +		freq = clk_get_rate(clk);
>>>> +		clk_put(clk);
>>>> +	}
>>>> +	writel_relaxed(freq, tsc_base + TSC_CNTFID0);
>>>> +
>>>> +	/* CNTFRQ */
>>>> +	asm("mcr p15, 0, %0, c14, c0, 0\n" : : "r" (freq));
>>>> +	asm("mrc p15, 0, %0, c14, c0, 0\n" : "=r" (val));
>>>> +	BUG_ON(val != freq);
>>>
>>> No, not again! Like I said last year, this won't fly. So instead of
>>> trying to work around a broken firmware, let's do the right thing.
>>
>> OK, so I understand you want to firmware/bootloader/... to write the
>> value into that register instead, so this all works in non-secure mode
>> (which sounds like a fine objection), but ...
> 
> If possible, I want to run kernel without bootloader initializing TSC
> . IOW, I want to allow legacy bootloaders to boot kernel with ARM arch
> timer.

Is it really hard to just fix the bootloader? Tegra114 is new enough,
and upstream support new enough, it should be fine to require a fixed
bootloader in order to run the upstream kernel even if we don't yet do
this right in the downstream kernels.

WARNING: multiple messages have this Message-ID (diff)
From: swarren@wwwdotorg.org (Stephen Warren)
To: linux-arm-kernel@lists.infradead.org
Subject: [v2 5/9] clocksource: tegra: Enable ARM arch_timer with TSC
Date: Tue, 08 Jan 2013 23:40:49 -0700	[thread overview]
Message-ID: <50ED10F1.30001@wwwdotorg.org> (raw)
In-Reply-To: <20130109.080031.1063344100374199123.hdoyu@nvidia.com>

On 01/08/2013 11:00 PM, Hiroshi Doyu wrote:
> Stephen Warren <swarren@wwwdotorg.org> wrote @ Tue, 8 Jan 2013 23:41:42 +0100:
>> On 01/08/2013 09:07 AM, Marc Zyngier wrote:
>>> On 08/01/13 12:47, Hiroshi Doyu wrote:
>>>> Add platform enabler for ARM arch_timer(TSC). TSC is more fine grained
>>>> timer than TMR0. If it's available, it will be used for clock source
>>>> and sched_clock. Otherwise, TMR0 is used. In any case TMR0 is
>>>> necessary for clock event.
>>
>>>> diff --git a/drivers/clocksource/tegra20_timer.c b/drivers/clocksource/tegra20_timer.c
>>
>>>> +/* FIXME: only secure mode is supported. */
>>>
>>> And this is a bug, as far as I'm concerned.
>>>
>>>> +static int tegra_arch_timer_init(void)
>>
>>>> +	clk = clk_get_sys("clk_m", NULL);
>>>> +	if (IS_ERR(clk)) {
>>>> +		freq = 12000000;
>>>> +		pr_warn("Unable to get timer clock. Assuming 12Mhz input clock.\n");
>>>> +	} else {
>>>> +		freq = clk_get_rate(clk);
>>>> +		clk_put(clk);
>>>> +	}
>>>> +	writel_relaxed(freq, tsc_base + TSC_CNTFID0);
>>>> +
>>>> +	/* CNTFRQ */
>>>> +	asm("mcr p15, 0, %0, c14, c0, 0\n" : : "r" (freq));
>>>> +	asm("mrc p15, 0, %0, c14, c0, 0\n" : "=r" (val));
>>>> +	BUG_ON(val != freq);
>>>
>>> No, not again! Like I said last year, this won't fly. So instead of
>>> trying to work around a broken firmware, let's do the right thing.
>>
>> OK, so I understand you want to firmware/bootloader/... to write the
>> value into that register instead, so this all works in non-secure mode
>> (which sounds like a fine objection), but ...
> 
> If possible, I want to run kernel without bootloader initializing TSC
> . IOW, I want to allow legacy bootloaders to boot kernel with ARM arch
> timer.

Is it really hard to just fix the bootloader? Tegra114 is new enough,
and upstream support new enough, it should be fine to require a fixed
bootloader in order to run the upstream kernel even if we don't yet do
this right in the downstream kernels.

  parent reply	other threads:[~2013-01-09  6:40 UTC|newest]

Thread overview: 100+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-08 12:47 [v2 0/9] ARM: Initial support for Tegra 114 SoC Hiroshi Doyu
2013-01-08 12:47 ` Hiroshi Doyu
     [not found] ` <1357649263-1098-1-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-01-08 12:47   ` [v2 1/9] ARM: tegra: fuse: Add chipid TEGRA114 0x35 Hiroshi Doyu
2013-01-08 12:47     ` Hiroshi Doyu
2013-01-08 12:47   ` [v2 2/9] HACK: ARM: tegra: Use CLK_IGNORE_UNUSED for Tegra 114 SoC Hiroshi Doyu
2013-01-08 12:47     ` Hiroshi Doyu
     [not found]     ` <1357649263-1098-3-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-01-08 22:52       ` Stephen Warren
2013-01-08 22:52         ` Stephen Warren
2013-01-08 12:47   ` [v2 3/9] ARM: tegra: # of CPU cores detection w/ & w/o HAVE_ARM_SCU Hiroshi Doyu
2013-01-08 12:47     ` Hiroshi Doyu
     [not found]     ` <1357649263-1098-4-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-01-08 14:26       ` Russell King - ARM Linux
2013-01-08 14:26         ` Russell King - ARM Linux
     [not found]         ` <20130108142651.GB3931-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2013-01-09  5:46           ` Hiroshi Doyu
2013-01-09  5:46             ` Hiroshi Doyu
     [not found]             ` <20130109.074651.1513003283585604525.hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-01-09  6:07               ` Joseph Lo
2013-01-09  6:07                 ` Joseph Lo
     [not found]                 ` <1357711661.28383.1.camel-yx3yKKdKkHfc7b1ADBJPm0n48jw8i0AO@public.gmane.org>
2013-01-09  6:25                   ` Hiroshi Doyu
2013-01-09  6:25                     ` Hiroshi Doyu
2013-01-08 14:28       ` Mark Rutland
2013-01-08 14:28         ` Mark Rutland
     [not found]         ` <20130108142828.GD2718-NuALmloUBlrZROr8t4l/smS4ubULX0JqMm0uRHvK7Nw@public.gmane.org>
2013-01-08 14:53           ` Hiroshi Doyu
2013-01-08 14:53             ` Hiroshi Doyu
     [not found]             ` <20130108.165342.1996373920678167735.hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-01-08 16:21               ` Mark Rutland
2013-01-08 16:21                 ` Mark Rutland
     [not found]                 ` <20130108162056.GA28618-NuALmloUBlrZROr8t4l/smS4ubULX0JqMm0uRHvK7Nw@public.gmane.org>
2013-01-08 17:11                   ` Lorenzo Pieralisi
2013-01-08 17:11                     ` Lorenzo Pieralisi
     [not found]                     ` <20130108171103.GA7417-7AyDDHkRsp3ZROr8t4l/smS4ubULX0JqMm0uRHvK7Nw@public.gmane.org>
2013-01-09 11:46                       ` Hiroshi Doyu
2013-01-09 11:46                         ` Hiroshi Doyu
     [not found]                         ` <20130109.134641.1582472136842052082.hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-01-09 15:17                           ` Lorenzo Pieralisi
2013-01-09 15:17                             ` Lorenzo Pieralisi
     [not found]                             ` <20130109151700.GB22147-7AyDDHkRsp3ZROr8t4l/smS4ubULX0JqMm0uRHvK7Nw@public.gmane.org>
2013-01-10 12:58                               ` Hiroshi Doyu
2013-01-10 12:58                                 ` Hiroshi Doyu
     [not found]                                 ` <20130110.145813.1159140334089730421.hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-01-10 13:47                                   ` Lorenzo Pieralisi
2013-01-10 13:47                                     ` Lorenzo Pieralisi
     [not found]                                     ` <20130110134723.GF4728-7AyDDHkRsp3ZROr8t4l/smS4ubULX0JqMm0uRHvK7Nw@public.gmane.org>
2013-01-10 14:03                                       ` Hiroshi Doyu
2013-01-10 14:03                                         ` Hiroshi Doyu
     [not found]                                         ` <20130110.160350.1128715111526546076.hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-01-10 14:33                                           ` Lorenzo Pieralisi
2013-01-10 14:33                                             ` Lorenzo Pieralisi
     [not found]                                             ` <20130110143334.GG4728-7AyDDHkRsp3ZROr8t4l/smS4ubULX0JqMm0uRHvK7Nw@public.gmane.org>
2013-01-10 14:59                                               ` Hiroshi Doyu
2013-01-10 14:59                                                 ` Hiroshi Doyu
2013-01-10 16:54                                   ` Stephen Warren
2013-01-10 16:54                                     ` Stephen Warren
     [not found]                                     ` <50EEF235.7070200-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-01-11 10:11                                       ` Lorenzo Pieralisi
2013-01-11 10:11                                         ` Lorenzo Pieralisi
     [not found]                                         ` <20130111101134.GC30538-7AyDDHkRsp3ZROr8t4l/smS4ubULX0JqMm0uRHvK7Nw@public.gmane.org>
2013-01-11 11:56                                           ` Hiroshi Doyu
2013-01-11 11:56                                             ` Hiroshi Doyu
2013-01-08 19:32                   ` Stephen Warren
2013-01-08 19:32                     ` Stephen Warren
     [not found]                     ` <50EC7450.4070806-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-01-09  5:49                       ` Hiroshi Doyu
2013-01-09  5:49                         ` Hiroshi Doyu
     [not found]                         ` <20130109.074946.1167125688535781408.hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-01-09 11:34                           ` Lorenzo Pieralisi
2013-01-09 11:34                             ` Lorenzo Pieralisi
     [not found]                             ` <20130109113432.GA22147-7AyDDHkRsp3ZROr8t4l/smS4ubULX0JqMm0uRHvK7Nw@public.gmane.org>
2013-01-09 16:17                               ` Stephen Warren
2013-01-09 16:17                                 ` Stephen Warren
     [not found]                                 ` <50ED980B.9060909-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-01-09 18:07                                   ` Lorenzo Pieralisi
2013-01-09 18:07                                     ` Lorenzo Pieralisi
     [not found]                                     ` <20130109180713.GC30931-7AyDDHkRsp3ZROr8t4l/smS4ubULX0JqMm0uRHvK7Nw@public.gmane.org>
2013-01-10  6:53                                       ` Hiroshi Doyu
2013-01-10  6:53                                         ` Hiroshi Doyu
2013-01-10  6:31                               ` Hiroshi Doyu
2013-01-10  6:31                                 ` Hiroshi Doyu
     [not found]                                 ` <20130110.083143.258958175573018571.hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-01-10  9:51                                   ` Lorenzo Pieralisi
2013-01-10  9:51                                     ` Lorenzo Pieralisi
2013-01-08 12:47   ` [v2 4/9] clocksource: tegra: Reorganize funcs by clock functionarities Hiroshi Doyu
2013-01-08 12:47     ` Hiroshi Doyu
2013-01-08 12:47   ` [v2 5/9] clocksource: tegra: Enable ARM arch_timer with TSC Hiroshi Doyu
2013-01-08 12:47     ` Hiroshi Doyu
     [not found]     ` <1357649263-1098-6-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-01-08 16:07       ` Marc Zyngier
2013-01-08 16:07         ` Marc Zyngier
     [not found]         ` <50EC444B.5060206-5wv7dgnIgG8@public.gmane.org>
2013-01-08 22:41           ` Stephen Warren
2013-01-08 22:41             ` Stephen Warren
     [not found]             ` <50ECA0A6.4090307-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-01-09  6:00               ` Hiroshi Doyu
2013-01-09  6:00                 ` Hiroshi Doyu
     [not found]                 ` <20130109.080031.1063344100374199123.hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-01-09  6:40                   ` Stephen Warren [this message]
2013-01-09  6:40                     ` Stephen Warren
     [not found]                     ` <50ED10F1.30001-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-01-09  6:55                       ` Hiroshi Doyu
2013-01-09  6:55                         ` Hiroshi Doyu
2013-01-09  5:57           ` Hiroshi Doyu
2013-01-09  5:57             ` Hiroshi Doyu
     [not found]             ` <20130109.075708.1662067562960541635.hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-01-09  7:43               ` Santosh Shilimkar
2013-01-09  7:43                 ` Santosh Shilimkar
2013-01-09  9:01                 ` Marc Zyngier
2013-01-09  9:01                   ` Marc Zyngier
2013-01-10 15:03                   ` Hiroshi Doyu
2013-01-10 15:03                     ` Hiroshi Doyu
     [not found]                     ` <20130110.170300.1995294118512465281.hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-01-10 15:10                       ` Marc Zyngier
2013-01-10 15:10                         ` Marc Zyngier
2013-01-08 12:47   ` [v2 6/9] ARM: dt: tegra114: Add new SoC base, Tegra 114 SoC Hiroshi Doyu
2013-01-08 12:47     ` Hiroshi Doyu
     [not found]     ` <1357649263-1098-7-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-01-08 22:49       ` Stephen Warren
2013-01-08 22:49         ` Stephen Warren
     [not found]         ` <50ECA277.5050907-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-01-10 12:35           ` Hiroshi Doyu
2013-01-10 12:35             ` Hiroshi Doyu
2013-01-08 12:47   ` [v2 7/9] ARM: dt: tegra114: Add new board, Dalmore Hiroshi Doyu
2013-01-08 12:47     ` Hiroshi Doyu
2013-01-08 12:47   ` [v2 8/9] ARM: dt: tegra114: Add new board, Pluto Hiroshi Doyu
2013-01-08 12:47     ` Hiroshi Doyu
2013-01-08 12:47   ` [v2 9/9] ARM: tegra: Add initial support for Tegra 114 SoC Hiroshi Doyu
2013-01-08 12:47     ` Hiroshi Doyu
     [not found]     ` <1357649263-1098-10-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-01-08 22:52       ` Stephen Warren
2013-01-08 22:52         ` 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=50ED10F1.30001@wwwdotorg.org \
    --to=swarren-3lzwwm7+weoh9zmkesr00q@public.gmane.org \
    --cc=hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=marc.zyngier-5wv7dgnIgG8@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.