aboutsummaryrefslogtreecommitdiffstats
path: root/meta-xilinx-standalone/recipes-bsp
diff options
context:
space:
mode:
Diffstat (limited to 'meta-xilinx-standalone/recipes-bsp')
-rw-r--r--meta-xilinx-standalone/recipes-bsp/embeddedsw/embeddedsw.inc26
-rw-r--r--meta-xilinx-standalone/recipes-bsp/embeddedsw/plm-firmware.inc63
-rw-r--r--meta-xilinx-standalone/recipes-bsp/embeddedsw/plm-firmware_2019.2.bb1
-rw-r--r--meta-xilinx-standalone/recipes-bsp/embeddedsw/plm-firmware_2020.1.bb1
-rw-r--r--meta-xilinx-standalone/recipes-bsp/embeddedsw/plm-firmware_2020.2.bb3
-rw-r--r--meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware.inc63
-rw-r--r--meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware/fix-zynqmp-assert.patch68
-rw-r--r--meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware_2019.2.bb1
-rw-r--r--meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware_2020.1.bb1
-rw-r--r--meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware_2020.2.bb3
-rw-r--r--meta-xilinx-standalone/recipes-bsp/embeddedsw/psm-firmware.inc64
-rw-r--r--meta-xilinx-standalone/recipes-bsp/embeddedsw/psm-firmware_2019.2.bb1
-rw-r--r--meta-xilinx-standalone/recipes-bsp/embeddedsw/psm-firmware_2020.1.bb1
-rw-r--r--meta-xilinx-standalone/recipes-bsp/embeddedsw/psm-firmware_2020.2.bb3
14 files changed, 299 insertions, 0 deletions
diff --git a/meta-xilinx-standalone/recipes-bsp/embeddedsw/embeddedsw.inc b/meta-xilinx-standalone/recipes-bsp/embeddedsw/embeddedsw.inc
new file mode 100644
index 00000000..79c1a5f4
--- /dev/null
+++ b/meta-xilinx-standalone/recipes-bsp/embeddedsw/embeddedsw.inc
@@ -0,0 +1,26 @@
+# Automatically determnine the version from the bb file
+SRC_VER ?= "${@bb.parse.vars_from_file(d.getVar('FILE', False),d)[1] or 'master'}"
+
+LICENSE = "Proprietary"
+LIC_FILES_CHKSUM[2019.1] = 'e9b6d01d45faccfbf05d8caea53f0a35'
+LIC_FILES_CHKSUM[2019.2] = '39ab6ab638f4d1836ba994ec6852de94'
+LIC_FILES_CHKSUM[2020.1] = '8b565227e1264d677db8f841c2948cba'
+LIC_FILES_CHKSUM[2020.2] = '3a6e22aebf6516f0f74a82e1183f74f8'
+LIC_FILES_CHKSUM[master] = '3a6e22aebf6516f0f74a82e1183f74f8'
+LIC_FILES_CHKSUM = "file://license.txt;md5=${@d.getVarFlag('LIC_FILES_CHKSUM', d.getVar('SRC_VER')) or '0'}"
+
+SRCREV[2019.1] = "26c14d9861010a0e3a55c73fb79efdb816eb42ca"
+SRCREV[2019.2] = "e8db5fb118229fdc621e0ec7848641a23bf60998"
+SRCREV[2020.1] = "338150ab3628a1ea6b06e964b16e712b131882dd"
+SRCREV[2020.2] = "2516d5ed8161e16c2813b0e8e4ceac693f23de5c"
+SRCREV ?= "${@d.getVarFlag('SRCREV', d.getVar('SRC_VER')) or '${AUTOREV}'}"
+
+PV = "${SRC_VER}+git${SRCPV}"
+
+SRC_BRANCH[2019.1] = "release-2019.1"
+SRC_BRANCH[2019.2] = "release-2019.2"
+SRC_BRANCH[2020.1] = "release-2020.1"
+SRC_BRANCH[2020.2] = "master-rel-2020.2"
+SRC_BRANCH ?= "${@d.getVarFlag('SRC_BRANCH', d.getVar('SRC_VER')) or '${SRC_VER}'}"
+
+SRC_URI = "git://github.com/Xilinx/embeddedsw.git;protocol=https;branch=${SRC_BRANCH}"
diff --git a/meta-xilinx-standalone/recipes-bsp/embeddedsw/plm-firmware.inc b/meta-xilinx-standalone/recipes-bsp/embeddedsw/plm-firmware.inc
new file mode 100644
index 00000000..5a77e3de
--- /dev/null
+++ b/meta-xilinx-standalone/recipes-bsp/embeddedsw/plm-firmware.inc
@@ -0,0 +1,63 @@
+require embeddedsw.inc
+
+inherit deploy
+
+COMPATIBLE_HOST = "microblaze.*-elf"
+COMPATIBLE_MACHINE = "versal-mb"
+
+S = "${WORKDIR}/git"
+B = "${S}/lib/sw_apps/versal_plm/src"
+
+# The makefile does not handle parallelization
+PARALLEL_MAKE = ""
+
+do_configure() {
+ # manually do the copy_bsp step first, so as to be able to fix up use of
+ # mb-* commands
+ ${B}/../misc/copy_bsp.sh
+}
+
+COMPILER = "${CC}"
+COMPILER_FLAGS = "-O2 -c"
+EXTRA_COMPILER_FLAGS = "-g -Wall -Wextra -Os -flto -ffat-lto-objects"
+ARCHIVER = "${AR}"
+
+BSP_DIR ?= "${B}/../misc/versal_plm_bsp"
+BSP_TARGETS_DIR ?= "${BSP_DIR}/psv_pmc_0/libsrc"
+
+def bsp_make_vars(d):
+ s = ["COMPILER", "CC", "COMPILER_FLAGS", "EXTRA_COMPILER_FLAGS", "ARCHIVER", "AR", "AS"]
+ return " ".join(["\"%s=%s\"" % (v, d.getVar(v)) for v in s])
+
+do_compile() {
+ # the Makefile in ${B}/../misc/Makefile, does not handle CC, AR, AS, etc
+ # properly. So do its job manually. Preparing the includes first, then libs.
+ for i in $(ls ${BSP_TARGETS_DIR}/*/src/Makefile); do
+ oe_runmake -C $(dirname $i) -s include ${@bsp_make_vars(d)}
+ done
+ for i in $(ls ${BSP_TARGETS_DIR}/*/src/Makefile); do
+ oe_runmake -C $(dirname $i) -s libs ${@bsp_make_vars(d)}
+ done
+
+ # --build-id=none is required due to linker script not defining a location for it.
+ # Again, recipe-systoot include is necessary
+ oe_runmake CC="${CC}" CC_FLAGS="-MMD -MP -Wl,--build-id=none -I${STAGING_DIR_TARGET}/usr/include"
+}
+
+do_install() {
+ :
+}
+
+PLM_BASE_NAME ?= "${BPN}-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
+PLM_BASE_NAME[vardepsexclude] = "DATETIME"
+
+do_deploy() {
+ install -Dm 0644 ${B}/plm.elf ${DEPLOYDIR}/${PLM_BASE_NAME}.elf
+ ln -sf ${PLM_BASE_NAME}.elf ${DEPLOYDIR}/${BPN}-${MACHINE}.elf
+ ${OBJCOPY} -O binary ${B}/plm.elf ${B}/plm.bin
+ install -m 0644 ${B}/plm.bin ${DEPLOYDIR}/${PLM_BASE_NAME}.bin
+ ln -sf ${PLM_BASE_NAME}.bin ${DEPLOYDIR}/${BPN}-${MACHINE}.bin
+}
+
+addtask deploy before do_build after do_install
+
diff --git a/meta-xilinx-standalone/recipes-bsp/embeddedsw/plm-firmware_2019.2.bb b/meta-xilinx-standalone/recipes-bsp/embeddedsw/plm-firmware_2019.2.bb
new file mode 100644
index 00000000..782c9dc4
--- /dev/null
+++ b/meta-xilinx-standalone/recipes-bsp/embeddedsw/plm-firmware_2019.2.bb
@@ -0,0 +1 @@
+require plm-firmware.inc
diff --git a/meta-xilinx-standalone/recipes-bsp/embeddedsw/plm-firmware_2020.1.bb b/meta-xilinx-standalone/recipes-bsp/embeddedsw/plm-firmware_2020.1.bb
new file mode 100644
index 00000000..782c9dc4
--- /dev/null
+++ b/meta-xilinx-standalone/recipes-bsp/embeddedsw/plm-firmware_2020.1.bb
@@ -0,0 +1 @@
+require plm-firmware.inc
diff --git a/meta-xilinx-standalone/recipes-bsp/embeddedsw/plm-firmware_2020.2.bb b/meta-xilinx-standalone/recipes-bsp/embeddedsw/plm-firmware_2020.2.bb
new file mode 100644
index 00000000..69455dfa
--- /dev/null
+++ b/meta-xilinx-standalone/recipes-bsp/embeddedsw/plm-firmware_2020.2.bb
@@ -0,0 +1,3 @@
+require plm-firmware.inc
+
+DEFAULT_PREFERENCE = "-1"
diff --git a/meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware.inc b/meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware.inc
new file mode 100644
index 00000000..584809da
--- /dev/null
+++ b/meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware.inc
@@ -0,0 +1,63 @@
+require embeddedsw.inc
+
+SRC_URI += "file://fix-zynqmp-assert.patch"
+
+inherit deploy
+
+COMPATIBLE_HOST = "microblaze.*-elf"
+COMPATIBLE_MACHINE = "microblaze-pmu"
+
+S = "${WORKDIR}/git"
+B = "${S}/lib/sw_apps/zynqmp_pmufw/src"
+
+# The makefile does not handle parallelization
+PARALLEL_MAKE = ""
+
+do_configure() {
+ # manually do the copy_bsp step first, so as to be able to fix up use of
+ # mb-* commands
+ ${B}/../misc/copy_bsp.sh
+}
+
+COMPILER = "${CC}"
+COMPILER_FLAGS = "-O2 -c"
+EXTRA_COMPILER_FLAGS = "-g -Wall -Wextra -Os -flto -ffat-lto-objects"
+ARCHIVER = "${AR}"
+
+BSP_DIR ?= "${B}/../misc/zynqmp_pmufw_bsp"
+BSP_TARGETS_DIR ?= "${BSP_DIR}/psu_pmu_0/libsrc"
+
+def bsp_make_vars(d):
+ s = ["COMPILER", "CC", "COMPILER_FLAGS", "EXTRA_COMPILER_FLAGS", "ARCHIVER", "AR", "AS"]
+ return " ".join(["\"%s=%s\"" % (v, d.getVar(v)) for v in s])
+
+do_compile() {
+ # the Makefile in ${B}/../misc/Makefile, does not handle CC, AR, AS, etc
+ # properly. So do its job manually. Preparing the includes first, then libs.
+ for i in $(ls ${BSP_TARGETS_DIR}/*/src/Makefile); do
+ oe_runmake -C $(dirname $i) -s include ${@bsp_make_vars(d)}
+ done
+ for i in $(ls ${BSP_TARGETS_DIR}/*/src/Makefile); do
+ oe_runmake -C $(dirname $i) -s libs ${@bsp_make_vars(d)}
+ done
+
+ # --build-id=none is required due to linker script not defining a location for it.
+ # Again, recipe-systoot include is necessary
+ oe_runmake CC="${CC}" CC_FLAGS="-MMD -MP -Wl,--build-id=none -I${STAGING_DIR_TARGET}/usr/include"
+}
+
+do_install() {
+ :
+}
+
+PMU_FIRMWARE_BASE_NAME ?= "${BPN}-${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
+
+do_deploy() {
+ install -Dm 0644 ${B}/executable.elf ${DEPLOYDIR}/${PMU_FIRMWARE_BASE_NAME}.elf
+ ln -sf ${PMU_FIRMWARE_BASE_NAME}.elf ${DEPLOYDIR}/${BPN}-${MACHINE}.elf
+ ${OBJCOPY} -O binary ${B}/executable.elf ${B}/executable.bin
+ install -m 0644 ${B}/executable.bin ${DEPLOYDIR}/${PMU_FIRMWARE_BASE_NAME}.bin
+ ln -sf ${PMU_FIRMWARE_BASE_NAME}.bin ${DEPLOYDIR}/${BPN}-${MACHINE}.bin
+}
+
+addtask deploy before do_build after do_install
diff --git a/meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware/fix-zynqmp-assert.patch b/meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware/fix-zynqmp-assert.patch
new file mode 100644
index 00000000..87e1b111
--- /dev/null
+++ b/meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware/fix-zynqmp-assert.patch
@@ -0,0 +1,68 @@
+diff --git a/lib/sw_apps/zynqmp_pmufw/src/pm_reset.c b/lib/sw_apps/zynqmp_pmufw/src/pm_reset.c
+index 297c6c2ddc..bc295cf013 100644
+--- a/lib/sw_apps/zynqmp_pmufw/src/pm_reset.c
++++ b/lib/sw_apps/zynqmp_pmufw/src/pm_reset.c
+@@ -52,7 +52,7 @@
+ * @pulse Function performing reset pulse operation
+ */
+ typedef struct PmResetOps {
+- void (*const assert)(const PmReset* const rst, const u32 action);
++ void (*const resetAssert)(const PmReset* const rst, const u32 action);
+ u32 (*const getStatus)(const PmReset* const s);
+ u32 (*const pulse)(const PmReset* const rst);
+ } PmResetOps;
+@@ -415,37 +415,37 @@ static u32 PmResetPulsePl(const PmReset* const rst)
+ }
+
+ static const PmResetOps pmResetOpsGeneric = {
+- .assert = PmResetAssertGen,
++ .resetAssert = PmResetAssertGen,
+ .getStatus = PmResetGetStatusGen,
+ .pulse = PmResetPulseGen,
+ };
+
+ static const PmResetOps pmResetOpsGpo = {
+- .assert = PmResetAssertGpo,
++ .resetAssert = PmResetAssertGpo,
+ .getStatus = PmResetGetStatusGpo,
+ .pulse = PmResetPulseGpo,
+ };
+
+ static const PmResetOps pmResetOpsRom = {
+- .assert = PmResetAssertRom,
++ .resetAssert = PmResetAssertRom,
+ .getStatus = PmResetGetStatusRom,
+ .pulse = PmResetPulseRom,
+ };
+
+ static const PmResetOps pmResetOpsNoAssert = {
+- .assert = NULL,
++ .resetAssert = NULL,
+ .getStatus = PmResetGetStatusRom,
+ .pulse = PmResetPulseRom,
+ };
+
+ static const PmResetOps pmResetOpsPl = {
+- .assert = PmResetAssertPl,
++ .resetAssert = PmResetAssertPl,
+ .getStatus = PmResetGetStatusPl,
+ .pulse = PmResetPulsePl,
+ };
+
+ static const PmResetOps pmResetOpsGpioBankIO = {
+- .assert = NULL,
++ .resetAssert = NULL,
+ .getStatus = PmResetGetStatusGpioBankIOs,
+ .pulse = PmResetPulseGpioBankIOs,
+ };
+@@ -1901,8 +1901,8 @@ s32 PmResetDoAssert(const PmReset *reset, u32 action)
+ switch (action) {
+ case PM_RESET_ACTION_RELEASE:
+ case PM_RESET_ACTION_ASSERT:
+- if (NULL != reset->ops->assert) {
+- reset->ops->assert(reset, action);
++ if (NULL != reset->ops->resetAssert) {
++ reset->ops->resetAssert(reset, action);
+ } else {
+ status = XST_INVALID_PARAM;
+ }
diff --git a/meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware_2019.2.bb b/meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware_2019.2.bb
new file mode 100644
index 00000000..88b10b31
--- /dev/null
+++ b/meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware_2019.2.bb
@@ -0,0 +1 @@
+require pmu-firmware.inc
diff --git a/meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware_2020.1.bb b/meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware_2020.1.bb
new file mode 100644
index 00000000..88b10b31
--- /dev/null
+++ b/meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware_2020.1.bb
@@ -0,0 +1 @@
+require pmu-firmware.inc
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
new file mode 100644
index 00000000..e2eca1b7
--- /dev/null
+++ b/meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware_2020.2.bb
@@ -0,0 +1,3 @@
+require pmu-firmware.inc
+
+DEFAULT_PREFERENCE = "-1"
diff --git a/meta-xilinx-standalone/recipes-bsp/embeddedsw/psm-firmware.inc b/meta-xilinx-standalone/recipes-bsp/embeddedsw/psm-firmware.inc
new file mode 100644
index 00000000..344bfca0
--- /dev/null
+++ b/meta-xilinx-standalone/recipes-bsp/embeddedsw/psm-firmware.inc
@@ -0,0 +1,64 @@
+require embeddedsw.inc
+
+inherit deploy
+
+COMPATIBLE_HOST = "microblaze.*-elf"
+COMPATIBLE_MACHINE = "versal-mb"
+
+
+S = "${WORKDIR}/git"
+B = "${S}/lib/sw_apps/versal_psmfw/src"
+
+# The makefile does not handle parallelization
+PARALLEL_MAKE = ""
+
+do_configure() {
+ # manually do the copy_bsp step first, so as to be able to fix up use of
+ # mb-* commands
+ ${B}/../misc/copy_bsp.sh
+}
+
+COMPILER = "${CC}"
+COMPILER_FLAGS = "-O2 -c"
+EXTRA_COMPILER_FLAGS = "-g -Wall -Wextra -Os -flto -ffat-lto-objects"
+ARCHIVER = "${AR}"
+
+BSP_DIR ?= "${B}/../misc/versal_psmfw_bsp"
+BSP_TARGETS_DIR ?= "${BSP_DIR}/psv_psm_0/libsrc"
+
+def bsp_make_vars(d):
+ s = ["COMPILER", "CC", "COMPILER_FLAGS", "EXTRA_COMPILER_FLAGS", "ARCHIVER", "AR", "AS"]
+ return " ".join(["\"%s=%s\"" % (v, d.getVar(v)) for v in s])
+
+do_compile() {
+ # the Makefile in ${B}/../misc/Makefile, does not handle CC, AR, AS, etc
+ # properly. So do its job manually. Preparing the includes first, then libs.
+ for i in $(ls ${BSP_TARGETS_DIR}/*/src/Makefile); do
+ oe_runmake -C $(dirname $i) -s include ${@bsp_make_vars(d)}
+ done
+ for i in $(ls ${BSP_TARGETS_DIR}/*/src/Makefile); do
+ oe_runmake -C $(dirname $i) -s libs ${@bsp_make_vars(d)}
+ done
+
+ # --build-id=none is required due to linker script not defining a location for it.
+ # Again, recipe-systoot include is necessary
+ oe_runmake CC="${CC}" CC_FLAGS="-MMD -MP -Wl,--build-id=none -I${STAGING_DIR_TARGET}/usr/include"
+}
+
+do_install() {
+ :
+}
+
+PSM_FIRMWARE_BASE_NAME ?= "${BPN}-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
+PSM_FIRMWARE_BASE_NAME[vardepsexclude] = "DATETIME"
+
+do_deploy() {
+ install -Dm 0644 ${B}/psmfw.elf ${DEPLOYDIR}/${PSM_FIRMWARE_BASE_NAME}.elf
+ ln -sf ${PSM_FIRMWARE_BASE_NAME}.elf ${DEPLOYDIR}/${BPN}-${MACHINE}.elf
+ ${OBJCOPY} -O binary ${B}/psmfw.elf ${B}/psmfw.bin
+ install -m 0644 ${B}/psmfw.bin ${DEPLOYDIR}/${PSM_FIRMWARE_BASE_NAME}.bin
+ ln -sf ${PSM_FIRMWARE_BASE_NAME}.bin ${DEPLOYDIR}/${BPN}-${MACHINE}.bin
+}
+
+addtask deploy before do_build after do_install
+
diff --git a/meta-xilinx-standalone/recipes-bsp/embeddedsw/psm-firmware_2019.2.bb b/meta-xilinx-standalone/recipes-bsp/embeddedsw/psm-firmware_2019.2.bb
new file mode 100644
index 00000000..61509c7a
--- /dev/null
+++ b/meta-xilinx-standalone/recipes-bsp/embeddedsw/psm-firmware_2019.2.bb
@@ -0,0 +1 @@
+require psm-firmware.inc
diff --git a/meta-xilinx-standalone/recipes-bsp/embeddedsw/psm-firmware_2020.1.bb b/meta-xilinx-standalone/recipes-bsp/embeddedsw/psm-firmware_2020.1.bb
new file mode 100644
index 00000000..61509c7a
--- /dev/null
+++ b/meta-xilinx-standalone/recipes-bsp/embeddedsw/psm-firmware_2020.1.bb
@@ -0,0 +1 @@
+require psm-firmware.inc
diff --git a/meta-xilinx-standalone/recipes-bsp/embeddedsw/psm-firmware_2020.2.bb b/meta-xilinx-standalone/recipes-bsp/embeddedsw/psm-firmware_2020.2.bb
new file mode 100644
index 00000000..11ef4038
--- /dev/null
+++ b/meta-xilinx-standalone/recipes-bsp/embeddedsw/psm-firmware_2020.2.bb
@@ -0,0 +1,3 @@
+require psm-firmware.inc
+
+DEFAULT_PREFERENCE = "-1"