
On Tue, 2015-05-05 at 11:02 +0200, Daniel Kochmański wrote:
Ian Campbell writes:
On Wed, 2015-04-29 at 17:02 +0200, Daniel Kochmański wrote:
This change is necessary to calculate correct checksum for NAND boot. Works both for MMC and NAND. Without it BROM rejects boot image as invalid (bad checksum). (Changes block size from 0x200 to 0x2000).
I'm inferring here that for MMC boot this checksum is ignored by the BROM? If that is the case then I think it should be explicitly mentioned.
It isn't ignored, just larger block is taken into checksum and put in header (which is read by BROM). I think, that in NAND case BROM just ignores length field in header, and calculates checksum for whole page (8KB), while on MMC it respects this field, hence 0x2000 works for both.
OK, please add an explanation along these lines to the commit message.
I've tried to put garbage into checksum field, and MMC doesn't boot if checksum isn't correct.
As well as the checksum this also changes the header's length field, FWIW.
Yes, this is true. Should I change it to set block size conditionally depending on defines - if it's SPL NAND boot, then use 0x2000, in other occasion use 0x200?
I don't think that is necessary assuming...
Whole `u-boot-sunxi-with-spl.bin` size doesn't increase tough (probably because of space between spl and proper u-boot).
... this is actually the case, then you could just say it in the commit log.