]> git.baikalelectronics.ru Git - kernel.git/commit
lightnvm: update bad block table format
authorMatias Bjørling <m@bjorling.me>
Mon, 16 Nov 2015 14:34:37 +0000 (15:34 +0100)
committerJens Axboe <axboe@fb.com>
Mon, 16 Nov 2015 22:20:25 +0000 (15:20 -0700)
commitd733ce21b69c9b7040c472ab656b80abff998cbc
tree1aef6904c2c988b7924aa53093836b2979f78f1f
parentc643793cac6fda27114b99b090fda0c0fc0c3d12
lightnvm: update bad block table format

The specification was changed to reflect a multi-value bad block table.
Instead of bit-based bad block table, the bad block table now allows
eight bad block categories. Currently four are defined:

 * Factory bad blocks
 * Grown bad blocks
 * Device-side reserved blocks
 * Host-side reserved blocks

The factory and grown bad blocks are the regular bad blocks. The
reserved blocks are either for internal use or external use. In
particular, the device-side reserved blocks allows the host to
bootstrap from a limited number of flash blocks. Reducing the flash
blocks to scan upon super block initialization.

Support for both get bad block table and set bad block table is added.

Signed-off-by: Matias Bjørling <m@bjorling.me>
Signed-off-by: Jens Axboe <axboe@fb.com>
drivers/lightnvm/gennvm.c
drivers/lightnvm/gennvm.h
drivers/nvme/host/lightnvm.c
include/linux/lightnvm.h