mbox series

[net-next,v6,00/11] net: ethernet: ti: add networking support for k3 am65x/j721e soc

Message ID 20200323225254.12759-1-grygorii.strashko@ti.com
Headers show
Series net: ethernet: ti: add networking support for k3 am65x/j721e soc | expand

Message

Grygorii Strashko March 23, 2020, 10:52 p.m. UTC
Hi

This v6 series adds basic networking support support TI K3 AM654x/J721E SoC which
have integrated Gigabit Ethernet MAC (Media Access Controller) into device MCU
domain and named MCU_CPSW0 (CPSW2G NUSS).

Formally TRMs refer CPSW2G NUSS as two-port Gigabit Ethernet Switch subsystem
with port 0 being the CPPI DMA host port and port 1 being the external Ethernet
port, but for 1 external port device it's just Port 0 <-> ALE <-> Port 1 and it's
rather device with HW filtering capabilities then actually switching device.
It's expected to have similar devices, but with more external ports.

The new Host port 0 Communications Port Programming Interface (CPPI5) is
operating by TI AM654x/J721E NAVSS Unified DMA Peripheral Root Complex (UDMA-P)
controller [1].

The CPSW2G contains below modules for which existing code is re-used:
 - MAC SL: cpsw_sl.c
 - Address Lookup Engine (ALE): cpsw_ale.c, basically compatible with K2 66AK2E/G
 - Management Data Input/Output interface (MDIO): davinci_mdio.c, fully 
   compatible with TI AM3/4/5 devices

Basic features supported by CPSW2G NUSS driver:
 - VLAN support, 802.1Q compliant, Auto add port VLAN for untagged frames on
   ingress, Auto VLAN removal on egress and auto pad to minimum frame size.
 - multicast filtering
 - promisc mode
 - TX multiq support in Round Robin or Fixed priority modes
 - RX checksum offload for non-fragmented IPv4/IPv6 TCP/UDP packets
 - TX checksum offload support for IPv4/IPv6 TCP/UDP packets (J721E only).

Features under development:
 - Support for IEEE 1588 Clock Synchronization. The CPSW2G NUSS includes new
   version of Common Platform Time Sync (CPTS)
 - tc-mqprio: priority level Quality Of Service (QOS) support (802.1p)
 - tc-cbs: Support for Audio/Video Bridging (P802.1Qav/D6.0) HW shapers
 - tc-taprio: IEEE 802.1Qbv/D2.2 Enhancements for Scheduled Traffic
 - frame preemption: IEEE P902.3br/D2.0 Interspersing Express Traffic, 802.1Qbu
 - extended ALE features: classifier/policers, auto-aging

Patches 1-6 are intended for netdev, Patches 7-11 are intended for K3 Platform
tree and provided here for testing purposes.

Changes in v6:
 - fixed comments from Rob Herring <robh@kernel.org> and added his Reviewed-by.
 - added Tested-by: Peter Ujfalusi <peter.ujfalusi@ti.com>

Changes in v5:
 - renamed files k3-udma-desc-pool.*  k3-udma-desc-pool to k3-cppi-desc-pool.*,
   and API to k3_cppi_desc_pool_* as requested by Peter Ujfalusi <peter.ujfalusi@ti.com>
 - fixed copy-paste err in am65_cpsw_nuss_ndo_slave_set_rx_mode() which blocked
   recieving of mcast frames.
 - added Tested-by: Murali Karicheri <m-karicheri2@ti.com> 

Changes in v4:
 - fixed minor comments from Jakub Kicinski <kuba@kernel.org>
 - dependencies resolved: required phy-rmii-sel changes [2] queued for merge
   except one [3] which is included in this series with Kishon's ask.

Changes in v3:
 - add ARM64 defconfig changes for testing purposes
 - fixed DT yaml definition
 - fixed comments from Jakub Kicinski <kuba@kernel.org>

Changes in v2:
 - fixed DT yaml definition
 - fixed comments from David Miller

