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

Migrating to i210 - BAR0 has zero address. Did we miss a step?

mjhammel
Beginner
722 Views

Note: I posted this to the ethernet forum but got no responses.  I thought it might be because this is more of an embedded question so I'm reposting here.  Forgive the dual-posts.

My company has an ARM7 board with an i211-AT running a 5.4.44 kernel.  We're migrating it to an i210-AT.  The i210 is reported to work with no flash and I don't think there is one on this board. 

 

processor       : 1
model name      : ARMv7 Processor rev 10 (v7l)
BogoMIPS        : 7.54
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpd32 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x2
CPU part        : 0xc09
CPU revision    : 10

 

The Linux igb driver probe fails in the pci_iomap() call.  The failure is because BAR0 has no address reported.  If you dump pci for this device you can see that there is nothing in that register space.

 

$ lspci -vv -s 04:00.0 -xxx | tail -17
00: 86 80 31 15 40 01 10 00 03 00 00 02 10 00 00 00
10: 00 00 00 00 00 00 00 00 01 10 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 86 80 00 00
30: 00 00 00 00 40 00 00 00 00 00 00 00 29 01 00 00
40: 01 50 23 c8 08 20 00 00 00 00 00 00 00 00 00 00
50: 05 70 80 01 00 00 00 00 00 00 00 00 00 00 00 00
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 11 a0 04 00 03 00 00 00 03 20 00 00 00 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff
a0: 10 00 02 00 c2 8c 00 10 10 28 10 00 11 7c 42 02
b0: 00 00 11 10 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 1f 08 08 00 00 00 00 00 00 00 00 00
d0: 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

 

Checking the upstream 6.12.1 kernel it appears that the driver still expects pci_iomap() to not return 0 (or NULL).  So a non-zero BAR0 address appears to be a required thing for igb devices.

This failure appears to happen before any board identification is done in the driver as far as I can tell, so I don't think the flash vs no-flash question has been tested at this point, at least not within the igb driver.

We have a copy of intel_eeprom_access (v0.8.0) that appears to support I210 NVM programming and which compiles for this board and does see the NICs, but it complains about the missing BAR0 address.

 

$ ./intel_eeprom_access 

Intel(R) EEPROM Access Tool NVM/OTP Programming Example Tool   Version 0.8.0
Provided under the terms of a CNDA.  Do Not Distribute.
Copyright(C) 2017-2020 by Intel(R) Corporation 
NIC     BUS     DEV     FUN     Silicon Memory Type Present
===     ===     ===     ===     =====   ======================
No Memeory BAR resources supplied by OS/BIOS.
Tool will not work correctly without it.
 1      4        0       0      I210         INVM+FLASH
No Memeory BAR resources supplied by OS/BIOS.
Tool will not work correctly without it.
 2      5        0       0      I210         INVM+FLASH

 

A PCI device should not need a DTS file so I'm curious why BIOS would be needed to supply the Memory Bar.    I don't know if this tool is supposed to work on the I210, just that is reports to support it. We have another ARM64 device with the I210 but it has a BAR0 address and the driver works fine with it sans any additional firmware programming (the device operates with a 1531 Device ID with some very minor driver mods).

I've seen reports that the following is required on I210's under Linux:

 

eeupdate64e /nic=2 /invmupdate /file=I210_Invm_Copper_NoAPM_v0.6.txt

 

However, I can't find an ARM7 (re: ARM 32bit) version of the eeupdate program anywhere. I do have the I210_Invm_Copper_NoAPM_v0.6.txt file. I tried this file with intel_eeprom_update but it failed due to the missing BAR0 address.

I've reviewed our kernel igb drivers (from 5.4.44 and 5.15.21), the upstream 6.x driver and the 5.15.17 driver released by Intel in July 2024.  All of these call pci_enable_device_mem() before pci_iomap().  None of them call pci_enable_device_io() even though the I210 is reported (so I've been told by coworkers) to work with just IO registers. 

I have read the Intel® Ethernet Controller I210/I211 FAQ and I210 Datasheet but see no reference to using this device without a BAR0 address provided.

My question is:  is there some bit of fw programming that we've missed on this configuration?  My team is questioning whether we can run without some additional firmware programming.  I suspect we could set a BAR0 address (the register is R/W) but I don't know what address to provide there.  Should it point to the iNVM?  What address would that be?

My only other experience with PCI was with an FPGA where I know the FPGA code provided the BAR0 address.  I'm not certain where the BAR0 address would be set in the I210 or what that address would be when not using an external flash. 

Any pointers would be appreciated.  Thanks.

0 Kudos
10 Replies
CarlosAM_INTEL
Moderator
689 Views

