Thanks. In this case we should stick with clk_m use and add TIMER config into non-T186 places of mach-tegra Kconfig. That should be it.
вт, 31 січ. 2023 р. о 17:17 Thierry Reding <thierry.red...@gmail.com> пише: > > On Fri, Jan 27, 2023 at 10:27:57PM +0200, Svyatoslav R. wrote: > > On 1/27/23 19:15, Thierry Reding wrote: > > > On Fri, Jan 27, 2023 at 09:13:09AM +0200, Svyatoslav Ryhel wrote: > > > > - ARM: tegra: remap clock_osc_freq for all Tegra family > > > > Enum clock_osc_freq was designed to use only with T20. > > > > This patch remaps it to use additional frequencies, added in > > > > T30+ SoC while maintaining backwards compatibility with T20. > > > > > > > > - drivers: timer: add timer driver for ARMv7 based Tegra devices > > > > Add timer support for T20/T30/T114/T124 and T210 based devices. > > > > Driver is based on DM, has device tree support and can be > > > > used on SPL and early boot stage. > > > > > > > > Arm64 Tegra (apart T210) according to comment in tegra-common.h use > > > > architected timer. > > > > > > > > - ARM: tegra: include timer as default option > > > > Enable TIMER as default option for all Tegra devices and > > > > enable TEGRA_TIMER for TEGRA_ARMV7_COMMON and TEGRA210. > > > > Additionally enable SPL_TIMER if build as SPL part and > > > > drop deprecated configs from common header. > > > > > > > > P. S. I have no arm64 Tegra and according to comment in > > > > tegra-common.h > > > > Use the Tegra US timer on ARMv7, but the architected timer on ARMv8. > > > > > > > > --- > > > > Changeog from V6 > > > > - use clk_m as timer calibration clock (this should properly fix T210) > > > > - enable timer for T210 > > > > > > > > Changed from v5: > > > > - added paz00 tester > > > > > > > > Changed from v4: > > > > - added comments > > > > > > > > Changed from v3: > > > > - removed BOOTSTAGE ifdefs > > > > - use early timer on boot stage unconditionally > > > > --- > > > > Svyatoslav Ryhel (3): > > > > ARM: tegra: remap clock_osc_freq for all Tegra family > > > > drivers: timer: add driver for ARMv7 based Tegra devices and T210 > > > > ARM: tegra: include timer as default option > > > > > > > > arch/arm/Kconfig | 1 + > > > > arch/arm/include/asm/arch-tegra/clock.h | 9 +- > > > > arch/arm/mach-tegra/Kconfig | 3 + > > > > arch/arm/mach-tegra/clock.c | 17 +++- > > > > arch/arm/mach-tegra/cpu.c | 70 ++++++++++--- > > > > arch/arm/mach-tegra/tegra114/clock.c | 13 +-- > > > > arch/arm/mach-tegra/tegra124/clock.c | 13 +-- > > > > arch/arm/mach-tegra/tegra20/clock.c | 4 +- > > > > arch/arm/mach-tegra/tegra210/clock.c | 22 +--- > > > > arch/arm/mach-tegra/tegra30/clock.c | 10 +- > > > > drivers/timer/Kconfig | 8 ++ > > > > drivers/timer/Makefile | 1 + > > > > drivers/timer/tegra-timer.c | 130 ++++++++++++++++++++++++ > > > > drivers/usb/host/ehci-tegra.c | 46 +++++++-- > > > > include/configs/tegra-common.h | 6 -- > > > > 15 files changed, 274 insertions(+), 79 deletions(-) > > > > create mode 100644 drivers/timer/tegra-timer.c > > > Ugh... turns out I had completely messed up the testing on Tegra186 and > > > it wasn't working at all. The problem is that the selection of the TIMER > > > symbol for all of Tegra causes the driver model to be used, but there is > > > no DM driver for the architected timer that's used on Tegra186. > > > > > > The quickest fix would be to do this: > > > > > > --- >8 --- > > > diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig > > > index b50eec5b8c9b..05c8ce0e08dd 100644 > > > --- a/arch/arm/mach-tegra/Kconfig > > > +++ b/arch/arm/mach-tegra/Kconfig > > > @@ -56,7 +56,6 @@ config TEGRA_COMMON > > > select MISC > > > select OF_CONTROL > > > select SPI > > > - select TIMER > > > imply CMD_DM > > > imply CRC32_VERIFY > > > @@ -83,6 +82,7 @@ config TEGRA_ARMV7_COMMON > > > select TEGRA_PINCTRL > > > select TEGRA_PMC > > > select TEGRA_TIMER > > > + select TIMER > > > config TEGRA_ARMV8_COMMON > > > bool "Tegra 64-bit common options" > > > @@ -137,6 +137,7 @@ config TEGRA210 > > > select TEGRA_PMC > > > select TEGRA_PMC_SECURE > > > select TEGRA_TIMER > > > + select TIMER > > > config TEGRA186 > > > bool "Tegra186 family" > > > --- >8 --- > > > > > > So basically make TIMER selected on everything except Tegra186, so that > > > on Tegra186 things are basically unmodified. > > > > I can propose to include 'select TIMER' directly into TEGRA_TIMER config > > option. This will eliminate need of including it into mach-tegra Kconfigs. > > TEGRA_TIMER itself depends on TIMER, which is a more correct dependency > given how that's all structured. > > > BTW, may you check current patch set on T124 and T210 if those work > > properly. My T30 devices work fine and same as before after switch to clk_m > > as timer calibration clock. > > With the above on top, the series works fine on Tegra124, Tegra210 and > Tegra186. > > Thierry