v5: https://patchwork.ozlabs.org/cover/1258295/
v4: https://patchwork.ozlabs.org/cover/1256092/
v3: https://patchwork.ozlabs.org/cover/1254568/
v2: https://patchwork.ozlabs.org/cover/1250674/
v1: https://lwn.net/Articles/813087/

TRMs:
 AM654: http://www.ti.com/lit/ug/spruid7e/spruid7e.pdf
 J721E: http://www.ti.com/lit/ug/spruil1a/spruil1a.pdf

Preliminary documentation can be found at:
 http://software-dl.ti.com/processor-sdk-linux/esd/docs/latest/linux/Foundational_Components/Kernel/Kernel_Drivers/Network/K3_CPSW2g.html

[1] https://lwn.net/Articles/808030/
[2] https://lkml.org/lkml/2020/2/22/100
[3] https://lkml.org/lkml/2020/3/3/724

Grygorii Strashko (11):
  phy: ti: gmii-sel: simplify config dependencies between net drivers
    and gmii phy
  net: ethernet: ti: ale: fix seeing unreg mcast packets with promisc
    and allmulti disabled
  net: ethernet: ti: ale: add support for mac-only mode
  net: ethernet: ti: ale: am65: add support for default thread cfg
  dt-binding: ti: am65x: document mcu cpsw nuss
  net: ethernet: ti: introduce am65x/j721e gigabit eth subsystem driver
  arm64: dts: ti: k3-am65-mcu: add cpsw nuss node
  arm64: dts: k3-am654-base-board: add mcu cpsw nuss pinmux and phy defs
  arm64: dts: ti: k3-j721e-mcu: add mcu cpsw nuss node
  arm64: dts: ti: k3-j721e-common-proc-board: add mcu cpsw nuss pinmux
    and phy defs
  arm64: defconfig: ti: k3: enable dma and networking

 .../bindings/net/ti,k3-am654-cpsw-nuss.yaml   |  225 ++
 arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi       |   49 +
 arch/arm64/boot/dts/ti/k3-am65.dtsi           |    1 +
 .../arm64/boot/dts/ti/k3-am654-base-board.dts |   42 +
 .../dts/ti/k3-j721e-common-proc-board.dts     |   43 +
 .../boot/dts/ti/k3-j721e-mcu-wakeup.dtsi      |   49 +
 arch/arm64/boot/dts/ti/k3-j721e.dtsi          |    1 +
 arch/arm64/configs/defconfig                  |    3 +
 drivers/net/ethernet/ti/Kconfig               |   20 +-
 drivers/net/ethernet/ti/Makefile              |    3 +
 drivers/net/ethernet/ti/am65-cpsw-ethtool.c   |  747 +++++++
 drivers/net/ethernet/ti/am65-cpsw-nuss.c      | 1965 +++++++++++++++++
 drivers/net/ethernet/ti/am65-cpsw-nuss.h      |  142 ++
 drivers/net/ethernet/ti/cpsw_ale.c            |   38 +
 drivers/net/ethernet/ti/cpsw_ale.h            |    4 +
 drivers/net/ethernet/ti/k3-cppi-desc-pool.c   |  126 ++
 drivers/net/ethernet/ti/k3-cppi-desc-pool.h   |   30 +
 drivers/phy/ti/Kconfig                        |    3 -
 18 files changed, 3486 insertions(+), 5 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/net/ti,k3-am654-cpsw-nuss.yaml
 create mode 100644 drivers/net/ethernet/ti/am65-cpsw-ethtool.c
 create mode 100644 drivers/net/ethernet/ti/am65-cpsw-nuss.c
 create mode 100644 drivers/net/ethernet/ti/am65-cpsw-nuss.h
 create mode 100644 drivers/net/ethernet/ti/k3-cppi-desc-pool.c
 create mode 100644 drivers/net/ethernet/ti/k3-cppi-desc-pool.h

Comments

David Miller March 27, 2020, 3:01 a.m. UTC | #1
From: Grygorii Strashko <grygorii.strashko@ti.com>
Date: Tue, 24 Mar 2020 00:52:43 +0200

