comcerto_nand: Fix badblockpos setting.

The mtd layer assumes the entire OOB section (224 bytes in our case)
comes after the entire data section (4096 bytes).  This is not true for
comcerto_nand when in hwecc mode; it puts 1/4 of the OOB after each 1024
bytes, so byte 42 of OOB (ostensibly where the badblock indicator is stored)
is actually located at byte 1024+42 in the block.

The "correct" fix for this is probably to change the comcerto_nand driver to
provide a different CMD_READOOB implementation that does the adjustment, but
this fix works for now.  When reading an entire page+oob at the same time
(the common case), the driver has already special cased it, which is
probably why the problem doesn't show up in Linux.

In the long run it looks like the only sane solution is to re-enable the
BBT, ensure Linux and barebox use the same format for it, and initialize the
BBT in the factory by reading the "real" bad block value (offset 4096 in
each eraseblock) provided by the flash manufacturer.  Once any data is
written to NAND, the flash-manufacturer-provided value is unusable (since
it's in the same location as comcerto_nand puts its ECC, thus ECC bytes
could end up marking a block as "bad").  So the BBT must be initialized
exactly once and never again.

We won't attempt to do that right now.

Change-Id: I353303296c973930d37e97657a83bd261787b136
1 file changed