[PATCH v3 4/8] drivers: arm_architected_timer: refactor for pbl compatibility
Stefan Kerkmann
s.kerkmann at pengutronix.de
Thu Aug 20 01:07:51 PDT 2026
Hi Sascha,
On 8/20/26 10:00, Sascha Hauer wrote:
> On 2026-08-20 09:32, Stefan Kerkmann wrote:
>>>> diff --git a/drivers/clocksource/arm_architected_timer.c b/drivers/clocksource/arm_architected_timer.c
>>>> index daced94c0e..ea5f5b8e05 100644
>>>> --- a/drivers/clocksource/arm_architected_timer.c
>>>> +++ b/drivers/clocksource/arm_architected_timer.c
>>>> @@ -9,6 +9,7 @@
>>>> #include <linux/clk.h>
>>>> #include <io.h>
>>>> #include <asm/system.h>
>>>> +#include <asm/hardware/arm_architected_timer.h>
>>>>
>>>> static uint64_t arm_arch_clocksource_read(void)
>>>> {
>>>> @@ -22,22 +23,29 @@ static struct clocksource cs = {
>>>> .priority = 70,
>>>> };
>>>>
>>>> -static int arm_arch_timer_probe(struct device *dev)
>>>> +int arm_arch_timer_init(uint64_t cntfrq)
>>>> {
>>>> - u32 cntfrq;
>>>> - int ret;
>>>> -
>>>> - /* Some platforms don't set CNTFRQ_EL0 before barebox */
>>>> - ret = of_property_read_u32(dev->of_node, "clock-frequency", &cntfrq);
>>>> -
>>>> - if (ret)
>>>> + if (!cntfrq)
>>>> cntfrq = get_cntfrq();
>>>
>>> I wonder if we should just drop the cntfrq argument. All users call
>>> set_cntfrq() before calling this, so get_cntfrq() should return the
>>> correct value and we can rely on it.
>>>
>>
>> Maybe keep the argument and use set_cntfrq in arm_arch_timer_init if the
>> argument is !=0? Then arm_arch_timer_init is the function to use if a C
>> environment is available? This would prevent any inconsistency.
>
> I am not sure, but set_cntfrq() might only be usable in EL3, so you
> would have to be careful about the exception level when calling
> arm_arch_timer_init() with a non zero argument.
>
Yes, it would have to be guarded by an el3 check.
> Sascha
>
Best regards,
Stefan
--
Pengutronix e.K. | Stefan Kerkmann |
Steuerwalder Str. 21 | https://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-128 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-9 |
More information about the barebox
mailing list