diff options
author | Nathan Rossi <nathan@nathanrossi.com> | 2017-05-30 21:30:28 +1000 |
---|---|---|
committer | Nathan Rossi <nathan@nathanrossi.com> | 2017-06-03 16:55:31 +1000 |
commit | c9b8ff6881cc94cf10b57e3d184cf39125facee6 (patch) | |
tree | 2720b3b15c7d99feb702732bd635cb05c9170f1d /conf | |
parent | 8aa7f645587d3900f52d3b545543058ce0457e63 (diff) | |
download | meta-xilinx-c9b8ff6881cc94cf10b57e3d184cf39125facee6.tar.gz |
zcu102-zynqmp: Setup the use of multiarch QEMU
Setup the qemuboot variables and qemu-xilinx-helper-native environment
to use the multiarch script to start a QEMU multiarch instance with the
MicroBlaze PMU.
Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Tested-by: Alistair Francis <alistair.francis@xilinx.com>
Diffstat (limited to 'conf')
-rw-r--r-- | conf/machine/include/machine-xilinx-qemu.inc | 5 | ||||
-rw-r--r-- | conf/machine/zcu102-zynqmp.conf | 22 |
2 files changed, 24 insertions, 3 deletions
diff --git a/conf/machine/include/machine-xilinx-qemu.inc b/conf/machine/include/machine-xilinx-qemu.inc index 938d76d4..dd275f3b 100644 --- a/conf/machine/include/machine-xilinx-qemu.inc +++ b/conf/machine/include/machine-xilinx-qemu.inc | |||
@@ -36,6 +36,11 @@ def qemu_target_binary(d): | |||
36 | ta = "aarch64" | 36 | ta = "aarch64" |
37 | return "qemu-system-%s" % ta | 37 | return "qemu-system-%s" % ta |
38 | 38 | ||
39 | def qemu_zynqmp_unhalt(d, multiarch): | ||
40 | if multiarch: | ||
41 | return "-global xlnx,zynqmp-boot.cpu-num=0 -global xlnx,zynqmp-boot.use-pmufw=true" | ||
42 | return "-device loader,addr=0xfd1a0104,data=0x8000000e,data-len=4 -device loader,addr=0xfd1a0104,data=0x8000000e,data-len=4" | ||
43 | |||
39 | # For qemuboot, default setup across all machines in meta-xilinx | 44 | # For qemuboot, default setup across all machines in meta-xilinx |
40 | QB_SYSTEM_NAME ?= "${@qemu_target_binary(d)}" | 45 | QB_SYSTEM_NAME ?= "${@qemu_target_binary(d)}" |
41 | QB_DEFAULT_FSTYPE ?= "cpio" | 46 | QB_DEFAULT_FSTYPE ?= "cpio" |
diff --git a/conf/machine/zcu102-zynqmp.conf b/conf/machine/zcu102-zynqmp.conf index 054a1790..526fbf25 100644 --- a/conf/machine/zcu102-zynqmp.conf +++ b/conf/machine/zcu102-zynqmp.conf | |||
@@ -41,10 +41,13 @@ QB_NETWORK_DEVICE = "-net nic -net nic -net nic -net nic,netdev=net0,macaddr=@MA | |||
41 | # Use qemu-xilinx instead of mainline | 41 | # Use qemu-xilinx instead of mainline |
42 | PREFERRED_PROVIDER_qemu-helper-native = "qemu-xilinx-helper-native" | 42 | PREFERRED_PROVIDER_qemu-helper-native = "qemu-xilinx-helper-native" |
43 | 43 | ||
44 | # Reset and unhalt CPU0, load the boot media. | 44 | # Use the multiarch script instead of launching QEMU directly |
45 | QB_SYSTEM_NAME_append = "-multiarch" | ||
46 | |||
47 | # Setup hw-dtb, unhalt, atf and u-boot loading | ||
45 | QB_OPT_APPEND_append_qemuboot-xilinx = " \ | 48 | QB_OPT_APPEND_append_qemuboot-xilinx = " \ |
46 | -hw-dtb ${DEPLOY_DIR_IMAGE}/qemu-hw-devicetrees/zcu102-arm.dtb \ | 49 | -hw-dtb ${DEPLOY_DIR_IMAGE}/qemu-hw-devicetrees/multiarch/zcu102-arm.dtb \ |
47 | -device loader,addr=0xfd1a0104,data=0x8000000e,data-len=4 \ | 50 | ${@qemu_zynqmp_unhalt(d, True)} \ |
48 | -device loader,file=${DEPLOY_DIR_IMAGE}/arm-trusted-firmware.elf,cpu-num=0 \ | 51 | -device loader,file=${DEPLOY_DIR_IMAGE}/arm-trusted-firmware.elf,cpu-num=0 \ |
49 | -device loader,file=${DEPLOY_DIR_IMAGE}/u-boot.elf \ | 52 | -device loader,file=${DEPLOY_DIR_IMAGE}/u-boot.elf \ |
50 | " | 53 | " |
@@ -55,4 +58,17 @@ QB_ROOTFS_OPT_qemuboot-xilinx = " -device loader,addr=0x6000000,file=@ROOTFS@,fo | |||
55 | QB_OPT_APPEND_append_qemuboot-xilinx = " \ | 58 | QB_OPT_APPEND_append_qemuboot-xilinx = " \ |
56 | -device loader,addr=0x4000000,file=${DEPLOY_DIR_IMAGE}/${QB_DTB} \ | 59 | -device loader,addr=0x4000000,file=${DEPLOY_DIR_IMAGE}/${QB_DTB} \ |
57 | -device loader,addr=0x80000,file=${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE} \ | 60 | -device loader,addr=0x80000,file=${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE} \ |
61 | -pmu-args '${QB_PMU_OPT}' \ | ||
62 | " | ||
63 | |||
64 | PMU_ROM ?= "${DEPLOY_DIR_IMAGE}/pmu-rom.elf" | ||
65 | QB_PMU_OPT = " \ | ||
66 | -M microblaze-fdt \ | ||
67 | -display none \ | ||
68 | -hw-dtb ${DEPLOY_DIR_IMAGE}/qemu-hw-devicetrees/multiarch/zynqmp-pmu.dtb \ | ||
69 | -kernel ${PMU_ROM} \ | ||
70 | -device loader,file=${DEPLOY_DIR_IMAGE}/pmu-${MACHINE}.elf \ | ||
71 | -device loader,addr=0xfd1a0074,data=0x1011003,data-len=4 \ | ||
72 | -device loader,addr=0xfd1a007C,data=0x1010f03,data-len=4 \ | ||
58 | " | 73 | " |
74 | |||