Hi Corey,
Attached the machine file patch for vpk120 board. With you should be
able to boot without initramfs bundled. Below is the steps you need to
follow.
Mark let me know if you have any comments on patch.
$ cd sources/meta-xilinx
$ git am 0001-vpk120-versal-Add-new-machine-conf-file-for-VPK120-b.patch
# unset INITRAMFS configurations,
$ MACHINE=vpk120-versal bitbake petalinux-image-minimal
QEMU testing:
$ MACHINE=vpk120-versal bitbake runqemu nographic
HW JTAG testing:
Copy images from ${DEPLOY_DIR}
$ cp ${DEPLOY_DIR}/BOOT-vpk120-versal-<timestamp>.bin BOOT.bin
$ cp ${DEPLOY_DIR}/u-boot-zynq-scr--1.0-r0-<timestamp>.scr boot.scr
$ cp
${DEPLOY_DIR}/Image--5.15.36+git0+<SRCREV>-r0.0-vpk120-versal-<timestamp>.bin
Image
$ cp
${DEPLOY_DIR}/petalinux-image-minimal-vpk120-versal-<timestamp>.rootfs.cpio.gz.u-boot
rootfs.cpio.gz.u-boot
Launch xsct and run below commands.
xsct% set image_dir "<ABSOLUTE_PATH_TO_VPK120_IMAGES>"
xsct% connect -url TCP:<hw_server_host_name>:3121
xsct% targets -set -nocase -filter {name =~ "*PMC*"}
xsct% puts stderr "INFO: Downloading BIN file: $image_dir/BOOT.bin"
xsct% device program "$image_dir/BOOT.bin"
xsct% targets -set -nocase -filter {name =~ "*A72*#0"}
xsct% stop
xsct% targets -set -nocase -filter {name =~ "*Versal*"}
xsct% puts stderr "INFO: Downloading Kernel Image file: $image_dir/Image
at 0x00200000"
xsct% dow -data "$image_dir/Image" 0x00200000
xsct% puts stderr "INFO: Downloading Rootfs file:
$image_dir/rootfs.cpio.gz.u-boot at 0x04000000"
xsct% dow -data "$image_dir/rootfs.cpio.gz.u-boot" 0x04000000
xsct% puts stderr "INFO: Downloading U-boot boot script file:
$image_dir/boot.scr at 0x20000000"
xsct% dow -data "$image_dir/boot.scr" 0x20000000
xsct% targets -set -nocase -filter {name =~ "*A72*#0"}
xsct% con
xsct% exit
Thanks,
Sandeep
On 1/30/2023 11:08 AM, Gundlupet Raju, Sandeep wrote:
On 1/30/2023 10:58 AM, Thompson, Corey via lists.yoctoproject.org wrote:
Hi.
I am aware that there isn't a vpk120 machine configuration in 2022.x, so
I provided a machine config for it in my minimal working example that is
similar to what we use at my organization.
Is there any update available here? Perhaps some workaround that we
could put in our layer to deal with it until this has better support in
2023.1? As I mentioned earlier, having to change our local.conf to
build without initramfs for QEMU, but with initramfs for the real VPK120
board is a bit of a burden on our development workflow.
[Sandeep]: We just got everything up and running for 2023.1 internal
development vpk120 machine conf a week ago. We will provide a
workaround patch for 2022.2 asap once I tested on QEMU and HW.
Thanks,
Sandeep
Thanks,
Corey
On Tue, Jan 10, 2023 at 05:06:22PM -0700, Gundlupet Raju, Sandeep wrote:
Hi Corey,
In 2022.x Yocto we don't have a vpk120 machine configuration file,
this is
something we have planned to add in 2023.1. But still you should be
able to
use versal-generic machine conf file with below configs and run it on
qemu/hw.
HDF_BASE = "file://"
HDF_PATH = "/<ABSOLUTE_PATH_TO_XSA>/vpk120.xsa"
# Versal PLM Variables
YAML_SERIAL_CONSOLE_STDIN:pn-plm-firmware =
"versal_cips_0_pspmc_0_psv_sbsauart_0"
YAML_SERIAL_CONSOLE_STDOUT:pn-plm-firmware =
"versal_cips_0_pspmc_0_psv_sbsauart_0"
# Versal Device-tree Variables
YAML_CONSOLE_DEVICE_CONFIG:pn-device-tree =
"versal_cips_0_pspmc_0_psv_sbsauart_0"
YAML_DT_BOARD_FLAGS = "{BOARD versal-vpk120-reva}"
$ MACHINE=versal-generic bitbake core-image-minimal
I will take a look on this issue.
Thanks,
Sandeep
On 1/10/2023 2:36 PM, Thompson, Corey via lists.yoctoproject.org wrote:
Hello.
I'm having trouble with runqemu (for the VPK120 Versal evaluation
board)
after updating from rel-v2022.1_update2 to rel-v2022.2. I see
there has
been a lot of refactoring in this area between the two releases,
and now
it looks like there is an attempt to boot using the initramfs-bundled
kernel if there is one. However, when I use runqemu with these
options,
I see nothing happen. I never see the PLMFW run, no kernel boots,
QEMU
simply appears to hang until I terminate it.
I realize that I can work around the issue by setting
INITRAMFS_IMAGE_BUNDLE="0", but the problem is that we want to be able
to use the same config that we use to generate hardware images, and
this
is the configuration that we prefer to use for our hardware targets.
I've put together a minimum working example to try to illustrate the
issue. You can find it at this link; instructions are in the README.
https://urldefense.com/v3/__https://github.com/cmtptr/corey-build__;!!OSsGDw!MRnAYtme997qx-Cs3ZR89mLkqVUpKc1h7PmJ-5GTOBzCvNy_EMHq2FxrFxBEayHG8GnUjeBclxyJvADSqRWwabE$
[github[.]com]
Any pointers here would be greatly appreciated.
Thanks,
Corey
From 1b72cdd527b454610dcc0593ec8ae8ddc3adb810 Mon Sep 17 00:00:00 2001
From: Sandeep Gundlupet Raju <[email protected]>
Date: Mon, 6 Feb 2023 12:50:26 -0700
Subject: [meta-xilinx][2022.2][PATCH] vpk120-versal: Add new machine conf file
for VPK120 board
Add new machine conf file for VPK120 evaluation board.
Signed-off-by: Sandeep Gundlupet Raju <[email protected]>
---
.../conf/machine/vpk120-versal.conf | 47 +++++++++++++++++++
1 file changed, 47 insertions(+)
create mode 100644 meta-xilinx-bsp/conf/machine/vpk120-versal.conf
diff --git a/meta-xilinx-bsp/conf/machine/vpk120-versal.conf
b/meta-xilinx-bsp/conf/machine/vpk120-versal.conf
new file mode 100644
index 00000000..f7d89f11
--- /dev/null
+++ b/meta-xilinx-bsp/conf/machine/vpk120-versal.conf
@@ -0,0 +1,47 @@
+#@TYPE: Machine
+#@NAME: vpk120-versal
+#@DESCRIPTION: Machine configuration for the VPK120 evaluation board.
+
+#### Preamble
+MACHINEOVERRIDES =. "${@['', 'vpk120-versal:']['vpk120-versal'
!='${MACHINE}']}"
+#### Regular settings follow
+
+# Variables that changes based on hw design or board specific requirement must
be
+# defined before calling the required inclusion file else pre-expansion value
+# defined in versal-generic.conf will be set. This issue fixed in 2023.1 but
for
+# 2022.2 we need a machine override for all YAML configuration.
+
+# Yocto device-tree variables
+YAML_CONSOLE_DEVICE_CONFIG:vpk120-versal:pn-device-tree ?=
"versal_cips_0_pspmc_0_psv_sbsauart_0"
+YAML_DT_BOARD_FLAGS:vpk120-versal ?= "{BOARD versal-vpk120-reva}"
+
+# Yocto arm-trusted-firmware(TF-A) variables
+ATF_CONSOLE:vpk120-versal ?= "pl011"
+TFA_BL33_LOAD ?= "0x8000000"
+EXTRA_OEMAKE:append:pn-arm-trusted-firmware = "
PRELOADED_BL33_BASE=${TFA_BL33_LOAD}"
+
+# Yocto PLM variables
+YAML_SERIAL_CONSOLE_STDIN:vpk120-versal:pn-plm-firmware ?=
"versal_cips_0_pspmc_0_psv_sbsauart_0"
+YAML_SERIAL_CONSOLE_STDOUT:vpk120-versal:pn-plm-firmware ?=
"versal_cips_0_pspmc_0_psv_sbsauart_0"
+
+# Yocto KERNEL Variables
+UBOOT_ENTRYPOINT ?= "0x200000"
+UBOOT_LOADADDRESS ?= "0x200000"
+
+# vpk120-versal Serial Console
+SERIAL_CONSOLES:vpk120-versal ?= "115200;ttyAMA0"
+YAML_SERIAL_CONSOLE_BAUDRATE:vpk120-versal ?= "115200"
+
+# VPK120 board uses Versal Premium device hence use versal generic machine
+# inclusion and set SOC_VARIANT to premium.
+SOC_VARIANT = "premium"
+
+# Required generic machine inclusion
+require conf/machine/versal-generic.conf
+
+QEMU_HW_DTB_PS = "${QEMU_HW_DTB_PATH}/board-versal-ps-vpk120.dtb"
+QEMU_HW_DTB_PMC = "${QEMU_HW_DTB_PATH}/board-versal-pmc-virt.dtb"
+
+#### No additional settings should be after the Postamble
+#### Postamble
+PACKAGE_EXTRA_ARCHS:append = "${@['', 'vpk120_versal']['vpk120-versal' !=
'${MACHINE}']}"
--
2.25.1