How to add intel i210 to imx6?

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

How to add intel i210 to imx6?

Jump to solution
6,416 Views
damienhuang
Contributor IV

Hi,

I need helps in adding i210 to imx6 sabrelite with boundary android l5 kernel (3.10.53).

I added the the I210 chip to the board, and it can be seen with 'lspci' as below

root@nitrogen6x:/ # busybox lspci -mk                                          
00:00.0 "Class 0604" "16c3" "abcd" "0000" "0000" "pcieport"
01:00.0 "Class 0200" "8086" "1531" "8086" "0000"

or from yocto chroot (I added a yocto chroot into the android l5 release) as

root@10.211.190.154 ~# lspci -m
00:00.0 "PCI bridge" "Synopsys, Inc." "Device abcd" -r01 "" ""
01:00.0 "Ethernet controller" "Intel Corporation" "Device 1531" -r03 "Intel Corporation" "Device 0000"

I can also see it with 'cat /proc/bus/pci/devices'

root@10.211.190.154 ~# cat /proc/bus/pci/devices
0000    16c3abcd    180             1c00000                   0                   0                   0                   0                   0             1d00000              100000                   0                   0                   0                   0                   0               10000    pcieport
0100    80861531    9b             1000000                   0                1001             1800000                   0                   0                   0              800000                   0                  20                4000                   0                   0                   0    

dmesg also shows below:

imx6q-pcie 1ffc000.pcie: Link up, Gen=1
imx6q-pcie 1ffc000.pcie: 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: root bus resource [bus 00-ff]
pci 0000:00:00.0: [16c3:abcd] type 01 class 0x060400
pci 0000:00:00.0: reg 10: [mem 0x00000000-0x000fffff]
pci 0000:00:00.0: reg 38: [mem 0x00000000-0x0000ffff pref]
pci 0000:00:00.0: supports D1
pci 0000:00:00.0: PME# supported from D0 D1 D3hot D3cold
PCI: bus0: Fast back to back transfers disabled
pci 0000:01:00.0: [8086:1531] type 00 class 0x020000
pci 0000:01:00.0: reg 10: [mem 0x00000000-0x007fffff]
pci 0000:01:00.0: reg 18: [io  0x0000-0x001f]
pci 0000:01:00.0: reg 1c: [mem 0x00000000-0x00003fff]
pci 0000:01:00.0: PME# supported from D0 D3hot D3cold
PCI: bus1: Fast back to back transfers disabled
pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
pci 0000:00:00.0: BAR 8: assigned [mem 0x01000000-0x01bfffff]
pci 0000:00:00.0: BAR 0: assigned [mem 0x01c00000-0x01cfffff]
pci 0000:00:00.0: BAR 6: assigned [mem 0x01d00000-0x01d0ffff pref]
pci 0000:00:00.0: BAR 7: assigned [io  0x1000-0x1fff]
pci 0000:01:00.0: BAR 0: assigned [mem 0x01000000-0x017fffff]
pci 0000:01:00.0: BAR 3: assigned [mem 0x01800000-0x01803fff]
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 0x01000000-0x01bfffff]

These information seems to me, the chip is detected and should be working, so I went on to download the mac address into the chip with the intel eepromARMtool. But the tools crashed with "Bus error" as below

root@10.211.190.154 ~/eepromARMTool# ./eepromARMtool
Intel(R) Eeprom ARM Tool ARM OTP Programming Tool
Provided under the terms of a CNDA.  Do Not Distribute.
Copyright(C) 2013 by Intel(R) Corporation
NIC    BUS    DEV    FUN    Silicon    Memory Type Present
===    ===    ===    ===    =====    ======================
Bus error

I looked thought information at I210 detection issues under embedded linux  -- ... |Embedded Community 

someone was saying, "We had to do modification on the Linux kernel driver to get ... to work", while the other was saying this is due to endian issue. I am wondering

   1) anyone knows which Linux kernel driver they were talking about to modify? - since the lspci command above did not show any kernel driver loaded with the device.

   2) how can endian cause this?

