diff options
author | Nathan Rossi <nathan@nathanrossi.com> | 2016-09-21 00:09:21 +1000 |
---|---|---|
committer | Nathan Rossi <nathan@nathanrossi.com> | 2016-10-11 21:10:40 +1000 |
commit | 2147f108ef9cfbdb83304c08dc511df4286ded9c (patch) | |
tree | bdfbbeb4939d4213f159ea42f960eefb402926a8 | |
parent | eff4a495cbafd787d39ab5afb75f1525e7685ec7 (diff) | |
download | meta-xilinx-2147f108ef9cfbdb83304c08dc511df4286ded9c.tar.gz |
machine-xilinx-qemu.inc: Move common runqemu setup to include
Move the common setup for QEMU machines into an include call
'machine-xilinx-qemu.inc'. This include is added to any machine that has
a QEMU model. It sets up common QB_* values as well as inheriting the
qemuboot class and adding the EXTRA_IMAGEDEPENDS on qemu-native.
This include also has helper functions to automatically determine the
DTB from KERNEL_DEVICETREE/MACHINE_DEVICETREE and automatically setup the
'console=' kernel command line based on SERIAL_CONSOLE.
Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
-rw-r--r-- | conf/machine/ep108-zynqmp.conf | 11 | ||||
-rw-r--r-- | conf/machine/include/machine-xilinx-qemu.inc | 35 | ||||
-rw-r--r-- | conf/machine/qemumicroblaze-s3adsp1800.conf | 9 | ||||
-rw-r--r-- | conf/machine/qemumicroblaze.conf | 9 | ||||
-rw-r--r-- | conf/machine/qemuzynq.conf | 10 | ||||
-rw-r--r-- | conf/machine/zcu102-zynqmp.conf | 11 |
6 files changed, 45 insertions, 40 deletions
diff --git a/conf/machine/ep108-zynqmp.conf b/conf/machine/ep108-zynqmp.conf index 2eabecf3..3b08248e 100644 --- a/conf/machine/ep108-zynqmp.conf +++ b/conf/machine/ep108-zynqmp.conf | |||
@@ -5,12 +5,10 @@ | |||
5 | require conf/machine/include/tune-zynqmp.inc | 5 | require conf/machine/include/tune-zynqmp.inc |
6 | require conf/machine/include/machine-xilinx-default.inc | 6 | require conf/machine/include/machine-xilinx-default.inc |
7 | require conf/machine/include/machine-xilinx-board.inc | 7 | require conf/machine/include/machine-xilinx-board.inc |
8 | require conf/machine/include/machine-xilinx-qemu.inc | ||
8 | 9 | ||
9 | MACHINE_FEATURES = "" | 10 | MACHINE_FEATURES = "" |
10 | 11 | ||
11 | # This machine has a qemu machine model | ||
12 | EXTRA_IMAGEDEPENDS += "qemu-native qemu-helper-native" | ||
13 | |||
14 | SERIAL_CONSOLE = "115200 ttyPS0" | 12 | SERIAL_CONSOLE = "115200 ttyPS0" |
15 | 13 | ||
16 | KERNEL_DEVICETREE = "xilinx/zynqmp-ep108.dtb" | 14 | KERNEL_DEVICETREE = "xilinx/zynqmp-ep108.dtb" |
@@ -21,15 +19,10 @@ UBOOT_ENTRYPOINT = "0x80000" | |||
21 | 19 | ||
22 | EXTRA_IMAGEDEPENDS += "arm-trusted-firmware" | 20 | EXTRA_IMAGEDEPENDS += "arm-trusted-firmware" |
23 | 21 | ||
24 | # For runqemu | 22 | # This machine has a QEMU model, runqemu setup: |
25 | IMAGE_CLASSES += "qemuboot" | ||
26 | QB_SYSTEM_NAME = "qemu-system-aarch64" | ||
27 | QB_MACHINE = "-machine xlnx-ep108" | 23 | QB_MACHINE = "-machine xlnx-ep108" |
28 | QB_MEM = "-m 2048" | 24 | QB_MEM = "-m 2048" |
29 | QB_DTB = "${KERNEL_IMAGETYPE}-${@os.path.splitext(os.path.basename(d.getVar("KERNEL_DEVICETREE",True)))[0]}.dtb" | ||
30 | QB_OPT_APPEND = "-nographic -serial mon:stdio -serial null" | 25 | QB_OPT_APPEND = "-nographic -serial mon:stdio -serial null" |
31 | QB_DEFAULT_FSTYPE = "cpio" | ||
32 | QB_KERNEL_CMDLINE_APPEND = "console=ttyPS0" | ||
33 | QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no -net nic,netdev=net0,macaddr=@MAC@" | 26 | QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no -net nic,netdev=net0,macaddr=@MAC@" |
34 | QB_SLIRP_OPT = "-netdev user,id=net0 -net nic,netdev=net0" | 27 | QB_SLIRP_OPT = "-netdev user,id=net0 -net nic,netdev=net0" |
35 | 28 | ||
diff --git a/conf/machine/include/machine-xilinx-qemu.inc b/conf/machine/include/machine-xilinx-qemu.inc new file mode 100644 index 00000000..25bf7dec --- /dev/null +++ b/conf/machine/include/machine-xilinx-qemu.inc | |||
@@ -0,0 +1,35 @@ | |||
1 | EXTRA_IMAGEDEPENDS += "qemu-native qemu-helper-native" | ||
2 | |||
3 | def qemu_default_dtb(d): | ||
4 | if d.getVar("MACHINE_DEVICETREE", True): | ||
5 | dtbs = d.getVar("MACHINE_DEVICETREE", True).split(" ") | ||
6 | dtbs = [os.path.splitext(os.path.basename(d)) for d in dtbs] | ||
7 | dtbs = ["%s.dtb" % name for name, ext in dtbs if ext == ".dts" or ext == ".dtb"] | ||
8 | return dtbs[0] if dtbs else "" | ||
9 | elif d.getVar("KERNEL_DEVICETREE", True): | ||
10 | dtbs = d.getVar("KERNEL_DEVICETREE", True).split(" ") | ||
11 | dtbs = [os.path.basename(d) for d in dtbs] | ||
12 | return d.getVar("KERNEL_IMAGETYPE", True) + "-" + (dtbs[0] if dtbs else "") | ||
13 | return "" | ||
14 | |||
15 | def qemu_default_serial(d): | ||
16 | if d.getVar("SERIAL_CONSOLE", True): | ||
17 | speed, console = d.getVar("SERIAL_CONSOLE", True).split(" ", 1) | ||
18 | return "console=%s,%s earlyprintk" % (console, speed) | ||
19 | return "" | ||
20 | |||
21 | def qemu_target_binary(d): | ||
22 | ta = d.getVar("TARGET_ARCH", True) | ||
23 | if ta == "microblazeeb": | ||
24 | ta = "microblaze" | ||
25 | elif ta == "arm": | ||
26 | ta = "aarch64" | ||
27 | return "qemu-system-%s" % ta | ||
28 | |||
29 | # For runqemu, default setup across all machines in meta-xilinx | ||
30 | IMAGE_CLASSES += "qemuboot" | ||
31 | QB_SYSTEM_NAME ?= "${@qemu_target_binary(d)}" | ||
32 | QB_DEFAULT_FSTYPE ?= "cpio" | ||
33 | QB_DTB ?= "${@qemu_default_dtb(d)}" | ||
34 | QB_KERNEL_CMDLINE_APPEND ?= "${@qemu_default_serial(d)}" | ||
35 | |||
diff --git a/conf/machine/qemumicroblaze-s3adsp1800.conf b/conf/machine/qemumicroblaze-s3adsp1800.conf index 65a85003..4eb5061f 100644 --- a/conf/machine/qemumicroblaze-s3adsp1800.conf +++ b/conf/machine/qemumicroblaze-s3adsp1800.conf | |||
@@ -4,26 +4,21 @@ | |||
4 | 4 | ||
5 | require conf/machine/include/tune-microblaze.inc | 5 | require conf/machine/include/tune-microblaze.inc |
6 | require conf/machine/include/machine-xilinx-default.inc | 6 | require conf/machine/include/machine-xilinx-default.inc |
7 | require conf/machine/include/machine-xilinx-qemu.inc | ||
7 | 8 | ||
8 | TUNE_FEATURES_tune-microblaze += "v7.30 big-endian barrel-shift pattern-compare multiply-low" | 9 | TUNE_FEATURES_tune-microblaze += "v7.30 big-endian barrel-shift pattern-compare multiply-low" |
9 | 10 | ||
10 | MACHINE_FEATURES = "" | 11 | MACHINE_FEATURES = "" |
11 | 12 | ||
12 | EXTRA_IMAGEDEPENDS += "qemu-native qemu-helper-native" | ||
13 | |||
14 | USE_VT = "" | 13 | USE_VT = "" |
15 | SERIAL_CONSOLE = "115200 ttyUL0" | 14 | SERIAL_CONSOLE = "115200 ttyUL0" |
16 | 15 | ||
17 | MACHINE_ESSENTIAL_EXTRA_RDEPENDS_remove = "device-tree" | 16 | MACHINE_ESSENTIAL_EXTRA_RDEPENDS_remove = "device-tree" |
18 | 17 | ||
19 | # For runqemu | 18 | # This machine is a targeting a QEMU model, runqemu setup: |
20 | IMAGE_CLASSES += "qemuboot" | ||
21 | QB_SYSTEM_NAME = "qemu-system-microblaze" | ||
22 | QB_MEM = "-m 256" | 19 | QB_MEM = "-m 256" |
23 | QB_MACHINE = "-machine petalogix-s3adsp1800" | 20 | QB_MACHINE = "-machine petalogix-s3adsp1800" |
24 | QB_OPT_APPEND = "-nographic -serial mon:stdio" | 21 | QB_OPT_APPEND = "-nographic -serial mon:stdio" |
25 | QB_DEFAULT_FSTYPE = "cpio" | ||
26 | QB_KERNEL_CMDLINE_APPEND = "console=ttyUL0 earlyprintk" | ||
27 | QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no -net nic,netdev=net0,macaddr=@MAC@" | 22 | QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no -net nic,netdev=net0,macaddr=@MAC@" |
28 | QB_SLIRP_OPT = "-netdev user,id=net0 -net nic,netdev=net0" | 23 | QB_SLIRP_OPT = "-netdev user,id=net0 -net nic,netdev=net0" |
29 | 24 | ||
diff --git a/conf/machine/qemumicroblaze.conf b/conf/machine/qemumicroblaze.conf index 067b6d0c..6fca065e 100644 --- a/conf/machine/qemumicroblaze.conf +++ b/conf/machine/qemumicroblaze.conf | |||
@@ -4,27 +4,22 @@ | |||
4 | 4 | ||
5 | require conf/machine/include/tune-microblaze.inc | 5 | require conf/machine/include/tune-microblaze.inc |
6 | require conf/machine/include/machine-xilinx-default.inc | 6 | require conf/machine/include/machine-xilinx-default.inc |
7 | require conf/machine/include/machine-xilinx-qemu.inc | ||
7 | 8 | ||
8 | TUNE_FEATURES_tune-microblaze += "v8.50 little-endian barrel-shift reorder pattern-compare divide-hard multiply-high fpu-hard" | 9 | TUNE_FEATURES_tune-microblaze += "v8.50 little-endian barrel-shift reorder pattern-compare divide-hard multiply-high fpu-hard" |
9 | 10 | ||
10 | MACHINE_FEATURES = "" | 11 | MACHINE_FEATURES = "" |
11 | 12 | ||
12 | EXTRA_IMAGEDEPENDS += "qemu-native qemu-helper-native" | ||
13 | |||
14 | USE_VT = "" | 13 | USE_VT = "" |
15 | SERIAL_CONSOLE = "115200 ttyS0" | 14 | SERIAL_CONSOLE = "115200 ttyS0" |
16 | 15 | ||
17 | # Use the networking setup from qemuarm | 16 | # Use the networking setup from qemuarm |
18 | FILESOVERRIDES_append_pn-init-ifupdown = ":qemuarm" | 17 | FILESOVERRIDES_append_pn-init-ifupdown = ":qemuarm" |
19 | 18 | ||
20 | # For runqemu | 19 | # This machine is a targeting a QEMU model, runqemu setup: |
21 | IMAGE_CLASSES += "qemuboot" | ||
22 | QB_SYSTEM_NAME = "qemu-system-microblazeel" | ||
23 | QB_MEM = "-m 256" | 20 | QB_MEM = "-m 256" |
24 | QB_MACHINE = "-machine petalogix-ml605" | 21 | QB_MACHINE = "-machine petalogix-ml605" |
25 | QB_OPT_APPEND = "-nographic -serial mon:stdio" | 22 | QB_OPT_APPEND = "-nographic -serial mon:stdio" |
26 | QB_DEFAULT_FSTYPE = "cpio" | ||
27 | QB_KERNEL_CMDLINE_APPEND = "console=ttyS0 earlyprintk" | ||
28 | QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no -net nic,netdev=net0,macaddr=@MAC@" | 23 | QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no -net nic,netdev=net0,macaddr=@MAC@" |
29 | QB_SLIRP_OPT = "-netdev user,id=net0 -net nic,netdev=net0" | 24 | QB_SLIRP_OPT = "-netdev user,id=net0 -net nic,netdev=net0" |
30 | 25 | ||
diff --git a/conf/machine/qemuzynq.conf b/conf/machine/qemuzynq.conf index e9767d98..70ea9e0e 100644 --- a/conf/machine/qemuzynq.conf +++ b/conf/machine/qemuzynq.conf | |||
@@ -4,11 +4,10 @@ | |||
4 | 4 | ||
5 | require conf/machine/include/tune-zynq.inc | 5 | require conf/machine/include/tune-zynq.inc |
6 | require conf/machine/include/machine-xilinx-default.inc | 6 | require conf/machine/include/machine-xilinx-default.inc |
7 | require conf/machine/include/machine-xilinx-qemu.inc | ||
7 | 8 | ||
8 | MACHINE_FEATURES = "ext2 vfat" | 9 | MACHINE_FEATURES = "ext2 vfat" |
9 | 10 | ||
10 | EXTRA_IMAGEDEPENDS += "qemu-native qemu-helper-native" | ||
11 | |||
12 | SERIAL_CONSOLE = "115200 ttyPS0" | 11 | SERIAL_CONSOLE = "115200 ttyPS0" |
13 | 12 | ||
14 | MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "device-tree" | 13 | MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "device-tree" |
@@ -17,15 +16,10 @@ MACHINE_DEVICETREE = "qemu/qemuzynq.dts" | |||
17 | # Use the networking setup from qemuarm | 16 | # Use the networking setup from qemuarm |
18 | FILESOVERRIDES_append_pn-init-ifupdown = ":qemuarm" | 17 | FILESOVERRIDES_append_pn-init-ifupdown = ":qemuarm" |
19 | 18 | ||
20 | # For runqemu | 19 | # This machine is a targeting a QEMU model, runqemu setup: |
21 | IMAGE_CLASSES += "qemuboot" | ||
22 | QB_SYSTEM_NAME = "qemu-system-arm" | ||
23 | QB_MEM = "-m 1024" | 20 | QB_MEM = "-m 1024" |
24 | QB_MACHINE = "-machine xilinx-zynq-a9" | 21 | QB_MACHINE = "-machine xilinx-zynq-a9" |
25 | QB_DTB = "${MACHINE}.dtb" | ||
26 | QB_OPT_APPEND = "-nographic -serial null -serial mon:stdio" | 22 | QB_OPT_APPEND = "-nographic -serial null -serial mon:stdio" |
27 | QB_DEFAULT_FSTYPE = "cpio" | ||
28 | QB_KERNEL_CMDLINE_APPEND = "console=ttyPS0" | ||
29 | QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no -net nic,netdev=net0,macaddr=@MAC@" | 23 | QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no -net nic,netdev=net0,macaddr=@MAC@" |
30 | QB_SLIRP_OPT = "-netdev user,id=net0 -net nic,netdev=net0" | 24 | QB_SLIRP_OPT = "-netdev user,id=net0 -net nic,netdev=net0" |
31 | 25 | ||
diff --git a/conf/machine/zcu102-zynqmp.conf b/conf/machine/zcu102-zynqmp.conf index f762922a..a38ac4ac 100644 --- a/conf/machine/zcu102-zynqmp.conf +++ b/conf/machine/zcu102-zynqmp.conf | |||
@@ -6,12 +6,10 @@ | |||
6 | require conf/machine/include/tune-zynqmp.inc | 6 | require conf/machine/include/tune-zynqmp.inc |
7 | require conf/machine/include/machine-xilinx-default.inc | 7 | require conf/machine/include/machine-xilinx-default.inc |
8 | require conf/machine/include/machine-xilinx-board.inc | 8 | require conf/machine/include/machine-xilinx-board.inc |
9 | require conf/machine/include/machine-xilinx-qemu.inc | ||
9 | 10 | ||
10 | MACHINE_FEATURES = "rtc ext2 ext3 vfat usbhost mali" | 11 | MACHINE_FEATURES = "rtc ext2 ext3 vfat usbhost mali" |
11 | 12 | ||
12 | # This machine has a qemu machine model | ||
13 | EXTRA_IMAGEDEPENDS += "qemu-native qemu-helper-native" | ||
14 | |||
15 | UBOOT_MACHINE = "xilinx_zynqmp_zcu102_revB_defconfig" | 13 | UBOOT_MACHINE = "xilinx_zynqmp_zcu102_revB_defconfig" |
16 | 14 | ||
17 | SERIAL_CONSOLE = "115200 ttyPS0" | 15 | SERIAL_CONSOLE = "115200 ttyPS0" |
@@ -25,15 +23,10 @@ EXTRA_IMAGEDEPENDS += "\ | |||
25 | arm-trusted-firmware \ | 23 | arm-trusted-firmware \ |
26 | " | 24 | " |
27 | 25 | ||
28 | # For runqemu | 26 | # This machine has a QEMU model, runqemu setup: |
29 | IMAGE_CLASSES += "qemuboot" | ||
30 | QB_SYSTEM_NAME = "qemu-system-aarch64" | ||
31 | QB_MACHINE = "-machine xlnx-zcu102" | 27 | QB_MACHINE = "-machine xlnx-zcu102" |
32 | QB_MEM = "-m 2048" | 28 | QB_MEM = "-m 2048" |
33 | QB_DTB = "${KERNEL_IMAGETYPE}-${@os.path.splitext(os.path.basename(d.getVar("KERNEL_DEVICETREE",True)))[0]}.dtb" | ||
34 | QB_OPT_APPEND = "-nographic -serial mon:stdio -serial null" | 29 | QB_OPT_APPEND = "-nographic -serial mon:stdio -serial null" |
35 | QB_DEFAULT_FSTYPE = "cpio" | ||
36 | QB_KERNEL_CMDLINE_APPEND = "console=ttyPS0" | ||
37 | QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no -net nic -net nic -net nic -net nic,netdev=net0,macaddr=@MAC@" | 30 | QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no -net nic -net nic -net nic -net nic,netdev=net0,macaddr=@MAC@" |
38 | QB_SLIRP_OPT = "-netdev user,id=net0 -net nic -net nic -net nic -net nic,netdev=net0" | 31 | QB_SLIRP_OPT = "-netdev user,id=net0 -net nic -net nic -net nic -net nic,netdev=net0" |
39 | 32 | ||