forked from Imagelibrary/rtems
The xnandpsu driver includes functionality to map back and forth between the flash-based BBT and the memory-based BBT with the values in each being a bitwise inversion of each other. This resolves several bugs in this process and simplifies the inversion from operating on the block representation to operating on the entire BBT entry (4 blocks, 2 bits per block, one byte total). Bugs resolved in XNandPsu_ConvertBbt(): * The calculation of memory BBT entry offset was off by a factor of 4 * The entry offset into the flash BBT has been removed since each flash BBT directly describes the flash space it is contained within and has no reference to other devices in the chip Bugs resolved in XNandPsu_WriteBbt(): * The BBT length calculated was reduced to NumTargetBlocks from NumBlocks since only the relevant portion of the in-memory BBT should be written to the flash-based BBT space * An offset was applied to values retrieved from the in-memory BBT so that only the relevant portion was converted and written to the flash-based BBT