> This v6 series adds basic networking support support TI K3 AM654x/J721E SoC which
> have integrated Gigabit Ethernet MAC (Media Access Controller) into device MCU
> domain and named MCU_CPSW0 (CPSW2G NUSS).
 ...

Series applied, thank you.
Vladimir Oltean March 28, 2020, 1:53 a.m. UTC | #2
Hi David,

On Fri, 27 Mar 2020 at 05:02, David Miller <davem@davemloft.net> wrote:
>
> From: Grygorii Strashko <grygorii.strashko@ti.com>
> Date: Tue, 24 Mar 2020 00:52:43 +0200
>
> > This v6 series adds basic networking support support TI K3 AM654x/J721E SoC which
> > have integrated Gigabit Ethernet MAC (Media Access Controller) into device MCU
> > domain and named MCU_CPSW0 (CPSW2G NUSS).
>  ...
>
> Series applied, thank you.

The build is now broken on net-next:

arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi:303.23-309.6: ERROR
(phandle_references):
/interconnect@100000/interconnect@28380000/ethernet@46000000/ethernet-ports/port@1:
Reference to non-existent node
or label "mcu_conf"

  also defined at
arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts:471.13-474.3
arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi:303.23-309.6: ERROR
(phandle_references):
/interconnect@100000/interconnect@28380000/ethernet@46000000/ethernet-ports/port@1:
Reference to non-existent node
or label "phy_gmii_sel"

  also defined at
arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts:471.13-474.3

As Grygorii said:

Patches 1-6 are intended for netdev, Patches 7-11 are intended for K3 Platform
tree and provided here for testing purposes.

Regards,
-Vladimir
Tero Kristo March 30, 2020, 7:15 a.m. UTC | #3
On 28/03/2020 03:53, Vladimir Oltean wrote:
> Hi David,
> 
> On Fri, 27 Mar 2020 at 05:02, David Miller <davem@davemloft.net> wrote:
>>
>> From: Grygorii Strashko <grygorii.strashko@ti.com>
>> Date: Tue, 24 Mar 2020 00:52:43 +0200
>>
>>> This v6 series adds basic networking support support TI K3 AM654x/J721E SoC which
>>> have integrated Gigabit Ethernet MAC (Media Access Controller) into device MCU
>>> domain and named MCU_CPSW0 (CPSW2G NUSS).
>>   ...
>>
>> Series applied, thank you.
> 
> The build is now broken on net-next:
> 
> arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi:303.23-309.6: ERROR
> (phandle_references):
> /interconnect@100000/interconnect@28380000/ethernet@46000000/ethernet-ports/port@1:
> Reference to non-existent node
> or label "mcu_conf"
> 
>    also defined at
> arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts:471.13-474.3
> arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi:303.23-309.6: ERROR
> (phandle_references):
> /interconnect@100000/interconnect@28380000/ethernet@46000000/ethernet-ports/port@1:
> Reference to non-existent node
> or label "phy_gmii_sel"
> 
>    also defined at
> arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts:471.13-474.3
> 
> As Grygorii said:
> 
> Patches 1-6 are intended for netdev, Patches 7-11 are intended for K3 Platform
> tree and provided here for testing purposes.

Yeah, I think you are missing a dependency that was applied via the K3 
branch earlier. They are in linux-next now, but I am not so sure how 
much that is going to help you.

You could just drop the DT patches from this merge and let me apply them 
via the platform branch.