Hello,  @mjhammel:

Thank you for contacting Intel Embedded Community.

We need to clarify that this forum is not related to an Intel Embedded Platform (it is related to an ARM platform) and it is related to the Intel® Ethernet Controller I210-AT.

Due to this, your request is out of our scope of support.

Please consider this information when you create any forums in the Intel Embedded Community.

However, we are moving this thread to the channel that may help you, the people in charge of it will contact you as soon as possible.

Best regards,

@CarlosAM_INTEL.

0 Kudos
ManoranjanDas
Employee
633 Views

Hello Michael,

 

Greetings for the day! 


Regarding your query, we understand that you are migrating from the i210 to the i211. We kindly recommend that you reach out to Intel Embedded Connectivity for further assistance. Please use the link below to submit your inquiry.


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


Thank you for using Intel products and services.

       

Best Regards,

Manoranjan.

Intel Customer Support Technician

intel.com/vroc  


0 Kudos
CarlosAM_INTEL
Moderator
616 Views

Hello, @ManoranjanDas:

Thank you for contacting Intel Embedded Community.

We need to clarify that this forum is not related to an Intel Embedded Platform (it is related to an ARM platform) and it is related to the Intel® Ethernet Controller I210-AT, as we mentioned in our previous message on this forum.

Due to this, the customer request is out of our scope of support.

Please consider this information when you provide the previous suggestion, or transfer any forums to the channel that you mentioned in your previous communication.

Best regards,

@CarlosAM_INTEL.

0 Kudos
ManoranjanDas
Employee
612 Views

Hi mjhammel,


Greetings!


Regarding your query, we understand that your company is migrating from an i211-AT to an i210-AT on an ARM7 board running a 5.4.44 kernel. We kindly request that you register on the IPS portal using the link provided below. After registration, you will be able to submit a case through the Intel® Premier Support (IPS) platform, where one of our engineers will promptly assist you.


For assistance with registration, please refer to the article below on how to register for Intel® Premier Support:

https://www.intel.com/content/www/us/en/support/articles/000057045/ethernet-products.html


Thank you for using Intel products and services.


Best Regards,

Manoranjan.

Intel Customer Support Technician

intel.com/vroc 


0 Kudos
ManoranjanDas
Employee
567 Views

Hello mjhammel,


Greeting for the Day! 


We are currently awaiting your response regarding the case. If you have any queries or require further assistance, please feel free to respond on the community post. We are more than happy to assist you. 


Thank you for choosing Intel products and services. 


 

Best regards, 

Manoranjan. 

Intel Customer Support Technician 

intel.com/vroc 



0 Kudos
ManoranjanDas
Employee
539 Views

Hello mjhammel,

 

Greetings from Intel!

 

We would like to follow up and see if you have had a chance to review the previous email we sent.

 

Feel free to reply to this email, and we'll be more than happy to assist you further.

 

Regards,

Manoranjan.

Intel Customer Support Technician

intel.com/vroc


0 Kudos
ManoranjanDas
Employee
485 Views

Hello mjhammel,

 

Thank you for contacting Intel.

 

This is the second follow-up regarding the reported issue. We're eager to ensure a swift resolution and would appreciate any updates or additional information you can provide.

 

Please feel free to respond to this email at your earliest convenience.

 

Regards,

Manoranjan.

Intel Customer Support Technician

intel.com/vroc


0 Kudos
ManoranjanDas
Employee
391 Views

Hello mjhammel,


This is a follow up. Kindly let us know f you have had a chance to review the previous email we sent.


Feel free to reply to this email, and we'll be more than happy to assist you further.


Regards,

Manoranjan.

Intel Customer Support Technician

intel.com/vroc


0 Kudos
Sachinks
Employee
297 Views

Hello mjhammel,

 

Greetings for the day!

 

We would like to inform you that we are closing this request as no response has been received from our previous follow-ups. 

Please don't hesitate to ask any further questions in the future. Feel free to start a new conversation, as this thread will no longer be monitored.

 

Regards,

Sachin KS

Intel Customer Support Technician

intel.com/vroc


0 Kudos
ManoranjanDas
Employee
256 Views

Hello mjhammel,


Thank you for contacting Intel. 


This is the third follow-up regarding the reported issue. We're committed to ensuring a swift resolution and would greatly appreciate any updates or additional information you can provide. 


If we don't hear back from you soon, we'll assume the issue has been resolved and will proceed to close the case. 


Please feel free to respond to this email at your earliest convenience. 


Best regards, 

Manoranjan. 

Intel Customer Support Technician 

intel.com/vroc 



0 Kudos
Reply