[PATCH 02/22] arm: kirkwood: 88f6281: Detect CONFIG_SYS_TCLK from SAR register
michael at walle.cc
michael at walle.cc
Tue Aug 23 10:24:10 CEST 2022
Am 2022-08-23 10:17, schrieb michael at walle.cc:
> Am 2022-08-23 07:02, schrieb Stefan Roese:
>> 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?
>
> I guess soc.h should also include <asm/io.h> because now it is
> using that hidden readl().
..which isn't working because it somehow finds its way to the
hosttools. Hum.
In the meantime, Stefan, could you just drop patch 1 and 2 and still
take this series. The rest of the series doesn't really depend
on them. lschlv2 will just be broken until the TCLK issue is fixed.
This way, I don't have to repost all the patches.
-michael
More information about the U-Boot
mailing list