Re: [PATCH net v4] net: ethernet: ti: Remove TI_CPTS_MOD workaround

From: Grygorii Strashko
Date: Tue May 12 2020 - 10:34:56 EST




On 12/05/2020 17:22, Tony Lindgren wrote:
Hi,

* Grygorii Strashko <grygorii.strashko@xxxxxx> [200512 10:03]:
From: Clay McClure <clay@xxxxxxxxxxx>

My recent commit b6d49cab44b5 ("net: Make PTP-specific drivers depend on
PTP_1588_CLOCK") exposes a missing dependency in defconfigs that select
TI_CPTS without selecting PTP_1588_CLOCK, leading to linker errors of the
form:

drivers/net/ethernet/ti/cpsw.o: in function `cpsw_ndo_stop':
cpsw.c:(.text+0x680): undefined reference to `cpts_unregister'
...

That's because TI_CPTS_MOD (which is the symbol gating the _compilation_ of
cpts.c) now depends on PTP_1588_CLOCK, and so is not enabled in these
configurations, but TI_CPTS (which is the symbol gating _calls_ to the cpts
functions) _is_ enabled. So we end up compiling calls to functions that
don't exist, resulting in the linker errors.

This patch fixes build errors and restores previous behavior by:
- ensure PTP_1588_CLOCK=y in TI specific configs and CPTS will be built
- remove TI_CPTS_MOD and, instead, add dependencies from CPTS in
TI_CPSW/TI_KEYSTONE_NETCP/TI_CPSW_SWITCHDEV as below:

config TI_CPSW_SWITCHDEV
...
depends on TI_CPTS || !TI_CPTS

which will ensure proper dependencies PTP_1588_CLOCK -> TI_CPTS ->
TI_CPSW/TI_KEYSTONE_NETCP/TI_CPSW_SWITCHDEV and build type selection.

Note. For NFS boot + CPTS all of above configs have to be built-in.

This builds and boots on BBB and beagle x15 with NFSroot so:

Tested-by: Tony Lindgren <tony@xxxxxxxxxxx>


Thank you for testing.

However, there's at least one more issue left that shows up at least
on ti81xx dra62x-j5eco-evm on v5.7-rc5 that has commit b46b2b7ba6e1
("ARM: dts: Fix dm814x Ethernet by changing to use rgmii-id mode").

I think this is a different issue though, any ideas?


This seems like completely different issue.
Could we have separate thread started for this, pls?

--
Best regards,
grygorii