From 9a8466d7e8fd13a93f6268f3256c64245e5a6c68 Mon Sep 17 00:00:00 2001 From: Mark Hatle Date: Thu, 12 Jan 2023 11:50:02 -0800 Subject: README-setup: Update instructions to better explain usage Reword sections, update the example to use -l, and explain how BBMULTICONFIG affects parse performance and possible mitigation strategies. Signed-off-by: Mark Hatle --- .../recipes-core/meta/files/README-setup | 70 ++++++++++++++-------- 1 file changed, 46 insertions(+), 24 deletions(-) (limited to 'meta-xilinx-standalone-experimental') diff --git a/meta-xilinx-standalone-experimental/recipes-core/meta/files/README-setup b/meta-xilinx-standalone-experimental/recipes-core/meta/files/README-setup index 4051ad21..4dc5737f 100644 --- a/meta-xilinx-standalone-experimental/recipes-core/meta/files/README-setup +++ b/meta-xilinx-standalone-experimental/recipes-core/meta/files/README-setup @@ -1,8 +1,8 @@ -Document Version: 20230111 +Document Version: 20230112 -The Yocto Project setup for the new workflow is as follows. Be sure to read -everything below, as the steps will be updated in the future if the -setup script changes. +The Yocto Project setup for the System Device Tree workflow is as follows. +Be sure to read everything below, as the steps will be updated in the future +if the setup script changes. The steps in this document expect that you have already built the setup (meta-xilinx-setup) SDK, and installed it. @@ -32,20 +32,22 @@ however you may use any path you wish. . /prestep/environment-setup-x86_64-petalinux-linux # Run the script from the same directory as this README -/prestep/dt-processor.sh -c -s +/prestep/dt-processor.sh -c -s -l conf/local.conf + +# Note: The -l option will automatically add the necessary parameters to the +# local.conf file. If you need to re-run this comment, you just clear the +# parameters from the end of the file. Without the -l option the items are +# printed to the screen and must be manually added to your conf/local.conf # For example, zynqmp: -# /prestep/dt-processor.sh -c /conf -s /zu-sdt/system-top.dts +# ./prestep/dt-processor.sh -c conf -s /proj/yocto/zu-sdt/system-top.dts -l conf/local.conf # -# Follow the instructions returned by the script! -# Such as: - -To enable this, add the following to your local.conf: +# The following will be written to the end of the conf/local.conf file # Adjust BASE_TMPDIR if you want to move the tmpdirs elsewhere -BASE_TMPDIR = "${TOPDIR}" +BASE_TMPDIR ?= "${TOPDIR}" require conf/cortexa53-zynqmp-linux.conf -SYSTEM_DTFILE = "/proj/yocto/zu_sdt/system-top.dts" +SYSTEM_DTFILE = "/proj/yocto/zu-sdt/system-top.dts" BBMULTICONFIG += " cortexa53-0-zynqmp-fsbl-baremetal cortexa53-0-zynqmp-baremetal cortexa53-0-zynqmp-freertos cortexa53-1-zynqmp-baremetal cortexa53-1-zynqmp-freertos cortexa53-2-zynqmp-baremetal cortexa53-2-zynqmp-freertos cortexa53-3-zynqmp-baremetal cortexa53-3-zynqmp-freertos cortexr5-0-zynqmp-fsbl-baremetal cortexr5-0-zynqmp-baremetal cortexr5-0-zynqmp-freertos cortexr5-1-zynqmp-baremetal cortexr5-1-zynqmp-freertos microblaze-0-pmu" FSBL_DEPENDS = "" FSBL_MCDEPENDS = "mc::cortexa53-0-zynqmp-fsbl-baremetal:fsbl-firmware:do_deploy" @@ -61,17 +63,14 @@ PMU_FIRMWARE_DEPLOY_DIR = "${BASE_TMPDIR}/tmp-microblaze-0-pmu/deploy/images/${M # OR # # Versal: -# /prestep/dt-processor.sh -c /conf -s /vck190-sdt/system-top.dts +# ./prestep/dt-processor.sh -c conf -s /proj/yocto/versal-sdt/system-top.dts -l conf/local.conf # -# Follow the instructions returned by the script! -# Such as: - -To enable this, add the following to your local.conf: +# The following will be written to the end of the conf/local.conf file # Adjust BASE_TMPDIR if you want to move the tmpdirs elsewhere -BASE_TMPDIR = "${TOPDIR}" +BASE_TMPDIR ?= "${TOPDIR}" require conf/cortexa72-versal-linux.conf -SYSTEM_DTFILE = "/proj/yocto/mhatle/DTB-FLOW/testing/vck190-sdt/system-top.dts" +SYSTEM_DTFILE = "/proj/yocto/versal_sdt/system-top.dts" BBMULTICONFIG += " cortexa72-0-versal-baremetal cortexa72-0-versal-freertos cortexa72-1-versal-baremetal cortexa72-1-versal-freertos microblaze-0-pmc microblaze-0-psm cortexr5-0-versal-baremetal cortexr5-0-versal-freertos cortexr5-1-versal-baremetal cortexr5-1-versal-freertos" PLM_DEPENDS = "" PLM_MCDEPENDS = "mc::microblaze-0-pmc:plm-firmware:do_deploy" @@ -79,17 +78,40 @@ PLM_DEPLOY_DIR = "${BASE_TMPDIR}/tmp-microblaze-0-pmc/deploy/images/${MACHINE}" PSM_DEPENDS = "" PSM_MCDEPENDS = "mc::microblaze-0-psm:psm-firmware:do_deploy" PSM_FIRMWARE_DEPLOY_DIR = "${BASE_TMPDIR}/tmp-microblaze-0-psm/deploy/images/${MACHINE}" -PDI_PATH = "__PATH TO PDI FILE HERE__" +PDI_PATH = "/proj/yocto/versal_sdt/project_1.pdi" # NOTE: On versal, you MUST specify the PDI file as directed by the instructions. -# such as: PDI_PATH = "__PATH TO PDI FILE HERE__" -# Use the full path to the corresponding PDI file, such as: -PDI_PATH = "/proj/yocto/vck190-sdt/base-design.pdi" +# If the file is not found, it will put in a placeholder such as: +PDI_PATH = "__PATH TO PDI FILE HERE__" +# This must be set to the path of the PDI file. # _EXIT THE NEW SHELL_ return the build environment -### In the original build shell +* Bitbake Performance Note + +Each BBMULTICONFIG value requires all of the recipes to be parsed for that +configuration. Thus each multiconfig will add more parsing time. A long list +can lead to a very slow parse (many minutes). To speed up parsing, it is +suggested that you trim this down to only the configurations you require. +Below is the minimum BBMULTICONFIG required: + +zynqmp: +BBMULTICONFIG += " cortexa53-0-zynqmp-fsbl-baremetal microblaze-0-pmu" + +versal: +BBMULTICONFIG += " microblaze-0-pmc microblaze-0-psm" + +* Build your project +You should now be able to build your project normally. See the Yocto Project +documentation if you have questions on how to work with the multiconfig +recipes. The following is a simple build for testing. + +# In the original build shell # Build your Linux sytem: bitbake petalinux-image-minimal # The output will be in tmp/deploy/images/... + +# If the system is QEMU capable execute QEMU using: +runqemu nographic slirp core-image-minimal +# To terminate qemu, usually the command is ctrl-a x -- cgit v1.2.3-54-g00ecf