On Mon, Nov 16, 2015 at 12:54 PM, Patrick Georgi email@example.com wrote:
2015-11-16 19:32 GMT+01:00 Ben Gardner firstname.lastname@example.org:
What is the purpose behind continuing if a bad entry is encountered? It appears that a 'bad' entry only occurs at the end of the CBFS.
With a properly chained CBFS, there are no such entries (except one at the end, maybe), and large empty regions are simply skipped because there's an empty file entry.
Since we're in firmware with few recovery options, we don't want the computer to die with a black screen if all that happened may be some minor corruption in a data structure, and so we do a best-effort recovery by trying to find a new entry point into the chain. The theory being that it can't get worse.
That makes sense.
I must have had some corruption in the ROM image. I rebuilt with CONFIG_CBFS_SIZE=0x00EC0000 again and I'm not seeing the long pause. I think I was playing with the 'fast boot' option at the time (now disabled). I'll retry with that enabled.