-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Firmware handoff library hosting place #20
Comments
U-Boot's implementation (where this idea originally came from) is called bloblist. There are some patches to update it for the smaller headers, but I can't link to them as patchwork is half dead ATM |
OK it came back, so the link is here: https://patchwork.ozlabs.org/user/todo/uboot/?series=365719 I actually did a dual license thinking it might help to avoid too much duplication |
I agree a common library implementation would be good. If we made this a common support library with a BSD-3-Clause license at tf.org, then we could do this without much extra Arm internal or tf.org approval. That license should also be usable by U-Boot. A dual licensed version is possible too but will require additional approval steps. I don't have a patchwork account but this is not really suitable upstream for a project with multiple contributors. Also, we should be careful about IP pollution until the license is agreed. |
I'm not against providing a standard library implementation for those who want to use it, but I think it would important to clarify that this remains a data format specification that any project can implement on their own if they want to. There should be no implied assumption that you need to use the library to remain fully compatible, and we should make sure that all data format definitions and changes that are relevant for interoperability are always clearly explained in the paper spec, not just implemented in the library. (I would be okay with using C headers from the library as source of truth for tag format definitions, though, if that's something that we wanted to do, because I feel the GitHub markdown is quickly getting pretty unwieldy to define all these structures. We just need to make sure we draw a clear line in the source repository between the headers that are officially part of the spec and the code that just provides the example implementation.) For hosting I would also prefer the TF.org Gerrit. GitHub has a terrible review experience. |
Currently the Transfer List codes in TF-A and OP-TEE are very close, so it will not be an issue for me to bring them to a standard library. However, U-Boot is using a way to be compatible with existing bloblist and I guess that needs some efforts to bring it to the ones that now is used in TF-A/OP-TEE. @sjg20 Please correct me if not the case. |
I am fine with the library idea. As far as I am aware U-Boot and OP-TEE should have no problems pulling it and compiling it |
There is a series to update U-Boot, here: U-Boot impl](https://patchwork.ozlabs.org/user/todo/uboot/?series=365719 But it needs another spin now that the header-size changes has landed. I will take a look. It is dual-licensed so could perhaps provide a reference impl, except for the init code which is U-Boot-specific |
You wrote a new library? Do you have a link to it? |
@sjg20 |
Hmmm, but why not base it on the U-Boot code? |
|
Oh I see. Actually this whole spec came from bloblist, just the name changed...but then we changed the headers too! I do wonder whether it would be better to use the U-Boot code? It has tests and would save me the effort of implementing resize, etc. |
I assume the agreement (in one of the Firmware handoff meetings) was to go ahead with a standalone library hosted at https://www.trustedfirmware.org/ along with unit tests and transfer list generation tool. Looking at the past comments, i think it should be clearly mentioned that this is just a reference implementation and there is no implied assumption that you need to use the library to remain fully compatible. This issue can be closed if people agree on above. Also, on the name of library, does libTL make sense ? |
I want to start this thread to discuss about hosting firmware handoff library.
The initial implementation of the library has been posted in TF-A[1] as well as in OP-TEE [2] projects by [email protected] . There is also plan to implement it in U-boot project.
Considering different FW projects are adopting it, should we think of hosting this as library and all core developments can happen directly here instead of modifying various projects. This also helps us in avoiding divergence in future.
[1] https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/22215
[2] OP-TEE/optee_os#6308
The text was updated successfully, but these errors were encountered: