Wednesday, 30 September 2015

Configure Ethernet adapter with static IP to work with Xilinx SDSoc Zynq board (Zybo)

SDSOC debug of Zynq board with USB Ethernet adapter

To debug with SDSoc, you need to connect a network interface between your host PC and the Zynq development board you are using.
You could plug the board into a network or router and allow the board to obtain an IP via DHCP. 

Alternatively, you can use a USB adapter to connect your host PC directly to the board, and this post describes how you do this.

Procedure
  • Connect the USB adapter and install the driver. 
In windows, configure the network interface to have a static IP (192.168.0.1)

  • Identify the network connection, then go to:
Windows Network connections>  [connection name] and double click to open the status
  • Click on Properties > Internet Protocol Version 4 (TCP/IPv4) > properties
  • Select Use the following IP address
IP address: 162.168.0.1
subnet mask: 255.255.255.0 


  • Boot the Zynq board, and from a command prompt, check the ip

> ifconfig
You should see something similar to this:

eth0      Link encap:Ethernet  HWaddr 00:0A:35:00:01:22
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:313 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:23411 (22.8 KiB)  TX bytes:2394 (2.3 KiB)
          Interrupt:143 Base address:0xb000

There is no IP address configured for eth0. (It expects to receive an IP via DHCP)

Set IP address dynamically 

To dynamically change the IP (need to do this every time the board is power cycled)

>ifconfig eth0 192.168.0.10


Set IP address statically

To change the settings for the adapter in the network interfaces settings (saving this to the filesystem will retain the settings after power cycling):
  • Start vi and edit /etc/network/interfaces

>vi /etc/network/interfaces

** Tips for vi; **
se the arrows to navigate to the point in the file you want to edit.
Press i (insert) to move to edit mode, and use delete to remove
Press ESC :wq<enter> to save and quit

  • Modify the file to include:

auto lo
iface lo inet loopback
#
auto eth0
iface eth0 inet static
        address 192.168.0.10
        network 192.168.0.1
        netmask 255.255.255.0

  • Reset the interface

>ip addr flush dev eth0 && ifdown -a && ifup -a

  • Check the IP address:

>ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0A:35:00:01:22
          inet addr:192.168.0.10  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:431 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:30458 (29.7 KiB)  TX bytes:4992 (4.8 KiB)
          Interrupt:143 Base address:0xb000
  
Check connection to host:

>ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1): 56 data bytes
64 bytes from 192.168.0.1: seq=0 ttl=128 time=2.081 ms

J


In SDSoc, create a New Target Connection
Give it a name, and use the IP of the board as the host (192.168.0.10) and click OK. 


You should now be able to debug