Zynq-7000 AP SoC Emulation Platform

Introduction

The Zynq-7000 AP SoC Emulation Platform is available to select Beta customers. The Emulation Platform is made up of a base board, the EP107, which incorporates a number of FPGAs to emulate a lot of the Zynq-7000 AP SoC together with an XM109 daughter card for I/O.

This page is intended to augment documentation that is included in the Beta releases from Xilinx. It describes details about running u-boot and Linux on the Emulation Platform.

Flash Memory Partitions

U-boot and Linux are setup to provide a predefined set of partitions in Flash memory. These partitions must be adhered to in order for u-boot to automatically boot Linux.

NOR Flash

Memory Offset From Base Size
First Stage Boot Loader 0 512KB
U-boot 0x80000 512KB
Linux 0x100000 5 MB
Device Tree 0x600000 256 KB
User 0x620000 8.8 MB
Scratch 0xF00000 1 MB
Rootfs 0x1000000 16 MB

QSPI Flash

The QSPI Flash memory is supported by 2 different modes, x1 or x2. The Rootfs partition can be at two different offsets and be 2 different sizes depending on the mode.

Name Offset From Base Size
First Stage Boot Loader 0 512KB
U-boot 0x80000 512KB
Linux 0x100000 5 MB
Device Tree 0x600000 256 KB
User 0x620000 8.8 KB
Scratch 0x700000 1 MB
Rootfs (x1) 0x800000 8 MB
Rootfs (x2) 0x1800000 24 MB

NAND Flash

Name Offset From Base Size
First Stage Boot Loader 0 1 MB
U-boot 0x100000 1 MB
Linux 0x200000 5 MB
Device Tree 0x700000 256 KB
User 0x720000 8.8 KB
Scratch 0x800000 1 MB
Rootfs 0x900000 128 MB
Bitstreams 0x7900000 119 MB

Updating Flash Memory

U-boot scripts are included in the Beta releases which allow the Flash Memories to be updated with the latest release. U-boot must be running on the platform either from Flash Memory or from RAM. See the Zynq u-boot page zynq-u-boot for more details about running u-boot on the Emulation Platform.

From the Host connected to the Emulation Platform, setup the TFTP server to point at the images directory of the beta1.20 area, then TFTP the appropriate u-boot binary script (update_nor.u-boot.bin, update_nand.u-boot.bin, or udpate_qspi.u-boot.bin) into memory, source it in u-boot and then wait for it to finish before rebooting.

pele-boot> tftp 0 <path/u-boot script binary>
pele-boot> source 0

After reflashing, reset the system rather than booting into Linux from u-boot. This will cause u-boot to have it's default environment which will then load the device tree before Linux. Without doing this users may see Linux boot and then indicate an error "unrecognized/unsupported machine ID" because the device tree did not get loaded.

Flash Memory Script Name
NOR Flash update_nor.u-boot.bin
QSPI Flash update_qspi.u-boot.bin
NAND Flash update_nand.u-boot.bin
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License