-Tero
--
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
Sekhar Nori March 30, 2020, 7:36 a.m. UTC | #4
On 30/03/20 12:45 PM, Tero Kristo wrote:
> On 28/03/2020 03:53, Vladimir Oltean wrote:
>> Hi David,
>>
>> On Fri, 27 Mar 2020 at 05:02, David Miller <davem@davemloft.net> wrote:
>>>
>>> From: Grygorii Strashko <grygorii.strashko@ti.com>
>>> Date: Tue, 24 Mar 2020 00:52:43 +0200
>>>
>>>> This v6 series adds basic networking support support TI K3
>>>> AM654x/J721E SoC which
>>>> have integrated Gigabit Ethernet MAC (Media Access Controller) into
>>>> device MCU
>>>> domain and named MCU_CPSW0 (CPSW2G NUSS).
>>>   ...
>>>
>>> Series applied, thank you.
>>
>> The build is now broken on net-next:
>>
>> arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi:303.23-309.6: ERROR
>> (phandle_references):
>> /interconnect@100000/interconnect@28380000/ethernet@46000000/ethernet-ports/port@1:
>>
>> Reference to non-existent node
>> or label "mcu_conf"
>>
>>    also defined at
>> arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts:471.13-474.3
>> arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi:303.23-309.6: ERROR
>> (phandle_references):
>> /interconnect@100000/interconnect@28380000/ethernet@46000000/ethernet-ports/port@1:
>>
>> Reference to non-existent node
>> or label "phy_gmii_sel"
>>
>>    also defined at
>> arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts:471.13-474.3
>>
>> As Grygorii said:
>>
>> Patches 1-6 are intended for netdev, Patches 7-11 are intended for K3
>> Platform
>> tree and provided here for testing purposes.
> 
> Yeah, I think you are missing a dependency that was applied via the K3
> branch earlier. They are in linux-next now, but I am not so sure how
> much that is going to help you.
> 
> You could just drop the DT patches from this merge and let me apply them
> via the platform branch.

One other option would be that Dave merges your K3 tag which was sent to
ARM SoC to net-next. Its based on v5.6-rc1, has no other dependencies,
is already in linux-next, should be immutable and safe to merge. This
has the advantage that no rebase is necessary on net-next.

git://git.kernel.org/pub/scm/linux/kernel/git/kristo/linux
tags/ti-k3-soc-for-v5.7

+ ARM SoC maintainers for their information and any advise.

Thanks,
Sekhar
Sekhar Nori March 30, 2020, 8:28 a.m. UTC | #5
On 30/03/20 1:06 PM, Sekhar Nori wrote:
> On 30/03/20 12:45 PM, Tero Kristo wrote:
>> On 28/03/2020 03:53, Vladimir Oltean wrote:
>>> Hi David,
>>>
>>> On Fri, 27 Mar 2020 at 05:02, David Miller <davem@davemloft.net> wrote:
>>>>
>>>> From: Grygorii Strashko <grygorii.strashko@ti.com>
>>>> Date: Tue, 24 Mar 2020 00:52:43 +0200
>>>>
>>>>> This v6 series adds basic networking support support TI K3
>>>>> AM654x/J721E SoC which
>>>>> have integrated Gigabit Ethernet MAC (Media Access Controller) into
>>>>> device MCU
>>>>> domain and named MCU_CPSW0 (CPSW2G NUSS).
>>>>   ...
>>>>
>>>> Series applied, thank you.
>>>
>>> The build is now broken on net-next:
>>>
>>> arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi:303.23-309.6: ERROR
>>> (phandle_references):
>>> /interconnect@100000/interconnect@28380000/ethernet@46000000/ethernet-ports/port@1:
>>>
>>> Reference to non-existent node
>>> or label "mcu_conf"
>>>
>>>    also defined at
>>> arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts:471.13-474.3
>>> arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi:303.23-309.6: ERROR
>>> (phandle_references):
>>> /interconnect@100000/interconnect@28380000/ethernet@46000000/ethernet-ports/port@1:
>>>
>>> Reference to non-existent node
>>> or label "phy_gmii_sel"
>>>
>>>    also defined at
>>> arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts:471.13-474.3
>>>
>>> As Grygorii said:
>>>
>>> Patches 1-6 are intended for netdev, Patches 7-11 are intended for K3
>>> Platform
>>> tree and provided here for testing purposes.
>>
>> Yeah, I think you are missing a dependency that was applied via the K3
>> branch earlier. They are in linux-next now, but I am not so sure how
>> much that is going to help you.
>>
>> You could just drop the DT patches from this merge and let me apply them
>> via the platform branch.
> 
> One other option would be that Dave merges your K3 tag which was sent to
> ARM SoC to net-next. Its based on v5.6-rc1, has no other dependencies,
> is already in linux-next, should be immutable and safe to merge. This
> has the advantage that no rebase is necessary on net-next.
> 
> git://git.kernel.org/pub/scm/linux/kernel/git/kristo/linux
> tags/ti-k3-soc-for-v5.7

FWIW, I was able to reproduce the build failure reported by Vladimir on
net-next, merge Tero's tag (above) cleanly into it, and see that ARM64
defconfig build on net-next succeeds after the merge.

Thanks,
Sekhar
Grygorii Strashko March 30, 2020, 6:14 p.m. UTC | #6
Hi

On 30/03/2020 11:28, Sekhar Nori wrote:
> On 30/03/20 1:06 PM, Sekhar Nori wrote:
>> On 30/03/20 12:45 PM, Tero Kristo wrote:
>>> On 28/03/2020 03:53, Vladimir Oltean wrote:
>>>> Hi David,
>>>>
>>>> On Fri, 27 Mar 2020 at 05:02, David Miller <davem@davemloft.net> wrote:
>>>>>
>>>>> From: Grygorii Strashko <grygorii.strashko@ti.com>
>>>>> Date: Tue, 24 Mar 2020 00:52:43 +0200
>>>>>
>>>>>> This v6 series adds basic networking support support TI K3
>>>>>> AM654x/J721E SoC which
>>>>>> have integrated Gigabit Ethernet MAC (Media Access Controller) into
>>>>>> device MCU
>>>>>> domain and named MCU_CPSW0 (CPSW2G NUSS).
>>>>>    ...
>>>>>
>>>>> Series applied, thank you.
>>>>
>>>> The build is now broken on net-next:
>>>>
>>>> arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi:303.23-309.6: ERROR
>>>> (phandle_references):
>>>> /interconnect@100000/interconnect@28380000/ethernet@46000000/ethernet-ports/port@1:
>>>>
>>>> Reference to non-existent node
>>>> or label "mcu_conf"
>>>>
>>>>     also defined at
>>>> arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts:471.13-474.3
>>>> arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi:303.23-309.6: ERROR
>>>> (phandle_references):
>>>> /interconnect@100000/interconnect@28380000/ethernet@46000000/ethernet-ports/port@1:
>>>>
>>>> Reference to non-existent node
>>>> or label "phy_gmii_sel"
>>>>
>>>>     also defined at
>>>> arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts:471.13-474.3
>>>>
>>>> As Grygorii said:
>>>>
>>>> Patches 1-6 are intended for netdev, Patches 7-11 are intended for K3
>>>> Platform
>>>> tree and provided here for testing purposes.
>>>
>>> Yeah, I think you are missing a dependency that was applied via the K3
>>> branch earlier. They are in linux-next now, but I am not so sure how
>>> much that is going to help you.
>>>
>>> You could just drop the DT patches from this merge and let me apply them
>>> via the platform branch.
>>
>> One other option would be that Dave merges your K3 tag which was sent to
>> ARM SoC to net-next. Its based on v5.6-rc1, has no other dependencies,
>> is already in linux-next, should be immutable and safe to merge. This
>> has the advantage that no rebase is necessary on net-next.
>>
>> git://git.kernel.org/pub/scm/linux/kernel/git/kristo/linux
>> tags/ti-k3-soc-for-v5.7
> 
> FWIW, I was able to reproduce the build failure reported by Vladimir on
> net-next, merge Tero's tag (above) cleanly into it, and see that ARM64
> defconfig build on net-next succeeds after the merge.

Thank you Sekhar for checking this.

I'm very sorry for introducing this issue. I've tried hard to avoid such issue,
but still missed it (probably I have had to drop DT patches from last submission
and send them separately).

Sorry again.
Vladimir Oltean April 1, 2020, 6:27 p.m. UTC | #7
Hi David,

