[meta-xilinx] [PATCH 05/20] Add basic Xilinx HDF support

Jason Wu jason.wu.misc at gmail.com
Wed Apr 13 02:23:35 PDT 2016



On 13/04/2016 6:08 PM, Nathan Rossi wrote:
> On Tue, Apr 12, 2016 at 10:36 PM, Jason Wu <jason.wu.misc at gmail.com> wrote:
>>
>>
>> On 12/04/2016 7:02 PM, Nathan Rossi wrote:
>>>
>>> On Mon, Apr 11, 2016 at 11:23 PM, Jason Wu <jason.wu.misc at gmail.com>
>>> wrote:
>>>>
>>>> This allows user to create bb to extract the bitstream and
>>>> ps7_init_gpl.[h|c]
>>>> file from hdf file.
>>>
>>>
>>> This looks good, but I think it would be more useful as a bbclass
>>> instead of an include.
>>
>> I can do it as bbclas and will do in v2
>>>
>>>
>>>>
>>>> Signed-off-by: Jason Wu <jason.wu.misc at gmail.com>
>>>> ---
>>>>    recipes-bsp/hardware-definition-file/hdf.inc | 46
>>>> ++++++++++++++++++++++++++++
>>>>    1 file changed, 46 insertions(+)
>>>>    create mode 100644 recipes-bsp/hardware-definition-file/hdf.inc
>>>>
>>>> diff --git a/recipes-bsp/hardware-definition-file/hdf.inc
>>>> b/recipes-bsp/hardware-definition-file/hdf.inc
>>>> new file mode 100644
>>>> index 0000000..ba2e45c
>>>> --- /dev/null
>>>> +++ b/recipes-bsp/hardware-definition-file/hdf.inc
>>>> @@ -0,0 +1,46 @@
>>>> +SECTION = "bsp"
>>>> +DEPENDS += "unzip"
>>>> +
>>>> +S ?= "${WORKDIR}/${MACHINE}"
>>>> +
>>>> +PROVIDES = "virtual/hdf virtual/bitstream virtual/zynq7-platform-init"
>>>> +
>>>> +FILESEXTRAPATHS_prepend := "${THISDIR}/bsps:"
>>>
>>>
>>> This shouldn't be there by default, in case "bsps" has different
>>> content than expected.
>>
>> I think this should be removed. This was a old code I had for testing the
>> local hdf.
>>
>>>
>>>> +
>>>> +PLATFORM_INIT ?= "ps7_init_gpl.c \
>>>> +                 ps7_init_gpl.h"
>>>> +
>>>> +FILES_${PN} += " \
>>>> +               ${PLATFORM_INIT_DIR}/ps7_init_gpl.c \
>>>> +               ${PLATFORM_INIT_DIR}/ps7_init_gpl.h \
>>>> +               download.bit \
>>>
>>>
>>> This can be split into two packages, ${PN}-platform-init and
>>> ${PN}-bitstream. So that it is easy to install either to the rootfs if
>>> that is desired.
>>
>> sure, will do it v2. The v2 will have something like the followings:
>>
>> +FILES_${PN}-platform-init += " \
>> +               ${PLATFORM_INIT_DIR}/ps7_init_gpl.c \
>> +               ${PLATFORM_INIT_DIR}/ps7_init_gpl.h \
>>
>> +FILES_${PN}-bitstream += " \
>> + download.bit \
>>
>> Just to be sure this is what you after.
>>
>>
>>>
>>>> +               "
>>>> +
>>>> +BITSTREAM ?= "bitstream-${PV}-${PR}.bit"
>>>> +
>>>> +INHIBIT_DEFAULT_DEPS = "1"
>>>> +PACKAGE_ARCH = "${MACHINE_ARCH}"
>>>> +
>>>> +inherit zynq7-platform-paths
>>>> +
>>>> +do_install() {
>>>> +       fn=$(unzip -l ${S}/${HDF} | awk '{print $NF}' | grep ".bit$")
>>>> +       unzip -o ${S}/${HDF} ${fn} -d ${D}
>>>> +       [ "${fn}" == "download.bit"] || mv ${D}/${fn} ${D}/download.bit
>>>> +
>>>> +       install -d ${PLATFORM_INIT_STAGE_DIR}
>>>> +       for fn in ${PLATFORM_INIT}; do
>>>> +               unzip -o ${S}/${HDF} ${fn} -d ${PLATFORM_INIT_STAGE_DIR}
>>>> +       done
>>>
>>>
>>> I will have to double check, but I think this might not work correctly
>>> due to sysroot staging. Which is why the zynq7-platform-init.inc uses
>>> the sysroot stage task
>>>
>>> (http://git.yoctoproject.org/cgit/cgit.cgi/meta-xilinx/tree/recipes-bsp/platform-init/zynq7-platform-init.inc#n17)
>>
>> This was tested. So It may not work. I will have a look check with you
>> later.
>
> So I looked into it a bit and it appears to work fine to stage from
> the install task. However I noticed that this will only stage the
> files to the sysroot and it will never populate them into the install
> directory (${D}), so you will need to unzip them to
> ${D}${PLATFORM_INIT_DIR} as well.
ok, i will make the change.

>
> But it is probably worth setting this up to work in the expected tasks
> anyways, have install populate ${D} and then stage it in the sysroot
> via the sysroot_stage_all task. Something like below should work fine.
>
> install -d ${D}${PLATFORM_INIT_DIR}
> for fn in ${PLATFORM_INIT}; do
> unzip -o ${S}/${HDF} ${fn} -d ${D}${PLATFORM_INIT_DIR}
> done
> }
>
> sysroot_stage_all_append () {
> sysroot_stage_dir ${D}${PLATFORM_INIT_DIR}
> ${SYSROOT_DESTDIR}/${PLATFORM_INIT_DIR}
> }
thanks

Jason
>
> Regards,
> Nathan
>
>>
>> Regards,
>>
>> Jason
>>
>>
>>>
>>> Regards,
>>> Nathan
>>>
>>>> +}
>>>> +
>>>> +do_deploy () {
>>>> +       if [ -e ${D}/download.bit ]; then
>>>> +               install -d ${DEPLOY_DIR_IMAGE}
>>>> +               install -m 0644 ${D}/download.bit
>>>> ${DEPLOY_DIR_IMAGE}/${BITSTREAM}
>>>> +               ln -sf ${BITSTREAM} ${DEPLOY_DIR_IMAGE}/download.bit
>>>> +               # for u-boot 2016.3 with spl load bitstream patch
>>>> +               ln -sf ${BITSTREAM} ${DEPLOY_DIR_IMAGE}/bitstream
>>>> +       fi
>>>> +}
>>>> +addtask deploy before do_build after do_install
>>>> --
>>>> 1.9.1
>>>>
>>>> --
>>>> _______________________________________________
>>>> meta-xilinx mailing list
>>>> meta-xilinx at yoctoproject.org
>>>> https://lists.yoctoproject.org/listinfo/meta-xilinx



More information about the meta-xilinx mailing list