Signed-off-by: Mark Hatle <[email protected]>
---
 .../meta-xilinx-standalone-sdt-cfg.bbclass    |   6 +
 .../sanity-meta-xilinx-standalone-sdt.bbclass |  10 +
 .../classes-recipe/check_sdt_enabled.bbclass  |   4 +
 .../classes-recipe/esw.bbclass                |   2 +-
 ...xilinx-standalone-sdt-default-versions.inc | 245 +++++++++++++++++
 meta-xilinx-standalone-sdt/conf/layer.conf    | 253 +-----------------
 .../embeddedsw/fsbl-firmware_%.bbappend       |   1 +
 ..._2024.1.bbappend => fsbl-firmware_sdt.inc} |  19 +-
 .../embeddedsw/plm-firmware_%.bbappend        |   1 +
 ...e_2024.1.bbappend => plm-firmware_sdt.inc} |  29 +-
 .../embeddedsw/pmu-firmware_%.bbappend        |   1 +
 .../embeddedsw/pmu-firmware_2024.1.bbappend   |  25 --
 .../embeddedsw/pmu-firmware_sdt.inc           |  31 +++
 .../embeddedsw/psm-firmware_%.bbappend        |   1 +
 .../embeddedsw/psm-firmware_2024.1.bbappend   |  34 ---
 .../embeddedsw/psm-firmware_sdt.inc           |  31 +++
 16 files changed, 366 insertions(+), 327 deletions(-)
 create mode 100644 
meta-xilinx-standalone-sdt/classes-global/meta-xilinx-standalone-sdt-cfg.bbclass
 create mode 100644 
meta-xilinx-standalone-sdt/classes-global/sanity-meta-xilinx-standalone-sdt.bbclass
 create mode 100644 
meta-xilinx-standalone-sdt/classes-recipe/check_sdt_enabled.bbclass
 create mode 100644 
meta-xilinx-standalone-sdt/conf/distro/include/meta-xilinx-standalone-sdt-default-versions.inc
 create mode 100644 
meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/fsbl-firmware_%.bbappend
 rename 
meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/{fsbl-firmware_2024.1.bbappend
 => fsbl-firmware_sdt.inc} (90%)
 create mode 100644 
meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/plm-firmware_%.bbappend
 rename 
meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/{plm-firmware_2024.1.bbappend 
=> plm-firmware_sdt.inc} (53%)
 create mode 100644 
meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/pmu-firmware_%.bbappend
 delete mode 100644 
meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/pmu-firmware_2024.1.bbappend
 create mode 100644 
meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/pmu-firmware_sdt.inc
 create mode 100644 
meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/psm-firmware_%.bbappend
 delete mode 100644 
meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/psm-firmware_2024.1.bbappend
 create mode 100644 
meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/psm-firmware_sdt.inc

diff --git 
a/meta-xilinx-standalone-sdt/classes-global/meta-xilinx-standalone-sdt-cfg.bbclass
 
b/meta-xilinx-standalone-sdt/classes-global/meta-xilinx-standalone-sdt-cfg.bbclass
new file mode 100644
index 00000000..c76fc14a
--- /dev/null
+++ 
b/meta-xilinx-standalone-sdt/classes-global/meta-xilinx-standalone-sdt-cfg.bbclass
@@ -0,0 +1,6 @@
+# We need to load the ESW and related config components, only if 
XILINX_WITH_ESW
+# is in defined in some way.  Since we don't know the configuration during
+# layer.conf load time, we delay using a special bbclass that simply includes
+# the META_XILINX_STANDLONE_CONFIG_PATH file.
+
+include ${@'${META_XILINX_STANDLONE_SDT_CONFIG_PATH}' if 
d.getVar('XILINX_WITH_ESW') == 'sdt' else ''}
diff --git 
a/meta-xilinx-standalone-sdt/classes-global/sanity-meta-xilinx-standalone-sdt.bbclass
 
