Thank you all for your feedback.
It appears that in theory we are all happy with using bloblist with few implementation details which needs to be taken care of during implementation.
Just to clarify: are you using "bloblist" as a general term for the concept of a simple linked list of tagged data blobs, or to refer specifically to the U-Boot implementation with that name? The existing TF-A implementation (bl_aux_params) is basically identical in concept to the U-Boot bloblist, but not binary compatible. Are we talking about just keeping that, or throwing it away in order to reimplement the exact structure U-Boot is using? (I would prefer to keep the bl_aux_params as they are to avoid disrupting existing uses, of course. Making backwards-incompatible changes to an interface that passes across multiple repos and firmware components is always a big pain.)
My understanding is that it is U-Boot's bloblist, since it is the lynchpin here, but perhaps with some changes to support features it may lack. It has been in U-Boot for a couple of years and is supported in TPL, SPL and U-Boot proper. It has a good set of unit tests and should be easy enough to lift into other projects. Note that it is not really a linked list, though that is one of the extensions proposed.
Of course every project would like not to change...
For TF-A I wonder whether it will/should in fact use devicetree if there is a lot of complex data? TBD, I suppose.
Regards,
Simon