On Mon, 30 Mar 2020 at 21:14, Grygorii Strashko
<grygorii.strashko@ti.com> wrote:
>
> Hi
>
> On 30/03/2020 11:28, Sekhar Nori wrote:
> > On 30/03/20 1:06 PM, Sekhar Nori wrote:
> >> On 30/03/20 12:45 PM, Tero Kristo wrote:
> >>> On 28/03/2020 03:53, Vladimir Oltean wrote:
> >>>> Hi David,
> >>>>
> >>>> On Fri, 27 Mar 2020 at 05:02, David Miller <davem@davemloft.net> wrote:
> >>>>>
> >>>>> From: Grygorii Strashko <grygorii.strashko@ti.com>
> >>>>> Date: Tue, 24 Mar 2020 00:52:43 +0200
> >>>>>
> >>>>>> This v6 series adds basic networking support support TI K3
> >>>>>> AM654x/J721E SoC which
> >>>>>> have integrated Gigabit Ethernet MAC (Media Access Controller) into
> >>>>>> device MCU
> >>>>>> domain and named MCU_CPSW0 (CPSW2G NUSS).
> >>>>>    ...
> >>>>>
> >>>>> Series applied, thank you.
> >>>>
> >>>> The build is now broken on net-next:
> >>>>
> >>>> arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi:303.23-309.6: ERROR
> >>>> (phandle_references):
> >>>> /interconnect@100000/interconnect@28380000/ethernet@46000000/ethernet-ports/port@1:
> >>>>
> >>>> Reference to non-existent node
> >>>> or label "mcu_conf"
> >>>>
> >>>>     also defined at
> >>>> arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts:471.13-474.3
> >>>> arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi:303.23-309.6: ERROR
> >>>> (phandle_references):
> >>>> /interconnect@100000/interconnect@28380000/ethernet@46000000/ethernet-ports/port@1:
> >>>>
> >>>> Reference to non-existent node
> >>>> or label "phy_gmii_sel"
> >>>>
> >>>>     also defined at
> >>>> arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts:471.13-474.3
> >>>>
> >>>> As Grygorii said:
> >>>>
> >>>> Patches 1-6 are intended for netdev, Patches 7-11 are intended for K3
> >>>> Platform
> >>>> tree and provided here for testing purposes.
> >>>
> >>> Yeah, I think you are missing a dependency that was applied via the K3
> >>> branch earlier. They are in linux-next now, but I am not so sure how
> >>> much that is going to help you.
> >>>
> >>> You could just drop the DT patches from this merge and let me apply them
> >>> via the platform branch.
> >>
> >> One other option would be that Dave merges your K3 tag which was sent to
> >> ARM SoC to net-next. Its based on v5.6-rc1, has no other dependencies,
> >> is already in linux-next, should be immutable and safe to merge. This
> >> has the advantage that no rebase is necessary on net-next.
> >>
> >> git://git.kernel.org/pub/scm/linux/kernel/git/kristo/linux
> >> tags/ti-k3-soc-for-v5.7
> >
> > FWIW, I was able to reproduce the build failure reported by Vladimir on
> > net-next, merge Tero's tag (above) cleanly into it, and see that ARM64
> > defconfig build on net-next succeeds after the merge.
>
> Thank you Sekhar for checking this.
>
> I'm very sorry for introducing this issue. I've tried hard to avoid such issue,
> but still missed it (probably I have had to drop DT patches from last submission
> and send them separately).
>
> Sorry again.
>
> --
> Best regards,
> grygorii

I think the ARM64 build is now also broken on Linus' master branch,
after the net-next merge? I am not quite sure if the device tree
patches were supposed to land in mainline the way they did.

Thanks,
-Vladimir
David Miller April 1, 2020, 6:36 p.m. UTC | #8
From: Vladimir Oltean <olteanv@gmail.com>
Date: Wed, 1 Apr 2020 21:27:04 +0300

> I think the ARM64 build is now also broken on Linus' master branch,
> after the net-next merge? I am not quite sure if the device tree
> patches were supposed to land in mainline the way they did.

There's a fix in my net tree and it will go to Linus soon.

