So...I'm trying to get u-boot-tools to work on the Parallella's Linaro distribution, mainly for the purpose of reading (possibly modifying) the bootloader environment. Near as I can tell from the parallella U-boot source code, the bootloader environment should live at offset 0x4e0000 in both /dev/mtd0 and /dev/mtd1 (redundant config), and be sized at 128K (so basically the end of each flash partition). Hexdumping these areas confirms that this is correct (at least in terms of the offset).
However, the CRC at 0x4e0000 looks wrong. Even a brute-force trial of every possible environment size (from 5 bytes to 128K) finds no environment size that would lead to the CRC being correct. So fw_printenv quite predictably complains about a "Bad CRC" no matter what /etc/fw_env.config I set up.
Is this normal? Am I missing something about the u-boot environment layout? Or do Parallella boards actually use some nonstandard checksum generation on the bootloader environment?
I'll be able to investigate deeper once I receive my LVTTL serial cable, but I was hoping someone might have a quick answer.