HP 110T PCIe Network card (Intel 82572EI) with iMX6Q SABRE SD

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

HP 110T PCIe Network card (Intel 82572EI) with iMX6Q SABRE SD

2,112 Views
pauljefferson
Contributor I

Hi everyone,

I am currently using the Freescale SABRE SD board to evaluate the suitability of the iMX6Q chip for an upcoming project. I am trying out both buildroot and yocto to create the kernel and root filesystem.

I am trying to get the board working with an HP 110T PCIe network card. This card is based on an Intel 82572EI chip which can be used with the e1000e driver. I am able to see the network card ith the following kernel configurations:

#

# PCI host controller drivers  

#

CONFIG_PCIE_DW=y          

CONFIG_PCI_IMX6=y      

# CONFIG_EP_MODE_IN_EP_RC_SYS is not set

# CONFIG_RC_MODE_IN_EP_RC_SYS is not set

# CONFIG_PCCARD is not set


CONFIG_E1000E=y      

But when I try and bring the interface up I am unable to communicate with the outside world.

Network interface configuration:

iface eth1 inet dhcp

Output from iup eth1:

udhcpc (v1.22.1) started

Sending discover...

Sending discover...

Sending discover...

No lease, failing

I have taken a look through the community questions related to setting up PCIe devices, but haven't managed to find any information that has helped me to get this working. Has anyone had experience getting a network card of this type working with the SABRE SD board?

I should mention I am running the standard imx6qsabresd configuration with Yocto 1.6.

uname -a:

Linux imx6qsabresd 3.10.17-1.0.1_ga+gdac46dc #5 SMP PREEMPT Wed Sep 17 14:30:17 BST 2014 armv7l GNU/Linux

Any help/comments/suggestions gratefully welcomed!

Paul

Below I will add information that may be useful in determining what the problem may be.

Output from lspci:

00:00.0 PCI bridge: Device 16c3:abcd (rev 01)

01:00.0 Ethernet controller: Intel Corporation 82572EI Gigabit Ethernet Controller (Copper) (rev 06)

Output for Ethernet controller from lspci -vv:

01:00.0 Ethernet controller: Intel Corporation 82572EI Gigabit Ethernet Controller (Copper) (rev 06)

        Subsystem: Hewlett-Packard Company HP 110T PCIe Gigabit Server Adapter

        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR+ FastB2B- DisINTx-

        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx+

        Latency: 0, Cache Line Size: 64 bytes

        Interrupt: pin A routed to IRQ 155

        Region 0: Memory at 01100000 (32-bit, non-prefetchable) [size=128K]

        Region 1: Memory at 01120000 (32-bit, non-prefetchable) [size=128K]

        Region 2: I/O ports at 1000 [disabled] [size=32]

        [virtual] Expansion ROM at 01200000 [disabled] [size=128K]

        Capabilities: [c8] Power Management version 2

                Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)

                Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=1 PME-

        Capabilities: [d0] MSI: Enable- Count=1/1 Maskable- 64bit+

                Address: 0000000038219000  Data: 0000

        Capabilities: [e0] Express (v1) Endpoint, MSI 00

                DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s <512ns, L1 <64us

                        ExtTag- AttnBtn- AttnInd- PwrInd- RBE- FLReset-

                DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-

                        RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+

                        MaxPayload 128 bytes, MaxReadReq 512 bytes

                DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-

                LnkCap: Port #4, Speed 2.5GT/s, Width x1, ASPM L0s, Exit Latency L0s <4us, L1 <64us

                        ClockPM- Surprise- LLActRep- BwNot-

                LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk-

                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-

                LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-

        Capabilities: [100 v1] Advanced Error Reporting

                UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-

                UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-

                UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-

                CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-

                CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-

                AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-

        Capabilities: [140 v1] Device Serial Number 00-18-71-ff-ff-ec-2c-ee

        Kernel driver in use: e1000e

PCI related boot messages:

PCI host bridge to bus 0000:00

pci_bus 0000:00: root bus resource [io  0x1000-0x10000]

pci_bus 0000:00: root bus resource [mem 0x01000000-0x01efffff]

pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]

PCI: bus0: Fast back to back transfers disabled

PCI: bus1: Fast back to back transfers disabled

pci 0000:00:00.0: BAR 0: assigned [mem 0x01000000-0x010fffff]

pci 0000:00:00.0: BAR 8: assigned [mem 0x01100000-0x011fffff]

pci 0000:00:00.0: BAR 9: assigned [mem 0x01200000-0x012fffff pref]

pci 0000:00:00.0: BAR 6: assigned [mem 0x01300000-0x0130ffff pref]

pci 0000:00:00.0: BAR 7: assigned [io  0x1000-0x1fff]

pci 0000:01:00.0: BAR 0: assigned [mem 0x01100000-0x0111ffff]

pci 0000:01:00.0: BAR 1: assigned [mem 0x01120000-0x0113ffff]

pci 0000:01:00.0: BAR 6: assigned [mem 0x01200000-0x0121ffff pref]