There is no clear policy for dt change integration, and honestly
I try to deal with the situation on a case by case basis.
Nick Desaulniers April 1, 2020, 10:35 p.m. UTC | #9
>> I think the ARM64 build is now also broken on Linus' master branch,
>> after the net-next merge? I am not quite sure if the device tree
>> patches were supposed to land in mainline the way they did.
>
>There's a fix in my net tree and it will go to Linus soon.
>
>There is no clear policy for dt change integration, and honestly
>I try to deal with the situation on a case by case basis.

Yep, mainline aarch64-linux-gnu- builds are totally hosed.  DTC fails the build
very early on:
https://travis-ci.com/github/ClangBuiltLinux/continuous-integration/jobs/311246218
https://travis-ci.com/github/ClangBuiltLinux/continuous-integration/jobs/311246270
There was no failure in -next, not sure how we skipped our canary in the coal
mine.
Will Deacon April 2, 2020, 9:42 a.m. UTC | #10
On Wed, Apr 01, 2020 at 03:35:00PM -0700, Nick Desaulniers wrote:
> >> I think the ARM64 build is now also broken on Linus' master branch,
> >> after the net-next merge? I am not quite sure if the device tree
> >> patches were supposed to land in mainline the way they did.
> >
> >There's a fix in my net tree and it will go to Linus soon.
> >
> >There is no clear policy for dt change integration, and honestly
> >I try to deal with the situation on a case by case basis.
> 
> Yep, mainline aarch64-linux-gnu- builds are totally hosed.  DTC fails the build
> very early on:
> https://travis-ci.com/github/ClangBuiltLinux/continuous-integration/jobs/311246218
> https://travis-ci.com/github/ClangBuiltLinux/continuous-integration/jobs/311246270
> There was no failure in -next, not sure how we skipped our canary in the coal
> mine.

Yes, one of the things linux-next does a really good job at catching is
build breakage so it would've been nice to have seen this there rather
than end up with breakage in Linus' tree :(

Was the timing just bad, or are we missing DT coverage or something else?

Will
Grygorii Strashko April 2, 2020, 11:05 a.m. UTC | #11
On 02/04/2020 12:42, Will Deacon wrote:
> On Wed, Apr 01, 2020 at 03:35:00PM -0700, Nick Desaulniers wrote:
>>>> I think the ARM64 build is now also broken on Linus' master branch,
>>>> after the net-next merge? I am not quite sure if the device tree
>>>> patches were supposed to land in mainline the way they did.
>>>
>>> There's a fix in my net tree and it will go to Linus soon.
>>>
>>> There is no clear policy for dt change integration, and honestly
>>> I try to deal with the situation on a case by case basis.
>>
>> Yep, mainline aarch64-linux-gnu- builds are totally hosed.  DTC fails the build
>> very early on:
>> https://travis-ci.com/github/ClangBuiltLinux/continuous-integration/jobs/311246218
>> https://travis-ci.com/github/ClangBuiltLinux/continuous-integration/jobs/311246270
>> There was no failure in -next, not sure how we skipped our canary in the coal
>> mine.
> 
> Yes, one of the things linux-next does a really good job at catching is
> build breakage so it would've been nice to have seen this there rather
> than end up with breakage in Linus' tree :(
> 
> Was the timing just bad, or are we missing DT coverage or something else?

It seems issue was not caught in -next because the patch that fixes the issue was already in -next
before this series was pushed.

