I am attempting to bring up a new custom design with an I350AM4 on it.
I am using a machine with RHEL 7.9.
The design shows up with lspci as:
04:00.0 Ethernet controller: Intel Corporation Device 151f (rev 01)
04:00.1 Ethernet controller: Intel Corporation Device 151f (rev 01)
04:00.2 Ethernet controller: Intel Corporation Device 151f (rev 01)
04:00.3 Ethernet controller: Intel Corporation Device 151f (rev 01)
However, I have not been able to program the on board flash. After installing the latest drivers (igb-5.5.2), I downloaded the Preboot_26.3 and attempted to use the bootutil64e utility and provided boot image (BootIMG.FLB) but it tells me that the Flash is not present. I know a flash device is attached to the Flash interface on the I350. The overall design is based the reference design schematic provided by Intel and I verified the pin-outs of both the 17X17mm package I350 and both my Flash and EEPROM.
Did I need the flash device to have an image on it before it was soldered onto the board? Did I miss something such as a pullup on some other pin to indicate that flash is present or is it able to discover that on it's own?
Thank you for posting in Intel Ethernet Communities.
Since your query involves customization, please be informed that this will be best answered by our Embedded Connectivity Support team. We will help you to move this post to the designated team for further assistance.
Please feel free to contact us if you need assistance from Ethernet support team.
Intel® Customer Support
Thank you for contacting Intel Embedded Community.
We want to address the following questions to understand the reported situation:
Could you please clarify if the device related to this situation has been designed by you or by a third-party company?
Could you please let us know the part number, name of the manufacturer, and where to find the information related to the affected project?
Could you please list the source that you used to develop the design associated with the mentioned Ethernet Controller and if it has been verified by Intel?
We are waiting for your answer to these questions.
This device was designed by me at our company.
There is not a part number or documentation that I can share as all the information is ITAR restricted and can't be shared on an open forum. However I can say the design was manufactured by us using the I350AM4 17X17mm part and that the connectivity is very similar to the reference design in Documentation ID# 323852.
The schematic documentation used to develop the board was downloaded from the intel website at: Intel Ethernet Controller I350 Documentation # 323852 as well as the datasheet at Document ID # 333171 and Document ID # 333066 .
The device has not be verified by Intel since it is ITAR restricted. Extra steps would need to be taken for any design files to be able to be transferred to Intel for evaluation.
I have written an EEPROM utility that programs the on the board EEPROM via the memory mapped PCIe EEC register. I have programmed it with the "Non-Volatile Memory Map EEPROM" as described in the I350 datasheet chapter 6. The device is now recognized as an I350 device instead of the non-eeprom device (ID 151F). However it still does not recognize the flash memory which is also attached. I have set the PCIe Control 2 register (described in section 6.2.27) to a value of 0x1C4D, (0001_1100_0100_1101b) which should set the flash size at 4Mbyte and enable the Flash BAR. Is there another register I am missing or do I need to write an initial image to the flash as well in order to get it to be recognized by the bootutil64e flash utility?