aboutsummaryrefslogtreecommitdiffstats
path: root/README.qemu
blob: 1a0bbac4fb05bb756458eeb0fccaf1e7c53bbb1f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
This README file contains information on running Yocto on QEMU while
emulating a Zynq-based machine.

QEMU emulation features

	Feature 	Support	Notes
	UP		yes
	SMP		yes
	TTC		yes
	UART		yes	both UARTs usable, ttyPS0 is on second UART
				just like on the ZC702 board
	PL330		yes
	SLCR		yes
	GPIO		yes	0-7 output connected to 54-61 input
	DEVCFG		yes
	EMAC		yes	Two interfaces emulated, one supported in BSP 
	88E1116R	yes	Ethernet PHY (Marvell); on board
	SDHCI		yes	Two interfaces emulated
	QSPI		no	Only linear mode emulated
	SPI		yes
	S25FL064K	yes	SPI flash, 8MB
	NAND		yes
	NAND02GR3B	yes	NAND flash, 256MB
	NOR		yes
	28F128J3A	yes	NOR flash, 16MB
	I2C		yes	two interfaces emulated, no devices attached
	USB		yes	host only
	CAN		no

Building

Build the qemu-native target. The meta-zynq layer is configured to build
	a QEMU version from Xilinx that emulates the devices mentioned before.

Booting

The QEMU version built does not integrate with the runqemu script. Use the
	following command line from the build directory:

	tmp/sysroots/i686-linux/usr/bin/qemu-system-arm  -m 512 \
	-M xilinx-zynq-a9 \
	-serial /dev/null -serial vc -monitor stdio \
	-kernel tmp/deploy/images/uImage-zynq.bin  \
	-kern-dtb tmp/deploy/images/uImage-zynq-qemu_sd.dtb \
	-sd tmp/deploy/images/core-image-zynq-zynq.ext3 -sd /dev/null


This assumes that you have built the core-image-zynq and linux-yocto targets.
The two -sd parameters are both needed. You can replace the first one
	with a copy of the root image file or you can decompress the 
	core-image-minimal-zynq.ext2.bz2 and use that instead. You can also
	replace the second one with an image file for extra space,
	it will appear as /dev/mmcblk1 in Linux.
You can activate the first serial port too (it will appear as /dev/ttyPS1) or
	switch one of the serial ports to stdio and the monitor to a virtual
	console. Read the QEMU documentation for more details.

Storage

Apart from the SDHCI emulated interfaces discussed previously, flash devices
	are emulated on the SPI, NAND and NOR interfaces. The device tree is
	configured with 4MB partitions on each device, but you can modify it
	to create more partitions or delete them and use the entire device.
All flash emulators can use a file to store the data. Create a 16MB file for
	NOR, 8MB file for SPI and a 276824064 bytes file for NAND. The NAND
	file should be initially filled with 0xFF, otherwise the bad block
	management in the kernel will think the flash pages are bad. 
Pass the following options to qemu:
	-pflash <norfile> -mtdblock <spifile> -mtdblock <nandfile>
If you don't want a SPI file but do want a NAND file, use /dev/null for SPI
	because the NAND emulator uses the second mtdblock file. If you don't
	want a NOR file, just don't use the pflash option.