2022-03-01 11:29:11

by Daniel Palmer

[permalink] [raw]
Subject: [PATCH] ARM: mstar: Select HAVE_ARM_ARCH_TIMER

The mstar SoCs have an arch timer but HAVE_ARM_ARCH_TIMER wasn't
selected. If MSC313E_TIMER isn't selected then the kernel gets
stuck at boot because there are no timers available.

Signed-off-by: Daniel Palmer <[email protected]>
---

I moved one of my CI builds from a 5.16 based tree to a 5.17
based one and it stopped booting. At some point I had broken my DTB
so the MStar timer wasn't getting probed anymore and at
the same time the arch timer driver wasn't getting built in.
I'm not entirely sure why the arch timer driver was built
before but isn't now. Anyhow, all of the other ARMv7 machines
seem to do this so I guess it's right.

Arnd/Olof, please apply directly if acceptable. Maybe this should
be in 5.17 as a fix?

arch/arm/mach-mstar/Kconfig | 1 +
1 file changed, 1 insertion(+)

diff --git a/arch/arm/mach-mstar/Kconfig b/arch/arm/mach-mstar/Kconfig
index cd300eeedc20..0bf4d312bcfd 100644
--- a/arch/arm/mach-mstar/Kconfig
+++ b/arch/arm/mach-mstar/Kconfig
@@ -3,6 +3,7 @@ menuconfig ARCH_MSTARV7
depends on ARCH_MULTI_V7
select ARM_GIC
select ARM_HEAVY_MB
+ select HAVE_ARM_ARCH_TIMER
select MST_IRQ
select MSTAR_MSC313_MPLL
help
--
2.35.1


2022-03-04 20:14:36

by Romain Perier

[permalink] [raw]
Subject: Re: [PATCH] ARM: mstar: Select HAVE_ARM_ARCH_TIMER

Hi all,

Interesting, when I wrote the patch for msc313e-timer, I always had
ARCH_ARM_TIMER implicitly built, so I thought that it was implicitly
selected by MULTI_V7...
I agree that we should at least have ARM_ARCH_TIMER enabled, otherwise
we won't being able to boot correctly (no clockevents)

I have also noticed that we missed this commit
https://github.com/linux-chenxing/linux/commit/4cf42fcb4618cd77d80f767d5524c32fb40a91c6
(that selects MSC313E_TIMER), which might explain your initial issue
(not being to boot).

MSC313E_TIMER being optional on ARM (because of ARM_ARCH_TIMER), we
should be sure that arm_timer is enabled and we can keep the mstar
timer optional, imho.

What do you think ?

Romain

Le mar. 1 mars 2022 à 11:44, Daniel Palmer <[email protected]> a écrit :
>
> The mstar SoCs have an arch timer but HAVE_ARM_ARCH_TIMER wasn't
> selected. If MSC313E_TIMER isn't selected then the kernel gets
> stuck at boot because there are no timers available.
>
> Signed-off-by: Daniel Palmer <[email protected]>
> ---
>
> I moved one of my CI builds from a 5.16 based tree to a 5.17
> based one and it stopped booting. At some point I had broken my DTB
> so the MStar timer wasn't getting probed anymore and at
> the same time the arch timer driver wasn't getting built in.
> I'm not entirely sure why the arch timer driver was built
> before but isn't now. Anyhow, all of the other ARMv7 machines
> seem to do this so I guess it's right.
>
> Arnd/Olof, please apply directly if acceptable. Maybe this should
> be in 5.17 as a fix?
>
> arch/arm/mach-mstar/Kconfig | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/arch/arm/mach-mstar/Kconfig b/arch/arm/mach-mstar/Kconfig
> index cd300eeedc20..0bf4d312bcfd 100644
> --- a/arch/arm/mach-mstar/Kconfig
> +++ b/arch/arm/mach-mstar/Kconfig
> @@ -3,6 +3,7 @@ menuconfig ARCH_MSTARV7
> depends on ARCH_MULTI_V7
> select ARM_GIC
> select ARM_HEAVY_MB
> + select HAVE_ARM_ARCH_TIMER
> select MST_IRQ
> select MSTAR_MSC313_MPLL
> help
> --
> 2.35.1
>