ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)Mr. Vengineer
2016年2月20日(金)のZynq Ultrasclae+ MPSoC 勉強会で使った資料です。
追記) 2016.05.08
公式ARM Trusted Firmwareのサイトに、Zynq UltraScale+ MPSoCの実装が追加されていていることを明記した
This is the material I used at Zynq Ultrasclae + MPSoC SIG on 20th February (Friday).
Addendum) 2016.05.08
We stated that the implementation of Zynq UltraScale + MPSoC was added to the official ARM Trusted Firmware site.
ATF(ARM Trusted Firmware)は、ARMv8では重要なソフトウェア。
全体を利用するのではなく、その一部を利用可能。
この資料では、BL31(EL3 Runtime Firmware)を単体で使う場合、どうすればいいのかを、Xilinx社のZynq UltraScale+ MPSoCを例に説明しています。
ATF (ARM Trusted Firmware) is an important software in ARMv8.
Instead of using the whole, part of it is available.
This document explains how to do when using BL31 (EL3 Runtime Firmware) alone, for example, with Xilinx's Zynq UltraScale + MPSoC.
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)Mr. Vengineer
2016年2月20日(金)のZynq Ultrasclae+ MPSoC 勉強会で使った資料です。
追記) 2016.05.08
公式ARM Trusted Firmwareのサイトに、Zynq UltraScale+ MPSoCの実装が追加されていていることを明記した
This is the material I used at Zynq Ultrasclae + MPSoC SIG on 20th February (Friday).
Addendum) 2016.05.08
We stated that the implementation of Zynq UltraScale + MPSoC was added to the official ARM Trusted Firmware site.
ATF(ARM Trusted Firmware)は、ARMv8では重要なソフトウェア。
全体を利用するのではなく、その一部を利用可能。
この資料では、BL31(EL3 Runtime Firmware)を単体で使う場合、どうすればいいのかを、Xilinx社のZynq UltraScale+ MPSoCを例に説明しています。
ATF (ARM Trusted Firmware) is an important software in ARMv8.
Instead of using the whole, part of it is available.
This document explains how to do when using BL31 (EL3 Runtime Firmware) alone, for example, with Xilinx's Zynq UltraScale + MPSoC.
CloudNative Days Tokyo 2020での、lazypullに関する発表資料です。https://event.cloudnativedays.jp/cndt2020/talks/16
Stargz Snapshotterのリポジトリ:
https://github.com/containerd/stargz-snapshotter
CloudNative Days Tokyo 2020での、lazypullに関する発表資料です。https://event.cloudnativedays.jp/cndt2020/talks/16
Stargz Snapshotterのリポジトリ:
https://github.com/containerd/stargz-snapshotter
FPGAアクセラレータの作り方
IBM POWER + CAPI編
http://www.slideshare.net/ssuser479fa3/ibm-capi
にHDLシミュレーション環境を追記したものです。
How to make an FPGA accelerator
IBM POWER + CAPI version
The HDL simulation environment is added to the document of
http://www.slideshare.net/ssuser479fa3/ibm-capi .
SDSoC解体新書2016.2版ソフトウェア編 (チラ見) : Inside SDSoC v2016.2 (Software short edtion)Mr. Vengineer
XilinxのSDSoCが生成するソフトウェアの調査結果をまとめたものです。
2016.09.09 : 新規登録しました。
2016.09.10 : SDSoCが生成するSDカード内のファイルの部分を追記しました。
It summarizes the investigation result of software generated by Xilinx's SDSoC v2016.2.
2016.09.09: I newly registered.
2016.09.10: The file part in the SD card generated by SDSoC was added.
TensorFlow XLAの中では、
XLA Client を Pythonで利用できるようになっています。
また、2018年2月に開催されたSysMLの論文(JAX@Google)についても追記しました。
In TensorFlow XLA,
XLA Client is now available in Python.
Also added about SysML's paper (JAX @ Google) held in February 2018.
Tiramisu : A Code Optimization Framework for High Performance Systems
https://www.csail.mit.edu/research/tiramisu-framework-code-optimization-and-code-generation
の概要です。
ドキュメントがほとんどないので、ソースコード解析をやって、サンプルプログラムの内容について、調べてみました。
5. QEMU for Xilinx ZynqMP by Edgar E. Lglesias
QEMU for Xilinx ZynqMP by Edgar E. Iglesias
https://www.youtube.com/watch?v=L5zG5Aukfek
http://events.linuxfoundation.org/sites/events/files/slides/zynqmp-qemu.pdf
この人、TLMu : https://edgarigl.github.io/tlmu/ も作っています。
TLMuは、hdLab (http://www.hdlab.co.jp/web/a050consulting/b009armcpumodel/) や
プロファウンド・デザイン・テクノロジー (http://www.profound-dt.co.jp/tlmu.php) で
利用されています。
LinkedIn : http://au.linkedin.com/in/edgariglesias
8. A53でStandalone program
参考文献3)、P.10
Standalone Hello World Example
This example runs a “Hello-world” ELF file on an A53 processor. Substitute the
hello_world.elf with the location your target software, as follows:
qemu-system-aarch64 -nographic -M arm-generic-fdt -dtb qemu-arm.dtb
-device loader,file=./hello_world.elf,cpu=0
-device loader,addr=0xfd1a0104,data=0x8000000e,data-len=4
10. Multiple Architecture QEMU
参考文献3)、P.134
・This version of QEMU supports running the ARM (Cortex-A53s and
Cortex-R5s) and Microblaze™ power management unit (PMU).
・ The multi-architecture version of QEMU needs different device tree
binaries (DTB)s, than what is necessary for single-architecture (Single-
Architecture).
11. Serial
参考文献3)、P.17
-serial=<arg>
<arg> /dev/null Disconnect this particular serial.
<arg> mon:stdio Connect this serial and monitor to the terminal.
<arg> stdio Connect this serial to terminal.
<arg> telnet::<port>,server, nowait
Create a localhost telnet server on <port> for the serial
connection. It can be accessed by: telnet localhost <port>.
<arg> chardev: dev Connects serial to a backend;
for example, to a socket, pipe, or terminal.
12. no graphic
参考文献3)、P.17
-nographic
By default, QEMU attempts to create a display for user I/O. This option instructs the QEMU
that there is no need for a display and I/O is serial.
QEMU attaches the invoking terminal to the serial port in this case (in the default use cases,
this is UART0).
In this mode, the QEMU monitor (a command line interface for sending control commands
to QEMU) is multiplexed on stdio. To switch between the serial port and the monitor, use
the following command: CTRL-a c
24. -M arm-generic-fdt
参考文献3)、P.16
参考文献1)、qemu/blob/master/hw/arm/arm_generic_fdt.c
-M arm-generic-fdt ( -hw-dtb | -dtb ) <file> : -hw-dtbが優先される
-dtb vs -hw-dtb
For Linux Kernel boots, QEMU supports a flow where different DTBs are used for machine
generation and Linux Kernel boot. In this flow, both -dtb and -hw-dtb are specified on
the command line.
The -hw-dtb is used for machine generation and -dtb is passed to the Linux Kernel (using
a memory buffer). For standalone, flows these two arguments are fully interchangeable;
specify only one or the other.
参考文献2)、QEMU+-+Zynq-7000
Zynqの場合は、-M arm-generic-fdt-plnx
25. PetaLinux 2015.4
参考文献2)、QEMU+-+ZynqMP
$ ./aarch64-softmmu/qemu-system-aarch64 -M arm-generic-fdt -serial mon:stdio
-serial /dev/null -display none
-device loader,addr=0xfd1a0104,data=0x8000000e,data-len=4 # Un-reset the A53
-device loader,file=./pre-built/linux/images/bl31.elf,cpu=0 # ARM Trusted Firmware
-device loader,file=./pre-built/linux/images/Image,addr=0x00080000 # Linux kernel
-device loader,file=./images/linux/system.dtb,addr=0x04080000 # # Linux Device Tree
-device loader,file=./build/linux/misc/linux-boot/linux-boot.elf # A light boot loader
-hw-dtb ./pre-built/linux/images/zynqmp-qemu-arm.dtb # HW Device Tree