Ethernet Products
Determine ramifications of Intel® Ethernet products and technologies
5573 Discussions

XL710 Firmware Update on AARCH64 Architecture

allalla
Beginner
1,577 Views

Hi,

I am trying to update/first flashing NVM of XL710-BM2 chip which is on our custom board and there is an Ubuntu 20.04 on a aarch64/arm64 architecture. I have followed the instructions given in the document 332161-008 - Intel® Ethernet NVM Update Tool Quick Usage Guide for Linux

It is said that "Update to the most current ice and i40e driver prior to running the NVM Update Tool to ensure the newest features of the NVM image can be installed"

Hence I have tried to install these drivers but faced with following results.

 

1. ice driver 1.9.12 resulted with following errors.

error: implicit declaration of function ‘convert_art_ns_to_tsc’

error: implicit declaration of function ‘boot_cpu_has’

error: ‘X86_FEATURE_ART’ undeclared

error: ‘X86_FEATURE_TSC_KNOWN_FREQ’ undeclared

I have searched the internet and according the information given in below link,

https://community.intel.com/t5/Ethernet-Products/intel-ice-drivers-1-9-11-does-not-support-aarch64/td-p/1428330

I have changed ice driver version to 1.3.2 and it has been installed succesfully. However I want to update NVM to it's latest version and I am not sure if ice 1.3.2 is enough.

 

2. There was again an error while installing i40e (2.23.17) driver as below.

error: implicit declaration of function ‘i40e_set_link_state’

The function was already defined in the file i40e_virtchnl_pf.c in an #IFDEF statement so I copied it to the related part of the code it has been installed succesfully.

 

3. When I try to run the nvmupdate 64 file the following error occurs.

bash: ./nvmupdate64e: cannot execute binary file: Exec format error

After a search on internet, I have thught that these problems are about the architecture of the CPU. I have tried the same drivers and executable in another X86 based LINUX and all of them successfully completed without errors.

 

To sum up, is there any aarc64/arm64 architecture based version of ice 1.9.12 driver, i40e 2.23.17 driver and nvmupdate64e executable file?

If there is not, is there any way to install the drivers and to run exceutable file in aarch64/arm64 architecture, such as emulators, etc. ?

 

Best Regards,

 

0 Kudos
3 Replies
IntelSupport
Community Manager
1,554 Views

Hi allalla,

 

Thank you for posting in Intel Communities.

 

Regarding your issues, please check below similar case if it helps:

https://community.intel.com/t5/Embedded-Intel-Core-Processors/XL710-on-ARM64-architecture/m-p/237049

 

Please check and update all your drivers if not updated. Check below site link:

Intel® Ethernet Adapter Complete Driver Pack

Non-Volatile Memory (NVM) Update Utility for Intel® Ethernet Adapters 700 Series—Linux*

Intel® Network Adapter Driver for PCIe* 40 Gigabit Ethernet Network Connections under Linux*

 

Kindly provide us with the SSU Logs using the guide below:

Help Guide for the Intel® System Support Utility

 

Please let us know if you have any questions.

 

Regards,

Hayat

Intel Customer Support


0 Kudos
allalla
Beginner
1,548 Views

Hi Hayat,

I have checked the similiar case. It is said that initial NVM configuration must be performed externally using SPI. When I have read the datasheet (Intel® Ethernet Controller X710/XXV710/XL710 Datasheet) of the device it is stated as below in section 3.4.1.2 

A blank Flash programming mode is provided (besides the normal programming mode previously mentioned in item 2.) where the Flash can be programmed directly without the EMP being involved via one of the legacy methods:
a. Memory mapped write via host memory BAR.

I was thinking that blank flash programming can be executed by nvmupdate64e executable file. But it seems that it can not. 

Hence we need to configure NVM externally. So can you answer the following questions?

 

1. Can we use SMBUS connections for the initial programming of NVM? XL710-SMBUS is connected to our on-board MCU, if it is possible we would prefer to use it.

 

2. We can program NVM externally using SPI interface by using jumpers. During this initial programing, does XL710 drive SPI pins or does it left them open-drain or unconnected? If it does not, we also need to unconnect the SPI lines between NVM and XL710.

 

3. There are binary files in the Non-Volatile Memory (NVM) Update Utility for Intel® Ethernet Adapters 700 Series—Linux* link. I want to use configuration 7.2 but there are five possible binary files as listed below.
XL710_X710_9p30_SFI_MCTP_CFGID7p2_Dual.bin

XL710_X710_9p30_SFI_Backplane_MCTP_CFGID7p2_Quad.bin

XL710_X710_9p30_SFI_Backplane_MCTP_CFGID7p2_Dual.bin

XL710_9p30_SFI_NCSI_CFGID7p2_Quad.bin

XL710_9p30_SFI_MCTP_CFGID7p2_Quad.bin

It is a bit confusing to understand which one is the corrrect. There will be some SFP+ modules connected to the ports and also we don't have NCSI. Hence is the file XL710_X710_9p30_SFI_Backplane_MCTP_CFGID7p2_Quad.bin proper for our board?

 

4. We will directly write this binary file to the address 0x00 of the NVM, is it?

 

5. At the end we will also need ARM64 version of nvmupdate64e executable in order to be able to update firmware over PCIe with ARM64 architecture. How can we access source files?

 

Best Regards,

 

0 Kudos
IntelSupport
Community Manager
1,524 Views

Hello allalla,


Thank you for your questions.


Since your enquiry is out of our support scope.


I would highly suggest you to please post your questions below and our dedicated team will be in touch with you shortly.

https://community.intel.com/t5/Embedded-Connectivity/bd-p/embedded-networking-connectivity

We will go ahead and close this thread.


Thank you.


Regards,

Hayat

Intel Customer Support



0 Kudos
Reply