On Sun, 09 Aug 2009 18:55:38 +0200, Thomas Jourdan tjourdan@neuf.fr wrote:
I was playing with CBFS and I found an strange behavior. There are actually 4 types of files in a CBFS rom : stage, payload, option rom and NULL. The latest is used when we don't care of the component type.
No, the latest is used for free memory regions. You can define 256 different types, of which 4 are predefined, and there is some rough partitioning of the file type space - that you can honor, or not.
I guess if we want to embed a logo, payload specific data or other stuffs, we must use this NULL type. The problem is that the free space
As said, NULL is not suitable for that. So your conclusions are wrong.
What do you think ?
Define whatever types you want, expect problems as the numbers might be reused at some point. CBFS isn't finished yet, and it isn't even clean enough at this point to define stable contracts about it (eg. file types beyond what we already have)
Bonus question : shouldn't the cbfs code (to parse, find a file...) be added to the libpayload ?
Yes, at some point. Properly licensed, and properly designed, once CBFS itself is stable enough. There are only 24 hours in a day (that also applies to CBFS development).
CBFS is already an improvement over the old layout in its current state. You're moving beyond what CBFS can provide right now if you put any data into it that isn't supported by the coreboot build system. Future proof designs and implementations welcome.
Patrick