[U-Boot] [PATCH 04/10] dm: timer: Support 64-bit counter

Thomas Chou
2015-11-06T22:40:53Z

Hi Bin,

On 2015?11?06? 22:35, Bin Meng wrote:
> Hi Thomas,
>
> On Fri, Nov 6, 2015 at 3:14 PM, Thomas Chou <thomas@wytron.com.tw> wrote:
>> Hi Bin,
>>
>> On 2015?11?05? 22:02, Bin Meng wrote:
>>>
>>> There are timers with a 64-bit counter value but current timer
>>> uclass driver assumes a 32-bit one. Introduce a device tree
>>> property "counter-64bit", and modify timer_get_count() in the
>>> timer uclass driver to handle the 32-bit/64-bit conversion
>>> automatically.
>>>
>>> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
>>> ---
>>
>>
>> Thanks a lot. I tested patches [1-4] on nios2 boards with "ut time" and
>> "sleep". It works fine.
>>
>> I would suggest that we do not need the additional "counter-64bit" property
>> by requiring the timer always return 64 bits count. We can provide an inline
>> func to do the 32/64 conversion for all 32 bits timers.
>>
>
> Do you mean we move the following codes:
>
> + /* increment tbh if tbl has rolled over */
> + if (now < gd->timebase_l)
> + gd->timebase_h++;
> + gd->timebase_l = now;
> + *count = ((u64)gd->timebase_h << 32) | gd->timebase_l;
>
> to an inline function, to have 32-bit timer driver to call this inline
> function in their get_count() op?
>
> This looks duplicate to me.

Yes. If we want to support 64 bits count, it should be the driver's
responsibility to return 64 bits count. It would be more natural than
adding a property to tell the uclass to to the conversion. The
"duplicate" you mentioned could be an alternative to the "counter-64bit"
addition. I believe 64 bits hardware counter will become more popular in
the future.

Best regards,
Thomas