9 Replies Latest reply on Feb 1, 2018 4:30 AM by Carlos_A

    XL710 on ARM64 architecture

    cebula Community Member

      Hello,

       

      I started to work on our new GPON embedded platform. HW is not available yet, but I want to be prepared. The board will have a Freescale's Layerscape processor LS2088 with 8 ARM64 cores. It will be connected (via 8xPCIe) to Ethernet controller FTXL710-BM1 (uplinks).

      On the other side the XL710 will be connected to the backplane with 4 x 10GBase-KR uplinks. We have chosen the XL710 controller because it supports PCIe->10GBASE-KR connection. We will use Freescale's Linux distribution on the system because it has support for Layerscape processor family.

       

      I have checked the i40e driver sources in our linux distribution and it is version 1.3.2. It doesn’t match any version in the "NVM and Software Compatibility". In the latest kernel version on kernel.org there is version 2.1.14 of i40e driver which also doesn't match any version in the SW compatibility table. So I downloaded the i40e sources (2.3.6) from Intel's download site  and successfully cross-compiled within our linux distribution. I also got NVM binary file (Version 6.01, CFG_ID=3.2) which is "XL710_6p01_KR_KX_NCSI_CFGID3p2_Quad.bin". Is this binary suitable for our configuration?

       

      Next question is how to put the NVM image in the FLASH? Do we need nvmupdate64e tool to burn the NVM image into flash? If yes, it must be compiled for ARM64 platform. Where can I get sources? Or ethtool is the right tool?

       

      And the last question: I expect that after "ifconfig up" I will get links up and running?

       

      Best regards

       

      Anton

        • Re: XL710 on ARM64 architecture
          AdolfoS Brown Belt

          Hello cebula

           

          I apologize for the delay in replying to your inquiry, I am consulting your case with our experts on ethernet controllers and I will provide more information as soon as possible.

           

          Best Regards,

          Adolfo Sanchez.

          • Re: XL710 on ARM64 architecture
            Carlos_A Brown Belt

            Hello, cebula:

             

            Thank you for contacting Intel Embedded Community.

             

            We suggest you follow the guidelines stated in the Intel(R) Ethernet NVM Update Tool Quick Usage Guide for Linux document # 332161.

             

            By the way, the Non-Volatile Memory (NVM) Update Utility for Intel(R) Ethernet Converged Network Adapter XL710 and X710 Series can be found at the following website:

             

            https://downloadcenter.intel.com/download/24769

             

            We hope that this information may help you.

             

            Best regards,

            Carlos_A.

              • Re: XL710 on ARM64 architecture
                cebula Community Member

                Hello Carlos,

                 

                thank you for your suggestion. I have already seen the Intel(R) Ethernet NVM Update Tool Quick Usage Guide for Linux document before. That document doesn't help me much, because it is for x86 architecture.

                For updating NVM in linux there is a nvmupdate64e tool available (x86 binary). I downloaded it and started on our (old) target also with Layerscape CPU. Of course it didn't even start because the CPU is ARM64 arch.

                 

                root@ls2088ardb:~# file summ

                summ: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.14.0, BuildID[sha1]=1492b2f894dcd1533f441c5011cb9c6bf28d8df2, not stripped

                root@ls2088ardb:~# file nvmupdate64e

                nvmupdate64e: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.9, not stripped

                root@ls2088ardb:~# ./nvmupdate64e

                -sh: ./nvmupdate64e: cannot execute binary file: Exec format error

                root@ls2088ardb:~#

                 

                I also think that I don't need this utility. Can we update NVM with ethtool?

                 

                br, Anton

                  • Re: XL710 on ARM64 architecture
                    AdolfoS Brown Belt

                    Hello, cebula

                     

                    I am still working on your issue, and will provide more information as soon as possible.

                     

                    Best Regards,

                    Adolfo Sanchez

                    • Re: XL710 on ARM64 architecture
                      Carlos_A Brown Belt

                      Hello, cebula:

                       

                      Thanks for your reply.

                       

                      You will need to program the NVM device externally initially. To update the NVM after the device has been programmed, we can provide the source, but initial programming is not supported on the ARM at this moment.

                       

                      We hope that this information may help you.

                       

                      Best regards,

                      Carlos_A.

                        • Re: XL710 on ARM64 architecture
                          cebula Community Member

                          Hi Carlos,

                           

                          Yes, I would like to have the sources. But what do you mean that initial programming is not supported on the ARM? If we compile your sources for ARM, we will have the tool, am I right?

                           

                          Our HW will be designed that the FLASH could be initially programmed through SPI, for later updating I suppose we will use the tool compiled for ARM. But, what prevent us that the tool is also used for the first programming?

                           

                          Best regards

                           

                          Anton

                            • Re: XL710 on ARM64 architecture
                              Carlos_A Brown Belt

                              Hello, cebula:

                               

                              Thanks for your reply.

                               

                              It is important to let you know that the XL710 is a complex device. The initial programming can be done via regular register reads/writes on the PCIe bus, much like how the tool EEPROM Access Tool (EAT) works. Ideally, EAT will be expanded to do initial programming of XL710. Though for updating the device, the device needs access to DMA which EAT does not support, even though EAT does support updating some older devices.

                               

                              Those are the reasons why initial programming is not possible.

                               

                              Best regards,

                              Carlos_A.