pci 0000:01:00.0: BAR 2: assigned [io  0x1000-0x101f]

pci 0000:00:00.0: PCI bridge to [bus 01]

pci 0000:00:00.0:   bridge window [io  0x1000-0x1fff]

pci 0000:00:00.0:   bridge window [mem 0x01100000-0x011fffff]

pci 0000:00:00.0:   bridge window [mem 0x01200000-0x012fffff pref]

e1000e related boot messages:

e1000e: Intel(R) PRO/1000 Network Driver - 2.3.2-k

e1000e: Copyright(c) 1999 - 2013 Intel Corporation.

e1000e 0000:01:00.0: Disabling ASPM  L1

PCI: enabling device 0000:01:00.0 (0140 -> 0142)

e1000e 0000:01:00.0: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode

e1000e 0000:01:00.0 eth1: (PCI Express:2.5GT/s:Width x1) 00:18:71:ec:2c:ee

e1000e 0000:01:00.0 eth1: Intel(R) PRO/1000 Network Connection

e1000e 0000:01:00.0 eth1: MAC: 1, PHY: 4, PBA No: D70413-003

Labels (3)
Tags (4)
0 Kudos
13 Replies

1,102 Views
sinanakman
Senior Contributor III

Hi Paul

Are you able to ping? There might be config issues on the dhcp server that it doesn't grant an IP for your board's

ethernet interface. Check if you can simply ping and if possible run something like Ethertap on the server side

to see what is being sent by sabre board to your PC.

Hope this helps.

Sinan Akman

0 Kudos

1,102 Views
pauljefferson
Contributor I

Hi Sinan,

Thanks very much for the response. If I configure the interface with a static IP address I am unable to ping another machine on the network, is this what you mean? I should mention that the onboard ethernet is working fine, and able to use dhcp to obtain an IP address. Comparing ifconfig for eth0 (built-in) dyncaically configured:

eth0 Link encap:Ethernet  HWaddr 00:04:9F:02:B6:F5
   inet addr:192.168.0.38  Bcast:0.0.0.0  Mask:255.255.255.0
   UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
   RX packets:444 errors:0 dropped:0 overruns:0 frame:0
   TX packets:20 errors:0 dropped:0 overruns:0 carrier:0
   collisions:0 txqueuelen:1000
   RX bytes:38051 (37.1 KiB)  TX bytes:4384 (4.2 KiB)

and eth1 (PCIe network card) statically configured:

eth1 Link encap:Ethernet  HWaddr 00:18:71:EC:2C:EE
   inet addr:192.168.0.38  Bcast:0.0.0.0  Mask:255.255.255.0
   UP BROADCAST MULTICAST  MTU:1500  Metric:1
   RX packets:0 errors:0 dropped:0 overruns:0 frame:0
   TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
   collisions:0 txqueuelen:1000
   RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
   Interrupt:155 Memory:1100000-1120000

I notice that that the RUNNIING interface flag is set for eth0, but not for eth1. But this may be stating the obvious, as we already know the interface is not working.

Thanks for your suggestion, any other ideas greatly welcomed. I wonder if there is a utility I could use to do some further investigations on the board itself that I could install through buildroot (or yocto... if I can figure out how to use it :smileywink:)

Best regards,

Paul

0 Kudos

1,102 Views
sinanakman
Senior Contributor III

Hi Paul

I was wondering if you were able to ping using your interface with PCIe network card.

Try pinging with -I option (e.g. ping -I eth1 <ip> ). If you can ping then things on your

board side are fine. Yes you can also quickly build a rootfs using buildroot. I use that too.

What is the rootfs you are using now ? Please try the ping from eth1 and let me know if

this looks fine.

Regards

Sinan Akman

0 Kudos

1,102 Views
pauljefferson
Contributor I

Hi Sinan,

Thanks for your continued support. Just to confirm, it was necessary to bring up the interface using ifup so that it was displayed in the output of ifconfig.

Having done this I tried to ping another machine on my network using:

ping -I eth1 <IPADDR>


This again resulted in 100% packet loss. So it looks like the issue is certainly on the board side.


I am currently using the kernel/rootfs build from the fsl-community-bsp version 1.6. I have also tried it (with the same result) using the kernel/rootfs built from the master branch of buildroot. Again it was necessary for me to configure the kernel parameters detailed above.


Best regards,

Paul


0 Kudos

1,102 Views
sinanakman
Senior Contributor III

Hi Paul

It seems both your eth0 and eht1 have the same IP address. Can you assign a different IP address to your PCIe

and make sure it is not used by another unit on the network (you can ping that address before you use

or better yet assign an address that is outside of the dhpc range). After this try pinging again from eth1.

If you still see packet loss run tcpdump if it is available as part of your rootfs. Likewise, you can run

Ethereal or Ethertap on the PC you are trying to ping to if it receives it at all.

Hope this helps

Sinan Akman

0 Kudos

1,102 Views
pauljefferson
Contributor I

Hi Sinan,

