自己紹介
Twitter ID :@Vengineer2009年〜
Blog :@Vengineerの戯言 2007年〜
http://blogs.yahoo.co.jp/verification_engineer
:昭和の時代(1987年)〜 C++を書いているプログラマ
AT&T C++ Translator => Zortech C++ … GCC/Intel/LLVM
:「SystemVerilog設計スタートアップ(2008年)」の中の人のひとり
http://www.cqpub.co.jp/hanbai/books/36/36191.htm
3.
ZynqMP : QEMU
1)、XilinxGithub : https://github.com/xilinx
2)、Xilinx Wiki : http://www.wiki.xilinx.com/
3)、QEMU User Guide, UG1169 (v1.0) November 18, 2015
4)、QEMU Github : https://github.com/qemu/qemu
QEMU for XilinxZynqMP 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
A53でStandalone program
参考文献3)、P.10
Standalone HelloWorld 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
Multiple Architecture QEMU
参考文献3)、P.134
・Thisversion 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 Disconnectthis 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
-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
QEMU : Hotplug
参考文献2)、MPSoC+Power+Management
ATFbl31
PMU
Firmware
QEMU
AArch64
QEMU
Microblade
Peta Linux
Power Off
$echo 0 > /sys/devices/system/cpu/cpu1/online
Power On
$echo 1 > /sys/devices/system/cpu/cpu1/online