Jump to content

Zynq: Difference between revisions

From HW wiki
Pisa (talk | contribs)
No edit summary
No edit summary
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
This page applies mostly to [http://microzed.org/product/microzed Microzed board] and to Microzed with our [https://cw.fel.cvut.cz/wiki/courses/b35apo/documentation/mz_apo/start MZ_APO extension board].


* Linux kenrel for Xilinx Zynq http://rtime.felk.cvut.cz/gitweb/zynq/linux.git
* Linux kenrel for Xilinx Zynq http://rtime.felk.cvut.cz/gitweb/zynq/linux.git
Line 7: Line 8:


* Toolchain for Debian or Ubuntu
* Toolchain for Debian or Ubuntu
* [https://www.xilinx.com/support/documentation/user_guides/ug585-Zynq-7000-TRM.pdf Zynq-7000 Technical Reference Manual]


  echo "deb http://debian.pengutronix.de/debian/ sid main contrib non-free" >/etc/apt/sources.list.d/pengutronix.list
  echo "deb http://debian.pengutronix.de/debian/ sid main contrib non-free" >/etc/apt/sources.list.d/pengutronix.list
Line 44: Line 47:


  cat system.bit.bin > /dev/xdevcfg
  cat system.bit.bin > /dev/xdevcfg
=== Debian Linux Install ===
Debootstrap on x86 system
Install
apt-get install binfmt-support qemu qemu-user-static debootstrap
Create directory for target system
mkdir debian_armhf
debootstrap --arch=armhf --foreign --include=debian-keyring,mc,libc6-de,libstdc ++6,busybox,aptitude jessie debian-armhf/ ftp://ftp.cz.debian.org/debian/
Install static version of QEMU which is able to interpret target architecture userspace programs 
cp /usr/bin/qemu-arm-static debian_armhf/usr/bin
Finish the second stage of deboostrap
LC_ALL=C LANGUAGE=C LANG=C chroot debian_armhf /debootstrap/debootstrap --second-stage
LC_ALL=C LANGUAGE=C LANG=C chroot debian_armhf dpkg --configure -a
=== Booting VxWorks ===
In U-Boot:
dhcp
tftpboot 0x1000000 /zynq/vxWorks
setenv bootaddr 0x101100
setenv bootdev gem(0,0)
bootvx 0x1000000

Latest revision as of 10:02, 13 December 2017

This page applies mostly to Microzed board and to Microzed with our MZ_APO extension board.

  • Toolchain for Debian or Ubuntu
echo "deb http://debian.pengutronix.de/debian/ sid main contrib non-free" >/etc/apt/sources.list.d/pengutronix.list
aptitude update
aptitude install oselas.toolchain-2014.12.2-arm-cortexa8-linux-gnueabihf-gcc-4.9.2-glibc-2.20-binutils-2.24-kernel-3.16-sanitized

Build kernel

mkdir zynq
git clone git://rtime.felk.cvut.cz/zynq/linux-build.git
cd linux-build
git submodule update --init

Check that toolchain location matches CROSS_COMPILE variable in build/xlnx_4.0.8-rt6/linux/GNUmakefile. Then invoke

cd build/xlnx_4.0.8-rt6/linux/
make

U-boot arguments for MicroZed board

bootargs=root=/dev/mmcblk0p2 rw console=ttyPS1,115200 earlyprintk

Install Debian ARMhf distribution to the media on x86 host with use of chroot and qemu

Preparation of FPGA configuration files for direct FPGA configuration by Linux or U-boot requires to prepare system.bif:

all:
{
system.bit
}

then bootgen is used to prepare binary file

bootgen -image system.bif -w -process_bitstream bin

Runtime FPGA reconfiguration

cat system.bit.bin > /dev/xdevcfg

Debian Linux Install

Debootstrap on x86 system

Install

apt-get install binfmt-support qemu qemu-user-static debootstrap

Create directory for target system

mkdir debian_armhf
debootstrap --arch=armhf --foreign --include=debian-keyring,mc,libc6-de,libstdc ++6,busybox,aptitude jessie debian-armhf/ ftp://ftp.cz.debian.org/debian/

Install static version of QEMU which is able to interpret target architecture userspace programs

cp /usr/bin/qemu-arm-static debian_armhf/usr/bin

Finish the second stage of deboostrap

LC_ALL=C LANGUAGE=C LANG=C chroot debian_armhf /debootstrap/debootstrap --second-stage
LC_ALL=C LANGUAGE=C LANG=C chroot debian_armhf dpkg --configure -a

Booting VxWorks

In U-Boot:

dhcp
tftpboot 0x1000000 /zynq/vxWorks
setenv bootaddr 0x101100
setenv bootdev gem(0,0)
bootvx 0x1000000