b/meta-xilinx-standalone-sdt/classes-global/sanity-meta-xilinx-standalone-sdt.bbclass
new file mode 100644
index 00000000..dcafe02b
--- /dev/null
+++ 
b/meta-xilinx-standalone-sdt/classes-global/sanity-meta-xilinx-standalone-sdt.bbclass
@@ -0,0 +1,10 @@
+addhandler security_bbappend_distrocheck
+security_bbappend_distrocheck[eventmask] = "bb.event.SanityCheck"
+python security_bbappend_distrocheck() {
+    skip_check = e.data.getVar('SKIP_META_XILINX_TOOLS_SANITY_CHECK') == "1"
+    if e.data.getVar('XILINX_WITH_ESW') != 'sdt' and not skip_check:
+        bb.warn("You have included the meta-xilinx-standalone-sdt layer, but \
+it has not been enabled using XILINX_WITH_ESW in your configuration. Some \
+bbappend files and preferred version setting may not take effect. See the \
+meta-security README for details on enabling security support.")
+}
diff --git 
a/meta-xilinx-standalone-sdt/classes-recipe/check_sdt_enabled.bbclass 
b/meta-xilinx-standalone-sdt/classes-recipe/check_sdt_enabled.bbclass
new file mode 100644
index 00000000..e23afb1d
--- /dev/null
+++ b/meta-xilinx-standalone-sdt/classes-recipe/check_sdt_enabled.bbclass
@@ -0,0 +1,4 @@
+python() {
+    if d.getVar('XILINX_WITH_ESW') != 'sdt':
+        raise bb.parse.SkipRecipe("This package requires sdt, which is not 
enabled.  XILINX_WITH_ESW set to '%s'." % d.getVar('XILINX_WITH_ESW'))
+}
diff --git a/meta-xilinx-standalone-sdt/classes-recipe/esw.bbclass 
b/meta-xilinx-standalone-sdt/classes-recipe/esw.bbclass
index 7d0a2e5d..2751b751 100644
--- a/meta-xilinx-standalone-sdt/classes-recipe/esw.bbclass
+++ b/meta-xilinx-standalone-sdt/classes-recipe/esw.bbclass
@@ -1,4 +1,4 @@
-inherit python3native xlnx-embeddedsw pkgconfig cmake
+inherit check_sdt_enabled python3native xlnx-embeddedsw pkgconfig cmake
 
 # Poky always tries to enable EXPORT_COMPILE_COMMANDS, but ESW changes
 # behavior when this is enabled and will generate:
diff --git 
a/meta-xilinx-standalone-sdt/conf/distro/include/meta-xilinx-standalone-sdt-default-versions.inc
 
b/meta-xilinx-standalone-sdt/conf/distro/include/meta-xilinx-standalone-sdt-default-versions.inc
new file mode 100644
index 00000000..47f25090
--- /dev/null
+++ 
b/meta-xilinx-standalone-sdt/conf/distro/include/meta-xilinx-standalone-sdt-default-versions.inc
@@ -0,0 +1,245 @@
+# Aid debugging, show where the device trees are we are using
+BUILDCFG_VARS:append = " SYSTEM_DTFILE CONFIG_DTFILE"
+
+# These are the recipes-library items, they should all be from the same ESW 
version
+PREFERRED_VERSION_freertos10-xilinx  ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_libxil             ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_lwip               ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_xilffs             ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_xilffs-example     ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_xilfpga            ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_xilfpga-example    ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_xilloader          ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_xilmailbox         ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_xilmailbox-example ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_xilnvm             ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_xilnvm-example     ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_xilpdi             ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_xilplmi            ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_xilpm              ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_xilpuf             ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_xilpuf-example     ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_xilsecure          ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_xilsecure-example  ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_xilsem             ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_xilskey            ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_xilskey-example    ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_xilstandalone      ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_xiltimer           ??= "${PREFERRED_VERSION_esw}%"
+
+# The following are the recipes-drivers used by the library items above
+# they should come from the same ESW version as the library.
+PREFERRED_VERSION_avbuf               ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_axicdma             ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_axicdma-example     ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_axidma              ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_axidma-example      ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_axiethernet         ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_axiethernet-example ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_axipmon             ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_axipmon-example     ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_axis-switch         ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_axivdma             ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_axivdma-example     ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_bram                ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_bram-example        ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_can                 ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_can-example         ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_canfd               ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_canfd-example       ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_canps               ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_canps-example       ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_cframe              ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_cfupmc              ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_clk-wiz             ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_clk-wiz-example     ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_clockps             ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_clockps-example     ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_common              ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_coresightps-dcc     ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_csudma              ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_csudma-example      ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_ddrcpsu             ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_devcfg              ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_devcfg-example      ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_dfeccf              ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_dfeccf-example      ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_dfeequ              ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_dfeequ-example      ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_dfemix              ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_dfemix-example      ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_dfeofdm             ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_dfeofdm-example     ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_dfeprach            ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_dfeprach-example    ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_dfxasm              ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_dfxasm-example      ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_dmaps               ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_dmaps-example       ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_dp14                ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_dp14rxss            ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_dpdma               ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_dppsu               ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_emaclite            ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_emaclite-example    ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_emacps              ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_emacps-example      ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_emc                 ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_gpio                ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_gpio-example        ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_gpiops              ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_gpiops-example      ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_hwicap              ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_i2srx               ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_i2stx               ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_i3cpsx              ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_i3cpsx-example      ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_iic                 ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_iic-example         ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_iicps               ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_iicps-example       ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_intc                ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_intc-example        ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_iomodule            ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_ipipsu              ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_ipipsu-example      ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_llfifo              ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_llfifo-example      ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_mbox                ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_mbox-example        ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_mcdma               ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_mcdma-example       ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_mutex               ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_mutex-example       ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_nandps              ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_nandpsu             ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_nandpsu-example     ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_ospipsv             ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_ospipsv-example     ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_pciepsu             ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_pciepsu-example     ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_prc                 ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_prd                 ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_qspips              ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_qspips-example      ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_qspipsu             ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_qspipsu-example     ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_resetps             ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_resetps-example     ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_rfdc                ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_rfdc-example        ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_rtcpsu              ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_rtcpsu-example      ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_scugic              ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_scugic-example      ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_scutimer            ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_scuwdt              ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_sd-fec              ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_sdps                ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_sdps-example        ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_spi                 ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_spips               ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_spips-example       ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_sysmon              ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_sysmon-example      ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_sysmonpsu           ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_sysmonpsu-example   ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_sysmonpsv           ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_sysmonpsv-example   ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_tft                 ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_tmrctr              ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_tmrctr-example      ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_tmr-inject          ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_tmr-manager         ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_trafgen             ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_trafgen-example     ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_trngpsv             ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_trngpsx             ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_ttcps               ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_ttcps-example       ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_uartlite            ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_uartlite-example    ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_uartns550           ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_uartns550-example   ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_uartps              ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_uartps-example      ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_uartpsv             ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_uartpsv-example     ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_usb                 ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_usb-example         ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_usbps               ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_usbpsu              ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_usbpsu-example      ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_v-csc               ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_v-deinterlacer      ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_v-demosaic          ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_v-demosaic-example  ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_v-frmbuf-rd         ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_v-frmbuf-rd-example ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_v-frmbuf-wr         ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_v-frmbuf-wr-example ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_v-gamma-lut         ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_v-gamma-lut-example ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_v-hcresampler       ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_v-hdmi-common       ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_v-hdmiphy1          ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_v-hdmirx1           ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_v-hdmirxss1         ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_v-hdmitx1           ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_v-hdmitxss1         ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_v-hscaler           ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_video-common        ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_v-letterbox         ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_v-mix               ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_v-mix-example       ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_v-multi-scaler      ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_v-multi-scaler-example ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_vphy                ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_vprocss             ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_vprocss-example     ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_v-scenechange       ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_v-scenechange-example ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_vtc                 ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_v-tpg               ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_v-vcresampler       ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_v-vscaler           ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_v-warp-filter       ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_v-warp-init         ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_wdtps               ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_wdtps-example       ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_wdttb               ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_wdttb-example       ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_xadcps              ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_xadcps-example      ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_xdmapcie            ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_xdmapcie-example    ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_xxvethernet         ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_xxvethernet-example ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_zdma                ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_zdma-example        ??= "${PREFERRED_VERSION_esw}%"
+
+# The following are applications that use the libraries and drivers
+PREFERRED_VERSION_ddr-self-refresh              ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_empty-application             ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_freertos-hello-world          ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_freertos-lwip-echo-server     ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_freertos-lwip-tcp-perf-client ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_freertos-lwip-tcp-perf-server ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_freertos-lwip-udp-perf-client ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_freertos-lwip-udp-perf-server ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_hello-world                   ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_lwip-echo-server              ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_lwip-tcp-perf-client          ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_lwip-tcp-perf-server          ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_lwip-udp-perf-client          ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_lwip-udp-perf-server          ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_memory-tests                  ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_openamp-fw-echo-testd.bb      ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_openamp-fw-mat-muld.bb        ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_openamp-fw-rpc-demo.bb        ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_peripheral-tests              ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_sample-fw-package.bb          ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_srec-bootloader               ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_srec-spi-bootloader           ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_zynq-dram-test                ??= "${PREFERRED_VERSION_esw}%"
+PREFERRED_VERSION_zynqmp-dram-test              ??= "${PREFERRED_VERSION_esw}%"
diff --git a/meta-xilinx-standalone-sdt/conf/layer.conf 
b/meta-xilinx-standalone-sdt/conf/layer.conf
index 1116f72b..0f153e93 100644
--- a/meta-xilinx-standalone-sdt/conf/layer.conf
+++ b/meta-xilinx-standalone-sdt/conf/layer.conf
@@ -25,248 +25,17 @@ LAYERDEPENDS_xilinx-standalone-sdt = "core \
 
 LAYERSERIES_COMPAT_xilinx-standalone-sdt = "scarthgap"
 
-# Aid debugging, show where the device trees are we are using
-BUILDCFG_VARS:append = " SYSTEM_DTFILE CONFIG_DTFILE"
+# Set this to enable this layer
+#XILINX_WITH_ESW = "sdt"
 
-# These are the recipes-library items, they should all be from the same ESW 
version
-PREFERRED_VERSION_freertos10-xilinx  ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_libxil             ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_lwip               ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_xilffs             ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_xilffs-example     ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_xilfpga            ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_xilfpga-example    ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_xilloader          ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_xilmailbox         ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_xilmailbox-example ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_xilnvm             ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_xilnvm-example     ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_xilpdi             ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_xilplmi            ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_xilpm              ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_xilpuf             ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_xilpuf-example     ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_xilsecure          ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_xilsecure-example  ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_xilsem             ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_xilskey            ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_xilskey-example    ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_xilstandalone      ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_xiltimer           ??= "${PREFERRED_VERSION_esw}%"
+# Sanity check for meta-xilinx-standalone layer.
+# Setting SKIP_META_XILINX_STANDALONE_SANITY_CHECK to "1" would skip the 
bbappend files check.
+INHERIT += "sanity-meta-xilinx-standalone-sdt"
 
-# The following are the recipes-drivers used by the library items above
-# they should come from the same ESW version as the library.
-PREFERRED_VERSION_avbuf               ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_axicdma             ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_axicdma-example     ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_axidma              ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_axidma-example      ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_axiethernet         ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_axiethernet-example ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_axipmon             ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_axipmon-example     ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_axis-switch         ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_axivdma             ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_axivdma-example     ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_bram                ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_bram-example        ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_can                 ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_can-example         ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_canfd               ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_canfd-example       ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_canps               ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_canps-example       ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_cframe              ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_cfupmc              ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_clk-wiz             ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_clk-wiz-example     ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_clockps             ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_clockps-example     ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_common              ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_coresightps-dcc     ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_csudma              ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_csudma-example      ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_ddrcpsu             ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_devcfg              ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_devcfg-example      ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_dfeccf              ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_dfeccf-example      ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_dfeequ              ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_dfeequ-example      ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_dfemix              ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_dfemix-example      ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_dfeofdm             ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_dfeofdm-example     ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_dfeprach            ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_dfeprach-example    ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_dfxasm              ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_dfxasm-example      ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_dmaps               ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_dmaps-example       ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_dp14                ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_dp14rxss            ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_dpdma               ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_dppsu               ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_emaclite            ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_emaclite-example    ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_emacps              ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_emacps-example      ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_emc                 ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_gpio                ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_gpio-example        ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_gpiops              ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_gpiops-example      ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_hwicap              ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_i2srx               ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_i2stx               ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_i3cpsx              ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_i3cpsx-example      ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_iic                 ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_iic-example         ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_iicps               ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_iicps-example       ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_intc                ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_intc-example        ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_iomodule            ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_ipipsu              ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_ipipsu-example      ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_llfifo              ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_llfifo-example      ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_mbox                ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_mbox-example        ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_mcdma               ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_mcdma-example       ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_mutex               ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_mutex-example       ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_nandps              ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_nandpsu             ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_nandpsu-example     ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_ospipsv             ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_ospipsv-example     ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_pciepsu             ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_pciepsu-example     ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_prc                 ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_prd                 ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_qspips              ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_qspips-example      ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_qspipsu             ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_qspipsu-example     ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_resetps             ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_resetps-example     ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_rfdc                ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_rfdc-example        ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_rtcpsu              ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_rtcpsu-example      ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_scugic              ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_scugic-example      ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_scutimer            ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_scuwdt              ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_sd-fec              ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_sdps                ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_sdps-example        ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_spi                 ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_spips               ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_spips-example       ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_sysmon              ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_sysmon-example      ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_sysmonpsu           ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_sysmonpsu-example   ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_sysmonpsv           ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_sysmonpsv-example   ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_tft                 ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_tmrctr              ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_tmrctr-example      ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_tmr-inject          ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_tmr-manager         ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_trafgen             ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_trafgen-example     ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_trngpsv             ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_trngpsx             ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_ttcps               ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_ttcps-example       ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_uartlite            ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_uartlite-example    ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_uartns550           ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_uartns550-example   ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_uartps              ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_uartps-example      ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_uartpsv             ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_uartpsv-example     ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_usb                 ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_usb-example         ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_usbps               ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_usbpsu              ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_usbpsu-example      ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_v-csc               ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_v-deinterlacer      ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_v-demosaic          ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_v-demosaic-example  ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_v-frmbuf-rd         ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_v-frmbuf-rd-example ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_v-frmbuf-wr         ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_v-frmbuf-wr-example ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_v-gamma-lut         ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_v-gamma-lut-example ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_v-hcresampler       ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_v-hdmi-common       ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_v-hdmiphy1          ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_v-hdmirx1           ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_v-hdmirxss1         ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_v-hdmitx1           ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_v-hdmitxss1         ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_v-hscaler           ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_video-common        ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_v-letterbox         ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_v-mix               ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_v-mix-example       ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_v-multi-scaler      ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_v-multi-scaler-example ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_vphy                ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_vprocss             ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_vprocss-example     ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_v-scenechange       ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_v-scenechange-example ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_vtc                 ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_v-tpg               ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_v-vcresampler       ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_v-vscaler           ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_v-warp-filter       ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_v-warp-init         ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_wdtps               ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_wdtps-example       ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_wdttb               ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_wdttb-example       ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_xadcps              ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_xadcps-example      ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_xdmapcie            ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_xdmapcie-example    ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_xxvethernet         ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_xxvethernet-example ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_zdma                ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_zdma-example        ??= "${PREFERRED_VERSION_esw}%"
+# We need to load the ESW and related config components, only if 
XILINX_WITH_ESW
+# is in defined in some way.  Since we don't know the configuration during
+# layer.conf load time, we delay using a special bbclass that simply includes
+# the META_XILINX_STANDLONE_CONFIG_PATH file.
+META_XILINX_STANDLONE_SDT_CONFIG_PATH = 
"${LAYERDIR}/conf/distro/include/meta-xilinx-standalone-sdt-default-versions.inc"
 
-# The following are applications that use the libraries and drivers
-PREFERRED_VERSION_ddr-self-refresh              ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_empty-application             ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_freertos-hello-world          ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_freertos-lwip-echo-server     ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_freertos-lwip-tcp-perf-client ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_freertos-lwip-tcp-perf-server ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_freertos-lwip-udp-perf-client ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_freertos-lwip-udp-perf-server ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_hello-world                   ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_lwip-echo-server              ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_lwip-tcp-perf-client          ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_lwip-tcp-perf-server          ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_lwip-udp-perf-client          ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_lwip-udp-perf-server          ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_memory-tests                  ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_openamp-fw-echo-testd.bb      ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_openamp-fw-mat-muld.bb        ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_openamp-fw-rpc-demo.bb        ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_peripheral-tests              ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_sample-fw-package.bb          ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_srec-bootloader               ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_srec-spi-bootloader           ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_zynq-dram-test                ??= "${PREFERRED_VERSION_esw}%"
-PREFERRED_VERSION_zynqmp-dram-test              ??= "${PREFERRED_VERSION_esw}%"
+USER_CLASSES:append = " meta-xilinx-standalone-sdt-cfg"
diff --git 
a/meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/fsbl-firmware_%.bbappend 
b/meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/fsbl-firmware_%.bbappend
new file mode 100644
index 00000000..e195f5a4
--- /dev/null
+++ b/meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/fsbl-firmware_%.bbappend
@@ -0,0 +1 @@
+require ${@'fsbl-firmware_sdt.inc' if d.getVar('XILINX_WITH_ESW') == 'sdt' 
else ''}
diff --git 
a/meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/fsbl-firmware_2024.1.bbappend
 b/meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/fsbl-firmware_sdt.inc
similarity index 90%
rename from 
meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/fsbl-firmware_2024.1.bbappend
rename to 
meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/fsbl-firmware_sdt.inc
index 765fb159..321642a6 100644
--- 
a/meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/fsbl-firmware_2024.1.bbappend
+++ b/meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/fsbl-firmware_sdt.inc
@@ -1,9 +1,3 @@
-# We WANT to default to this version when available
-DEFAULT_PREFERENCE = "100"
-
-# Reset this
-SRC_URI = "${EMBEDDEDSW_SRCURI}"
-
 inherit esw
 
 # Not compatible with Zynq
@@ -16,6 +10,9 @@ ESW_COMPONENT_SRC:zynqmp = "/lib/sw_apps/zynqmp_fsbl/src"
 
 DEPENDS += "xilstandalone xiltimer xilffs xilsecure xilpm"
 
+CFLAGS:append:aarch64 = " -DARMA53_64"
+CFLAGS:append:armv7r = " -DARMR5"
+
 python() {
     psu_init_path = d.getVar('PSU_INIT_PATH')
     if not psu_init_path:
@@ -56,11 +53,15 @@ do_install() {
     :
 }
 
-addtask deploy before do_build after do_package
+PACKAGES = ""
 
 ESW_COMPONENT = "undefined"
 ESW_COMPONENT:zynq = "zynq_fsbl.elf"
 ESW_COMPONENT:zynqmp = "zynqmp_fsbl.elf"
 
-CFLAGS:append:aarch64 = " -DARMA53_64"
-CFLAGS:append:armv7r = " -DARMR5"
+do_deploy() {
+    install -Dm 0644 ${B}/${ESW_COMPONENT} ${DEPLOYDIR}/${FSBL_BASE_NAME}.elf
+    ln -sf ${FSBL_BASE_NAME}.elf ${DEPLOYDIR}/${FSBL_IMAGE_NAME}.elf
+}
+
+addtask deploy before do_build after do_package
diff --git 
a/meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/plm-firmware_%.bbappend 
b/meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/plm-firmware_%.bbappend
new file mode 100644
index 00000000..56590e90
--- /dev/null
+++ b/meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/plm-firmware_%.bbappend
@@ -0,0 +1 @@
+require ${@'plm-firmware_sdt.inc' if d.getVar('XILINX_WITH_ESW') == 'sdt' else 
''}
diff --git 
a/meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/plm-firmware_2024.1.bbappend
 b/meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/plm-firmware_sdt.inc
similarity index 53%
rename from 
meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/plm-firmware_2024.1.bbappend
rename to meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/plm-firmware_sdt.inc
index 202764ac..75580ba3 100644
--- 
a/meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/plm-firmware_2024.1.bbappend
+++ b/meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/plm-firmware_sdt.inc
@@ -1,14 +1,8 @@
-# We WANT to default to this version when available
-DEFAULT_PREFERENCE = "100"
-
-# Reset this
-SRC_URI = "${EMBEDDEDSW_SRCURI}"
-
 inherit esw
 
-ESW_COMPONENT_SRC = "/lib/sw_apps/versal_plm/src/"
+DEPENDS += "xilstandalone xiltimer xilffs xilpdi xilplmi xilloader xilpm 
xilsecure xilsem xilnvm"
 
-ESW_COMPONENT = "versal_plm.elf"
+ESW_COMPONENT_SRC = "/lib/sw_apps/versal_plm/src/"
 
 do_configure:prepend() {
     (
@@ -17,13 +11,7 @@ do_configure:prepend() {
     )
 }
 
-do_configure() {
-    cmake_do_configure
-}
-
-do_compile() {
-    cmake_do_compile
-
+do_compile:append() {
     ${OBJCOPY} -O binary ${B}/${ESW_COMPONENT} ${B}/${ESW_COMPONENT}.bin
 }
 
@@ -31,4 +19,13 @@ do_install() {
     :
 }
 
-DEPENDS += "xilstandalone xiltimer xilffs xilpdi xilplmi xilloader xilpm 
xilsecure xilsem xilnvm"
+ESW_COMPONENT = "versal_plm.elf"
+
+do_deploy() {
+    install -Dm 0644 ${B}/${ESW_COMPONENT} ${DEPLOYDIR}/${PLM_BASE_NAME}.elf
+    ln -sf ${PLM_BASE_NAME}.elf ${DEPLOYDIR}/${PLM_IMAGE_NAME}.elf
+    install -m 0644 ${B}/${ESW_COMPONENT}.bin ${DEPLOYDIR}/${PLM_BASE_NAME}.bin
+    ln -sf ${PLM_BASE_NAME}.bin ${DEPLOYDIR}/${PLM_IMAGE_NAME}.bin
+}
+
+addtask deploy before do_build after do_install
diff --git 
a/meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/pmu-firmware_%.bbappend 
b/meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/pmu-firmware_%.bbappend
new file mode 100644
index 00000000..26c09a7f
--- /dev/null
+++ b/meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/pmu-firmware_%.bbappend
@@ -0,0 +1 @@
+require ${@'pmu-firmware_sdt.inc' if d.getVar('XILINX_WITH_ESW') == 'sdt' else 
''}
diff --git 
a/meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/pmu-firmware_2024.1.bbappend
 
b/meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/pmu-firmware_2024.1.bbappend
deleted file mode 100644
index 0c51fbad..00000000
--- 
a/meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/pmu-firmware_2024.1.bbappend
+++ /dev/null
@@ -1,25 +0,0 @@
-# We WANT to default to this version when available 
-DEFAULT_PREFERENCE = "100"
-
-# Reset this
-SRC_URI = "${EMBEDDEDSW_SRCURI}"
-
-inherit esw
-
-ESW_COMPONENT_SRC = "/lib/sw_apps/zynqmp_pmufw/src"
-
-ESW_COMPONENT = "zynqmp_pmufw.elf"
-
-
-do_configure:prepend() {
-    (
-    cd ${S}
-    install -m 0644 ${S}/cmake/UserConfig.cmake ${S}/${ESW_COMPONENT_SRC}
-    )
-}
-
-do_install() {
-    :
-}
-
-DEPENDS += "xilstandalone xiltimer xilfpga xilskey"
diff --git 
a/meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/pmu-firmware_sdt.inc 
b/meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/pmu-firmware_sdt.inc
new file mode 100644
index 00000000..e5b123cd
--- /dev/null
+++ b/meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/pmu-firmware_sdt.inc
@@ -0,0 +1,31 @@
+inherit esw
+
+ESW_COMPONENT_SRC = "/lib/sw_apps/zynqmp_pmufw/src"
+
+DEPENDS += "xilstandalone xiltimer xilfpga xilskey"
+
+do_configure:prepend() {
+    (
+    cd ${S}
+    install -m 0644 ${S}/cmake/UserConfig.cmake ${S}/${ESW_COMPONENT_SRC}
+    )
+}
+
+do_compile:append() {
+    ${OBJCOPY} -O binary ${B}/${ESW_COMPONENT} ${B}/${ESW_COMPONENT}.bin
+}
+
+do_install() {
+    :
+}
+
+ESW_COMPONENT = "zynqmp_pmufw.elf"
+
+do_deploy() {
+    install -Dm 0644 ${B}/${ESW_COMPONENT} 
${DEPLOYDIR}/${PMU_FIRMWARE_BASE_NAME}.elf
+    ln -sf ${PMU_FIRMWARE_BASE_NAME}.elf 
${DEPLOYDIR}/${PMU_FIRMWARE_IMAGE_NAME}.elf
+    install -m 0644 ${B}/${ESW_COMPONENT}.bin 
${DEPLOYDIR}/${PMU_FIRMWARE_BASE_NAME}.bin
+    ln -sf ${PMU_FIRMWARE_BASE_NAME}.bin 
${DEPLOYDIR}/${PMU_FIRMWARE_IMAGE_NAME}.bin
+}
+
+addtask deploy before do_build after do_install
diff --git 
a/meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/psm-firmware_%.bbappend 
b/meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/psm-firmware_%.bbappend
new file mode 100644
index 00000000..2033f801
--- /dev/null
+++ b/meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/psm-firmware_%.bbappend
@@ -0,0 +1 @@
+require ${@'psm-firmware_sdt.inc' if d.getVar('XILINX_WITH_ESW') == 'sdt' else 
''}
diff --git 
a/meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/psm-firmware_2024.1.bbappend
 
b/meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/psm-firmware_2024.1.bbappend
deleted file mode 100644
index 96cd38cd..00000000
--- 
a/meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/psm-firmware_2024.1.bbappend
+++ /dev/null
@@ -1,34 +0,0 @@
-# We WANT to default to this version when available 
-DEFAULT_PREFERENCE = "100"
-
-# Reset this
-SRC_URI = "${EMBEDDEDSW_SRCURI}"
-
-inherit esw
-
-ESW_COMPONENT_SRC = "/lib/sw_apps/versal_psmfw/src/"
-
-ESW_COMPONENT = "versal_psmfw.elf"
-
-do_configure:prepend() {
-    (
-    cd ${S}
-    install -m 0644 ${S}/cmake/UserConfig.cmake ${S}/${ESW_COMPONENT_SRC}
-    )
-}
-
-do_configure() {
-    cmake_do_configure
-}
-
-do_compile() {
-    cmake_do_compile
-
-    ${OBJCOPY} -O binary ${B}/${ESW_COMPONENT} ${B}/${ESW_COMPONENT}.bin
-}
-
-do_install() {
-    :
-}
-
-DEPENDS += "xilstandalone libxil xiltimer"
diff --git 
a/meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/psm-firmware_sdt.inc 
b/meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/psm-firmware_sdt.inc
new file mode 100644
index 00000000..acd3a82a
--- /dev/null
+++ b/meta-xilinx-standalone-sdt/recipes-bsp/embeddedsw/psm-firmware_sdt.inc
@@ -0,0 +1,31 @@
+inherit esw
+
+DEPENDS += "xilstandalone libxil xiltimer"
+
+ESW_COMPONENT_SRC = "/lib/sw_apps/versal_psmfw/src/"
+
+do_configure:prepend() {
+    (
+    cd ${S}
+    install -m 0644 ${S}/cmake/UserConfig.cmake ${S}/${ESW_COMPONENT_SRC}
+    )
+}
+
+do_compile:append() {
+    ${OBJCOPY} -O binary ${B}/${ESW_COMPONENT} ${B}/${ESW_COMPONENT}.bin
+}
+
+do_install() {
+    :
+}
+
+ESW_COMPONENT = "versal_psmfw.elf"
+
+do_deploy() {
+    install -Dm 0644 ${B}/${ESW_COMPONENT} 
${DEPLOYDIR}/${PSM_FIRMWARE_BASE_NAME}.elf
+    ln -sf ${PSM_FIRMWARE_BASE_NAME}.elf 
${DEPLOYDIR}/${PSM_FIRMWARE_IMAGE_NAME}.elf
+    install -m 0644 ${B}/${ESW_COMPONENT}.bin 
${DEPLOYDIR}/${PSM_FIRMWARE_BASE_NAME}.bin
+    ln -sf ${PSM_FIRMWARE_BASE_NAME}.bin 
${DEPLOYDIR}/${PSM_FIRMWARE_IMAGE_NAME}.bin
+}
+
+addtask deploy before do_build after do_install
-- 
2.34.1

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#5394): 
https://lists.yoctoproject.org/g/meta-xilinx/message/5394
Mute This Topic: https://lists.yoctoproject.org/mt/106609984/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/meta-xilinx/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to