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 /conf | |
| 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>
Diffstat (limited to 'conf')
| -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 | ||