Sorry for the mess again.
Nick Desaulniers April 2, 2020, 5:27 p.m. UTC | #12
On Thu, Apr 2, 2020 at 4:05 AM Grygorii Strashko
<grygorii.strashko@ti.com> wrote:
>
>
>
> On 02/04/2020 12:42, Will Deacon wrote:
> > On Wed, Apr 01, 2020 at 03:35:00PM -0700, Nick Desaulniers wrote:
> >>>> I think the ARM64 build is now also broken on Linus' master branch,
> >>>> after the net-next merge? I am not quite sure if the device tree
> >>>> patches were supposed to land in mainline the way they did.
> >>>
> >>> There's a fix in my net tree and it will go to Linus soon.
> >>>
> >>> There is no clear policy for dt change integration, and honestly
> >>> I try to deal with the situation on a case by case basis.
> >>
> >> Yep, mainline aarch64-linux-gnu- builds are totally hosed.  DTC fails the build
> >> very early on:
> >> https://travis-ci.com/github/ClangBuiltLinux/continuous-integration/jobs/311246218
> >> https://travis-ci.com/github/ClangBuiltLinux/continuous-integration/jobs/311246270
> >> There was no failure in -next, not sure how we skipped our canary in the coal
> >> mine.
> >
> > Yes, one of the things linux-next does a really good job at catching is
> > build breakage so it would've been nice to have seen this there rather
> > than end up with breakage in Linus' tree :(
> >
> > Was the timing just bad, or are we missing DT coverage or something else?
>
> It seems issue was not caught in -next because the patch that fixes the issue was already in -next
> before this series was pushed.
>
> Sorry for the mess again.

No worries, it's just worthwhile to study failures.  So IIUC, in this case:
mainline was 5.6
the broken patch was merged in 5.7 merge window
a fix was already in -next, but not slated for the new merge window.
(Maybe scheduled for 5.8?)

So it sounds like it can be dangerous to have 2 branches from 1 tree
flow into -next, as the branch meant for a later release can mask
failures in pull requests for the earlier release?

Do we know what and where the fix currently is?
Can we make sure it's sent to Linus for 5.7-rc1? (Or sooner?)
Sekhar Nori April 3, 2020, 5:11 a.m. UTC | #13
On 02/04/20 10:57 PM, Nick Desaulniers wrote:
> On Thu, Apr 2, 2020 at 4:05 AM Grygorii Strashko
> <grygorii.strashko@ti.com> wrote:
>>
>>
>>
>> On 02/04/2020 12:42, Will Deacon wrote:
>>> On Wed, Apr 01, 2020 at 03:35:00PM -0700, Nick Desaulniers wrote:
>>>>>> I think the ARM64 build is now also broken on Linus' master branch,
>>>>>> after the net-next merge? I am not quite sure if the device tree
>>>>>> patches were supposed to land in mainline the way they did.
>>>>>
>>>>> There's a fix in my net tree and it will go to Linus soon.
>>>>>
>>>>> There is no clear policy for dt change integration, and honestly
>>>>> I try to deal with the situation on a case by case basis.
>>>>
>>>> Yep, mainline aarch64-linux-gnu- builds are totally hosed.  DTC fails the build
>>>> very early on:
>>>> https://travis-ci.com/github/ClangBuiltLinux/continuous-integration/jobs/311246218
>>>> https://travis-ci.com/github/ClangBuiltLinux/continuous-integration/jobs/311246270
>>>> There was no failure in -next, not sure how we skipped our canary in the coal
>>>> mine.
>>>
>>> Yes, one of the things linux-next does a really good job at catching is
>>> build breakage so it would've been nice to have seen this there rather
>>> than end up with breakage in Linus' tree :(
>>>
>>> Was the timing just bad, or are we missing DT coverage or something else?
>>
>> It seems issue was not caught in -next because the patch that fixes the issue was already in -next
>> before this series was pushed.
>>
>> Sorry for the mess again.
> 
> No worries, it's just worthwhile to study failures.  So IIUC, in this case:
> mainline was 5.6
> the broken patch was merged in 5.7 merge window
> a fix was already in -next, but not slated for the new merge window.
> (Maybe scheduled for 5.8?)

No, the "fix" is scheduled to go into v5.7 kernel as well. It is here:

git://git.kernel.org/pub/scm/linux/kernel/git/kristo/linux tags/ti-k3-soc-for-v5.7

This is already part of ARM SoC tree, and slated for v5.7

https://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git/log/?h=arm/dt

Arnd, Olof,

Can you please help by either queuing the arm/dt entirely or just the K3 SoC 
parts to Linus sooner than later?

Thanks,
Sekhar