-
Notifications
You must be signed in to change notification settings - Fork 99
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
Support FVs that have the Extended header. #27
Comments
shouldn't this be an issue on fiano? |
I'm fixing it on fiano. Linuxboot extract-fv doesn't support it yet either. I wanna make a note for it. |
It might work with
However, adding More important is probably adding support for creating FV larger than 16 MB, which would require doing it the right way. |
Wait I think the code you're pointing to is about supporting FFSes with the extended length. I'm talking about the FirmwareVolume header that is itself extended and pointed to by the ExtHeaderOffset in the standard header. There is an "extended header" that is pointed to by the FV header. In those cases, in order to know where the files actually start in the FV, you need to parse the extended header to find its length and add to its offset. |
Specifically this line needs to be fixed: linuxboot/bin/extract-firmware Line 153 in f0ea0af
since it's not a given that that's where the data of the FV starts. |
You're right, that code was for dealing with FFS larger than 16 MB. The FV parsing code handles volumes larger than 16 MB since it does a linuxboot/bin/extract-firmware Line 97 in f0ea0af
But it does not include anything ot process the extended headers (since none of the ones I had encountered yet used it). Do you have a ROM image that uses them that we can add as a test case? |
Unfortunately I don't have one that I can share. We might be able to tweak winterfell's dxe to produce one that uses the extended header. |
I've seen firmware volumes with the extended header preset, and it turns out on the roms I'm looking at, the HeaderLength field doesn't include the size of the extended header. To get the correct start of data, the ExtHeaderOffset must be added to the ExtendedHeaderSize if it exists.
The text was updated successfully, but these errors were encountered: