Hm. I have some minor concerns about this:
* The classical length field is only available in multiples of 16 (I realize your patches change that to some degree, but I'd hate to make the guarantee that the image payload is the last thing in the image -- it loses flexibility for the future.) The end of the image isn't available in all cases, so this would require padding it out to a 16-byte boundary before appending the CRC32. An mmap is guaranteed to be zero-padded out to the next page boundary, so explicitly rounding sz up (instead of when calculating sys_size) should do the job.