<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>LayerscapeのトピックRe: LS1046A serdes backplane eth driver &amp;amp; device tree questions</title>
    <link>https://community.nxp.com/t5/Layerscape/LS1046A-serdes-backplane-eth-driver-amp-device-tree-questions/m-p/1509495#M11060</link>
    <description>&lt;P&gt;Thanks for&amp;nbsp; your answer.&lt;/P&gt;&lt;P&gt;Now I can atleast see 10G working on Linux.&lt;/P&gt;&lt;P&gt;Though I still have not been able to make 1G work, I feel like drivers for 1G either do not exist or there needs to be more to be done for 1G.&lt;/P&gt;&lt;P&gt;Similar to this, how can I make 10G backplane work on uboot? Is there a similar driver for uboot?&lt;/P&gt;&lt;P&gt;Another question, which is related to lane reset procedure.&lt;/P&gt;&lt;P&gt;Following registers needs to be updated&lt;/P&gt;&lt;P&gt;LNmGCR1[REIDL_TH]&lt;BR /&gt;• LNmGCR1[REIDL_EX_SEL]&lt;BR /&gt;• LNmGCR1[REIDL_ET_MSB]&lt;BR /&gt;• LNmTECR0[AMP_RED]&lt;/P&gt;&lt;P&gt;My understanding is LNmGCR1 corresponds to serdes2 and LNmGCR0 corresponds to serdes1?&lt;/P&gt;&lt;P&gt;But then there is only one&amp;nbsp; set of TECR&amp;nbsp; registers LNmTECR0, there is no LNmTECR1? Changing this value should affect which serdes 1 or 2?&lt;/P&gt;</description>
    <pubDate>Mon, 22 Aug 2022 11:19:07 GMT</pubDate>
    <dc:creator>Anuz</dc:creator>
    <dc:date>2022-08-22T11:19:07Z</dc:date>
    <item>
      <title>LS1046A serdes backplane eth driver &amp; device tree questions</title>
      <link>https://community.nxp.com/t5/Layerscape/LS1046A-serdes-backplane-eth-driver-amp-device-tree-questions/m-p/1496401#M10944</link>
      <description>&lt;P&gt;Hi there,&lt;/P&gt;&lt;P&gt;I am trying to make three backplane ethernet drivers work on one our board based on ls1046a.&lt;/P&gt;&lt;P&gt;Serdes 1 have two devices&lt;/P&gt;&lt;P&gt;1. 10GBase-KR connected on lane 0(or Lane D) SD1_RX0_P/N &amp;amp; SD1_TX0_P/N XFI.9&lt;/P&gt;&lt;P&gt;2. 10GBase-KR connected on lane 1(or Lane C) SD1_RX1_P/N &amp;amp; SD1_TX1_P/N XFI.10&lt;/P&gt;&lt;P&gt;Serdes 2 have one device:&lt;/P&gt;&lt;P&gt;1. 1000Base-KX on lane (or Lane B) SD2_RX1_P/N &amp;amp; SD2_RX1_P/N SGMII.2&lt;/P&gt;&lt;P&gt;This can be found in LS1046ARM reference manual section 31.1.2 (page 1915 onwards)&lt;/P&gt;&lt;P&gt;In order to make these devices work I got backplane drivers from &lt;A href="https://source.codeaurora.org/external/qoriq/qoriq-components/linux-extras/" target="_blank" rel="noopener"&gt;https://source.codeaurora.org/external/qoriq/qoriq-components/linux-extras/&lt;/A&gt;&lt;/P&gt;&lt;P&gt;Also I start referring to Application note AN12572 Ethernet Backplane Driver Support&lt;/P&gt;&lt;P&gt;Now according this note you need to create entry for each serdes node in dtsi common file,&lt;/P&gt;&lt;P&gt;which is given as&lt;/P&gt;&lt;P&gt;serdes1: serdes@1ea0000 {&lt;BR /&gt;compatible = "fsl,serdes-10g";&lt;BR /&gt;reg = &amp;lt;0x0 0x1ea0000 0 0x00002000&amp;gt;;&lt;BR /&gt;fsl,lane-reg = &amp;lt;0x9C0 0x980 0x940 0x900 0x8C0 0x880 0x840 0x800&amp;gt;;&lt;BR /&gt;/* lanes H, G, F, E, D, C, B, A */&lt;BR /&gt;little-endian;&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;So my first question is&lt;/P&gt;&lt;P&gt;Q1. Is there a reason this node is serdes1 and not serdes0, by linux convention, I would have assumed that node numbering should begin at 0 and not 1?&lt;/P&gt;&lt;P&gt;Q2. For drivers, there are two compatible properties, "fsl,serdes-10g" and "fsl,serdes-28g", I am guessing I have to use "fsl,serdes-10g" for first wo devices and for third device I would still use&amp;nbsp;"fsl,serdes-10g" but supply "backplane-mode" as "1000base-kx" for 1000base-kx device.&lt;/P&gt;&lt;P&gt;Q3. "fsl,lane-reg" reg property is supplied with some offset values for each lane, in ls1046arm manual I can't find offset for these lanes, there are offset for various registers, but I am not sure how register offsets are related to lane addresses? SDn_TX/MXm_P/N do not seem have any offset values in the manual? (n=0,1&amp;amp; m=0,1,2,3)&lt;/P&gt;&lt;P&gt;Q4.According to app note "the correct endianness must be specified to allow access dependent on target endianness", for serdes node, I am assuming target is pcs_mdio nodes, I can't find what endianess apply to them, however according to CCSR memory map(table 2.4, page 150):&lt;/P&gt;&lt;P&gt;1EA_0000 - 1EA_FFFF SerDes Control 1 Big-endian (byte swapping&lt;BR /&gt;required)&lt;BR /&gt;1EB_0000 - 1EB_FFFF SerDes Control 2 Big-endian (byte swapping&lt;BR /&gt;required)&lt;/P&gt;&lt;P&gt;Serdes itself is big endian and all DPAA components are big endian as well, so the value for serdes node and pcs node be big endian?&lt;/P&gt;&lt;P&gt;Q5. For phy device nodes under mdio, how do I determine "reg" and "fsl,lane-reg" values&lt;/P&gt;&lt;P&gt;&amp;amp;mdio2 {&lt;BR /&gt;pcsphy1: ethernet-phy@0 {&lt;BR /&gt;&amp;nbsp;backplane-mode = "1000base-kx";&lt;BR /&gt;&amp;nbsp;compatible = "ethernet-phy-ieee802.3-c22";&lt;BR /&gt;&amp;nbsp;reg = &amp;lt;0x0&amp;gt;;&lt;BR /&gt;&amp;nbsp;fsl,lane-handle = &amp;lt;&amp;amp;serdes2&amp;gt;;&lt;BR /&gt;&amp;nbsp;fsl,lane-reg = &amp;lt;0x840 0x40&amp;gt;; /* lane B */&lt;BR /&gt;&amp;nbsp;};&lt;BR /&gt;+};&lt;/P&gt;&lt;P&gt;Q7: In file arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb-usdpaa.dts, which is file we are using as base for our board, there is a node :&lt;/P&gt;&lt;P&gt;ethernet@1 {&lt;BR /&gt;compatible = "fsl,dpa-ethernet-init";&lt;BR /&gt;fsl,bman-buffer-pools = &amp;lt;&amp;amp;bp7 &amp;amp;bp8 &amp;amp;bp9&amp;gt;;&lt;BR /&gt;fsl,qman-frame-queues-rx = &amp;lt;0x52 1 0x53 1&amp;gt;;&lt;BR /&gt;fsl,qman-frame-queues-tx = &amp;lt;0x72 1 0x73 1&amp;gt;;&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;How do I get these values for "fsl,qman-frame-queues-rx" &amp;amp; "fsl,qman-frame-queues-tx", which would be relevant to ethernet we need to add?&lt;/P&gt;&lt;P&gt;Q8. Do I need to compile fsl_backplane_serdes_28g.o at all for these drivers to work?&lt;/P&gt;&lt;P&gt;Q9. Similarly, can also I compile without CONFIG_FSL_BACKPLANE_DEBUGFS &amp;amp; CONFIG_FSL_BACKPLANE_DEBUG_MONITORING for these drivers to work?&lt;/P&gt;&lt;P&gt;Thank you&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 27 Jul 2022 13:48:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/LS1046A-serdes-backplane-eth-driver-amp-device-tree-questions/m-p/1496401#M10944</guid>
      <dc:creator>Anuz</dc:creator>
      <dc:date>2022-07-27T13:48:17Z</dc:date>
    </item>
    <item>
      <title>Re: LS1046A serdes backplane eth driver &amp; device tree questions</title>
      <link>https://community.nxp.com/t5/Layerscape/LS1046A-serdes-backplane-eth-driver-amp-device-tree-questions/m-p/1497532#M10952</link>
      <description>&lt;P&gt;I'm not NXP support, but here are some quick answers:&lt;/P&gt;&lt;P&gt;A1: (presumably) It follows the documentation to keep the engineers sane.&lt;/P&gt;&lt;P&gt;A2: Yes&lt;/P&gt;&lt;P&gt;A3: It's the offset of GCR0 for that lane. Note that for the LS1046A, lane 0 (aka the pins) is lane D (aka the registers)&lt;/P&gt;&lt;P&gt;A4: MDIO devices do not have endianness. The endianness specification is for the serdes.&lt;/P&gt;&lt;P&gt;A5: The reg should match MDEV_PORT from the protocol control register. It resets to 0 and I have never seen it changed.&lt;/P&gt;&lt;P&gt;A8: No&lt;/P&gt;&lt;P&gt;A9: Yes&lt;/P&gt;</description>
      <pubDate>Thu, 28 Jul 2022 21:14:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/LS1046A-serdes-backplane-eth-driver-amp-device-tree-questions/m-p/1497532#M10952</guid>
      <dc:creator>stadium_aquino</dc:creator>
      <dc:date>2022-07-28T21:14:18Z</dc:date>
    </item>
    <item>
      <title>Re: LS1046A serdes backplane eth driver &amp; device tree questions</title>
      <link>https://community.nxp.com/t5/Layerscape/LS1046A-serdes-backplane-eth-driver-amp-device-tree-questions/m-p/1509495#M11060</link>
      <description>&lt;P&gt;Thanks for&amp;nbsp; your answer.&lt;/P&gt;&lt;P&gt;Now I can atleast see 10G working on Linux.&lt;/P&gt;&lt;P&gt;Though I still have not been able to make 1G work, I feel like drivers for 1G either do not exist or there needs to be more to be done for 1G.&lt;/P&gt;&lt;P&gt;Similar to this, how can I make 10G backplane work on uboot? Is there a similar driver for uboot?&lt;/P&gt;&lt;P&gt;Another question, which is related to lane reset procedure.&lt;/P&gt;&lt;P&gt;Following registers needs to be updated&lt;/P&gt;&lt;P&gt;LNmGCR1[REIDL_TH]&lt;BR /&gt;• LNmGCR1[REIDL_EX_SEL]&lt;BR /&gt;• LNmGCR1[REIDL_ET_MSB]&lt;BR /&gt;• LNmTECR0[AMP_RED]&lt;/P&gt;&lt;P&gt;My understanding is LNmGCR1 corresponds to serdes2 and LNmGCR0 corresponds to serdes1?&lt;/P&gt;&lt;P&gt;But then there is only one&amp;nbsp; set of TECR&amp;nbsp; registers LNmTECR0, there is no LNmTECR1? Changing this value should affect which serdes 1 or 2?&lt;/P&gt;</description>
      <pubDate>Mon, 22 Aug 2022 11:19:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/LS1046A-serdes-backplane-eth-driver-amp-device-tree-questions/m-p/1509495#M11060</guid>
      <dc:creator>Anuz</dc:creator>
      <dc:date>2022-08-22T11:19:07Z</dc:date>
    </item>
    <item>
      <title>Re: LS1046A serdes backplane eth driver &amp; device tree questions</title>
      <link>https://community.nxp.com/t5/Layerscape/LS1046A-serdes-backplane-eth-driver-amp-device-tree-questions/m-p/1513321#M11088</link>
      <description>&lt;P&gt;&amp;gt; Similar to this, how can I make 10G backplane work on uboot? Is there a similar driver for uboot?&lt;/P&gt;&lt;P&gt;AFAIK no. I think it's unlikely that there will ever be a 10G driver because of the complex link training sequence. You could probably write up a KX driver, but one does not exist yet.&lt;/P&gt;&lt;P&gt;&amp;gt; My understanding is LNmGCR1 corresponds to serdes2 and LNmGCR0 corresponds to serdes1?&lt;/P&gt;&lt;P&gt;No. Both those registers are present on the same serdes. For example, LNAGCR0 on serdes 1 would have address 0x1ea0800, and LNAGCR1 on the same serdes would have address 0x1ea0804.&lt;/P&gt;</description>
      <pubDate>Mon, 29 Aug 2022 17:03:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/LS1046A-serdes-backplane-eth-driver-amp-device-tree-questions/m-p/1513321#M11088</guid>
      <dc:creator>stadium_aquino</dc:creator>
      <dc:date>2022-08-29T17:03:51Z</dc:date>
    </item>
  </channel>
</rss>

