The RFSoC Book and Design Examples for the ZCU208 & ZCU216

Hi David,
Just have a quick question. I’m trying to connect to a ZCU208, but I’m unable to connect over ethernet. What is the default IP address assigned in the zcu208v3.0.1 boot image? I can’t seem to find it in any documentation.


Hi Reid,

Thanks for your message; hopefully, this post has been useful to you.

Please follow the instructions here to connect to your ZCU208 development board using PYNQ. Note that you must use the router method in the above link or share your internet connection with the ZCU208 to have internet access. The RFSoC-Book installation will fail if your ZCU208 does not have internet connectivity.

Also, just a small note to say that you should open a new support post for these types of questions in the future (if you can’t find the answer already in the forums),

All the best,

Hi David,

I’ve tried to go through the instructions in the link. The MAC address of my board is whitelisted on my institute’s DHCP network, and it has a manually assigned IP address in the same range as the machine I’m trying to connect from. However, I’m unable to connect to the board, or even to ping it.
I used Win32DiskImager to load an SD card with the PYNQv3.0.1 image file, and my board is set to SD boot. Is there something in the image file that sets a default static IP address?

We’ve even tried connecting to the board over an ethernet hub and watching the output of tcpdump, but no packets are sent or received by the board.

Any ideas why this might be the case?


1 Like

Hi Reid,

Firstly, we can try and confirm that PYNQ is booting. Can you do the following:

  • After writing PYNQ v3.0.1 to the SD Card, insert it into the SD Card slot on the ZCU208.
  • Then, connect a micro USB cable between the ZCU208 and the computer.
  • Connect the ethernet cable to the router or PC.
  • Switch on the board.
  • Download Teraterm and use this to open a serial (UART) connection to the ZCU208. Teraterm should immediately recognise a COM port with a number at the end. If there are many COM ports, select the port with the lowest number. Set the BAUD rate to 115200 and open the connection.
  • Now, press enter on your keyboard in the Teraterm terminal; you should see the word PYNQ appear or a response of some kind. If you do not, try the other COM ports until a response is obtained. If you do not get any response from any COM port let me know and I will have other suggestions.

The above is a good starting point to verify if PYNQ is running on your board and will be useful later to obtain the IP address of your board if DHCP is used.

Let me know when you have done this, and we can continue to the next step,


Went through the list; no response from the board on the serial terminal…

Odd, because I have been able to program it over Vivado by writing a simple bitstream to the board over JTAG.

Hi Reid,

The last thing for me to check before progressing is to determine whether you see an LED on the board flashing like a heartbeat.

This LED should be labelled PS_LED near one of the corners,


Hi David,

It’s on, but it is not flashing.



Great, so this tells me that PYNQ hasn’t been written correctly to the SD Card (which is common), or the board hasn’t been configured to boot from SD correctly.

Can you now do the following:

  • Use the SD card formatter tool to wipe your SD card clean. Just use the quick format option with this software tool.
  • Rewrite the ZCU208 v3.0.1 PYNQ image to the SD card. You should also download it again, just in case you have an issue with the .iso. Please note that there is an issue with the current download links, and you will have to wait until this is resolved. See here for more information.
  • Lastly, check that SW2 is set to (ON, OFF, OFF, OFF) (1, 2, 3, 4).

Let me know how you get on,


Right on! I can connect over the serial terminal. PYNQ has booted. I still can’t connect over the network to the board, but this is progress!

It seems that the sticker on the bottom of the board is not the MAC address, since it doesn’t agree at all with what I see when I run ifconfig in the PYNQ terminal. So, now I wait for IT to whitelist the MAC address for the network.

One last thing-- it seems to generate a random MAC address every time it reboots. Is there any way to prevent that from happening or to set a permanent MAC address?

Hi Reid,

Thanks for marking the solution!

The following link should give you more insight into the MAC address problem.

All the best,

Yep, found that and tried it, but setenv, etc. are not recognized as valid commands. I also notice there’s an error on startup:
Loading environment from FAT... *** Error - No Valid Environment Area found *** Warning - bad env area, using default environment

Is this the issue solved by rebuilding the image? Building a massive VM with Vitis installed (130GB :skull: ) on it is a real pain on my already-limited disk space.

Hi Reid,

I get the same error, so nothing to worry about.

setenv is a valid command on my build of PYNQ. Are you sure that you are following all of the instructions correctly?

The command window should say ZynqMP> when you exit the boot process during startup. Can you double-check that this is the case?

Here is an excerpt of my boot process…

Xilinx Zynq MP First Stage Boot Loader
Release 2022.1   Apr 11 2022  -  09:29:50
NOTICE:  BL31: v2.6(release):xlnx_rebase_v2.6_2022.1_update3
NOTICE:  BL31: Built : 03:46:40, Mar 24 2022

U-Boot 2022.01 (Apr 04 2022 - 07:53:54 +0000)

CPU:   ZynqMP
Silicon: v3
Model: ZynqMP ZCU208 RevA
Board: Xilinx ZynqMP
DRAM:  4 GiB
PMUFW:  v1.1
EL Level:       EL2
Chip ID:        zu48dr
NAND:  0 MiB
MMC:   mmc@ff170000: 0
Loading Environment from FAT... *** Error - No Valid Environment Area found
*** Warning - bad env area, using default environment

In:    serial
Out:   serial
Err:   serial
Reset reason:   EXTERNAL
ZYNQ GEM: ff0e0000, mdio bus ff0e0000, phyaddr 12, interface rgmii-id
zynq_gem ethernet@ff0e0000: Failed to read eth PHY id, err: -2

Warning: ethernet@ff0e0000 (eth0) using random MAC address - 0e:bb:b1:3a:4d:67
eth0: ethernet@ff0e0000
scanning bus for devices...
SATA link 0 timeout.
SATA link 1 timeout.
AHCI 0001.0301 32 slots 2 ports 6 Gbps 0x3 impl SATA mode
flags: 64bit ncq pm clo only pmp fbss pio slum part ccc apst
Hit any key to stop autoboot:  0
ZynqMP> setenv
setenv - set environment variables

setenv -e [-guid guid][-nv][-bs][-rt][-at][-a][-v]
        [-i addr:size name], or [name [value ...]]
    - set UEFI variable 'name' to 'value' ...'
      "-guid": GUID xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
      "-nv": set non-volatile attribute
      "-bs": set boot-service attribute
      "-rt": set runtime attribute
      "-at": set time-based authentication attribute
      "-a": append-write
      "-i addr,size": use <addr,size> as variable's value
      "-v": verbose message
    - delete UEFI variable 'name' if 'value' not specified
setenv [-f] name value ...
    - [forcibly] set environment variable 'name' to 'value ...'
setenv [-f] name
    - [forcibly] delete environment variable 'name'


Hi David,
Nope, seems setenv isn’t included in my particular image for some reason…

As you can see up top, I manually added a MAC address to /etc/environment, but it doesn’t seem to be referenced at all on startup; ifconfig returns the randomly assigned MAC address, which isn’t whitelisted on my network…


Hi Reid,

When booting the ZCU208 please exit the boot procedure by pressing any button on your keyboard into the Teraterm when prompted to on the terminal. You will see that this allows you to access a new environment that isn’t PYNQ.

See my code snippet for an example,



Aha! Victory!

Thanks so much for all your help!

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.