We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 52324

EDK - How do I remotely connect to a board to debug it?


There are many scenarios where the desire to debug an EDK application and see SDTIO output from a machine remote to the user is necessary. This Answer Record describes this process.

This requires a design that instantiates the MicroBlaze Debug Module (MDM). This works on either PPC or MicroBlaze Architecture; the flow does not currently work on the ARM processor.


On the remote machine, ensure you have the tools and cable drivers installed.

  1. Connect the board to the remote machine
  2. On the remote machine, source our tools, and run XMD
    • xmd
  3. Download the appropriate bitstream
    • fpga -f <../download.bit>
  4. Once in XMD, connect to your board using the "connect" command appropriate to your processor
    • connect mb mdm <options>
    • connect ppc hw <options>
  5. You should recieve a message showing a successful connection at a TCP port number. Make note of this number
  6. We will now create a UART server (for SDTIO connections), select an open appropriate port number. 4321 is the default
    • terminal -jtag_uart_server <PORTNO>

On the local machine:

  1. Open the SDK workspace with the project
  2. Right click on the BSP and select "Board Support Package Settings"
  3. Under the standalone options, change the stdin and stdiooptions to the MDM's instance name
    • This could be listed asmdm_0, mdm, debug_module
  4. Click OK
  5. Under Run -> Debug Configurations, create a new configuration for the "Xilinx C/C++ ELF"
  6. In the STDIO Connection Tab, select "Connect STDIO to Console" and select the JTAG UART from the dropdown
  7. Under the Remote Debug Tab, select the "Connect to gdbserver on a different machine
    • Enter the remote computer's hostname and the port you took note of during the "connect" stage (step 5 above)
  8. Click apply
  9. In the SDK view, click Window -> Show View -> Terminal
  10. Click the green and yellow Settings button
    • Connection Type = Telnet
    • Host = hostname of remote machine
    • Port = port number noted in the "terminal -jtag_uart_server <PORTNUM>" stage (step 6 above)
    • Hit OK
  11. Click on Run -> Debug As (Run As) -> Launch on Hardware.
  12. You will now be debugging or running on the remote hardware, with all STDIO fed through the terminal window in SDK
AR# 52324
Date Created 10/09/2012
Last Updated 10/10/2012
Status Active
Type General Article
  • EDK