SlideShare ist ein Scribd-Unternehmen logo
1 von 98
Downloaden Sie, um offline zu lesen
Debian Linux on Zynq
Setup Flow
(Version March 2016 for Vivado 2015.4)
Shinya Takamaeda-Yamazaki
Nara Institute of Science and Technology (NAIST)
E-mail: shinya_at_is.naist.jp
Goal of this tutorial
n Constructing Zynq system with GPIO I/F and Debian Linux
l GPIO devices (LED and SW) are accessed from software on CPU
l (User IP can be added on PL part, if needed)
Shinya T-Y, NAIST 2
ARM
Core
L1
L2
DRAM
I/F
ARM
Core
L1
PS
PL
GPIO User IP
LED SW
FPGA
DRAM
GP
ACP HP
Setup flow for Debian Linux on Zynq
n Download and setup of FPGA board file (for Zybo)
n Hardware development on Vivado
n U-boot SPL and U-boot (only once)
n Linux kernel (only once) and device tree (only once)
n Debian root file system (only once)
n Setup SD card (only once)
n Boot from SD card
n CMA (Continuous memory allocator) driver (only once)
n Run test applications
n How to replace the bitstream
Shinya T-Y, NAIST 3
Reference platform
n FPGA board: Digilent Zybo (Zynq XC7Z010)
l Almost same flow can be applied to ZedBoard and ZC706
n FPGA tool: Xilinx Vivado 2015.4
l License is "Web Pack"
n Target OS: Debian 8.0 (Jessie)
n Host OS: Ubuntu 14.04
Shinya T-Y, NAIST 4
Download and setup FPGA board
file
Shinya T-Y, NAIST 5
FPGA board file for Zybo
n Zybo's board setting (I/O pins, …) is not included in Vivado.
Download and install it from Digilent web page
l https://reference.digilentinc.com/vivado:boardfiles/
l Follow the procedure on the web page
Shinya T-Y, NAIST 6
Install board file into Vivado system
n Unzip the download file and copy it into Vivado system
Shinya T-Y, NAIST 7
cp -a vivado-boardfiles-master/new/boardfiles/* ¥
/opt/Xilinx/Vivado/2015.4/data/boards/board_files/
Hardware development on
Vivado
Shinya T-Y, NAIST 8
Hardware development on Vivado
n Setup PATH
l If you use bash (default) or zsh
l If you use tcsh
n Create a working directory and launch Vivado
Shinya T-Y, NAIST 9
source /opt/Xilinx/Vivado/2015.4/settings64.sh
source /opt/Xilinx/Vivado/2015.4/settings64.csh
cd ~/
mkdir zybo_debian
mkdir zybo_debian/hw
cd zybo_debian/hw
vivado &
Create a new project
Shinya T-Y, NAIST 10
Shinya T-Y, NAIST 11
Shinya T-Y, NAIST 12
Shinya T-Y, NAIST 13
Shinya T-Y, NAIST 14
Shinya T-Y, NAIST 15
Shinya T-Y, NAIST 16
Shinya T-Y, NAIST 17
Select your board
Shinya T-Y, NAIST 18
Add a block design
Shinya T-Y, NAIST 19
Shinya T-Y, NAIST 20
Add IP
Shinya T-Y, NAIST 21
Add CPU
Shinya T-Y, NAIST 22
Add GPIO for LED and switch
Shinya T-Y, NAIST 23
Customize CPU
Shinya T-Y, NAIST 24
Double click
Connect to DRAM
Shinya T-Y, NAIST 25
Customize GPIO
Shinya T-Y, NAIST 26
Double click
Connect to LED and switches
Shinya T-Y, NAIST 27
Connect CPU and GPIO
Shinya T-Y, NAIST 28
Connect S_AXI and GPIO by auto
Shinya T-Y, NAIST 29
Connect LED and GPIO
Shinya T-Y, NAIST 30
Connect switches and GPIO2
Shinya T-Y, NAIST 31
Complete HW block design
Shinya T-Y, NAIST 32
Modify address value
Shinya T-Y, NAIST 33
0x43c0_0000 is recommended
Validate design
Shinya T-Y, NAIST 34
Create HDL wrapper
Shinya T-Y, NAIST 35
Then right click the block design,
and select "Create HDL Wrapper"
Shinya T-Y, NAIST 36
Generate Bitstream
Shinya T-Y, NAIST 37
Click "Generate Bitstream"
Bitstream has been Generated
Shinya T-Y, NAIST 38
Export Hardware with Bitstream (only once)
n This step is required only once for U-boot compilation
Shinya T-Y, NAIST 39
File -> Export -> Export Hardware
Export Hardware with Bitstream (only once)
Shinya T-Y, NAIST 40
Prepare "ps7_init_gpl.{c,h}" by using "hsi"
(only once, for Zybo)
n Go to the SDK directory
n Launch "hsi"
n Open HW design
n Generate application files
l Type this command in 1 line!
n Complete!
Shinya T-Y, NAIST 41
cd ~/zybo_debian/hw/zybo/zybo.sdk
hsi
open_hw_design zybo_wrapper.hdf
generate_app -hw zybo_wrapper -os standalone -proc
ps7_cortex9_0 -app zynq_fsbl -sw fsbl -dir zynq_fsbl
quit
Prepare "ps7_init_gpl.{c,h}" by using "hsi"
(only once, for Zybo)
n Example in PNG
n If you use Zybo or other special boards unlike ZedBoard
and ZC706, you must create ps7_init_gpl.*
l ps7_init_gpl.* for ZedBoard and ZC706 are already included in U-
boot as default
n Generated "ps7_init_gpl.{c,h}" files are used later for
building U-boot
Shinya T-Y, NAIST 42
Hardware development completed
n Your bitstream can be found at
zynq_debian/hw/zybo/zybo.runs/impl_1/zybo_wrapper.bit
n Copy the bitstream to somewhere (BOOT)
Shinya T-Y, NAIST 43
mkdir ~/zybo_debian/BOOT
cp ~/zybo_debian/hw/zybo/zybo.runs/impl_1/zybo_wrapper.bit ~/zybo_debian/BOOT
U-boot SPL and U-boot
Shinya T-Y, NAIST 44
Download U-boot and modify it
n Create a new working directory for software
n Clone from GitHub
n Checkout the tagged version for Vivado 2015.4
n Edit "zynq-common.h"
Shinya T-Y, NAIST 45
mkdir ~/zybo_debian/sw
cd ~/zybo_debian/sw
git clone https://github.com/Xilinx/u-boot-xlnx.git
emacs include/configs/zynq-common.h
cd u-boot-xlnx
git checkout xilinx-v2015.4
Edit "CONFIG_EXTRA_ENV_SETTINGS"
and "CONFIG_BOOTCOMMAND"
n CONFIG_EXTRA_ENV_SETTINGS
n CONFIG_BOOTCOMMAND
Shinya T-Y, NAIST 46
/* Default environment */
#define CONFIG_EXTRA_ENV_SETTINGS ¥
"fpgaload=load mmc 0 0x1000000 zynq.bit¥0 " ¥
"fpgaboot=fpga loadb 0 0x1000000 $filesize¥0 " ¥
"bootimage=uImage¥0" ¥
"fdtaddr=0x00000100¥0" ¥
"fdtimage=devicetree.dtb¥0" ¥
"loadaddr=0x8000¥0" ¥
"mmcloadcmd=fatload¥0" ¥
"mmcloadpart=1¥0" ¥
"mmcroot=/dev/mmcblk0p2¥0" ¥
"mmcload=mmc rescan; fatload mmc 0:1 ${loadaddr} ${bootimage}; fatload mmc 0:1 ${fdtaddr} ${fdtimage}¥0" ¥
"mmcboot=setenv bootargs console=ttyPS0,115200 root=${mmcroot} rw rootwait uio_pdrv_genirq.of_id=dmem-uio; bootm ${loadaddr} - ${fdtaddr}¥0" ¥
DFU_ALT_INFO
/* default boot is according to the bootmode switch settings */
#define CONFIG_BOOTCOMMAND "run fpgaload; run fpgaboot; run mmcload; run mmcboot"
Edit "CONFIG_EXTRA_ENV_SETTINGS"
and "CONFIG_BOOTCOMMAND"
n Example in PNG (Check carefully!)
Shinya T-Y, NAIST 47
Build U-boot
n Setup PATH
l If you use bash (default) or zsh
l If you use tcsh
n Setup some parameters
l If you use bash or zsh
l If you use tcsh
Shinya T-Y, NAIST 48
source /opt/Xilinx/Vivado/2015.4/settings64.sh
source /opt/Xilinx/Vivado/2015.4/settings64.csh
export CROSS_COMPILE=arm-xilinx-linux-gnueabi-
export ARCH=arm
setenv CROSS_COMPILE arm-xilinx-linux-gnueabi-
setenv ARCH arm
Build U-boot
n If you use Zybo (or an other board that its fsbl software
source code is NOT included in "u-boot-xlnx/board/zynq/"),
copy "ps7_init_gpl.{c,h}" from SDK directory to "u-boot-
xlnx/board/xilinx/zynq/custom_hw_platform"
l Files for ZedBoard and ZC706 are included as default
You can find these files, such like
"u-boot-xlnx/board/xilinx/zynq/zed_hw_platform"
n At "u-boot-xlnx"
Shinya T-Y, NAIST 49
cp ~/zybo_debian/hw/zybo/zybo.sdk/ps7_init_gpl.* ¥
board/xilinx/zynq/custom_hw_platform
Build U-boot
n At u-boot-xlnx
l If you youse other boards, such as ZedBoard, please find its
corresponding config command at u-boo-xlnx/configs, such as
"configs/zynq_zed_defconfig"
n Then, make
Shinya T-Y, NAIST 50
make zynq_zybo_defconfig
make
Build U-boot
n Example in PNG
n "u-boot.img" and "boot.bin" have been generated
at u-boot-xlnx
Shinya T-Y, NAIST 51
U-boot has been successfully generated
n Copy two files into somewhere
n Boot order is
(1) U-boot SPL -> (2) U-boot -> (3) Linux Kernel
n Even if you want to change the hardware design, no build
of U-boot is required anymore
Shinya T-Y, NAIST 52
cp u-boot.img ~/zybo_debian/BOOT/
cp boot.bin ~/zybo_debian/BOOT/
Linux kernel
Shinya T-Y, NAIST 53
Download Linux kernel
n Move to the software directory
n Clone from GitHub
n Checkout the tagged version for Vivado 2015.4
Shinya T-Y, NAIST 54
cd ~/zybo_debian/sw
git clone https://github.com/Xilinx/linux-xlnx.git
cd linux-xlnx
git checkout xilinx-v2015.4.01
Edit device tree file
n Edit "zynz-zybo.dts"
l if you use other device, please find the
corresponding device tree file
in "linux-xlnx/arch/arm/boot/dts/"
n Edit it to add
UIO
(user-space I/O)
interfaces
Shinya T-Y, NAIST 55
emacs arch/arm/boot/dts/zynq-zybo.dts
axis0 {
compatible = "dmem-uio";
reg = < 0x43c00000 0x010000 >; // (address, size)
};
axis1 {
compatible = "dmem-uio";
reg = < 0x43c10000 0x010000 >; // (address, size)
};
axis2 {
compatible = "dmem-uio";
reg = < 0x43c20000 0x010000 >; // (address, size)
};
axis3 {
compatible = "dmem-uio";
reg = < 0x43c30000 0x010000 >; // (address, size)
};
axis4 {
compatible = "dmem-uio";
reg = < 0x43c40000 0x010000 >; // (address, size)
};
axis5 {
compatible = "dmem-uio";
reg = < 0x43c50000 0x010000 >; // (address, size)
};
axis6 {
compatible = "dmem-uio";
reg = < 0x43c60000 0x010000 >; // (address, size)
};
axis7 {
compatible = "dmem-uio";
reg = < 0x43c70000 0x010000 >; // (address, size)
};
Insert these lines
Configure the kernel options
n At linux-xlnx, load the default options
n Configure the kernel options by menuconfig
Shinya T-Y, NAIST 56
make xilinx_zynq_defconfig
make menuconfig
Device Drivers->
Shinya T-Y, NAIST 57
Device Drivers->Userspace I/O drivers
Shinya T-Y, NAIST 58
Enable UIO
Shinya T-Y, NAIST 59
Device Drivers->Generic Driver Options
Shinya T-Y, NAIST 60
Edit Size in Mega Bytes of CMA
Shinya T-Y, NAIST 61
Set 256
(Option) File systems->Network File
Systems
Shinya T-Y, NAIST 62
Check "linux-xlnx/.config"
n At linux-xlnx
n Especially, check the size of
CMA
Shinya T-Y, NAIST 63
less .config
Build Linux kernel and device tree
n Setup PATH
l If you use bash (default) or zsh
l If you use tcsh
n Build the kernel image and device tree
Shinya T-Y, NAIST 64
export PATH=~/zybo_debian/sw/u-boot-xlnx/tools:$PATH
make uImage LOADADDR=0x00008000
setenv PATH ~/zybo_debian/sw/u-boot-xlnx/tools:$PATH
Build Linux kernel and device tree
n Example in PNG
Shinya T-Y, NAIST 65
Linux kernel and device tree have been
successfully generated
n Copy uImage and zynq-zybo.dtb to somewhere
n Even if you want to change the hardware design, no build
of Linux kernel is required anymore
l Device tree should be modified, if you change different address
mapping
Shinya T-Y, NAIST 66
cp arch/arm/boot/uImage ~/zybo_debian/BOOT
cp arch/arm/boot/dts/zynq-zybo.dtb ~/zybo_debian/BOOT
Debian root file sytem
Shinya T-Y, NAIST 67
Setup environment
n Setup parameters (on bash)
n Build the root file system in $targetdir (= rootfs)
Shinya T-Y, NAIST 68
cd ~/zybo_debian
sudo apt-get install qemu-user-static debootstrap binfmt-support
export targetdir=rootfs
export distro=jessie
mkdir $targetdir
sudo debootstrap --arch=armhf --foreign $distro $targetdir
sudo cp /usr/bin/qemu-arm-static $targetdir/usr/bin
sudo cp /etc/resolv.conf $targetdir/etc
sudo chroot $targetdir
Build rootfs with QEMU
n Setup APT
Shinya T-Y, NAIST 69
distro=jessie
export LANG=C
/debootstrap/debootstrap --second-stage
cat <<EOT > /etc/apt/sources.list
deb http://ftp.jp.debian.org/debian $distro main contrib non-free
deb-src http://ftp.jp.debian.org/debian $distro main contrib non-free
deb http://ftp.debian.org/debian $distro-updates main contrib non-free
deb-src http://ftp.debian.org/debian $distro-updates main contrib non-free
deb http://security.debian.org/debian-security $distro/updates main contrib non-free
deb-src http://security.debian.org/debian-security $distro/updates main contrib non-free
EOT
cat << EOT > /etc/apt/apt.conf.d/71-no-recommends
APT::Install-Recommends "0";
APT::Install-Suggests "0";
EOT
Build rootfs with QEMU
n Install applications and setup root password
n IP address
Shinya T-Y, NAIST 70
apt-get update
apt-get install locales dialog
dpkg-reconfigure locales
apt-get install openssh-server ntpdate resolvconf sudo less hwinfo ntp tcsh zsh
passwd
echo <<EOT >> /etc/network/interfaces
auto eth0
iface eth0 inet static
hwaddress ether 00:0a:35:00:02:00
address 192.168.0.100
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 192.168.0.1
EOT
Build rootfs with QEMU
n resolve.conf
n sshd_config
l “PasswordAuthentication yes”
Shinya T-Y, NAIST 71
echo <<EOT >> /etc/resolv.conf
nameserver 192.168.0.1
EOT
vi /etc/ssh/sshd_config
Build rootfs with QEMU
n Add a new admin user
l Enter, enter, …
n Edit sudo user
l Edit like below
Shinya T-Y, NAIST 72
adduser username
editor=vi visudo
# User privilege specification
root ALL=(ALL:ALL) ALL
username ALL=(ALL:ALL) ALL
Build rootfs with QEMU
n ntp.conf
n Insert a new server (in my case "ntp.nict.jp")
Shinya T-Y, NAIST 73
vi /etc/ntp.conf
#server 0.debian.pool.ntp.org iburst
#server 1.debian.pool.ntp.org iburst
#server 2.debian.pool.ntp.org iburst
#server 3.debian.pool.ntp.org iburst
server ntp.nict.jp
Build rootfs with QEMU
n rc.local
n Insert 3 lines for NTP setup
Shinya T-Y, NAIST 74
vi /etc/rc.local
service ntp stop
ntpdate ntp.nict.jp
service ntp start
exit 0
Build rootfs with QEMU
n fstab
n Insert 1 line (to mount 1st partition of SD card)
n Create a new directory for 1st partition of SD card
Shinya T-Y, NAIST 75
vi /etc/fstab
/dev/mmcblk0p1 /sdcard auto defaults 0 0
mkdir sdcard
Build rootfs with QEMU
n Permission rule of /dev/uio (Userspace I/O)
n Permission rule of /dev/xdevconfig (Configuration port)
Shinya T-Y, NAIST 76
echo KERNEL=="uio*", MODE="0666",OWNER="root",GROUP="root" >> /etc/udev/rules.d/50-uio.rules
echo KERNEL=="xdevcfg", MODE="0666",OWNER="root",GROUP="root" >> /etc/udev/rules.d/50-xdevcfg.rules
Build rootfs with QEMU
n Hostname, etc.
n Install applications (if you need)
n Finish
Shinya T-Y, NAIST 77
echo debian-zynq > /etc/hostname
echo T0:2345:respawn:/sbin/getty -L ttyS0 115200 vt1000 >> /etc/inittab
echo 127.0.0.1 debian-zynq >> /etc/hosts
apt-get install build-essential
apt-get install screen bash-completion time
apt-get install python python-pip python3 python3-pip
apt-get install nis nfs-common
exit
sudo rm -f $targetdir/usr/bin/qemu-arm-static
Setup SD card
Shinya T-Y, NAIST 78
Format SD card
n Prepare SD card (> 8GB)
n Install and launch gparted
n Setup 2 partitions
l BOOT (64MB, FAT32, with "bootable" flag)
ü 4MB empty space ahead
l rootfs (rest all, ext4)
Shinya T-Y, NAIST 79
sudo apt-get install gparted -y
sudo gparted &
empty
(4MB)
BOOT
(64MB, FAT32, bootable)
rootfs
(rest, ext4)
Copy the created files into the SD card
n Mount the formatted SD card
l /media/yourname/BOOT and /media/yourname/rootfs
n Copy bitstream, U-boot, Linux kernel, and device tree
n Copy rootfs
n Unmount BOOT and rootfs
Shinya T-Y, NAIST 80
cp ~/zybo_debian/BOOT/boot.bin /media/yourname/BOOT/
cp ~/zybo_debian/BOOT/u-boot.img /media/yourname/BOOT/
cp ~/zybo_debian/BOOT/zybo_wrapper.bit /media/yourname/BOOT/zynq.bit
cp ~/zybo_debian/BOOT/uImage /media/yourname/BOOT/
cp ~/zybo_debian/BOOT/zynq-zybo.dtb /media/yourname/BOOT/devicetree.dtb
sudo cp -a ~/zybo_debian/rootfs/* /media/yourname/rootfs/
Boot from SD card
Shinya T-Y, NAIST 81
Jumper pin (Zybo): Set SD boot
Shinya T-Y, NAIST 82
Jumper pin (ZedBoard)
Shinya T-Y, NAIST 83
Boot system from SD card
n Connect Zybo to network
l Or connect UART port to the host PC
n Insert SD card and power-on
n Login via SSH (type password)
n Or login via UART: type username and password
Shinya T-Y, NAIST 84
ssh username192.168.0.100
Time zone and locale
n Change the time zone
l In my case, Asia -> Tokyo
n Change the locale
l Select "en_US.UTF-8", "ja_JP.UTF-8", and "ja_JP.EUC-JP"
l Then select "en_US.UTF-8" as default
n Reboot
Shinya T-Y, NAIST 85
(on zynq) sudo dpkg-reconfigure tzdata
(on zynq) sudo dpkg-reconfigure locales
(on zynq) sudo reboot
CMA (Continuous memory
allocator) driver
Shinya T-Y, NAIST 86
Copy linux-xlnx into the SD card
n Mount the formatted SD card
l /media/yourname/BOOT and /media/yourname/rootfs
n Copy linux-xlnx into rootfs
n Create symbolic link to "linux"
n Download "udmabuf" from GitHub
n Remove SD card and boot again from SD card
Shinya T-Y, NAIST 87
sudo cp -a ~/zybo_debian/sw/linux-xlnx /media/yourname/rootfs/usr/src/linux
sudo ln -s /media/yourname/rootfs/usr/src/linux /media/yourname/rootfs/usr/src/kernel
git clone https://github.com/shtaxxx/udmabuf.git
sudo mkdir /media/yourname/rootfs/drivers
sudo cp -a udmabuf /media/yourname/rootfs/drivers/
Build CMA driver
n Login
n Compile kernel modules
n Compile CMA driver
Shinya T-Y, NAIST 88
(on zynq) cd /usr/src/kernel
(on zynq) sudo make modules_prepare
(on zynq) cd /drivers/udmabuf
(on zynq) sudo make
(on zynq) sudo cp udmabuf.ko /drivers/
(on zynq) sudo cp settings/setup_udmabuf.sh /drivers/
Modify /etc/rc.local for CMA driver
n Edit /etc/rc.local
n Insert 1 line before "exit 0"
n Reboot
Shinya T-Y, NAIST 89
sh /drivers/setup_udmabuf.sh
exit 0
(on zynq) sudo vi /etc/rc.local
(on zynq) sudo reboot
Run test applications
Shinya T-Y, NAIST 90
Download applications and library
n Download "zynq-linux" from GitHub
n Copy zynq-linux to Zynq system
l Type password
n Login on Zynq and go to zynq-linux/sample
Shinya T-Y, NAIST 91
(on zynq) cd zynq-linux/sample
git clone https://github.com/PyHDI/zynq-linux.git
scp -r zynq-linux username@192.168.0.100
Run GPIO test
n Compile "axis_test.c" and run it
l LED pattern is changed
l The value of switches is read
Shinya T-Y, NAIST 92
(on zynq) gcc -O2 -I ../lib/ -o axis.out axis_test.c
(on zynq) ./axis.out 15
write: 15
read: 1
Run CMA test
n Compile "cma_test.c" and run it
n RUN MODE 0: No CMA
n RUN MODE 1-3: CMA
l 1: Cache Enabled
l 2: Cache Disabled
l 3: Cache Disabled, Write-merged
Shinya T-Y, NAIST 93
(on zynq) gcc -O2 -I ../lib/ -o cma.out cma_test.c
(on zynq) ./cma.out 10000000 0
(on zynq) ./cma.out 10000000 1
(on zynq) ./cma.out 10000000 2
(on zynq) ./cma.out 10000000 3
How to replace the bitstream
Shinya T-Y, NAIST 94
Method1: Replace zynq.bit in /sdcard/
n The bitstream on SD card can be replaced on host PC
n Since 1st partition of SD card is mounted on /sdcard/, the
bistream can be replaced directly by Zynq software
n No modifications of U-boot and Linux kernel are required
n If you don't chage the address mapping for GPIO, no
modification of device tree is required
Shinya T-Y, NAIST 95
(on zynq) sudo cp new_zynq.bit /sdcard/zynq.bit
(on zynq) sudo reboot
Method2: Reconfigure via /dev/xdevcfg
n Logic part (PL) can be dynamically changed from SW
n If you change the CPU settings, such as frequency, port
configuration, etc., this flow is not perfect.
Replace "zynq.bit" on SD card and reboot, instead of this
flow
Shinya T-Y, NAIST 96
(on zynq) cat new_zynq.bit > /dev/xdevcfg
Reference
Shinya T-Y, NAIST 97
Reference
n Yet Another Guide to Running Linaro Ubuntu Linux Desktop
on Xilinx Zynq on the ZedBoard
l https://fpgacpu.wordpress.com/2013/05/24/yet-another-guide-to-
running-linaro-ubuntu-desktop-on-xilinx-zynq-on-the-zedboard/
n Building a pure Debian armhf rootfs
l https://blog.night-shade.org.uk/2013/12/building-a-pure-debian-
armhf-rootfs/
n FPGA Magazine (No.12, March 2016)
l http://www.kumikomi.net/fpga/contents/0012.php
Shinya T-Y, NAIST 98

Weitere ähnliche Inhalte

Was ist angesagt?

Uboot startup sequence
Uboot startup sequenceUboot startup sequence
Uboot startup sequenceHoucheng Lin
 
Kdump and the kernel crash dump analysis
Kdump and the kernel crash dump analysisKdump and the kernel crash dump analysis
Kdump and the kernel crash dump analysisBuland Singh
 
Linux Initialization Process (1)
Linux Initialization Process (1)Linux Initialization Process (1)
Linux Initialization Process (1)shimosawa
 
Meet cute-between-ebpf-and-tracing
Meet cute-between-ebpf-and-tracingMeet cute-between-ebpf-and-tracing
Meet cute-between-ebpf-and-tracingViller Hsiao
 
LCU13: An Introduction to ARM Trusted Firmware
LCU13: An Introduction to ARM Trusted FirmwareLCU13: An Introduction to ARM Trusted Firmware
LCU13: An Introduction to ARM Trusted FirmwareLinaro
 
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, Xilinx
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, XilinxXPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, Xilinx
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, XilinxThe Linux Foundation
 
Linux 4.x Tracing: Performance Analysis with bcc/BPF
Linux 4.x Tracing: Performance Analysis with bcc/BPFLinux 4.x Tracing: Performance Analysis with bcc/BPF
Linux 4.x Tracing: Performance Analysis with bcc/BPFBrendan Gregg
 
Tuning Android for low RAM
Tuning Android for low RAMTuning Android for low RAM
Tuning Android for low RAMChris Simmonds
 
Device Tree for Dummies (ELC 2014)
Device Tree for Dummies (ELC 2014)Device Tree for Dummies (ELC 2014)
Device Tree for Dummies (ELC 2014)Thomas Petazzoni
 
Fast boot
Fast bootFast boot
Fast bootSZ Lin
 
Bootloaders (U-Boot)
Bootloaders (U-Boot) Bootloaders (U-Boot)
Bootloaders (U-Boot) Omkar Rane
 
Alphorm.com Formation Red Hat RH124
Alphorm.com Formation Red Hat RH124Alphorm.com Formation Red Hat RH124
Alphorm.com Formation Red Hat RH124Alphorm
 

Was ist angesagt? (20)

Linux : PSCI
Linux : PSCILinux : PSCI
Linux : PSCI
 
Uboot startup sequence
Uboot startup sequenceUboot startup sequence
Uboot startup sequence
 
Kdump and the kernel crash dump analysis
Kdump and the kernel crash dump analysisKdump and the kernel crash dump analysis
Kdump and the kernel crash dump analysis
 
Linux Device Tree
Linux Device TreeLinux Device Tree
Linux Device Tree
 
Linux Initialization Process (1)
Linux Initialization Process (1)Linux Initialization Process (1)
Linux Initialization Process (1)
 
Meet cute-between-ebpf-and-tracing
Meet cute-between-ebpf-and-tracingMeet cute-between-ebpf-and-tracing
Meet cute-between-ebpf-and-tracing
 
Linux basics
Linux basicsLinux basics
Linux basics
 
LCU13: An Introduction to ARM Trusted Firmware
LCU13: An Introduction to ARM Trusted FirmwareLCU13: An Introduction to ARM Trusted Firmware
LCU13: An Introduction to ARM Trusted Firmware
 
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, Xilinx
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, XilinxXPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, Xilinx
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, Xilinx
 
Linux 4.x Tracing: Performance Analysis with bcc/BPF
Linux 4.x Tracing: Performance Analysis with bcc/BPFLinux 4.x Tracing: Performance Analysis with bcc/BPF
Linux 4.x Tracing: Performance Analysis with bcc/BPF
 
NVMe overview
NVMe overviewNVMe overview
NVMe overview
 
Linux
LinuxLinux
Linux
 
Tuning Android for low RAM
Tuning Android for low RAMTuning Android for low RAM
Tuning Android for low RAM
 
Device Tree for Dummies (ELC 2014)
Device Tree for Dummies (ELC 2014)Device Tree for Dummies (ELC 2014)
Device Tree for Dummies (ELC 2014)
 
Fast boot
Fast bootFast boot
Fast boot
 
Bootloaders (U-Boot)
Bootloaders (U-Boot) Bootloaders (U-Boot)
Bootloaders (U-Boot)
 
Alphorm.com Formation Red Hat RH124
Alphorm.com Formation Red Hat RH124Alphorm.com Formation Red Hat RH124
Alphorm.com Formation Red Hat RH124
 
Linux Porting
Linux PortingLinux Porting
Linux Porting
 
Linux: LVM
Linux: LVMLinux: LVM
Linux: LVM
 
Qnx os
Qnx os Qnx os
Qnx os
 

Ähnlich wie Debian Linux on Zynq (Xilinx ARM-SoC FPGA) Setup Flow (Vivado 2015.4)

Jagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratchJagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratchlinuxlab_conf
 
pcDuino Presentation at SparkFun
pcDuino Presentation at SparkFunpcDuino Presentation at SparkFun
pcDuino Presentation at SparkFunJingfeng Liu
 
Nix: What even is it though?
Nix: What even is it though?Nix: What even is it though?
Nix: What even is it though?Burke Libbey
 
Introduction to pcDuino
Introduction to pcDuinoIntroduction to pcDuino
Introduction to pcDuinoJingfeng Liu
 
9 creating cent_os 7_mages_for_dpdk_training
9 creating cent_os 7_mages_for_dpdk_training9 creating cent_os 7_mages_for_dpdk_training
9 creating cent_os 7_mages_for_dpdk_trainingvideos
 
Embedded Android
Embedded AndroidEmbedded Android
Embedded Android晓东 杜
 
Andresen 8 21 02
Andresen 8 21 02Andresen 8 21 02
Andresen 8 21 02FNian
 
图文详解安装Net backup 6.5备份恢复oracle 10g rac 数据库
图文详解安装Net backup 6.5备份恢复oracle 10g rac 数据库图文详解安装Net backup 6.5备份恢复oracle 10g rac 数据库
图文详解安装Net backup 6.5备份恢复oracle 10g rac 数据库maclean liu
 
Introduction to Diskless Remote Boot in Linux
Introduction to Diskless Remote Boot in LinuxIntroduction to Diskless Remote Boot in Linux
Introduction to Diskless Remote Boot in LinuxJazz Yao-Tsung Wang
 
Linux+sensor+device-tree+shell=IoT !
Linux+sensor+device-tree+shell=IoT !Linux+sensor+device-tree+shell=IoT !
Linux+sensor+device-tree+shell=IoT !Dobrica Pavlinušić
 
Embedding Qt
Embedding QtEmbedding Qt
Embedding QtFSCONS
 
Nrpe - Nagios Remote Plugin Executor. NRPE plugin for Nagios Core
Nrpe - Nagios Remote Plugin Executor. NRPE plugin for Nagios CoreNrpe - Nagios Remote Plugin Executor. NRPE plugin for Nagios Core
Nrpe - Nagios Remote Plugin Executor. NRPE plugin for Nagios CoreNagios
 
NRPE - Nagios Remote Plugin Executor. NRPE plugin for Nagios Core 4 and others.
NRPE - Nagios Remote Plugin Executor. NRPE plugin for Nagios Core 4 and others.NRPE - Nagios Remote Plugin Executor. NRPE plugin for Nagios Core 4 and others.
NRPE - Nagios Remote Plugin Executor. NRPE plugin for Nagios Core 4 and others.Marc Trimble
 
02 ai inference acceleration with components all in open hardware: opencapi a...
02 ai inference acceleration with components all in open hardware: opencapi a...02 ai inference acceleration with components all in open hardware: opencapi a...
02 ai inference acceleration with components all in open hardware: opencapi a...Yutaka Kawai
 

Ähnlich wie Debian Linux on Zynq (Xilinx ARM-SoC FPGA) Setup Flow (Vivado 2015.4) (20)

Basic Linux kernel
Basic Linux kernelBasic Linux kernel
Basic Linux kernel
 
Jagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratchJagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratch
 
pcDuino Presentation at SparkFun
pcDuino Presentation at SparkFunpcDuino Presentation at SparkFun
pcDuino Presentation at SparkFun
 
Nix: What even is it though?
Nix: What even is it though?Nix: What even is it though?
Nix: What even is it though?
 
Introduction to pcDuino
Introduction to pcDuinoIntroduction to pcDuino
Introduction to pcDuino
 
Linux
LinuxLinux
Linux
 
9 creating cent_os 7_mages_for_dpdk_training
9 creating cent_os 7_mages_for_dpdk_training9 creating cent_os 7_mages_for_dpdk_training
9 creating cent_os 7_mages_for_dpdk_training
 
Embedded Android
Embedded AndroidEmbedded Android
Embedded Android
 
Debug generic process
Debug generic processDebug generic process
Debug generic process
 
Andresen 8 21 02
Andresen 8 21 02Andresen 8 21 02
Andresen 8 21 02
 
图文详解安装Net backup 6.5备份恢复oracle 10g rac 数据库
图文详解安装Net backup 6.5备份恢复oracle 10g rac 数据库图文详解安装Net backup 6.5备份恢复oracle 10g rac 数据库
图文详解安装Net backup 6.5备份恢复oracle 10g rac 数据库
 
Introduction to Diskless Remote Boot in Linux
Introduction to Diskless Remote Boot in LinuxIntroduction to Diskless Remote Boot in Linux
Introduction to Diskless Remote Boot in Linux
 
Utft
UtftUtft
Utft
 
NetBSD workshop
NetBSD workshopNetBSD workshop
NetBSD workshop
 
unix-rosetta
unix-rosettaunix-rosetta
unix-rosetta
 
Linux+sensor+device-tree+shell=IoT !
Linux+sensor+device-tree+shell=IoT !Linux+sensor+device-tree+shell=IoT !
Linux+sensor+device-tree+shell=IoT !
 
Embedding Qt
Embedding QtEmbedding Qt
Embedding Qt
 
Nrpe - Nagios Remote Plugin Executor. NRPE plugin for Nagios Core
Nrpe - Nagios Remote Plugin Executor. NRPE plugin for Nagios CoreNrpe - Nagios Remote Plugin Executor. NRPE plugin for Nagios Core
Nrpe - Nagios Remote Plugin Executor. NRPE plugin for Nagios Core
 
NRPE - Nagios Remote Plugin Executor. NRPE plugin for Nagios Core 4 and others.
NRPE - Nagios Remote Plugin Executor. NRPE plugin for Nagios Core 4 and others.NRPE - Nagios Remote Plugin Executor. NRPE plugin for Nagios Core 4 and others.
NRPE - Nagios Remote Plugin Executor. NRPE plugin for Nagios Core 4 and others.
 
02 ai inference acceleration with components all in open hardware: opencapi a...
02 ai inference acceleration with components all in open hardware: opencapi a...02 ai inference acceleration with components all in open hardware: opencapi a...
02 ai inference acceleration with components all in open hardware: opencapi a...
 

Mehr von Shinya Takamaeda-Y

オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステムオープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステムShinya Takamaeda-Y
 
DNNのモデル特化ハードウェアを生成するオープンソースコンパイラNNgenのデモ
DNNのモデル特化ハードウェアを生成するオープンソースコンパイラNNgenのデモDNNのモデル特化ハードウェアを生成するオープンソースコンパイラNNgenのデモ
DNNのモデル特化ハードウェアを生成するオープンソースコンパイラNNgenのデモShinya Takamaeda-Y
 
ディープニューラルネットワーク向け拡張可能な高位合成コンパイラの開発
ディープニューラルネットワーク向け拡張可能な高位合成コンパイラの開発ディープニューラルネットワーク向け拡張可能な高位合成コンパイラの開発
ディープニューラルネットワーク向け拡張可能な高位合成コンパイラの開発Shinya Takamaeda-Y
 
Veriloggen.Stream: データフローからハードウェアを作る(2018年3月3日 高位合成友の会 第5回 @東京工業大学)
Veriloggen.Stream: データフローからハードウェアを作る(2018年3月3日 高位合成友の会 第5回 @東京工業大学)Veriloggen.Stream: データフローからハードウェアを作る(2018年3月3日 高位合成友の会 第5回 @東京工業大学)
Veriloggen.Stream: データフローからハードウェアを作る(2018年3月3日 高位合成友の会 第5回 @東京工業大学)Shinya Takamaeda-Y
 
Veriloggen.Thread & Stream: 最高性能FPGAコンピューティングを 目指したミックスドパラダイム型高位合成 (FPGAX 201...
Veriloggen.Thread & Stream: 最高性能FPGAコンピューティングを 目指したミックスドパラダイム型高位合成 (FPGAX 201...Veriloggen.Thread & Stream: 最高性能FPGAコンピューティングを 目指したミックスドパラダイム型高位合成 (FPGAX 201...
Veriloggen.Thread & Stream: 最高性能FPGAコンピューティングを 目指したミックスドパラダイム型高位合成 (FPGAX 201...Shinya Takamaeda-Y
 
Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)
Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)
Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)Shinya Takamaeda-Y
 
ゆるふわコンピュータ (IPSJ-ONE2017)
ゆるふわコンピュータ (IPSJ-ONE2017)ゆるふわコンピュータ (IPSJ-ONE2017)
ゆるふわコンピュータ (IPSJ-ONE2017)Shinya Takamaeda-Y
 
助教が吼える! 各界の若手研究者大集合「ハードウェアはやわらかい」
助教が吼える! 各界の若手研究者大集合「ハードウェアはやわらかい」助教が吼える! 各界の若手研究者大集合「ハードウェアはやわらかい」
助教が吼える! 各界の若手研究者大集合「ハードウェアはやわらかい」Shinya Takamaeda-Y
 
PythonとVeriloggenを用いたRTL設計メタプログラミング
PythonとVeriloggenを用いたRTL設計メタプログラミングPythonとVeriloggenを用いたRTL設計メタプログラミング
PythonとVeriloggenを用いたRTL設計メタプログラミングShinya Takamaeda-Y
 
マルチパラダイム型高水準ハードウェア設計環境の検討
マルチパラダイム型高水準ハードウェア設計環境の検討マルチパラダイム型高水準ハードウェア設計環境の検討
マルチパラダイム型高水準ハードウェア設計環境の検討Shinya Takamaeda-Y
 
Veriloggen: Pythonによるハードウェアメタプログラミング(第3回 高位合成友の会 @ドワンゴ)
Veriloggen: Pythonによるハードウェアメタプログラミング(第3回 高位合成友の会 @ドワンゴ)Veriloggen: Pythonによるハードウェアメタプログラミング(第3回 高位合成友の会 @ドワンゴ)
Veriloggen: Pythonによるハードウェアメタプログラミング(第3回 高位合成友の会 @ドワンゴ)Shinya Takamaeda-Y
 
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみようPythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみようShinya Takamaeda-Y
 
A CGRA-based Approach for Accelerating Convolutional Neural Networks
A CGRA-based Approachfor Accelerating Convolutional Neural NetworksA CGRA-based Approachfor Accelerating Convolutional Neural Networks
A CGRA-based Approach for Accelerating Convolutional Neural NetworksShinya Takamaeda-Y
 
Pythonを用いた高水準ハードウェア設計環境の検討
Pythonを用いた高水準ハードウェア設計環境の検討Pythonを用いた高水準ハードウェア設計環境の検討
Pythonを用いた高水準ハードウェア設計環境の検討Shinya Takamaeda-Y
 
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみようPythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみようShinya Takamaeda-Y
 
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)Shinya Takamaeda-Y
 
FPGA・リコンフィギャラブルシステム研究の最新動向
FPGA・リコンフィギャラブルシステム研究の最新動向FPGA・リコンフィギャラブルシステム研究の最新動向
FPGA・リコンフィギャラブルシステム研究の最新動向Shinya Takamaeda-Y
 
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)Shinya Takamaeda-Y
 
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)Shinya Takamaeda-Y
 

Mehr von Shinya Takamaeda-Y (20)

オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステムオープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
 
DNNのモデル特化ハードウェアを生成するオープンソースコンパイラNNgenのデモ
DNNのモデル特化ハードウェアを生成するオープンソースコンパイラNNgenのデモDNNのモデル特化ハードウェアを生成するオープンソースコンパイラNNgenのデモ
DNNのモデル特化ハードウェアを生成するオープンソースコンパイラNNgenのデモ
 
ディープニューラルネットワーク向け拡張可能な高位合成コンパイラの開発
ディープニューラルネットワーク向け拡張可能な高位合成コンパイラの開発ディープニューラルネットワーク向け拡張可能な高位合成コンパイラの開発
ディープニューラルネットワーク向け拡張可能な高位合成コンパイラの開発
 
Veriloggen.Stream: データフローからハードウェアを作る(2018年3月3日 高位合成友の会 第5回 @東京工業大学)
Veriloggen.Stream: データフローからハードウェアを作る(2018年3月3日 高位合成友の会 第5回 @東京工業大学)Veriloggen.Stream: データフローからハードウェアを作る(2018年3月3日 高位合成友の会 第5回 @東京工業大学)
Veriloggen.Stream: データフローからハードウェアを作る(2018年3月3日 高位合成友の会 第5回 @東京工業大学)
 
Veriloggen.Thread & Stream: 最高性能FPGAコンピューティングを 目指したミックスドパラダイム型高位合成 (FPGAX 201...
Veriloggen.Thread & Stream: 最高性能FPGAコンピューティングを 目指したミックスドパラダイム型高位合成 (FPGAX 201...Veriloggen.Thread & Stream: 最高性能FPGAコンピューティングを 目指したミックスドパラダイム型高位合成 (FPGAX 201...
Veriloggen.Thread & Stream: 最高性能FPGAコンピューティングを 目指したミックスドパラダイム型高位合成 (FPGAX 201...
 
Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)
Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)
Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)
 
ゆるふわコンピュータ (IPSJ-ONE2017)
ゆるふわコンピュータ (IPSJ-ONE2017)ゆるふわコンピュータ (IPSJ-ONE2017)
ゆるふわコンピュータ (IPSJ-ONE2017)
 
助教が吼える! 各界の若手研究者大集合「ハードウェアはやわらかい」
助教が吼える! 各界の若手研究者大集合「ハードウェアはやわらかい」助教が吼える! 各界の若手研究者大集合「ハードウェアはやわらかい」
助教が吼える! 各界の若手研究者大集合「ハードウェアはやわらかい」
 
PythonとVeriloggenを用いたRTL設計メタプログラミング
PythonとVeriloggenを用いたRTL設計メタプログラミングPythonとVeriloggenを用いたRTL設計メタプログラミング
PythonとVeriloggenを用いたRTL設計メタプログラミング
 
マルチパラダイム型高水準ハードウェア設計環境の検討
マルチパラダイム型高水準ハードウェア設計環境の検討マルチパラダイム型高水準ハードウェア設計環境の検討
マルチパラダイム型高水準ハードウェア設計環境の検討
 
Veriloggen: Pythonによるハードウェアメタプログラミング(第3回 高位合成友の会 @ドワンゴ)
Veriloggen: Pythonによるハードウェアメタプログラミング(第3回 高位合成友の会 @ドワンゴ)Veriloggen: Pythonによるハードウェアメタプログラミング(第3回 高位合成友の会 @ドワンゴ)
Veriloggen: Pythonによるハードウェアメタプログラミング(第3回 高位合成友の会 @ドワンゴ)
 
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみようPythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
 
A CGRA-based Approach for Accelerating Convolutional Neural Networks
A CGRA-based Approachfor Accelerating Convolutional Neural NetworksA CGRA-based Approachfor Accelerating Convolutional Neural Networks
A CGRA-based Approach for Accelerating Convolutional Neural Networks
 
Pythonを用いた高水準ハードウェア設計環境の検討
Pythonを用いた高水準ハードウェア設計環境の検討Pythonを用いた高水準ハードウェア設計環境の検討
Pythonを用いた高水準ハードウェア設計環境の検討
 
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみようPythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
 
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)
 
Zynq+PyCoRAM(+Debian)入門
Zynq+PyCoRAM(+Debian)入門Zynq+PyCoRAM(+Debian)入門
Zynq+PyCoRAM(+Debian)入門
 
FPGA・リコンフィギャラブルシステム研究の最新動向
FPGA・リコンフィギャラブルシステム研究の最新動向FPGA・リコンフィギャラブルシステム研究の最新動向
FPGA・リコンフィギャラブルシステム研究の最新動向
 
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
 
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
 

Kürzlich hochgeladen

DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Kürzlich hochgeladen (20)

DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

Debian Linux on Zynq (Xilinx ARM-SoC FPGA) Setup Flow (Vivado 2015.4)

  • 1. Debian Linux on Zynq Setup Flow (Version March 2016 for Vivado 2015.4) Shinya Takamaeda-Yamazaki Nara Institute of Science and Technology (NAIST) E-mail: shinya_at_is.naist.jp
  • 2. Goal of this tutorial n Constructing Zynq system with GPIO I/F and Debian Linux l GPIO devices (LED and SW) are accessed from software on CPU l (User IP can be added on PL part, if needed) Shinya T-Y, NAIST 2 ARM Core L1 L2 DRAM I/F ARM Core L1 PS PL GPIO User IP LED SW FPGA DRAM GP ACP HP
  • 3. Setup flow for Debian Linux on Zynq n Download and setup of FPGA board file (for Zybo) n Hardware development on Vivado n U-boot SPL and U-boot (only once) n Linux kernel (only once) and device tree (only once) n Debian root file system (only once) n Setup SD card (only once) n Boot from SD card n CMA (Continuous memory allocator) driver (only once) n Run test applications n How to replace the bitstream Shinya T-Y, NAIST 3
  • 4. Reference platform n FPGA board: Digilent Zybo (Zynq XC7Z010) l Almost same flow can be applied to ZedBoard and ZC706 n FPGA tool: Xilinx Vivado 2015.4 l License is "Web Pack" n Target OS: Debian 8.0 (Jessie) n Host OS: Ubuntu 14.04 Shinya T-Y, NAIST 4
  • 5. Download and setup FPGA board file Shinya T-Y, NAIST 5
  • 6. FPGA board file for Zybo n Zybo's board setting (I/O pins, …) is not included in Vivado. Download and install it from Digilent web page l https://reference.digilentinc.com/vivado:boardfiles/ l Follow the procedure on the web page Shinya T-Y, NAIST 6
  • 7. Install board file into Vivado system n Unzip the download file and copy it into Vivado system Shinya T-Y, NAIST 7 cp -a vivado-boardfiles-master/new/boardfiles/* ¥ /opt/Xilinx/Vivado/2015.4/data/boards/board_files/
  • 9. Hardware development on Vivado n Setup PATH l If you use bash (default) or zsh l If you use tcsh n Create a working directory and launch Vivado Shinya T-Y, NAIST 9 source /opt/Xilinx/Vivado/2015.4/settings64.sh source /opt/Xilinx/Vivado/2015.4/settings64.csh cd ~/ mkdir zybo_debian mkdir zybo_debian/hw cd zybo_debian/hw vivado &
  • 10. Create a new project Shinya T-Y, NAIST 10
  • 17. Shinya T-Y, NAIST 17 Select your board
  • 19. Add a block design Shinya T-Y, NAIST 19
  • 21. Add IP Shinya T-Y, NAIST 21
  • 23. Add GPIO for LED and switch Shinya T-Y, NAIST 23
  • 24. Customize CPU Shinya T-Y, NAIST 24 Double click
  • 25. Connect to DRAM Shinya T-Y, NAIST 25
  • 26. Customize GPIO Shinya T-Y, NAIST 26 Double click
  • 27. Connect to LED and switches Shinya T-Y, NAIST 27
  • 28. Connect CPU and GPIO Shinya T-Y, NAIST 28
  • 29. Connect S_AXI and GPIO by auto Shinya T-Y, NAIST 29
  • 30. Connect LED and GPIO Shinya T-Y, NAIST 30
  • 31. Connect switches and GPIO2 Shinya T-Y, NAIST 31
  • 32. Complete HW block design Shinya T-Y, NAIST 32
  • 33. Modify address value Shinya T-Y, NAIST 33 0x43c0_0000 is recommended
  • 35. Create HDL wrapper Shinya T-Y, NAIST 35 Then right click the block design, and select "Create HDL Wrapper"
  • 37. Generate Bitstream Shinya T-Y, NAIST 37 Click "Generate Bitstream"
  • 38. Bitstream has been Generated Shinya T-Y, NAIST 38
  • 39. Export Hardware with Bitstream (only once) n This step is required only once for U-boot compilation Shinya T-Y, NAIST 39 File -> Export -> Export Hardware
  • 40. Export Hardware with Bitstream (only once) Shinya T-Y, NAIST 40
  • 41. Prepare "ps7_init_gpl.{c,h}" by using "hsi" (only once, for Zybo) n Go to the SDK directory n Launch "hsi" n Open HW design n Generate application files l Type this command in 1 line! n Complete! Shinya T-Y, NAIST 41 cd ~/zybo_debian/hw/zybo/zybo.sdk hsi open_hw_design zybo_wrapper.hdf generate_app -hw zybo_wrapper -os standalone -proc ps7_cortex9_0 -app zynq_fsbl -sw fsbl -dir zynq_fsbl quit
  • 42. Prepare "ps7_init_gpl.{c,h}" by using "hsi" (only once, for Zybo) n Example in PNG n If you use Zybo or other special boards unlike ZedBoard and ZC706, you must create ps7_init_gpl.* l ps7_init_gpl.* for ZedBoard and ZC706 are already included in U- boot as default n Generated "ps7_init_gpl.{c,h}" files are used later for building U-boot Shinya T-Y, NAIST 42
  • 43. Hardware development completed n Your bitstream can be found at zynq_debian/hw/zybo/zybo.runs/impl_1/zybo_wrapper.bit n Copy the bitstream to somewhere (BOOT) Shinya T-Y, NAIST 43 mkdir ~/zybo_debian/BOOT cp ~/zybo_debian/hw/zybo/zybo.runs/impl_1/zybo_wrapper.bit ~/zybo_debian/BOOT
  • 44. U-boot SPL and U-boot Shinya T-Y, NAIST 44
  • 45. Download U-boot and modify it n Create a new working directory for software n Clone from GitHub n Checkout the tagged version for Vivado 2015.4 n Edit "zynq-common.h" Shinya T-Y, NAIST 45 mkdir ~/zybo_debian/sw cd ~/zybo_debian/sw git clone https://github.com/Xilinx/u-boot-xlnx.git emacs include/configs/zynq-common.h cd u-boot-xlnx git checkout xilinx-v2015.4
  • 46. Edit "CONFIG_EXTRA_ENV_SETTINGS" and "CONFIG_BOOTCOMMAND" n CONFIG_EXTRA_ENV_SETTINGS n CONFIG_BOOTCOMMAND Shinya T-Y, NAIST 46 /* Default environment */ #define CONFIG_EXTRA_ENV_SETTINGS ¥ "fpgaload=load mmc 0 0x1000000 zynq.bit¥0 " ¥ "fpgaboot=fpga loadb 0 0x1000000 $filesize¥0 " ¥ "bootimage=uImage¥0" ¥ "fdtaddr=0x00000100¥0" ¥ "fdtimage=devicetree.dtb¥0" ¥ "loadaddr=0x8000¥0" ¥ "mmcloadcmd=fatload¥0" ¥ "mmcloadpart=1¥0" ¥ "mmcroot=/dev/mmcblk0p2¥0" ¥ "mmcload=mmc rescan; fatload mmc 0:1 ${loadaddr} ${bootimage}; fatload mmc 0:1 ${fdtaddr} ${fdtimage}¥0" ¥ "mmcboot=setenv bootargs console=ttyPS0,115200 root=${mmcroot} rw rootwait uio_pdrv_genirq.of_id=dmem-uio; bootm ${loadaddr} - ${fdtaddr}¥0" ¥ DFU_ALT_INFO /* default boot is according to the bootmode switch settings */ #define CONFIG_BOOTCOMMAND "run fpgaload; run fpgaboot; run mmcload; run mmcboot"
  • 47. Edit "CONFIG_EXTRA_ENV_SETTINGS" and "CONFIG_BOOTCOMMAND" n Example in PNG (Check carefully!) Shinya T-Y, NAIST 47
  • 48. Build U-boot n Setup PATH l If you use bash (default) or zsh l If you use tcsh n Setup some parameters l If you use bash or zsh l If you use tcsh Shinya T-Y, NAIST 48 source /opt/Xilinx/Vivado/2015.4/settings64.sh source /opt/Xilinx/Vivado/2015.4/settings64.csh export CROSS_COMPILE=arm-xilinx-linux-gnueabi- export ARCH=arm setenv CROSS_COMPILE arm-xilinx-linux-gnueabi- setenv ARCH arm
  • 49. Build U-boot n If you use Zybo (or an other board that its fsbl software source code is NOT included in "u-boot-xlnx/board/zynq/"), copy "ps7_init_gpl.{c,h}" from SDK directory to "u-boot- xlnx/board/xilinx/zynq/custom_hw_platform" l Files for ZedBoard and ZC706 are included as default You can find these files, such like "u-boot-xlnx/board/xilinx/zynq/zed_hw_platform" n At "u-boot-xlnx" Shinya T-Y, NAIST 49 cp ~/zybo_debian/hw/zybo/zybo.sdk/ps7_init_gpl.* ¥ board/xilinx/zynq/custom_hw_platform
  • 50. Build U-boot n At u-boot-xlnx l If you youse other boards, such as ZedBoard, please find its corresponding config command at u-boo-xlnx/configs, such as "configs/zynq_zed_defconfig" n Then, make Shinya T-Y, NAIST 50 make zynq_zybo_defconfig make
  • 51. Build U-boot n Example in PNG n "u-boot.img" and "boot.bin" have been generated at u-boot-xlnx Shinya T-Y, NAIST 51
  • 52. U-boot has been successfully generated n Copy two files into somewhere n Boot order is (1) U-boot SPL -> (2) U-boot -> (3) Linux Kernel n Even if you want to change the hardware design, no build of U-boot is required anymore Shinya T-Y, NAIST 52 cp u-boot.img ~/zybo_debian/BOOT/ cp boot.bin ~/zybo_debian/BOOT/
  • 54. Download Linux kernel n Move to the software directory n Clone from GitHub n Checkout the tagged version for Vivado 2015.4 Shinya T-Y, NAIST 54 cd ~/zybo_debian/sw git clone https://github.com/Xilinx/linux-xlnx.git cd linux-xlnx git checkout xilinx-v2015.4.01
  • 55. Edit device tree file n Edit "zynz-zybo.dts" l if you use other device, please find the corresponding device tree file in "linux-xlnx/arch/arm/boot/dts/" n Edit it to add UIO (user-space I/O) interfaces Shinya T-Y, NAIST 55 emacs arch/arm/boot/dts/zynq-zybo.dts axis0 { compatible = "dmem-uio"; reg = < 0x43c00000 0x010000 >; // (address, size) }; axis1 { compatible = "dmem-uio"; reg = < 0x43c10000 0x010000 >; // (address, size) }; axis2 { compatible = "dmem-uio"; reg = < 0x43c20000 0x010000 >; // (address, size) }; axis3 { compatible = "dmem-uio"; reg = < 0x43c30000 0x010000 >; // (address, size) }; axis4 { compatible = "dmem-uio"; reg = < 0x43c40000 0x010000 >; // (address, size) }; axis5 { compatible = "dmem-uio"; reg = < 0x43c50000 0x010000 >; // (address, size) }; axis6 { compatible = "dmem-uio"; reg = < 0x43c60000 0x010000 >; // (address, size) }; axis7 { compatible = "dmem-uio"; reg = < 0x43c70000 0x010000 >; // (address, size) }; Insert these lines
  • 56. Configure the kernel options n At linux-xlnx, load the default options n Configure the kernel options by menuconfig Shinya T-Y, NAIST 56 make xilinx_zynq_defconfig make menuconfig
  • 58. Device Drivers->Userspace I/O drivers Shinya T-Y, NAIST 58
  • 60. Device Drivers->Generic Driver Options Shinya T-Y, NAIST 60
  • 61. Edit Size in Mega Bytes of CMA Shinya T-Y, NAIST 61 Set 256
  • 62. (Option) File systems->Network File Systems Shinya T-Y, NAIST 62
  • 63. Check "linux-xlnx/.config" n At linux-xlnx n Especially, check the size of CMA Shinya T-Y, NAIST 63 less .config
  • 64. Build Linux kernel and device tree n Setup PATH l If you use bash (default) or zsh l If you use tcsh n Build the kernel image and device tree Shinya T-Y, NAIST 64 export PATH=~/zybo_debian/sw/u-boot-xlnx/tools:$PATH make uImage LOADADDR=0x00008000 setenv PATH ~/zybo_debian/sw/u-boot-xlnx/tools:$PATH
  • 65. Build Linux kernel and device tree n Example in PNG Shinya T-Y, NAIST 65
  • 66. Linux kernel and device tree have been successfully generated n Copy uImage and zynq-zybo.dtb to somewhere n Even if you want to change the hardware design, no build of Linux kernel is required anymore l Device tree should be modified, if you change different address mapping Shinya T-Y, NAIST 66 cp arch/arm/boot/uImage ~/zybo_debian/BOOT cp arch/arm/boot/dts/zynq-zybo.dtb ~/zybo_debian/BOOT
  • 67. Debian root file sytem Shinya T-Y, NAIST 67
  • 68. Setup environment n Setup parameters (on bash) n Build the root file system in $targetdir (= rootfs) Shinya T-Y, NAIST 68 cd ~/zybo_debian sudo apt-get install qemu-user-static debootstrap binfmt-support export targetdir=rootfs export distro=jessie mkdir $targetdir sudo debootstrap --arch=armhf --foreign $distro $targetdir sudo cp /usr/bin/qemu-arm-static $targetdir/usr/bin sudo cp /etc/resolv.conf $targetdir/etc sudo chroot $targetdir
  • 69. Build rootfs with QEMU n Setup APT Shinya T-Y, NAIST 69 distro=jessie export LANG=C /debootstrap/debootstrap --second-stage cat <<EOT > /etc/apt/sources.list deb http://ftp.jp.debian.org/debian $distro main contrib non-free deb-src http://ftp.jp.debian.org/debian $distro main contrib non-free deb http://ftp.debian.org/debian $distro-updates main contrib non-free deb-src http://ftp.debian.org/debian $distro-updates main contrib non-free deb http://security.debian.org/debian-security $distro/updates main contrib non-free deb-src http://security.debian.org/debian-security $distro/updates main contrib non-free EOT cat << EOT > /etc/apt/apt.conf.d/71-no-recommends APT::Install-Recommends "0"; APT::Install-Suggests "0"; EOT
  • 70. Build rootfs with QEMU n Install applications and setup root password n IP address Shinya T-Y, NAIST 70 apt-get update apt-get install locales dialog dpkg-reconfigure locales apt-get install openssh-server ntpdate resolvconf sudo less hwinfo ntp tcsh zsh passwd echo <<EOT >> /etc/network/interfaces auto eth0 iface eth0 inet static hwaddress ether 00:0a:35:00:02:00 address 192.168.0.100 netmask 255.255.255.0 gateway 192.168.0.1 dns-nameservers 192.168.0.1 EOT
  • 71. Build rootfs with QEMU n resolve.conf n sshd_config l “PasswordAuthentication yes” Shinya T-Y, NAIST 71 echo <<EOT >> /etc/resolv.conf nameserver 192.168.0.1 EOT vi /etc/ssh/sshd_config
  • 72. Build rootfs with QEMU n Add a new admin user l Enter, enter, … n Edit sudo user l Edit like below Shinya T-Y, NAIST 72 adduser username editor=vi visudo # User privilege specification root ALL=(ALL:ALL) ALL username ALL=(ALL:ALL) ALL
  • 73. Build rootfs with QEMU n ntp.conf n Insert a new server (in my case "ntp.nict.jp") Shinya T-Y, NAIST 73 vi /etc/ntp.conf #server 0.debian.pool.ntp.org iburst #server 1.debian.pool.ntp.org iburst #server 2.debian.pool.ntp.org iburst #server 3.debian.pool.ntp.org iburst server ntp.nict.jp
  • 74. Build rootfs with QEMU n rc.local n Insert 3 lines for NTP setup Shinya T-Y, NAIST 74 vi /etc/rc.local service ntp stop ntpdate ntp.nict.jp service ntp start exit 0
  • 75. Build rootfs with QEMU n fstab n Insert 1 line (to mount 1st partition of SD card) n Create a new directory for 1st partition of SD card Shinya T-Y, NAIST 75 vi /etc/fstab /dev/mmcblk0p1 /sdcard auto defaults 0 0 mkdir sdcard
  • 76. Build rootfs with QEMU n Permission rule of /dev/uio (Userspace I/O) n Permission rule of /dev/xdevconfig (Configuration port) Shinya T-Y, NAIST 76 echo KERNEL=="uio*", MODE="0666",OWNER="root",GROUP="root" >> /etc/udev/rules.d/50-uio.rules echo KERNEL=="xdevcfg", MODE="0666",OWNER="root",GROUP="root" >> /etc/udev/rules.d/50-xdevcfg.rules
  • 77. Build rootfs with QEMU n Hostname, etc. n Install applications (if you need) n Finish Shinya T-Y, NAIST 77 echo debian-zynq > /etc/hostname echo T0:2345:respawn:/sbin/getty -L ttyS0 115200 vt1000 >> /etc/inittab echo 127.0.0.1 debian-zynq >> /etc/hosts apt-get install build-essential apt-get install screen bash-completion time apt-get install python python-pip python3 python3-pip apt-get install nis nfs-common exit sudo rm -f $targetdir/usr/bin/qemu-arm-static
  • 78. Setup SD card Shinya T-Y, NAIST 78
  • 79. Format SD card n Prepare SD card (> 8GB) n Install and launch gparted n Setup 2 partitions l BOOT (64MB, FAT32, with "bootable" flag) ü 4MB empty space ahead l rootfs (rest all, ext4) Shinya T-Y, NAIST 79 sudo apt-get install gparted -y sudo gparted & empty (4MB) BOOT (64MB, FAT32, bootable) rootfs (rest, ext4)
  • 80. Copy the created files into the SD card n Mount the formatted SD card l /media/yourname/BOOT and /media/yourname/rootfs n Copy bitstream, U-boot, Linux kernel, and device tree n Copy rootfs n Unmount BOOT and rootfs Shinya T-Y, NAIST 80 cp ~/zybo_debian/BOOT/boot.bin /media/yourname/BOOT/ cp ~/zybo_debian/BOOT/u-boot.img /media/yourname/BOOT/ cp ~/zybo_debian/BOOT/zybo_wrapper.bit /media/yourname/BOOT/zynq.bit cp ~/zybo_debian/BOOT/uImage /media/yourname/BOOT/ cp ~/zybo_debian/BOOT/zynq-zybo.dtb /media/yourname/BOOT/devicetree.dtb sudo cp -a ~/zybo_debian/rootfs/* /media/yourname/rootfs/
  • 81. Boot from SD card Shinya T-Y, NAIST 81
  • 82. Jumper pin (Zybo): Set SD boot Shinya T-Y, NAIST 82
  • 84. Boot system from SD card n Connect Zybo to network l Or connect UART port to the host PC n Insert SD card and power-on n Login via SSH (type password) n Or login via UART: type username and password Shinya T-Y, NAIST 84 ssh username192.168.0.100
  • 85. Time zone and locale n Change the time zone l In my case, Asia -> Tokyo n Change the locale l Select "en_US.UTF-8", "ja_JP.UTF-8", and "ja_JP.EUC-JP" l Then select "en_US.UTF-8" as default n Reboot Shinya T-Y, NAIST 85 (on zynq) sudo dpkg-reconfigure tzdata (on zynq) sudo dpkg-reconfigure locales (on zynq) sudo reboot
  • 86. CMA (Continuous memory allocator) driver Shinya T-Y, NAIST 86
  • 87. Copy linux-xlnx into the SD card n Mount the formatted SD card l /media/yourname/BOOT and /media/yourname/rootfs n Copy linux-xlnx into rootfs n Create symbolic link to "linux" n Download "udmabuf" from GitHub n Remove SD card and boot again from SD card Shinya T-Y, NAIST 87 sudo cp -a ~/zybo_debian/sw/linux-xlnx /media/yourname/rootfs/usr/src/linux sudo ln -s /media/yourname/rootfs/usr/src/linux /media/yourname/rootfs/usr/src/kernel git clone https://github.com/shtaxxx/udmabuf.git sudo mkdir /media/yourname/rootfs/drivers sudo cp -a udmabuf /media/yourname/rootfs/drivers/
  • 88. Build CMA driver n Login n Compile kernel modules n Compile CMA driver Shinya T-Y, NAIST 88 (on zynq) cd /usr/src/kernel (on zynq) sudo make modules_prepare (on zynq) cd /drivers/udmabuf (on zynq) sudo make (on zynq) sudo cp udmabuf.ko /drivers/ (on zynq) sudo cp settings/setup_udmabuf.sh /drivers/
  • 89. Modify /etc/rc.local for CMA driver n Edit /etc/rc.local n Insert 1 line before "exit 0" n Reboot Shinya T-Y, NAIST 89 sh /drivers/setup_udmabuf.sh exit 0 (on zynq) sudo vi /etc/rc.local (on zynq) sudo reboot
  • 91. Download applications and library n Download "zynq-linux" from GitHub n Copy zynq-linux to Zynq system l Type password n Login on Zynq and go to zynq-linux/sample Shinya T-Y, NAIST 91 (on zynq) cd zynq-linux/sample git clone https://github.com/PyHDI/zynq-linux.git scp -r zynq-linux username@192.168.0.100
  • 92. Run GPIO test n Compile "axis_test.c" and run it l LED pattern is changed l The value of switches is read Shinya T-Y, NAIST 92 (on zynq) gcc -O2 -I ../lib/ -o axis.out axis_test.c (on zynq) ./axis.out 15 write: 15 read: 1
  • 93. Run CMA test n Compile "cma_test.c" and run it n RUN MODE 0: No CMA n RUN MODE 1-3: CMA l 1: Cache Enabled l 2: Cache Disabled l 3: Cache Disabled, Write-merged Shinya T-Y, NAIST 93 (on zynq) gcc -O2 -I ../lib/ -o cma.out cma_test.c (on zynq) ./cma.out 10000000 0 (on zynq) ./cma.out 10000000 1 (on zynq) ./cma.out 10000000 2 (on zynq) ./cma.out 10000000 3
  • 94. How to replace the bitstream Shinya T-Y, NAIST 94
  • 95. Method1: Replace zynq.bit in /sdcard/ n The bitstream on SD card can be replaced on host PC n Since 1st partition of SD card is mounted on /sdcard/, the bistream can be replaced directly by Zynq software n No modifications of U-boot and Linux kernel are required n If you don't chage the address mapping for GPIO, no modification of device tree is required Shinya T-Y, NAIST 95 (on zynq) sudo cp new_zynq.bit /sdcard/zynq.bit (on zynq) sudo reboot
  • 96. Method2: Reconfigure via /dev/xdevcfg n Logic part (PL) can be dynamically changed from SW n If you change the CPU settings, such as frequency, port configuration, etc., this flow is not perfect. Replace "zynq.bit" on SD card and reboot, instead of this flow Shinya T-Y, NAIST 96 (on zynq) cat new_zynq.bit > /dev/xdevcfg
  • 98. Reference n Yet Another Guide to Running Linaro Ubuntu Linux Desktop on Xilinx Zynq on the ZedBoard l https://fpgacpu.wordpress.com/2013/05/24/yet-another-guide-to- running-linaro-ubuntu-desktop-on-xilinx-zynq-on-the-zedboard/ n Building a pure Debian armhf rootfs l https://blog.night-shade.org.uk/2013/12/building-a-pure-debian- armhf-rootfs/ n FPGA Magazine (No.12, March 2016) l http://www.kumikomi.net/fpga/contents/0012.php Shinya T-Y, NAIST 98