View Single Post
Old 03-09-2012, 09:16 AM   #7
geekmaster
Carpe diem, c'est la vie.
geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.
 
geekmaster's Avatar
 
Posts: 6,433
Karma: 10773668
Join Date: Nov 2011
Location: Multiverse 6627A
Device: K1 to PW3
Quote:
Originally Posted by knc1 View Post
The u-boot bootable kernels are one of several formats that the kernel build system can turn out plus a "u-boot header".
The u-boot flash header is built from the "flash_header.S" source module, and it is a USB Downloader plug-in flash header that includes code to initialize DRAM and conditionally find and excecute the payload that was relocated to DRAM, as I recall. The procedure is documented in the i.MX50 Reference Manual.

The Linux Kernel (and other) flash partitions each contain a flash header that is very different from the "plug-in" flash header, and these flash headers serve a different purpose. They include the length of the kernel, and although I have not studied their layout, it appears that they may also contain a CRC32 of the partition.

This explains why fastboot CRC partition checks fail after the partition contents have changed. Writing to a mounted mmc filesystem does not update the flash header CRC. Likewise, after a firmware update, the kernel image can also change, invalidating its flash header CRC.

The point of my reply is that there are two different things here that are called "flash headers" in the code and documentation, and they are not the same and must not be confused with each other.
geekmaster is offline   Reply With Quote