All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marek Vasut <marex@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] soc: zynqmp: Update required API version to 1.0
Date: Tue, 22 May 2018 13:27:51 +0200	[thread overview]
Message-ID: <a3bd31ca-697c-5560-d98a-dbdbcb67f6f3@denx.de> (raw)
In-Reply-To: <DM5PR02MB386371E2454AE772C2B4AC9AB9950@DM5PR02MB3863.namprd02.prod.outlook.com>

On 05/21/2018 11:26 PM, Manjukumar Harthikote Matha wrote:
[...]
>>>> Ah, I see, so there are three versions of pmu-firmware in a single
>>>> release, but the one which is actually needed for the system to boot
>>>> correctly is not in the meta-xilinx repo as one would expect, but in
>>>> some other repo. That ... doesn't make any sense, but so be it.
>>>>
>>>
>>> If you are planning to use rel-v2018.x Xilinx tools release branches,
>>> stick with all the layers provided by Xilinx. The same is documented
>>> in wiki as well
>>>
>>>
>> http://www.wiki.xilinx.com/How%20to%20build%20images%20through%20yoct
>> o
>>>
>>> If you want to use Yocto open-source release stick with branches likes rocko,
>> morty etc. These branches will not have dependencies on Xilinx tools.
>>
>> I think you missed my point, there are three different PMUFW recipes in those
>> metalayers. The only one that matters is not in the BSP layer, which makes no
>> sense to me, but so be it.
> 
> AFAIK, there are two. One in meta-xilinx-bsp and other in meta-xilinx-tools. You can use PREFERRED_PROVIDER to switch between the two in your distro.
> 
> I still don’t think you get the difference between Xilinx tools releases from Github and upstream Yocto project repository.
> See http://git.yoctoproject.org/cgit.cgi/meta-xilinx/

Do I understand it correctly that you have two repositories with the
same name, but with different content ? Talk about confusing. Assume I
use the meta-xilinx stuff from github/xilinx.

> Also note that none of the Xilinx tool release branches are present at http://git.yoctoproject.org/cgit.cgi/meta-xilinx/
> 
> The thing that matters to you is pmu-firmware recipe in meta-xilinx-bsp. The recipe is present and based on 2017.3 in master and Rocko. Stick with Rocko branch till the next release,Sumo branch is cut, which will get 2018.1 version.

Ah, I see.

So I should use this pmu-firmware from meta-xilinx-bsp rel-v2018.1 (the
one on github, not the one on git.yoctoproject) without version which
provides the ABI 1.0 rather than the v2017.03 one from meta-xilinx
rel-v2018.1. And then the new release of meta-xilinx rel-v2018.2 will
get PMUFW v2018.1 .

But why is such vital component as the working PMUFW recipe stashed in
some other repo than meta-xilinx , while meta-xilinx contains a non
working one is not clear to me. Anyway.

It is also becoming less and less clear to me which PMUFW provides which
ABI based on the recipe versions, since they do not reflect the ABI in
any way. And, back to my original question-ish, there is an ABI break
between PMUFW v0.3 and PMUFW v1.0 which may render systems unbootable if
everything is not updated in tandem, right ?

>> btw I presume you do mean OpenEmbedded.
>>
> 
> 
> http://git.yoctoproject.org/cgit.cgi/meta-xilinx/
> 
> 
>>>> So it's this pmu-firmware_git recipe which provides different ABI in
>>>> different versions of meta-xilinx-bsp, yet this is not in any way
>>>> indicated by the package version, right ?
>>>
>>> Didn’t get what you mean here? Package version is set according to the
>>> release under use
>>> https://github.com/Xilinx/meta-xilinx-tools/blob/master/classes/xsctap
>>> p.bbclass#L9
>>
>> Ah, I see, so unlike any other regular recipe which encodes the version in the
>> recipe file name, Xilinx stuff has custom class which is inherited into version-less
>> recipe and sets the version. This is horrid.
>>
> 
> Not true, any recipe which includes version can be in an include file or in a class or in a conf file. 
> There is no strict guidelines on where this version should be set (recipe, include, conf or class).
> Just because you are familiar with one way of doing things, does not mean everything else is horrid.

Well, I think I've seen my share of recipes over the years, both good
and bad. OE gives the user a lot of freedom to do all kinds of hacks,
which still doesn't mean it's a good idea to do them.

Writing your own bbclass as a sort-of header file to be included by a
recipe is one of the bad ideas. With the ABI break at hand, there is
also no migration strategy for this PMUFW recipe, the platform just
breaks during the update and stops booting or misbehaves, which is grueling.

>>> This should indicate, release version with a part of commit id of git being used.
>>
>> Right ...
>>
>>>> Also, do I understand it correctly that Xilinx doesn't support arm64
>>>> with multilib?
>>>>
>>>
>>> Yes Xilinx does not support multilib way of building PMUFW
>>
>> What are you talking about ? PMUFW is microblaze, which doesn't do multilib in
>> the first place.
>>
> 
> Exactly, when you are building for zynqmp (zcu102 board)

No, I am not building for zcu102.

>, it is aarch64. Yocto build system needs to understand mixed architectures when building in the same project, hence the use of multilib to be build PMUFW. 

But you never build the microblaze toolchain, so how do you use multilib
here at all ? From what I see, the pmu-firmware is compiled with
toolchain referenced from outside of the OE build, in fact from vivado,
see my comment below from using external tools like that.

>>> . The official support is in meta-xilinx-tools layer with a dependency
>>> on xsct tool
>>
>> Which btw is violating OE assumption that no host tools are pulled into the build,
>> so this whole thing is broken.
>>
> 
> It is part of Xilinx tool release, if you don’t need it, don’t use it. 

The meta-xilinx-tools bbclasses are calling those tools, thus violating
that assumption, so if I want to get a working result, I effectively cannot.

-- 
Best regards,
Marek Vasut

  reply	other threads:[~2018-05-22 11:27 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-14 13:39 [U-Boot] [PATCH] soc: zynqmp: Update required API version to 1.0 Michal Simek
2018-05-14 20:55 ` Marek Vasut
2018-05-17 13:59   ` Michal Simek
2018-05-17 14:02     ` Marek Vasut
2018-05-21  4:53   ` Rajan Vaja
2018-05-21  9:45     ` Marek Vasut
2018-05-21 16:27       ` Manjukumar Harthikote Matha
2018-05-21 16:47         ` Marek Vasut
2018-05-21 21:26           ` Manjukumar Harthikote Matha
2018-05-22 11:27             ` Marek Vasut [this message]
2018-05-22 16:44               ` Manjukumar Harthikote Matha
2018-05-23  9:49                 ` Marek Vasut
2018-05-23 17:31                   ` Manjukumar Harthikote Matha

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=a3bd31ca-697c-5560-d98a-dbdbcb67f6f3@denx.de \
    --to=marex@denx.de \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.