[meta-xilinx] [PATCH v3] platform-init: add support for psu_init_gpl files
Nathan Rossi
nathan at nathanrossi.com
Fri Feb 3 04:00:44 PST 2017
On 3 February 2017 at 06:12, Jean-Francois Dagenais
<jeff.dagenais at gmail.com> wrote:
> Signed-off-by: Jean-Francois Dagenais <jeff.dagenais at gmail.com>
> ---
> classes/zynq-platform-paths.bbclass | 6 +++++
> classes/zynq7-platform-paths.bbclass | 4 ---
> conf/machine/zybo-linux-bd-zynq7.conf | 2 +-
> recipes-bsp/platform-init/platform-init.bb | 10 +++----
> recipes-bsp/platform-init/zynq-platform-init.inc | 22 ++++++++++++++++
> recipes-bsp/platform-init/zynq7-platform-init.inc | 22 ----------------
> recipes-bsp/reference-design/zybo-linux-bd.bb | 4 +--
> recipes-bsp/u-boot/u-boot-spl-zynq-init.inc | 32 +++++++++++------------
> recipes-bsp/u-boot/u-boot-xlnx-dev.bb | 2 +-
> recipes-bsp/u-boot/u-boot-xlnx_2016.07.bb | 2 +-
> recipes-bsp/u-boot/u-boot_2016.11.bbappend | 2 +-
> 11 files changed, 55 insertions(+), 53 deletions(-)
> create mode 100644 classes/zynq-platform-paths.bbclass
> delete mode 100644 classes/zynq7-platform-paths.bbclass
> create mode 100644 recipes-bsp/platform-init/zynq-platform-init.inc
> delete mode 100644 recipes-bsp/platform-init/zynq7-platform-init.inc
So before I make any comments, I would like to point out I have some
changes that I have been working on to add similar support for ZynqMP
platform init files. I hit some issues regarding compatibility with
existing layers, which is why I have not sent out a series for it yet.
https://github.com/nathanrossi/meta-xilinx/commits/nrossi/wip
I would be interested in your opinion of your changes vs the changes
in in that branch.
So I think the biggest issue with this patch would be that it breaks
the ability work with existing provides/etc. Which I think is quite
important. However I am open to breaking that if users would prefer to
do so.
Also a couple of comments below regarding functional issues.
>
> diff --git a/classes/zynq-platform-paths.bbclass b/classes/zynq-platform-paths.bbclass
> new file mode 100644
> index 0000000..4b05681
> --- /dev/null
> +++ b/classes/zynq-platform-paths.bbclass
> @@ -0,0 +1,6 @@
> +# Define the path to the zynq platform init code/headers
> +PLATFORM_INIT_DIR = "/usr/src/zynq-platform"
> +PLATFORM_INIT_STAGE_DIR = "${STAGING_DIR_HOST}${PLATFORM_INIT_DIR}"
> +PSx = ""
> +PSx_zynq = "ps7"
> +PSx_zynqmp = "psu"
> diff --git a/classes/zynq7-platform-paths.bbclass b/classes/zynq7-platform-paths.bbclass
> deleted file mode 100644
> index a15f6ae..0000000
> --- a/classes/zynq7-platform-paths.bbclass
> +++ /dev/null
> @@ -1,4 +0,0 @@
> -# Define the path to the zynq platform init code/headers
> -PLATFORM_INIT_DIR = "/usr/src/zynq7-platform"
> -PLATFORM_INIT_STAGE_DIR = "${STAGING_DIR_HOST}${PLATFORM_INIT_DIR}"
> -
> diff --git a/conf/machine/zybo-linux-bd-zynq7.conf b/conf/machine/zybo-linux-bd-zynq7.conf
> index f5524c1..32f5a87 100644
> --- a/conf/machine/zybo-linux-bd-zynq7.conf
> +++ b/conf/machine/zybo-linux-bd-zynq7.conf
> @@ -25,7 +25,7 @@ MACHINE_DEVICETREE = " \
>
> UBOOT_MACHINE = "zynq_zybo_config"
> SPL_BINARY = "spl/boot.bin"
> -FORCE_PS7INIT = "zybo"
> +FORCE_PSxINIT = "zybo"
>
> EXTRA_IMAGEDEPENDS += "virtual/bitstream"
>
> diff --git a/recipes-bsp/platform-init/platform-init.bb b/recipes-bsp/platform-init/platform-init.bb
> index 5a98c55..9c54a9d 100644
> --- a/recipes-bsp/platform-init/platform-init.bb
> +++ b/recipes-bsp/platform-init/platform-init.bb
> @@ -1,9 +1,9 @@
> SUMMARY = "Xilinx Platform Headers"
> -DESCRPTION = "Xilinx ps7_init_gpl.c/h platform headers, used for building u-boot-spl and fsbl"
> +DESCRPTION = "Xilinx ${PSx}_init_gpl.c/h platform headers, used for building u-boot-spl and fsbl"
> HOMEPAGE = "http://www.xilinx.com"
> SECTION = "bsp"
>
> -include zynq7-platform-init.inc
> +include zynq-platform-init.inc
>
> COMPATIBLE_MACHINE = "$^"
> COMPATIBLE_MACHINE_picozed-zynq7 = "picozed-zynq7"
> @@ -11,12 +11,12 @@ COMPATIBLE_MACHINE_picozed-zynq7 = "picozed-zynq7"
> LICENSE = "GPLv2+"
> LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
>
> -SRC_URI = "file://ps7_init_gpl.c file://ps7_init_gpl.h"
> +SRC_URI = "file://${PSx}_init_gpl.c file://${PSx}_init_gpl.h"
>
> S = "${WORKDIR}"
>
> do_install_append() {
> - install -m 0644 ${S}/ps7_init_gpl.c ${D}${PLATFORM_INIT_DIR}/
> - install -m 0644 ${S}/ps7_init_gpl.h ${D}${PLATFORM_INIT_DIR}/
> + install -m 0644 ${S}/${PSx}_init_gpl.c ${D}${PLATFORM_INIT_DIR}/
> + install -m 0644 ${S}/${PSx}_init_gpl.h ${D}${PLATFORM_INIT_DIR}/
> }
>
> diff --git a/recipes-bsp/platform-init/zynq-platform-init.inc b/recipes-bsp/platform-init/zynq-platform-init.inc
> new file mode 100644
> index 0000000..4f609fd
> --- /dev/null
> +++ b/recipes-bsp/platform-init/zynq-platform-init.inc
> @@ -0,0 +1,22 @@
> +inherit zynq-platform-paths
> +
> +PROVIDES += "virtual/zynq-platform-init"
> +
> +INHIBIT_DEFAULT_DEPS = "1"
> +PACKAGE_ARCH = "${MACHINE_ARCH}"
> +
> +SYSROOT_DIRS += "${PLATFORM_INIT_DIR}"
> +
> +do_compile() {
> + :
> +}
> +
> +do_install() {
> + install -d ${D}${PLATFORM_INIT_DIR}
> +}
> +
> +FILES_${PN} += " \
> + ${PLATFORM_INIT_DIR}/${PSx}_init_gpl.c \
> + ${PLATFORM_INIT_DIR}/${PSx}_init_gpl.h \
> + "
> +
> diff --git a/recipes-bsp/platform-init/zynq7-platform-init.inc b/recipes-bsp/platform-init/zynq7-platform-init.inc
> deleted file mode 100644
> index 2282428..0000000
> --- a/recipes-bsp/platform-init/zynq7-platform-init.inc
> +++ /dev/null
> @@ -1,22 +0,0 @@
> -inherit zynq7-platform-paths
> -
> -PROVIDES += "virtual/zynq7-platform-init"
> -
> -INHIBIT_DEFAULT_DEPS = "1"
> -PACKAGE_ARCH = "${MACHINE_ARCH}"
> -
> -SYSROOT_DIRS += "${PLATFORM_INIT_DIR}"
> -
> -do_compile() {
> - :
> -}
> -
> -do_install() {
> - install -d ${D}${PLATFORM_INIT_DIR}
> -}
> -
> -FILES_${PN} += " \
> - ${PLATFORM_INIT_DIR}/ps7_init_gpl.c \
> - ${PLATFORM_INIT_DIR}/ps7_init_gpl.h \
> - "
> -
> diff --git a/recipes-bsp/reference-design/zybo-linux-bd.bb b/recipes-bsp/reference-design/zybo-linux-bd.bb
> index a6df84d..bb6411d 100644
> --- a/recipes-bsp/reference-design/zybo-linux-bd.bb
> +++ b/recipes-bsp/reference-design/zybo-linux-bd.bb
> @@ -23,7 +23,7 @@ HDF = "/Projects/${HW_BD}/hw_handoff/${HW_BD}_wrapper.hdf"
>
> S ?= "${WORKDIR}/${MACHINE}"
>
> -PROVIDES = "virtual/bitstream virtual/zynq7-platform-init"
> +PROVIDES = "virtual/bitstream virtual/zynq-platform-init"
>
> PLATFORM_INIT ?= "ps7_init_gpl.c \
> ps7_init_gpl.h"
> @@ -43,7 +43,7 @@ BITSTREAM ?= "bitstream-${PV}-${PR}.bit"
>
> PACKAGE_ARCH = "${MACHINE_ARCH}"
>
> -inherit zynq7-platform-paths
> +inherit zynq-platform-paths
> inherit deploy
>
> SYSROOT_DIRS += "${PLATFORM_INIT_DIR}"
> diff --git a/recipes-bsp/u-boot/u-boot-spl-zynq-init.inc b/recipes-bsp/u-boot/u-boot-spl-zynq-init.inc
> index cc06de6..6a5fe25 100644
> --- a/recipes-bsp/u-boot/u-boot-spl-zynq-init.inc
> +++ b/recipes-bsp/u-boot/u-boot-spl-zynq-init.inc
> @@ -1,35 +1,35 @@
> -inherit zynq7-platform-paths
> +inherit zynq-platform-paths
>
> do_configure_prepend() {
> - if ${@bb.utils.contains('DEPENDS', 'virtual/zynq7-platform-init', 'true', 'false', d)}; then
> + if ${@bb.utils.contains('DEPENDS', 'virtual/zynq-platform-init', 'true', 'false', d)}; then
> if [ -d "${S}/board/xilinx/zynq/custom_hw_platform" ]; then
> - cp ${PLATFORM_INIT_STAGE_DIR}/ps7_init_gpl.h ${S}/board/xilinx/zynq/custom_hw_platform/
> - cp ${PLATFORM_INIT_STAGE_DIR}/ps7_init_gpl.c ${S}/board/xilinx/zynq/custom_hw_platform/
> + cp ${PLATFORM_INIT_STAGE_DIR}/${PSx}_init_gpl.h ${S}/board/xilinx/zynq/custom_hw_platform/
> + cp ${PLATFORM_INIT_STAGE_DIR}/${PSx}_init_gpl.c ${S}/board/xilinx/zynq/custom_hw_platform/
> else
> - cp ${PLATFORM_INIT_STAGE_DIR}/ps7_init_gpl.h ${S}/board/xilinx/zynq/
> - cp ${PLATFORM_INIT_STAGE_DIR}/ps7_init_gpl.c ${S}/board/xilinx/zynq/
> + cp ${PLATFORM_INIT_STAGE_DIR}/${PSx}_init_gpl.h ${S}/board/xilinx/zynq/
> + cp ${PLATFORM_INIT_STAGE_DIR}/${PSx}_init_gpl.c ${S}/board/xilinx/zynq/
> fi
> - if [ -n "${FORCE_PS7INIT}" ]; then
> - # overwrite all the existing platforms ps7_init files, this is a shotgun approach and only works due to
> + if [ -n "${FORCE_PSxINIT}" ]; then
> + # overwrite all the existing platforms ${PSx}_init files, this is a shotgun approach and only works due to
> # u-boot being built for each machine seperately with seperate source directories.
> for i in ${S}/board/xilinx/zynq/*/; do
> - cp ${PLATFORM_INIT_STAGE_DIR}/ps7_init_gpl.h $i
> - cp ${PLATFORM_INIT_STAGE_DIR}/ps7_init_gpl.c $i
> + cp ${PLATFORM_INIT_STAGE_DIR}/${PSx}_init_gpl.h $i
> + cp ${PLATFORM_INIT_STAGE_DIR}/${PSx}_init_gpl.c $i
This should populate into the "zynqmp" board directory for zynqmp and
"zynq" for "zynq".
> done
> fi
> fi
> }
>
> -FORCE_PS7INIT[doc] = "This variable is used to force the overriding of all ps7_init_gpl.* files in u-boot source with what is provided by virtual/zynq7-platform-init."
> +FORCE_PSxINIT[doc] = "This variable is used to force the overriding of all ${PSx}_init_gpl.* files in u-boot source with what is provided by virtual/zynq-platform-init."
>
> python () {
> - # Determine if target machine needs to provide a custom ps7_init_gpl.*
> - if d.getVar("SOC_FAMILY", True) == "zynq":
> + # Determine if target machine needs to provide a custom ${PSx}_init_gpl.*
> + if "zynq" in d.getVar("SOC_FAMILY", True):
This should be a full match, since it is likely for future SOC's to
have the "*zynq*" name.
Regards,
Nathan
> if d.getVar("SPL_BINARY", True):
> - # only add the dependency if u-bopt doesn't already provide the platform init files
> - if d.getVar("FORCE_PS7INIT", True) or not bb.utils.contains("HAS_PS7INIT", d.getVar("UBOOT_MACHINE", True), True, False, d):
> + # only add the dependency if u-boot doesn't already provide the platform init files
> + if d.getVar("FORCE_PSxINIT", True) or not bb.utils.contains("HAS_PSxINIT", d.getVar("UBOOT_MACHINE", True), True, False, d):
> # force the dependency on a recipe that provides the platform init files
> - d.setVar("DEPENDS", "%s virtual/zynq7-platform-init" % d.getVar("DEPENDS", True))
> + d.setVar("DEPENDS", "%s virtual/zynq-platform-init" % d.getVar("DEPENDS", True))
>
> if d.getVar("SPL_BINARY", True) == "boot.bin":
> # Add this for backwards compatiblity
> diff --git a/recipes-bsp/u-boot/u-boot-xlnx-dev.bb b/recipes-bsp/u-boot/u-boot-xlnx-dev.bb
> index 7653da5..2a100e6 100644
> --- a/recipes-bsp/u-boot/u-boot-xlnx-dev.bb
> +++ b/recipes-bsp/u-boot/u-boot-xlnx-dev.bb
> @@ -18,7 +18,7 @@ SRCREV ?= "${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/bootloader", "u-b
> PV = "${UBRANCH}-xilinx-dev+git${SRCPV}"
>
> # Newer versions of u-boot have support for these
> -HAS_PS7INIT ?= " \
> +HAS_PSxINIT ?= " \
> zynq_microzed_config \
> zynq_zed_config \
> zynq_zc702_config \
> diff --git a/recipes-bsp/u-boot/u-boot-xlnx_2016.07.bb b/recipes-bsp/u-boot/u-boot-xlnx_2016.07.bb
> index 61f1cb7..18f7d34 100644
> --- a/recipes-bsp/u-boot/u-boot-xlnx_2016.07.bb
> +++ b/recipes-bsp/u-boot/u-boot-xlnx_2016.07.bb
> @@ -20,7 +20,7 @@ SRC_URI_append_zc702-zynq7 = " file://uEnv.txt"
> SRC_URI_append_zedboard-zynq7 = " file://uEnv.txt"
>
> # u-boot 2016.07 has support for these
> -HAS_PS7INIT ?= " \
> +HAS_PSxINIT ?= " \
> zynq_microzed_config \
> zynq_zed_config \
> zynq_zc702_config \
> diff --git a/recipes-bsp/u-boot/u-boot_2016.11.bbappend b/recipes-bsp/u-boot/u-boot_2016.11.bbappend
> index 78e5ac6..bd142fb 100644
> --- a/recipes-bsp/u-boot/u-boot_2016.11.bbappend
> +++ b/recipes-bsp/u-boot/u-boot_2016.11.bbappend
> @@ -1,7 +1,7 @@
> include u-boot-spl-zynq-init.inc
>
> # u-boot 2016.11 has support for these
> -HAS_PS7INIT ?= " \
> +HAS_PSxINIT ?= " \
> zynq_microzed_config \
> zynq_zed_config \
> zynq_zc702_config \
> --
> 2.1.4
>
> --
> _______________________________________________
> meta-xilinx mailing list
> meta-xilinx at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/meta-xilinx
More information about the meta-xilinx
mailing list