[PATCH 02/22] arm: kirkwood: 88f6281: Detect CONFIG_SYS_TCLK from SAR register
Stefan Roese
sr at denx.de
Tue Aug 23 07:02:01 CEST 2022
Hi Michael,
On 17.08.22 21:37, Michael Walle wrote:
> From: Pali Rohár <pali at kernel.org>
>
> Bit 21 in SAR register specifies if TCLK is running at 166 MHz or 200 MHz.
> This information is undocumented in public Marvell Kirkwood Functional
> Specifications [2], but is available in Linux v3.15 kirkwood code [1].
>
> Commit 8ac303d49f89 ("arm: kirkwood: Do not overwrite CONFIG_SYS_TCLK")
> broke support for Marvell 88F6281 SoCs because it was expected that all
> those SoCs have TCLK running at 200 MHz as specified in Marvell 88F6281
> Hardware Specifications [3].
>
> Fix broken support for 88F6281 by detecting CONFIG_SYS_TCLK from SAR
> register, like it was doing Linux v3.15.
>
> [1] - https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/arch/arm/mach-kirkwood/common.c?h=v3.15#n542
> [2] - https://web.archive.org/web/20130730091033/http://www.marvell.com/embedded-processors/kirkwood/assets/FS_88F6180_9x_6281_OpenSource.pdf
> [3] - https://web.archive.org/web/20120620073511/http://www.marvell.com/embedded-processors/kirkwood/assets/HW_88F6281_OpenSource.pdf
>
> Fixes: 8ac303d49f89 ("arm: kirkwood: Do not overwrite CONFIG_SYS_TCLK")
> Signed-off-by: Pali Rohár <pali at kernel.org>
I've applied your patch series on master (from yesterday) and see
these error(s):
$ make ds109_defconfig
$ make -sj
...
In file included from ./arch/arm/include/asm/arch/config.h:18,
from include/configs/mv-common.h:58,
from include/configs/ds109.h:14,
from include/config.h:4,
from include/common.h:16,
from board/Synology/ds109/ds109.c:8:
board/Synology/ds109/ds109.c: In function 'reset_misc':
./arch/arm/include/asm/arch/kw88f6281.h:18:43: warning: implicit
declaration of function 'readl' [-Wimplicit-function-declaration]
18 | #define CONFIG_SYS_TCLK ((readl(CONFIG_SAR_REG)
& BIT(21)) ? \
| ^~~~~
include/configs/mv-common.h:36:41: note: in expansion of macro
'CONFIG_SYS_TCLK'
36 | #define CONFIG_SYS_NS16550_CLK CONFIG_SYS_TCLK
| ^~~~~~~~~~~~~~~
board/Synology/ds109/ds109.c:111:36: note: in expansion of macro
'CONFIG_SYS_NS16550_CLK'
111 | CONFIG_SYS_NS16550_CLK, 9600);
| ^~~~~~~~~~~~~~~~~~~~~~
/opt/kernel.org/gcc-11.1.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-ld.bfd:
board/Synology/ds109/ds109.o: in function `reset_misc':
/home/stefan/git/u-boot/u-boot-marvell/board/Synology/ds109/ds109.c:111:
undefined reference to `readl'
make: *** [Makefile:1823: u-boot] Error 1
Could you please take a look and fix this?
Thanks,
Stefan
> ---
> arch/arm/mach-kirkwood/include/mach/kw88f6281.h | 3 ++-
> arch/arm/mach-kirkwood/include/mach/soc.h | 2 ++
> 2 files changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm/mach-kirkwood/include/mach/kw88f6281.h b/arch/arm/mach-kirkwood/include/mach/kw88f6281.h
> index 87406081cf..f86cd0bb60 100644
> --- a/arch/arm/mach-kirkwood/include/mach/kw88f6281.h
> +++ b/arch/arm/mach-kirkwood/include/mach/kw88f6281.h
> @@ -15,6 +15,7 @@
> #define KW_REGS_PHY_BASE KW88F6281_REGS_PHYS_BASE
>
> /* TCLK Core Clock definition */
> -#define CONFIG_SYS_TCLK 200000000 /* 200MHz */
> +#define CONFIG_SYS_TCLK ((readl(CONFIG_SAR_REG) & BIT(21)) ? \
> + 166666667 : 200000000)
>
> #endif /* _ASM_ARCH_KW88F6281_H */
> diff --git a/arch/arm/mach-kirkwood/include/mach/soc.h b/arch/arm/mach-kirkwood/include/mach/soc.h
> index 1d7f2828cd..5f545c6f43 100644
> --- a/arch/arm/mach-kirkwood/include/mach/soc.h
> +++ b/arch/arm/mach-kirkwood/include/mach/soc.h
> @@ -62,6 +62,8 @@
> #define MVCPU_WIN_ENABLE KWCPU_WIN_ENABLE
> #define MVCPU_WIN_DISABLE KWCPU_WIN_DISABLE
>
> +#define CONFIG_SAR_REG (KW_MPP_BASE + 0x0030)
> +
> #if defined (CONFIG_KW88F6281)
> #include <asm/arch/kw88f6281.h>
> #elif defined (CONFIG_KW88F6192)
Viele Grüße,
Stefan Roese
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr at denx.de
More information about the U-Boot
mailing list