Thanks

Labels (3)
0 Kudos
1 Solution
4,083 Views
damienhuang
Contributor IV

Thanks everyone for helping.

The answer is simple, just run 'echo "1" >

/sys/bus/pci/devices/0000\:01\:00.0/enable' will fix the problem and the

intel eepromARMTool will work fine.

In my opinion, the eepromARMTool should do this within itself and should

not reply on external.

Cheers,

Damien

View solution in original post

0 Kudos
7 Replies
2,067 Views
tzeng015
Contributor II

Hi all

I am the first time to porting Lan driver which is  Intel WGI210IT (i210). I don't how to start and debug ?

Can anyone give me a hand ? I need to know how to start ?

thank you

Jeffrey

0 Kudos
4,083 Views
igorpadykov
NXP Employee
NXP Employee

Hi Damien

one can try to add to imx_v7_defconfig : CONFIG_IGB=y

this will build igb driver :
linux/drivers/net/ethernet/intel/igb/e1000_i210.c

Also may be useful to check intel drivers:
https://downloadcenter.intel.com/download/13663/Intel-Network-Adapter-Driver-for-82575-6-82580-I350-...

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
4,083 Views
damienhuang
Contributor IV

Hi Igor,

adding of CONFIG_IGB did not fix the problem, the igb driver is still not loaded at runtime

please see below for 'lspci -k' output

root@nitrogen6x:/ # busybox lspci -k
00:00.0 Class 0604: 16c3:abcd pcieport
01:00.0 Class 0200: 8086:1531

do I need to add something into devicetree?

also, could you tell me what the below information from dmesg tells?

<7>pci 0000:01:00.0: [8086:1531] type 00 class 0x020000
<7>pci 0000:01:00.0: reg 10: [mem 0x00000000-0x007fffff]
<7>pci 0000:01:00.0: reg 18: [io  0x0000-0x001f]
<7>pci 0000:01:00.0: reg 1c: [mem 0x00000000-0x00003fff]
<7>pci 0000:01:00.0: PME# supported from D0 D3hot D3cold
<7>pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
<6>pci 0000:01:00.0: BAR 0: assigned [mem 0x01000000-0x017fffff]
<6>pci 0000:01:00.0: BAR 3: assigned [mem 0x01800000-0x01803fff]
<6>pci 0000:01:00.0: BAR 2: assigned [io  0x1000-0x101f]

Cheers,

Damien

0 Kudos
4,083 Views
igorpadykov
NXP Employee
NXP Employee

Hi Damien

probably i210 requires assitional programming before usage, one can try to ask on

  I210 detection issues under embedded linux  -- ... |Embedded Community

regarding something into devicetree I did not find such details, you can ask intel

about devicetree support for i210 drivers.

Best regards
igor

0 Kudos
4,083 Views
damienhuang
Contributor IV

Still need helps, anyone had overcome this problem before?

0 Kudos
4,083 Views
vinodmaverickr0
Contributor IV

Hi Damien,

Hope you have already seen these patches. But if you have not seen you can have a look.

[Intel-wired-lan,next] igb: allow setting MAC address on i211 using a device tree blob V3 - Patchwor... 

[Intel-wired-lan,next] igb: allow setting MAC address on i211 using a device tree blob V4 - Patchwor... 

[Intel-wired-lan] [next] igb: allow setting MAC address on i211 using a device tree blob V3 

From the patch description it seems that they are using some blob file; don''t whether the same is required in your case.

Thanks,

Vinod Kumar

0 Kudos
4,084 Views
damienhuang
Contributor IV

Thanks everyone for helping.

The answer is simple, just run 'echo "1" >

/sys/bus/pci/devices/0000\:01\:00.0/enable' will fix the problem and the

intel eepromARMTool will work fine.

In my opinion, the eepromARMTool should do this within itself and should

not reply on external.

Cheers,

Damien

0 Kudos