I'm using 82576+SGMII+SFP(external PHY).
I did not have an EEPROM(yet), but modified igb to bypass the MAC and
EEPROM check, also provided a fake device ID to 82576_SGMII(added after
82576_SERDES). I made sure dev_spec->sgmii_active=true
After these simple changes, I am able to detect the PHY successfully, a
ping could send out packets(verified by both ifconfig and cat
/proc/interrupts), however I could not receive any packets, even though the
/proc/interrupts rx is shown interrupts.
what else am I missing to add a SFP-phy to existing igb driver?
here is the log:
Intel(R) Gigabit Ethernet Network Driver - version 3.0.6-k2
Copyright (c) 2007-2011 Intel Corporation.
PCI: enabling device 0000:01:00.0 (0140 -> 0142)
igb 0000:01:00.0: enabling bus mastering
igb 0000:01:00.0: (unregistered net_device): I2CCMD Error bit set
igb 0000:01:00.0: (unregistered net_device): PHY address 1 was unreadable
igb 0000:01:00.0: (unregistered net_device): I2CCMD Error bit set
igb 0000:01:00.0: (unregistered net_device): PHY address 2 was unreadable
igb 0000:01:00.0: (unregistered net_device): I2CCMD Error bit set
igb 0000:01:00.0: (unregistered net_device): PHY address 3 was unreadable
igb 0000:01:00.0: (unregistered net_device): I2CCMD Error bit set
igb 0000:01:00.0: (unregistered net_device): PHY address 4 was unreadable
igb 0000:01:00.0: (unregistered net_device): I2CCMD Error bit set
igb 0000:01:00.0: (unregistered net_device): PHY address 5 was unreadable
igb 0000:01:00.0: (unregistered net_device): Vendor ID 0x00000141 read at
address
6
igb 0000:01:00.0: 0 vfs allocated
igb 0000:01:00.0: (unregistered net_device): Masking off all interrupts
igb 0000:01:00.0: (unregistered net_device): Issuing a global reset to MAC
igb 0000:01:00.0: (unregistered net_device): Masking off all interrupts
igb 0000:01:00.0: (unregistered net_device): Issuing a global reset to MAC
igb 0000:01:00.0: (unregistered net_device): Initializing the IEEE VLAN
igb 0000:01:00.0: (unregistered net_device): Zeroing the MTA
igb 0000:01:00.0: (unregistered net_device): Zeroing the UTA
igb 0000:01:00.0: (unregistered net_device): Configuring
Autoneg:PCS_LCTL=0x021700
8C
igb 0000:01:00.0: (unregistered net_device): Soft resetting SGMII attached
PHY...
igb 0000:01:00.0: (unregistered net_device): Reconfiguring auto-neg
advertisement
params
igb 0000:01:00.0: (unregistered net_device): autoneg_advertised 2f
igb 0000:01:00.0: (unregistered net_device): Advertise 10mb Half duplex
igb 0000:01:00.0: (unregistered net_device): Advertise 10mb Full duplex
igb 0000:01:00.0: (unregistered net_device): Advertise 100mb Half duplex
igb 0000:01:00.0: (unregistered net_device): Advertise 100mb Full duplex
igb 0000:01:00.0: (unregistered net_device): Advertise 1000mb Full duplex
igb 0000:01:00.0: (unregistered net_device): Auto-Neg Advertising de1
igb 0000:01:00.0: (unregistered net_device): Restarting Auto-Neg
igb 0000:01:00.0: (unregistered net_device): Unable to establish link!!!
igb 0000:01:00.0: (unregistered net_device): Phy info is only valid if link
is up
igb 0000:01:00.0: Intel(R) Gigabit Ethernet Network Connection
igb 0000:01:00.0: eth0: (PCIe:2.5Gb/s:Width x1) 00:1c:22:33:44:55
igb 0000:01:00.0: eth0: NVM PBA number is not stored as string
igb 0000:01:00.0: eth0: PBA No: FFFFFF-0FF
igb 0000:01:00.0: Using legacy interrupts. 1 rx queue(s), 1 tx queue(s)
PCI: enabling device 0000:01:00.1 (0140 -> 0142)
igb 0000:01:00.1: enabling bus mastering
igb 0000:01:00.1: (unregistered net_device): I2CCMD Error bit set
igb 0000:01:00.1: (unregistered net_device): PHY address 1 was unreadable
igb 0000:01:00.1: (unregistered net_device): Vendor ID 0x0000FF3F read at
address
2
igb 0000:01:00.1: (unregistered net_device): I2CCMD Error bit set
igb 0000:01:00.1: (unregistered net_device): PHY address 3 was unreadable
igb 0000:01:00.1: (unregistered net_device): Vendor ID 0x0000FF3F read at
address
4
igb 0000:01:00.1: (unregistered net_device): I2CCMD Error bit set
igb 0000:01:00.1: (unregistered net_device): PHY address 5 was unreadable
igb 0000:01:00.1: (unregistered net_device): Vendor ID 0x0000FF3F read at
address
6
igb 0000:01:00.1: (unregistered net_device): I2CCMD Error bit set
igb 0000:01:00.1: (unregistered net_device): PHY address 7 was unreadable
igb: probe of 0000:01:00.1 failed with error -2
igb: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX
-------
ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:1C:22:33:44:55
inet addr:192.168.1.97 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:39 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:1638 (1.5 Kb)
Memory:1100000-1120000
---------
Note I'm testing against a 100Mbps switch, not sure if I have to use a
1Gbps switch. I tried both MSI and legacy INT and they're the same.
Thanks a lot,
Joe
On Wed, Mar 26, 2014 at 4:20 PM, x aus <[email protected]> wrote:
> Surprised.
>
> Thanks!
>
>
> On Wed, Mar 26, 2014 at 3:33 PM, Fujinaka, Todd
> <[email protected]>wrote:
>
>> I think "everything else" is what I was thinking you should have the
>> NDA for.
>>
>>
>>
>> MACsec is an easier answer: there's no Linux support because no one ever
>> asked for it.
>>
>>
>>
>> *Todd Fujinaka*
>>
>> Software Application Engineer
>>
>> Networking Division (ND)
>>
>> Intel Corporation
>>
>> *[email protected] <[email protected]>*
>>
>> (503) 712-4565
>>
>>
>>
>> *From:* x aus [mailto:[email protected]]
>> *Sent:* Wednesday, March 26, 2014 12:38 PM
>> *To:* Fujinaka, Todd
>> *Cc:* [email protected]
>> *Subject:* Re: [E1000-devel] 82576/igb custom driver
>>
>>
>>
>> We had NDA in place, other than the MACSEC item(#6), which item do you
>> think should better go to Intel too?
>>
>> The response from Intel has been a little slow so far.
>>
>> Thanks for your help,
>>
>> Joe
>>
>>
>>
>> On Wed, Mar 26, 2014 at 1:31 PM, Fujinaka, Todd <[email protected]>
>> wrote:
>>
>> I think some of these questions would be best answered under NDA. Can you
>> contact your vendor and go through that channel?
>>
>> Thanks.
>>
>> Todd Fujinaka
>> Software Application Engineer
>> Networking Division (ND)
>> Intel Corporation
>> [email protected]
>> (503) 712-4565
>>
>>
>>
>> -----Original Message-----
>> From: x aus [mailto:[email protected]]
>> Sent: Wednesday, March 26, 2014 11:20 AM
>> To: [email protected]
>> Subject: [E1000-devel] 82576/igb custom driver
>>
>> We're using 82576 on a main board(ARM with PCIe x1) using 3.0.x kernel. I
>> can probe the device at the moment.
>>
>> I'm connecting the 82576 to a SFP which has an I2C for the external
>> PHY(RJ45), I also have EEPROM and SPI-Flash connected via SPI to 82576
>> based on Intel's reference schematics.
>>
>> I have a list of questions:
>> 1. We're using SerDes to connect with the SFP, it's unclear to me per the
>> Datasheet that, should we use SGMII instead? what's the key difference
>> here? We're using RJ45/SFP but we may need use fiber/SFP later, which is
>> the reason we're not using the internal PHY. I saw there are some code for
>> SFP inside the igb driver.
>>
>> 2. On the EEPROM, do we have to use it? I think igb is getting deviceID
>> from the EEPROM, as 'lspci -v' showed 10c9:0000 now, the EEPROM is blank at
>> the moment, and I modified the code to bypass the MAC-address-reading from
>> EEPROM(providing some fake MACs for now) so I can run 'ifconfig eth0 up'
>> against it though I can never send out packets.
>>
>> 2.1 Is it possible at all the get this working without using EEPROM?
>>
>> 3. How to program the blank EEPROM, can I use ethtool do that? or do I
>> have to take it out and program it before solder it down?
>>
>> 4. When do I need SPI-Flash? do I need it at all? The datasheet says it
>> can hold some firmware but I'm not sure what it means.
>>
>> 5. From e1000_hw.h, 0x10C9 is for 82576 itself, the rest is for the
>> specific products, but what's the difference between Fiber, Serdes, copper?
>> In my case I use SFP/RJ45, is it more like Serdes or Copper or even
>> RGMII(there is aE1000_DEV_ID_I350_SGMII) , very confused.
>>
>> #define E1000_DEV_ID_82576 0x10C9
>> #define E1000_DEV_ID_82576_FIBER 0x10E6
>> #define E1000_DEV_ID_82576_SERDES 0x10E7
>> #define E1000_DEV_ID_82576_QUAD_COPPER 0x10E8
>> #define E1000_DEV_ID_82576_QUAD_COPPER_ET2 0x1526
>> #define E1000_DEV_ID_82576_SERDES_QUAD 0x150D
>>
>> 6. I don't see MACSEC code in the driver, is it implemented at Intel but
>> just not open sourced? The Intel representative is unclear on that either.
>>
>> Basically I need confirm SerDes or RGMII for SFP, then learn how to
>> modify the driver and program EEPROM to get 82576 working on the custom
>> design.
>> Any tips/suggestions are great appreciated!
>>
>> Thanks a lot.
>>
>> Joe
>>
>>
>>
>
>
------------------------------------------------------------------------------
_______________________________________________
E1000-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel® Ethernet, visit
http://communities.intel.com/community/wired