[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