I did try it with the same IP address but was careful to bring down each interface before bringing up the next. I have since tried it with different IP addresses, and see the same result. I will run tcpdump on the interface and see if I can get any more information about what is happening.

Thanks very much.

Paul

0 Kudos

1,102 Views
sinanakman
Senior Contributor III

Paul, likewise if you can dump the kernel log files for any errors while you are enabling the network

interfaces it may give us a good hint. Your card seems to be up, perhaps something on the config

on the board is not exactly correct. An Ethertap on the wire will probably show what your card

(if any) is trying to send out.

Regards

Sinan Akman

0 Kudos

1,102 Views
pauljefferson
Contributor I

Hi Sinan,

Thanks for the info. There isn't indication from the logs that anything is going wrong. I copied in the startup messages pertaining to the network card into the original post and it all looks fairly sane. I have just verified that the board and the mPCIe bridge is working okay by trying out my wireless network card from my laptop (Intel Centrino Advanced-N 6205), which worked after configuring the correct kernel parameter for the driver and copying the appropriate firmware to /lib/firmware.

I have also used tcpdump to try and see what information is being sent out through the interface, however, it seems that nothing is being sent out when I try and ping another machine.

If someone from Freescale fancies chipping in, that would be great, if only to confirm that I am using sensible kernel parameters.

Cheers,

Paul

0 Kudos

1,102 Views
sinanakman
Senior Contributor III

Hi Paul, this sounds good. I will then let Freescale to comment on this further.

If you need anything else from me pls let me know. Meanwhile I will see if

I can have access to an 82572EI based card to test out on my sabre board.

Regards

Sinan Akman

0 Kudos

1,102 Views
jamesbone
NXP TechSupport
NXP TechSupport

Hello Sinan,

Do you know if the driver of the PCie  device is RC or EP, because Freescale BSP supports only RC for Linux, EP is not supported.

SW configurations:
Recompilation of the kernel source codes is mandatory required.
#      Run “make menuconfig” after run “make ARCH=arm imx6_defconfig”

Make sure that
#
# MX6 Options:
#
CONFIG_IMX_PCIE=y

Kernel configuration:
* -> System Type                                                                                                                                │
   │       -> Freescale MXC Implementations
Select the PCI Express support.


Kinds of the EP devices used to verify the PCIe RC functions on i.MX6 platforms.
-----------------------------CT----------------------------------
    Location:                                                                                                                                       │
   │     -> Device Drivers                                                                                                                             │
   │       -> Network device support (NETDEVICES [=y])                                                                                                 │
   │         -> Ethernet (1000 Mbit) (NETDEV_1000 [=y])
<*>   Intel(R) PRO/1000 PCI-Express Gigabit Ethernet support

-----------------------------PCIE to USB----------------------------------
   Location:                                                                                                                                       │
   │     -> Device Drivers                                                                                                                             │
   │       -> USB support (USB_SUPPORT [=y])
<*>   xHCI HCD (USB 3.0) support (EXPERIMENTAL)

-----------------------------WIFI----------------------------------
* -> Networking support (NET [=y])                                                                                                              │
   │       -> Wireless (WIRELESS [=y])
Select  Generic IEEE 802.11 Networking Stack (mac80211)

then select the device driver recording to your wifi device
    -> Device Drivers                                                                                                                             │
   │       -> Network device support (NETDEVICES [=y])                                                                                                 │
   │         -> Wireless LAN (WLAN [=y]) 

Select the <* >   Intel Wireless WiFi 4965AGN (iwl4965)


WIFI firmware:
following the guidance listed in the following website install the mandatory required firmware.
http://intellinuxwireless.org/?n=Info

0 Kudos

1,102 Views
sinanakman
Senior Contributor III

HI James, your board's controller is RC.

BTW, I suggest to use mainline u-boot and kernel for

testing. There has been many patches went to mainline

on PCIe during the last little while.

Hope this helps.

Sinan Akman

0 Kudos

1,102 Views
pauljefferson
Contributor I

Hi James,

I'm assuming your reply was aimed at me, as I asked the original question?

I'm unsure if the driver uses RC or EP, I'll look into it to see if I can find out - I'm sure the information must be somewhere, it is a very common driver.

I certainly am rebuilding the kernel, please see my original post for information about which kernel configuration options I am using. I have looked at your examples but it looks like you may be referring to a different kernel version than I am using. I am using fsl-community-bsp (and have also tried with buildroot - same result) with kernel version 3.10.17.

As an example, I do not have the option you suggest for:

System Type --> Freescale MXC Implementations --> PCI Express support


I do, however have the option (which I used when building my kernel):

Bus support --> PCI host controller drivers --> Freescale i.MX6 PCIe controller


If you could confirm that the kernel parameters I have are sane, or could provide a list of kernel parameters required for PCIe support with kernel version 3.10.17 that would be very helpful.


Best regards,

Paul


0 Kudos

1,102 Views
pauljefferson
Contributor I

Thanks very much for all your help Sinan. If you manage to get hold of an 82572EI based card and have more luck with it than me I'd be very interested to compare notes with you!


Best regards,

Paul


0 Kudos