summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta-xilinx-bsp/conf/machine/include/soc-versal.inc12
-rw-r--r--meta-xilinx-bsp/conf/machine/include/soc-zynqmp.inc11
-rw-r--r--meta-xilinx-bsp/conf/machine/ultra96-zynqmp.conf3
-rw-r--r--meta-xilinx-bsp/conf/machine/vck-sc-zynqmp.conf4
-rw-r--r--meta-xilinx-bsp/conf/machine/vck190-versal.conf5
-rw-r--r--meta-xilinx-bsp/conf/machine/versal-generic.conf4
-rw-r--r--meta-xilinx-bsp/conf/machine/zc1254-zynqmp.conf3
-rw-r--r--meta-xilinx-bsp/conf/machine/zcu102-zynqmp.conf5
-rw-r--r--meta-xilinx-bsp/conf/machine/zcu104-zynqmp.conf3
-rw-r--r--meta-xilinx-bsp/conf/machine/zcu106-zynqmp.conf3
-rw-r--r--meta-xilinx-bsp/conf/machine/zcu111-zynqmp.conf3
-rw-r--r--meta-xilinx-bsp/conf/machine/zcu1275-zynqmp.conf3
-rw-r--r--meta-xilinx-bsp/conf/machine/zcu1285-zynqmp.conf3
-rw-r--r--meta-xilinx-bsp/conf/machine/zcu208-zynqmp.conf4
-rw-r--r--meta-xilinx-bsp/conf/machine/zcu216-zynqmp.conf4
-rw-r--r--meta-xilinx-bsp/conf/machine/zynqmp-generic.conf5
-rw-r--r--meta-xilinx-bsp/recipes-bsp/embeddedsw/plmfw.bb64
-rw-r--r--meta-xilinx-bsp/recipes-bsp/embeddedsw/pmufw.bb65
-rw-r--r--meta-xilinx-bsp/recipes-bsp/embeddedsw/psmfw.bb63
-rw-r--r--meta-xilinx-standalone/conf/multiconfig/versal-fw.conf9
-rw-r--r--meta-xilinx-standalone/conf/multiconfig/zynqmp-pmufw.conf9
-rw-r--r--meta-xilinx-standalone/recipes-bsp/embeddedsw/plm-firmware.inc20
-rw-r--r--meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware.inc22
-rw-r--r--meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware_2020.2.bb2
-rw-r--r--meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware_git.bb2
-rw-r--r--meta-xilinx-standalone/recipes-bsp/embeddedsw/psm-firmware.inc19
26 files changed, 279 insertions, 71 deletions
diff --git a/meta-xilinx-bsp/conf/machine/include/soc-versal.inc b/meta-xilinx-bsp/conf/machine/include/soc-versal.inc
index a9a94848..abf5f08e 100644
--- a/meta-xilinx-bsp/conf/machine/include/soc-versal.inc
+++ b/meta-xilinx-bsp/conf/machine/include/soc-versal.inc
@@ -17,3 +17,15 @@ KERNEL_IMAGETYPE ?= "Image"
17WIC_DEPENDS ?= "virtual/kernel virtual/bootloader virtual/boot-bin virtual/arm-trusted-firmware" 17WIC_DEPENDS ?= "virtual/kernel virtual/bootloader virtual/boot-bin virtual/arm-trusted-firmware"
18 18
19UBOOT_ELF ?= "u-boot.elf" 19UBOOT_ELF ?= "u-boot.elf"
20
21# Default, if multiconfig is off, call plm/psm-firmware directly, otherwise call the versal-fw multiconfig version
22# The Linux compatible plm/psm-firmware though requires meta-xilinx-tools
23PLM_DEPENDS ?= "${@bb.utils.contains('BBMULTICONFIG', 'versal-fw', '', 'plm-firmware:do_deploy', d)}"
24PLM_MCDEPENDS ?= "${@bb.utils.contains('BBMULTICONFIG', 'versal-fw', 'mc::versal-fw:plm-firmware:do_deploy', '', d)}"
25PLM_DEPLOY_DIR ?= "${@bb.utils.contains('BBMULTICONFIG', 'versal-fw', '${TOPDIR}/tmp-microblaze-versal-fw/deploy/images/${MACHINE}', '${DEPLOY_DIR_IMAGE}', d)}"
26PLM_IMAGE_NAME ?= "${@bb.utils.contains('BBMULTICONFIG', 'versal-fw', 'plm-versal-mb', 'plm-${MACHINE}', d)}"
27
28PSM_DEPENDS ?= "${@bb.utils.contains('BBMULTICONFIG', 'versal-fw', '', 'psm-firmware:do_deploy', d)}"
29PSM_MCDEPENDS ?= "${@bb.utils.contains('BBMULTICONFIG', 'versal-fw', 'mc::versal-fw:psm-firmware:do_deploy', '', d)}"
30PSM_FIRMWARE_DEPLOY_DIR ?= "${@bb.utils.contains('BBMULTICONFIG', 'versal-fw', '${TOPDIR}/tmp-microblaze-versal-fw/deploy/images/${MACHINE}', '${DEPLOY_DIR_IMAGE}', d)}"
31PSM_FIRMWARE_IMAGE_NAME ?= "${@bb.utils.contains('BBMULTICONFIG', 'versal-fw', 'psm-firmware-versal-mb', 'psm-${MACHINE}', d)}"
diff --git a/meta-xilinx-bsp/conf/machine/include/soc-zynqmp.inc b/meta-xilinx-bsp/conf/machine/include/soc-zynqmp.inc
index fb45b73f..9849efd2 100644
--- a/meta-xilinx-bsp/conf/machine/include/soc-zynqmp.inc
+++ b/meta-xilinx-bsp/conf/machine/include/soc-zynqmp.inc
@@ -26,3 +26,14 @@ WIC_DEPENDS ?= "virtual/kernel virtual/bootloader virtual/boot-bin virtual/arm-t
26UBOOT_SUFFIX ?= "bin" 26UBOOT_SUFFIX ?= "bin"
27 27
28XSERVER_EXT_zynqmp ?= "xf86-video-armsoc" 28XSERVER_EXT_zynqmp ?= "xf86-video-armsoc"
29
30# Default PMU ROM
31PMU_ROM ?= "${DEPLOY_DIR_IMAGE}/pmu-rom.elf"
32
33# Default, if multiconfig is off, call pmu-firmware directly, otherwise call the zynqmp-pmufw multiconfig version
34# The Linux compatible pmu-firmware though requires meta-xilinx-tools
35PMU_DEPENDS ?= "${@bb.utils.contains('BBMULTICONFIG', 'zynqmp-pmufw', '', 'pmu-firmware:do_deploy', d)}"
36PMU_MCDEPENDS ?= "${@bb.utils.contains('BBMULTICONFIG', 'zynqmp-pmufw', 'mc::zynqmp-pmufw:pmu-firmware:do_deploy', '', d)}"
37PMU_FIRMWARE_DEPLOY_DIR ?= "${@bb.utils.contains('BBMULTICONFIG', 'zynqmp-pmufw', '${TOPDIR}/tmp-microblaze-zynqmp-pmufw/deploy/images/${MACHINE}', '${DEPLOY_DIR_IMAGE}', d)}"
38PMU_FIRMWARE_IMAGE_NAME ?= "${@bb.utils.contains('BBMULTICONFIG', 'zynqmp-pmufw', 'pmu-firmware-zynqmp-pmu', 'pmu-${MACHINE}', d)}"
39
diff --git a/meta-xilinx-bsp/conf/machine/ultra96-zynqmp.conf b/meta-xilinx-bsp/conf/machine/ultra96-zynqmp.conf
index f31c10cf..ad65087c 100644
--- a/meta-xilinx-bsp/conf/machine/ultra96-zynqmp.conf
+++ b/meta-xilinx-bsp/conf/machine/ultra96-zynqmp.conf
@@ -19,9 +19,6 @@ SERIAL_CONSOLES ?= "115200;ttyPS0"
19 19
20KERNEL_DEVICETREE = "xilinx/zynqmp-zcu100-revC.dtb" 20KERNEL_DEVICETREE = "xilinx/zynqmp-zcu100-revC.dtb"
21 21
22PMU_FIRMWARE_IMAGE_NAME ?= "pmu-firmware-zynqmp-pmu"
23PMU_FIRMWARE_DEPLOY_DIR ?= "${TOPDIR}/pmutmp/deploy/images/zynqmp-pmu"
24
25EXTRA_IMAGEDEPENDS += " \ 22EXTRA_IMAGEDEPENDS += " \
26 u-boot-zynq-uenv \ 23 u-boot-zynq-uenv \
27 arm-trusted-firmware \ 24 arm-trusted-firmware \
diff --git a/meta-xilinx-bsp/conf/machine/vck-sc-zynqmp.conf b/meta-xilinx-bsp/conf/machine/vck-sc-zynqmp.conf
index 6a453a2c..6e4f2872 100644
--- a/meta-xilinx-bsp/conf/machine/vck-sc-zynqmp.conf
+++ b/meta-xilinx-bsp/conf/machine/vck-sc-zynqmp.conf
@@ -13,10 +13,6 @@ SPL_BINARY ?= "spl/boot.bin"
13 13
14SERIAL_CONSOLES ?= "115200;ttyPS0" 14SERIAL_CONSOLES ?= "115200;ttyPS0"
15 15
16# PMU instance args
17PMU_FIRMWARE_DEPLOY_DIR ?= "${TOPDIR}/pmutmp/deploy/images/zynqmp-pmu"
18PMU_FIRMWARE_IMAGE_NAME ?= "pmu-firmware-zynqmp-pmu"
19
20EXTRA_IMAGEDEPENDS += " \ 16EXTRA_IMAGEDEPENDS += " \
21 u-boot-zynq-uenv \ 17 u-boot-zynq-uenv \
22 arm-trusted-firmware \ 18 arm-trusted-firmware \
diff --git a/meta-xilinx-bsp/conf/machine/vck190-versal.conf b/meta-xilinx-bsp/conf/machine/vck190-versal.conf
index 647a6b5b..28a07eb4 100644
--- a/meta-xilinx-bsp/conf/machine/vck190-versal.conf
+++ b/meta-xilinx-bsp/conf/machine/vck190-versal.conf
@@ -36,11 +36,6 @@ IMAGE_BOOT_FILES += " \
36 Image \ 36 Image \
37 boot.scr \ 37 boot.scr \
38" 38"
39PLM_DEPLOY_DIR ?= "{TOPDIR}/versalmbtmp/deploy/images/versal-mb"
40PLM_IMAGE_NAME ?= "plm-versal-mb"
41PSM_FIRMWARE_DEPLOY_DIR ?= "{TOPDIR}/versalmbtmp/deploy/images/versal-mb"
42PSM_FIRMWARE_IMAGE_NAME ?= "psm-firmware-versal-mb"
43
44 39
45# This machine has a QEMU model, runqemu setup: 40# This machine has a QEMU model, runqemu setup:
46QB_MEM = "-m 8G" 41QB_MEM = "-m 8G"
diff --git a/meta-xilinx-bsp/conf/machine/versal-generic.conf b/meta-xilinx-bsp/conf/machine/versal-generic.conf
index 57c7166d..de0d909d 100644
--- a/meta-xilinx-bsp/conf/machine/versal-generic.conf
+++ b/meta-xilinx-bsp/conf/machine/versal-generic.conf
@@ -41,10 +41,6 @@ IMAGE_BOOT_FILES += " \
41 Image \ 41 Image \
42 boot.scr \ 42 boot.scr \
43" 43"
44PLM_DEPLOY_DIR ?= "{TOPDIR}/versalmbtmp/deploy/images/versal-mb"
45PLM_IMAGE_NAME ?= "plm-versal-mb"
46PSM_FIRMWARE_DEPLOY_DIR ?= "{TOPDIR}/versalmbtmp/deploy/images/versal-mb"
47PSM_FIRMWARE_IMAGE_NAME ?= "psm-firmware-versal-mb"
48 44
49 45
50# This machine has a QEMU model, runqemu setup: 46# This machine has a QEMU model, runqemu setup:
diff --git a/meta-xilinx-bsp/conf/machine/zc1254-zynqmp.conf b/meta-xilinx-bsp/conf/machine/zc1254-zynqmp.conf
index 3bdb215d..0d45a7b3 100644
--- a/meta-xilinx-bsp/conf/machine/zc1254-zynqmp.conf
+++ b/meta-xilinx-bsp/conf/machine/zc1254-zynqmp.conf
@@ -18,9 +18,6 @@ SERIAL_CONSOLES ?= "115200;ttyPS0"
18 18
19KERNEL_DEVICETREE = "xilinx/zynqmp-zc1254-revA.dtb" 19KERNEL_DEVICETREE = "xilinx/zynqmp-zc1254-revA.dtb"
20 20
21PMU_FIRMWARE_IMAGE_NAME ?= "pmu-firmware-zynqmp-pmu"
22PMU_FIRMWARE_DEPLOY_DIR ?= "${TOPDIR}/pmutmp/deploy/images/zynqmp-pmu"
23
24EXTRA_IMAGEDEPENDS += " \ 21EXTRA_IMAGEDEPENDS += " \
25 u-boot-zynq-uenv \ 22 u-boot-zynq-uenv \
26 arm-trusted-firmware \ 23 arm-trusted-firmware \
diff --git a/meta-xilinx-bsp/conf/machine/zcu102-zynqmp.conf b/meta-xilinx-bsp/conf/machine/zcu102-zynqmp.conf
index 2c890cfb..0add656f 100644
--- a/meta-xilinx-bsp/conf/machine/zcu102-zynqmp.conf
+++ b/meta-xilinx-bsp/conf/machine/zcu102-zynqmp.conf
@@ -55,11 +55,6 @@ QB_DEFAULT_FSTYPE_qemuboot-xilinx = "wic.qemu-sd"
55QB_OPT_APPEND_append_qemuboot-xilinx = " -boot mode=5" 55QB_OPT_APPEND_append_qemuboot-xilinx = " -boot mode=5"
56QB_ROOTFS_OPT_qemuboot-xilinx = " -drive if=sd,index=1,file=@ROOTFS@,format=raw" 56QB_ROOTFS_OPT_qemuboot-xilinx = " -drive if=sd,index=1,file=@ROOTFS@,format=raw"
57 57
58# PMU instance args
59PMU_ROM ?= "${DEPLOY_DIR_IMAGE}/pmu-rom.elf"
60PMU_FIRMWARE_DEPLOY_DIR ?= "${@ '${TOPDIR}/pmutmp/deploy/images/microblaze-pmu' if d.getVar('BBMULTICONFIG') == 'pmu' else '${TOPDIR}/tmp/deploy/images/${MACHINE}'}"
61PMU_FIRMWARE_IMAGE_NAME ?= "${@ 'pmu-firmware-microblaze-pmu' if d.getVar('BBMULTICONFIG') == 'pmu' else 'pmu-zcu102-zynqmp'}"
62
63QB_PMU_OPT = " \ 58QB_PMU_OPT = " \
64 -M microblaze-fdt \ 59 -M microblaze-fdt \
65 -display none \ 60 -display none \
diff --git a/meta-xilinx-bsp/conf/machine/zcu104-zynqmp.conf b/meta-xilinx-bsp/conf/machine/zcu104-zynqmp.conf
index 17a677fe..f97ffa37 100644
--- a/meta-xilinx-bsp/conf/machine/zcu104-zynqmp.conf
+++ b/meta-xilinx-bsp/conf/machine/zcu104-zynqmp.conf
@@ -18,9 +18,6 @@ SERIAL_CONSOLES ?= "115200;ttyPS0"
18 18
19KERNEL_DEVICETREE = "xilinx/zynqmp-zcu104-revC.dtb" 19KERNEL_DEVICETREE = "xilinx/zynqmp-zcu104-revC.dtb"
20 20
21PMU_FIRMWARE_IMAGE_NAME ?= "pmu-firmware-zynqmp-pmu"
22PMU_FIRMWARE_DEPLOY_DIR ?= "${TOPDIR}/pmutmp/deploy/images/zynqmp-pmu"
23
24EXTRA_IMAGEDEPENDS += " \ 21EXTRA_IMAGEDEPENDS += " \
25 u-boot-zynq-uenv \ 22 u-boot-zynq-uenv \
26 arm-trusted-firmware \ 23 arm-trusted-firmware \
diff --git a/meta-xilinx-bsp/conf/machine/zcu106-zynqmp.conf b/meta-xilinx-bsp/conf/machine/zcu106-zynqmp.conf
index 27ab2a98..045d6f6c 100644
--- a/meta-xilinx-bsp/conf/machine/zcu106-zynqmp.conf
+++ b/meta-xilinx-bsp/conf/machine/zcu106-zynqmp.conf
@@ -16,9 +16,6 @@ SERIAL_CONSOLES ?= "115200;ttyPS0"
16 16
17KERNEL_DEVICETREE = "xilinx/zynqmp-zcu106-revA.dtb" 17KERNEL_DEVICETREE = "xilinx/zynqmp-zcu106-revA.dtb"
18 18
19PMU_FIRMWARE_IMAGE_NAME ?= "pmu-firmware-zynqmp-pmu"
20PMU_FIRMWARE_DEPLOY_DIR ?= "${TOPDIR}/pmutmp/deploy/images/zynqmp-pmu"
21
22EXTRA_IMAGEDEPENDS += " \ 19EXTRA_IMAGEDEPENDS += " \
23 u-boot-zynq-uenv \ 20 u-boot-zynq-uenv \
24 arm-trusted-firmware \ 21 arm-trusted-firmware \
diff --git a/meta-xilinx-bsp/conf/machine/zcu111-zynqmp.conf b/meta-xilinx-bsp/conf/machine/zcu111-zynqmp.conf
index 24e96ad6..813f7453 100644
--- a/meta-xilinx-bsp/conf/machine/zcu111-zynqmp.conf
+++ b/meta-xilinx-bsp/conf/machine/zcu111-zynqmp.conf
@@ -18,9 +18,6 @@ SERIAL_CONSOLES ?= "115200;ttyPS0"
18 18
19KERNEL_DEVICETREE = "xilinx/zynqmp-zcu111-revA.dtb" 19KERNEL_DEVICETREE = "xilinx/zynqmp-zcu111-revA.dtb"
20 20
21PMU_FIRMWARE_IMAGE_NAME ?= "pmu-firmware-zynqmp-pmu"
22PMU_FIRMWARE_DEPLOY_DIR ?= "${TOPDIR}/pmutmp/deploy/images/zynqmp-pmu"
23
24EXTRA_IMAGEDEPENDS += " \ 21EXTRA_IMAGEDEPENDS += " \
25 u-boot-zynq-uenv \ 22 u-boot-zynq-uenv \
26 arm-trusted-firmware \ 23 arm-trusted-firmware \
diff --git a/meta-xilinx-bsp/conf/machine/zcu1275-zynqmp.conf b/meta-xilinx-bsp/conf/machine/zcu1275-zynqmp.conf
index 2ac4004f..91d2761c 100644
--- a/meta-xilinx-bsp/conf/machine/zcu1275-zynqmp.conf
+++ b/meta-xilinx-bsp/conf/machine/zcu1275-zynqmp.conf
@@ -18,9 +18,6 @@ SERIAL_CONSOLES ?= "115200;ttyPS0"
18 18
19KERNEL_DEVICETREE = "xilinx/zynqmp-zcu1275-revB.dtb" 19KERNEL_DEVICETREE = "xilinx/zynqmp-zcu1275-revB.dtb"
20 20
21PMU_FIRMWARE_IMAGE_NAME ?= "pmu-firmware-zynqmp-pmu"
22PMU_FIRMWARE_DEPLOY_DIR ?= "${TOPDIR}/pmutmp/deploy/images/zynqmp-pmu"
23
24EXTRA_IMAGEDEPENDS += " \ 21EXTRA_IMAGEDEPENDS += " \
25 u-boot-zynq-uenv \ 22 u-boot-zynq-uenv \
26 arm-trusted-firmware \ 23 arm-trusted-firmware \
diff --git a/meta-xilinx-bsp/conf/machine/zcu1285-zynqmp.conf b/meta-xilinx-bsp/conf/machine/zcu1285-zynqmp.conf
index d7d41d4d..254974e8 100644
--- a/meta-xilinx-bsp/conf/machine/zcu1285-zynqmp.conf
+++ b/meta-xilinx-bsp/conf/machine/zcu1285-zynqmp.conf
@@ -18,9 +18,6 @@ SERIAL_CONSOLES ?= "115200;ttyPS0"
18 18
19KERNEL_DEVICETREE = "xilinx/zynqmp-zcu1285-revA.dtb" 19KERNEL_DEVICETREE = "xilinx/zynqmp-zcu1285-revA.dtb"
20 20
21PMU_FIRMWARE_IMAGE_NAME ?= "pmu-firmware-zynqmp-pmu"
22PMU_FIRMWARE_DEPLOY_DIR ?= "${TOPDIR}/pmutmp/deploy/images/zynqmp-pmu"
23
24EXTRA_IMAGEDEPENDS += " \ 21EXTRA_IMAGEDEPENDS += " \
25 u-boot-zynq-uenv \ 22 u-boot-zynq-uenv \
26 arm-trusted-firmware \ 23 arm-trusted-firmware \
diff --git a/meta-xilinx-bsp/conf/machine/zcu208-zynqmp.conf b/meta-xilinx-bsp/conf/machine/zcu208-zynqmp.conf
index c69b5f35..673ab9e4 100644
--- a/meta-xilinx-bsp/conf/machine/zcu208-zynqmp.conf
+++ b/meta-xilinx-bsp/conf/machine/zcu208-zynqmp.conf
@@ -15,10 +15,6 @@ SPL_BINARY ?= "spl/boot.bin"
15 15
16SERIAL_CONSOLES ?= "115200;ttyPS0" 16SERIAL_CONSOLES ?= "115200;ttyPS0"
17 17
18
19PMU_FIRMWARE_IMAGE_NAME ?= "pmu-firmware-zynqmp-pmu"
20PMU_FIRMWARE_DEPLOY_DIR ?= "${TOPDIR}/pmutmp/deploy/images/zynqmp-pmu"
21
22EXTRA_IMAGEDEPENDS += " \ 18EXTRA_IMAGEDEPENDS += " \
23 u-boot-zynq-uenv \ 19 u-boot-zynq-uenv \
24 arm-trusted-firmware \ 20 arm-trusted-firmware \
diff --git a/meta-xilinx-bsp/conf/machine/zcu216-zynqmp.conf b/meta-xilinx-bsp/conf/machine/zcu216-zynqmp.conf
index 4f07e0ea..53cb31ae 100644
--- a/meta-xilinx-bsp/conf/machine/zcu216-zynqmp.conf
+++ b/meta-xilinx-bsp/conf/machine/zcu216-zynqmp.conf
@@ -15,10 +15,6 @@ SPL_BINARY ?= "spl/boot.bin"
15 15
16SERIAL_CONSOLES ?= "115200;ttyPS0" 16SERIAL_CONSOLES ?= "115200;ttyPS0"
17 17
18
19PMU_FIRMWARE_IMAGE_NAME ?= "pmu-firmware-zynqmp-pmu"
20PMU_FIRMWARE_DEPLOY_DIR ?= "${TOPDIR}/pmutmp/deploy/images/zynqmp-pmu"
21
22EXTRA_IMAGEDEPENDS += " \ 18EXTRA_IMAGEDEPENDS += " \
23 u-boot-zynq-uenv \ 19 u-boot-zynq-uenv \
24 arm-trusted-firmware \ 20 arm-trusted-firmware \
diff --git a/meta-xilinx-bsp/conf/machine/zynqmp-generic.conf b/meta-xilinx-bsp/conf/machine/zynqmp-generic.conf
index 9c7dbe83..b2860b0c 100644
--- a/meta-xilinx-bsp/conf/machine/zynqmp-generic.conf
+++ b/meta-xilinx-bsp/conf/machine/zynqmp-generic.conf
@@ -65,11 +65,6 @@ QB_DEFAULT_FSTYPE_qemuboot-xilinx = "wic.qemu-sd"
65QB_OPT_APPEND_append_qemuboot-xilinx = " -boot mode=5" 65QB_OPT_APPEND_append_qemuboot-xilinx = " -boot mode=5"
66QB_ROOTFS_OPT_qemuboot-xilinx = " -drive if=sd,index=1,file=@ROOTFS@,format=raw" 66QB_ROOTFS_OPT_qemuboot-xilinx = " -drive if=sd,index=1,file=@ROOTFS@,format=raw"
67 67
68# PMU instance args
69PMU_ROM ?= "${DEPLOY_DIR_IMAGE}/pmu-rom.elf"
70PMU_FIRMWARE_DEPLOY_DIR ?= "${@ '${TOPDIR}/pmutmp/deploy/images/zynqmp-pmu' if d.getVar('BMULTICONFIG') == 'pmu' else '${TOPDIR}/tmp/deploy/images/${MACHINE}'}"
71PMU_FIRMWARE_IMAGE_NAME ?= "${@ 'pmu-firmware-zynqmp-pmu' if d.getVar('BBMULTICONFIG') == 'pmu' else 'pmu-${MACHINE}'}"
72
73QB_PMU_OPT = " \ 68QB_PMU_OPT = " \
74 -M microblaze-fdt \ 69 -M microblaze-fdt \
75 -display none \ 70 -display none \
diff --git a/meta-xilinx-bsp/recipes-bsp/embeddedsw/plmfw.bb b/meta-xilinx-bsp/recipes-bsp/embeddedsw/plmfw.bb
new file mode 100644
index 00000000..33c50953
--- /dev/null
+++ b/meta-xilinx-bsp/recipes-bsp/embeddedsw/plmfw.bb
@@ -0,0 +1,64 @@
1DESCRIPTION = "Platform Loader and Manager"
2SUMMARY = "Platform Loader and Manager for Versal devices"
3
4LICENSE = "MIT"
5
6PROVIDES = "virtual/plm"
7
8INHERIT_DEFAULT_DEPENDS = "1"
9
10COMPATIBLE_MACHINE = "^$"
11COMPATIBLE_MACHINE_versal = "versal"
12
13# This is really BOARD specific, but we'll set it MACHINE for now.
14PACKAGE_ARCH = "${MACHINE_ARCH}"
15
16# Default would be a multiconfig (versal) build
17# For this to work, BBMULTICONFIG += "versal-fw" must be in the user's local.conf!
18PLM_DEPENDS ??= ""
19PLM_MCDEPENDS ??= "mc::versal-fw:plm-firmware:do_deploy"
20
21# This must be defined to the file output by whatever is providing the plm-firmware
22# The following sets the default, but the BSP may select a different name
23PLM_IMAGE_NAME ??= "plm-versal-mb"
24PLM_DEPLOY_DIR ??= "${TOPDIR}/tmp-microblaze-versal-fw/deploy/images/${MACHINE}"
25
26# Default is for the multilib case (without the extension .elf/.bin)
27PLM_FILE ??= "${PLM_DEPLOY_DIR/${PLM_IMAGE_NAME}"
28
29do_fetch[depends] += "${PLM_DEPENDS}"
30do_fetch[mcdepends] += "${PLM_MCDEPENDS}"
31
32inherit update-alternatives deploy
33
34BINARY_NAME = "${PN}"
35BINARY_EXT = ".elf"
36BINARY_ID = "${@d.getVar('SRCPV') if d.getVar('SRCPV') else d.getVar('PR') }"
37
38do_install() {
39 if [ ! -e ${PLM_FILE}${BINARY_EXT} ]; then
40 echo "Unable to find PLM_FILE (${PLM_FILE}${BINARY_EXT})"
41 exit 1
42 fi
43
44 install -Dm 0644 ${PLM_FILE}${BINARY_EXT} ${D}/boot/${BINARY_NAME}-${BINARY_ID}${BINARY_EXT}
45}
46
47do_deploy() {
48 # If the item is already in OUR deploy_image_dir, nothing to deploy!
49 if [ "x${@'' if d.getVar('PLM_FILE').startswith(d.getVar('DEPLOY_IMAGE_DIR')) else 'copy'}" != "x" ]; then
50 install -Dm 0644 ${PLM_FILE}.elf ${DEPLOYDIR}/${PLM_IMAGE_NAME}.elf
51 install -Dm 0644 ${PLM_FILE}.bin ${DEPLOYDIR}/${PLM_IMAGE_NAME}.bin
52 fi
53}
54
55
56ALTERNATIVE_${PN} = "plmfw"
57ALTERNATIVE_TARGET[plmfw] = "/boot/${BINARY_NAME}-${BINARY_ID}${BINARY_EXT}"
58ALTERNATIVE_LINK_NAME[plmfw] = "/boot/${BINARY_NAME}${BINARY_EXT}"
59
60INSANE_SKIP_${PN} = "arch"
61INSANE_SKIP_${PN}-dbg = "arch"
62
63SYSROOT_DIRS += "/boot"
64FILES_${PN} = "/boot/${BINARY_NAME}-${BINARY_ID}${BINARY_EXT}"
diff --git a/meta-xilinx-bsp/recipes-bsp/embeddedsw/pmufw.bb b/meta-xilinx-bsp/recipes-bsp/embeddedsw/pmufw.bb
new file mode 100644
index 00000000..3af12cfe
--- /dev/null
+++ b/meta-xilinx-bsp/recipes-bsp/embeddedsw/pmufw.bb
@@ -0,0 +1,65 @@
1DESCRIPTION = "PMU Firmware"
2
3LICENSE = "MIT"
4
5PROVIDES = "virtual/pmu-firmware"
6
7INHERIT_DEFAULT_DEPENDS = "1"
8
9COMPATIBLE_MACHINE = "^$"
10COMPATIBLE_MACHINE_zynqmp = "zynqmp"
11
12# This is really BOARD specific, but we'll set it MACHINE for now.
13PACKAGE_ARCH = "${MACHINE_ARCH}"
14
15# Default would be a multiconfig (zynqmp-pmufw) build
16# For this to work, BBMULTICONFIG += "zynqmp-pmufw" must be in the user's local.conf!
17PMU_DEPENDS ??= ""
18PMU_MCDEPENDS ??= "mc::zynqmp-pmufw:pmu-firmware:do_deploy"
19
20# This must be defined to the file output by whatever is providing the pmu-firmware
21# The following sets the default, but the BSP may select a different name
22PMU_FIRMWARE_IMAGE_NAME ??= "pmu-firmware-zynqmp-pmu"
23PMU_FIRMWARE_DEPLOY_DIR ??= "${TOPDIR}/tmp-microblaze-zynqmp-pmufw/deploy/images/${MACHINE}"
24
25# Default is for the multilib case (without the extension .elf/.bin)
26PMU_FILE ??= "${PMU_FIRMWARE_DEPLOY_DIR}/${PMU_FIRMWARE_IMAGE_NAME}"
27
28do_fetch[depends] += "${PMU_DEPENDS}"
29do_fetch[mcdepends] += "${PMU_MCDEPENDS}"
30
31inherit deploy update-alternatives
32
33BINARY_NAME = "${PN}"
34BINARY_EXT = ".elf"
35BINARY_ID = "${@d.getVar('SRCPV') if d.getVar('SRCPV') else d.getVar('PR') }"
36
37do_install() {
38 if [ ! -e ${PMU_FILE}${BINARY_EXT} ]; then
39 echo "Unable to find PMU_FILE (${PMU_FILE}${BINARY_EXT})"
40 exit 1
41 fi
42
43 install -Dm 0644 ${PMU_FILE}${BINARY_EXT} ${D}/boot/${BINARY_NAME}-${BINARY_ID}${BINARY_EXT}
44}
45
46# If the item is already in OUR deploy_image_dir, nothing to deploy!
47SHOULD_DEPLOY = "${@'false' if (d.getVar('PMU_FILE')).startswith(d.getVar('DEPLOY_DIR_IMAGE')) else 'true'}"
48do_deploy() {
49 if ${SHOULD_DEPLOY}; then
50 install -Dm 0644 ${PMU_FILE}.elf ${DEPLOYDIR}/${PMU_FIRMWARE_IMAGE_NAME}.elf
51 install -Dm 0644 ${PMU_FILE}.bin ${DEPLOYDIR}/${PMU_FIRMWARE_IMAGE_NAME}.bin
52 fi
53}
54
55addtask deploy before do_build after do_install
56
57ALTERNATIVE_${PN} = "pmufw"
58ALTERNATIVE_TARGET[pmufw] = "/boot/${BINARY_NAME}-${BINARY_ID}${BINARY_EXT}"
59ALTERNATIVE_LINK_NAME[pmufw] = "/boot/${BINARY_NAME}${BINARY_EXT}"
60
61INSANE_SKIP_${PN} = "arch"
62INSANE_SKIP_${PN}-dbg = "arch"
63
64SYSROOT_DIRS += "/boot"
65FILES_${PN} = "/boot/${BINARY_NAME}-${BINARY_ID}${BINARY_EXT}"
diff --git a/meta-xilinx-bsp/recipes-bsp/embeddedsw/psmfw.bb b/meta-xilinx-bsp/recipes-bsp/embeddedsw/psmfw.bb
new file mode 100644
index 00000000..24044f77
--- /dev/null
+++ b/meta-xilinx-bsp/recipes-bsp/embeddedsw/psmfw.bb
@@ -0,0 +1,63 @@
1DESCRIPTION = "PSM Firmware"
2SUMMARY = "PSM firmware for versal devices"
3
4LICENSE = "MIT"
5
6PROVIDES = "virtual/psm-firmware"
7
8INHERIT_DEFAULT_DEPENDS = "1"
9
10COMPATIBLE_MACHINE = "^$"
11COMPATIBLE_MACHINE_versal = "versal"
12
13# This is really BOARD specific, but we'll set it MACHINE for now.
14PACKAGE_ARCH = "${MACHINE_ARCH}"
15
16# Default would be a multiconfig (versal) build
17# For this to work, BBMULTICONFIG += "versal-fw" must be in the user's local.conf!
18PSM_DEPENDS ??= ""
19PSM_MCDEPENDS ??= "mc::versal-fw:psm-firmware:do_deploy"
20
21# This must be defined to the file output by whatever is providing the psm-firmware
22# The following sets the default, but the BSP may select a different name
23PSM_FIRMWARE_IMAGE_NAME ??= "psm-firmware-versal-mb"
24PSM_FIRMWARE_DEPLOY_DIR ??= "${TOPDIR}/tmp-microblaze-versal-fw/deploy/images/${MACHINE}"
25
26# Default is for the multilib case (without the extension .elf/.bin)
27PSM_FILE ??= "${PSM_FIRMWARE_DEPLOY_DIR}/${PSM_FIRMWARE_IMAGE_NAME}"
28
29do_fetch[depends] += "${PSM_DEPENDS}"
30do_fetch[mcdepends] += "${PSM_MCDEPENDS}"
31
32inherit update-alternatives deploy
33
34BINARY_NAME = "${PN}"
35BINARY_EXT = ".elf"
36BINARY_ID = "${@d.getVar('SRCPV') if d.getVar('SRCPV') else d.getVar('PR') }"
37
38do_install() {
39 if [ ! -e ${PSM_FILE}${BINARY_EXT} ]; then
40 echo "Unable to find PSM_FILE (${PSM_FILE}${BINARY_EXT})"
41 exit 1
42 fi
43
44 install -Dm 0644 ${PSM_FILE}${BINARY_EXT} ${D}/boot/${BINARY_NAME}-${BINARY_ID}${BINARY_EXT}
45}
46
47do_deploy() {
48 # If the item is already in OUR deploy_image_dir, nothing to deploy!
49 if [ "x${@'' if d.getVar('PSM_FILE').startswith(d.getVar('DEPLOY_IMAGE_DIR')) else 'copy'}" != "x" ]; then
50 install -Dm 0644 ${PSM_FILE}.elf ${DEPLOYDIR}/${PSM_FIRMWARE_IMAGE_NAME}.elf
51 install -Dm 0644 ${PSM_FILE}.bin ${DEPLOYDIR}/${PSM_FIRMWARE_IMAGE_NAME}.bin
52 fi
53}
54
55ALTERNATIVE_${PN} = "psmfw"
56ALTERNATIVE_TARGET[psmfw] = "/boot/${BINARY_NAME}-${BINARY_ID}${BINARY_EXT}"
57ALTERNATIVE_LINK_NAME[psmfw] = "/boot/${BINARY_NAME}${BINARY_EXT}"
58
59INSANE_SKIP_${PN} = "arch"
60INSANE_SKIP_${PN}-dbg = "arch"
61
62SYSROOT_DIRS += "/boot"
63FILES_${PN} = "/boot/${BINARY_NAME}-${BINARY_ID}${BINARY_EXT}"
diff --git a/meta-xilinx-standalone/conf/multiconfig/versal-fw.conf b/meta-xilinx-standalone/conf/multiconfig/versal-fw.conf
new file mode 100644
index 00000000..329d7e08
--- /dev/null
+++ b/meta-xilinx-standalone/conf/multiconfig/versal-fw.conf
@@ -0,0 +1,9 @@
1# To be used with a zynqmp machine
2# Re-use the main machine, which SHOULD allow us to override the default tune!
3DEFAULTTUNE = "microblaze"
4TUNE_FEATURES_tune-microblaze = "microblaze v10.0 barrel-shift pattern-compare"
5#LINKER_HASH_STYLE_microblaze = ""
6
7DISTRO = "xilinx-standalone"
8
9TMPDIR = "${TOPDIR}/tmp-microblaze-versal-fw"
diff --git a/meta-xilinx-standalone/conf/multiconfig/zynqmp-pmufw.conf b/meta-xilinx-standalone/conf/multiconfig/zynqmp-pmufw.conf
new file mode 100644
index 00000000..e678e7c2
--- /dev/null
+++ b/meta-xilinx-standalone/conf/multiconfig/zynqmp-pmufw.conf
@@ -0,0 +1,9 @@
1# To be used with a zynqmp machine
2# Re-use the main machine, which SHOULD allow us to override the default tune!
3DEFAULTTUNE = "microblaze"
4TUNE_FEATURES_tune-microblaze = "microblaze v9.2 barrel-shift pattern-compare"
5#LINKER_HASH_STYLE_microblaze = ""
6
7DISTRO = "xilinx-standalone"
8
9TMPDIR = "${TOPDIR}/tmp-microblaze-zynqmp-pmufw"
diff --git a/meta-xilinx-standalone/recipes-bsp/embeddedsw/plm-firmware.inc b/meta-xilinx-standalone/recipes-bsp/embeddedsw/plm-firmware.inc
index 57e577ea..e4feba31 100644
--- a/meta-xilinx-standalone/recipes-bsp/embeddedsw/plm-firmware.inc
+++ b/meta-xilinx-standalone/recipes-bsp/embeddedsw/plm-firmware.inc
@@ -1,8 +1,6 @@
1DESCRIPTION = "Platform Loader and Manager" 1DESCRIPTION = "Platform Loader and Manager"
2SUMMARY = "Platform Loader and Manager for Versal devices" 2SUMMARY = "Platform Loader and Manager for Versal devices"
3 3
4PROVIDES = "virtual/plm"
5
6inherit xlnx-embeddedsw deploy 4inherit xlnx-embeddedsw deploy
7 5
8COMPATIBLE_HOST = "microblaze.*-elf" 6COMPATIBLE_HOST = "microblaze.*-elf"
@@ -50,20 +48,28 @@ do_compile() {
50 oe_runmake CC_FLAGS="-MMD -MP -Wl,--build-id=none -I${STAGING_DIR_TARGET}/usr/include" 48 oe_runmake CC_FLAGS="-MMD -MP -Wl,--build-id=none -I${STAGING_DIR_TARGET}/usr/include"
51} 49}
52 50
51# All do_compiles need this, even if the base is overriden
52do_compile_append() {
53 ${OBJCOPY} -O binary ${B}/plm.elf ${B}/plm.bin
54}
55
53do_install() { 56do_install() {
54 : 57 :
55} 58}
56 59
57PLM_BASE_NAME ?= "${BPN}-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}" 60PACKAGES = ""
61
62# This is the default in most BSPs. A MACHINE.conf can override this!
63PLM_IMAGE_NAME ??= "plm-versal-mb"
64
65PLM_BASE_NAME ?= "${PLM_IMAGE_NAME}-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
58PLM_BASE_NAME[vardepsexclude] = "DATETIME" 66PLM_BASE_NAME[vardepsexclude] = "DATETIME"
59 67
60do_deploy() { 68do_deploy() {
61 install -Dm 0644 ${B}/plm.elf ${DEPLOYDIR}/${PLM_BASE_NAME}.elf 69 install -Dm 0644 ${B}/plm.elf ${DEPLOYDIR}/${PLM_BASE_NAME}.elf
62 ln -sf ${PLM_BASE_NAME}.elf ${DEPLOYDIR}/${BPN}-${MACHINE}.elf 70 ln -sf ${PLM_BASE_NAME}.elf ${DEPLOYDIR}/${PLM_IMAGE_NAME}.elf
63 ${OBJCOPY} -O binary ${B}/plm.elf ${B}/plm.bin
64 install -m 0644 ${B}/plm.bin ${DEPLOYDIR}/${PLM_BASE_NAME}.bin 71 install -m 0644 ${B}/plm.bin ${DEPLOYDIR}/${PLM_BASE_NAME}.bin
65 ln -sf ${PLM_BASE_NAME}.bin ${DEPLOYDIR}/${BPN}-${MACHINE}.bin 72 ln -sf ${PLM_BASE_NAME}.bin ${DEPLOYDIR}/${PLM_IMAGE_NAME}.bin
66} 73}
67 74
68addtask deploy before do_build after do_install 75addtask deploy before do_build after do_install
69
diff --git a/meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware.inc b/meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware.inc
index 01d05a9b..e8674b12 100644
--- a/meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware.inc
+++ b/meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware.inc
@@ -1,7 +1,5 @@
1DESCRIPTION = "PMU Firmware" 1DESCRIPTION = "PMU Firmware"
2 2
3PROVIDES = "virtual/pmu-firmware"
4
5inherit xlnx-embeddedsw deploy 3inherit xlnx-embeddedsw deploy
6 4
7COMPATIBLE_HOST = "microblaze.*-elf" 5COMPATIBLE_HOST = "microblaze.*-elf"
@@ -20,6 +18,12 @@ do_configure() {
20 ${B}/../misc/copy_bsp.sh 18 ${B}/../misc/copy_bsp.sh
21} 19}
22 20
21# All do_compiles need this, even if it's overriden
22MB_OBJCOPY ??= "${OBJCOPY}"
23
24# Only add a dependency if we need to use OUR binutils
25DEPENDS .= "${@' virtual/${TARGET_PREFIX}binutils' if d.getVar('MB_OBJCOPY') == d.getVar('OBJCOPY') else ''}"
26
23COMPILER = "${CC}" 27COMPILER = "${CC}"
24COMPILER_FLAGS = "-O2 -c" 28COMPILER_FLAGS = "-O2 -c"
25EXTRA_COMPILER_FLAGS = "-g -Wall -Wextra -Os -flto -ffat-lto-objects" 29EXTRA_COMPILER_FLAGS = "-g -Wall -Wextra -Os -flto -ffat-lto-objects"
@@ -47,21 +51,27 @@ do_compile() {
47 # --build-id=none is required due to linker script not defining a location for it. 51 # --build-id=none is required due to linker script not defining a location for it.
48 # Again, recipe-systoot include is necessary 52 # Again, recipe-systoot include is necessary
49 oe_runmake CC_FLAGS="-MMD -MP -Wl,--build-id=none -I${STAGING_DIR_TARGET}/usr/include" 53 oe_runmake CC_FLAGS="-MMD -MP -Wl,--build-id=none -I${STAGING_DIR_TARGET}/usr/include"
54
55 ${MB_OBJCOPY} -O binary ${B}/executable.elf ${B}/executable.bin
50} 56}
51 57
52do_install() { 58do_install() {
53 : 59 :
54} 60}
55 61
56PMU_FIRMWARE_BASE_NAME ?= "${BPN}-${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}" 62PACKAGES = ""
63
64# This is the default in most BSPs. A MACHINE.conf can override this!
65PMU_FIRMWARE_IMAGE_NAME ??= "pmu-firmware-zynqmp-pmu"
66
67PMU_FIRMWARE_BASE_NAME ?= "${PMU_FIRMWARE_IMAGE_NAME}-${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
57PMU_FIRMWARE_BASE_NAME[vardepsexclude] = "DATETIME" 68PMU_FIRMWARE_BASE_NAME[vardepsexclude] = "DATETIME"
58 69
59do_deploy() { 70do_deploy() {
60 install -Dm 0644 ${B}/executable.elf ${DEPLOYDIR}/${PMU_FIRMWARE_BASE_NAME}.elf 71 install -Dm 0644 ${B}/executable.elf ${DEPLOYDIR}/${PMU_FIRMWARE_BASE_NAME}.elf
61 ln -sf ${PMU_FIRMWARE_BASE_NAME}.elf ${DEPLOYDIR}/${BPN}-${MACHINE}.elf 72 ln -sf ${PMU_FIRMWARE_BASE_NAME}.elf ${DEPLOYDIR}/${PMU_FIRMWARE_IMAGE_NAME}.elf
62 ${OBJCOPY} -O binary ${B}/executable.elf ${B}/executable.bin
63 install -m 0644 ${B}/executable.bin ${DEPLOYDIR}/${PMU_FIRMWARE_BASE_NAME}.bin 73 install -m 0644 ${B}/executable.bin ${DEPLOYDIR}/${PMU_FIRMWARE_BASE_NAME}.bin
64 ln -sf ${PMU_FIRMWARE_BASE_NAME}.bin ${DEPLOYDIR}/${BPN}-${MACHINE}.bin 74 ln -sf ${PMU_FIRMWARE_BASE_NAME}.bin ${DEPLOYDIR}/${PMU_FIRMWARE_IMAGE_NAME}.bin
65} 75}
66 76
67addtask deploy before do_build after do_install 77addtask deploy before do_build after do_install
diff --git a/meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware_2020.2.bb b/meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware_2020.2.bb
index 93c8bafc..047f97d9 100644
--- a/meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware_2020.2.bb
+++ b/meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware_2020.2.bb
@@ -45,4 +45,6 @@ do_compile() {
45 # Again, recipe-systoot include is necessary 45 # Again, recipe-systoot include is necessary
46 echo Construct: executable 46 echo Construct: executable
47 oe_runmake executable.elf CC_FLAGS="-MMD -MP -Wl,--build-id=none -I${STAGING_DIR_TARGET}/usr/include" 47 oe_runmake executable.elf CC_FLAGS="-MMD -MP -Wl,--build-id=none -I${STAGING_DIR_TARGET}/usr/include"
48
49 ${MB_OBJCOPY} -O binary ${B}/executable.elf ${B}/executable.bin
48} 50}
diff --git a/meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware_git.bb b/meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware_git.bb
index 2fc69cbe..cdf569c3 100644
--- a/meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware_git.bb
+++ b/meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware_git.bb
@@ -48,4 +48,6 @@ do_compile() {
48 # Again, recipe-systoot include is necessary 48 # Again, recipe-systoot include is necessary
49 echo Construct: executable 49 echo Construct: executable
50 oe_runmake executable.elf CC_FLAGS="-MMD -MP -Wl,--build-id=none -I${STAGING_DIR_TARGET}/usr/include" 50 oe_runmake executable.elf CC_FLAGS="-MMD -MP -Wl,--build-id=none -I${STAGING_DIR_TARGET}/usr/include"
51
52 ${MB_OBJCOPY} -O binary ${B}/executable.elf ${B}/executable.bin
51} 53}
diff --git a/meta-xilinx-standalone/recipes-bsp/embeddedsw/psm-firmware.inc b/meta-xilinx-standalone/recipes-bsp/embeddedsw/psm-firmware.inc
index 05b9a9b5..11e8981b 100644
--- a/meta-xilinx-standalone/recipes-bsp/embeddedsw/psm-firmware.inc
+++ b/meta-xilinx-standalone/recipes-bsp/embeddedsw/psm-firmware.inc
@@ -1,8 +1,6 @@
1ESCRIPTION = "PSM Firmware" 1ESCRIPTION = "PSM Firmware"
2SUMMARY = "PSM firmware for versal devices" 2SUMMARY = "PSM firmware for versal devices"
3 3
4PROVIDES = "virtual/psm-firmware"
5
6inherit xlnx-embeddedsw deploy 4inherit xlnx-embeddedsw deploy
7 5
8COMPATIBLE_HOST = "microblaze.*-elf" 6COMPATIBLE_HOST = "microblaze.*-elf"
@@ -50,19 +48,28 @@ do_compile() {
50 oe_runmake CC_FLAGS="-MMD -MP -Wl,--build-id=none -I${STAGING_DIR_TARGET}/usr/include" 48 oe_runmake CC_FLAGS="-MMD -MP -Wl,--build-id=none -I${STAGING_DIR_TARGET}/usr/include"
51} 49}
52 50
51# All do compiles need this, even if the base is overriden
52do_compile_append() {
53 ${OBJCOPY} -O binary ${B}/psmfw.elf ${B}/psmfw.bin
54}
55
53do_install() { 56do_install() {
54 : 57 :
55} 58}
56 59
57PSM_FIRMWARE_BASE_NAME ?= "${BPN}-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}" 60PACKAGES = ""
61
62# This is the default in most BSPs. A MACHINE.conf can override this!
63PSM_FIRMWARE_IMAGE_NAME ??= "psm-firmware-versal-mb"
64
65PSM_FIRMWARE_BASE_NAME ?= "${PSM_FIRMWARE_IMAGE_NAME}-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
58PSM_FIRMWARE_BASE_NAME[vardepsexclude] = "DATETIME" 66PSM_FIRMWARE_BASE_NAME[vardepsexclude] = "DATETIME"
59 67
60do_deploy() { 68do_deploy() {
61 install -Dm 0644 ${B}/psmfw.elf ${DEPLOYDIR}/${PSM_FIRMWARE_BASE_NAME}.elf 69 install -Dm 0644 ${B}/psmfw.elf ${DEPLOYDIR}/${PSM_FIRMWARE_BASE_NAME}.elf
62 ln -sf ${PSM_FIRMWARE_BASE_NAME}.elf ${DEPLOYDIR}/${BPN}-${MACHINE}.elf 70 ln -sf ${PSM_FIRMWARE_BASE_NAME}.elf ${DEPLOYDIR}/${PSM_FIRMWARE_IMAGE_NAME}.elf
63 ${OBJCOPY} -O binary ${B}/psmfw.elf ${B}/psmfw.bin
64 install -m 0644 ${B}/psmfw.bin ${DEPLOYDIR}/${PSM_FIRMWARE_BASE_NAME}.bin 71 install -m 0644 ${B}/psmfw.bin ${DEPLOYDIR}/${PSM_FIRMWARE_BASE_NAME}.bin
65 ln -sf ${PSM_FIRMWARE_BASE_NAME}.bin ${DEPLOYDIR}/${BPN}-${MACHINE}.bin 72 ln -sf ${PSM_FIRMWARE_BASE_NAME}.bin ${DEPLOYDIR}/${PSM_FIRMWARE_IMAGE_NAME}.bin
66} 73}
67 74
68addtask deploy before do_build after do_install 75addtask deploy before do_build after do_install