flash: add block device layer for flash

In order to allow flash storage to be accessible via standard block
device layer, add a block device layer on top of FlashOps. This allows
maintaining compatibility with older uses of flash operations
i.e. flash_read, flash_write and flash_erase as well as use of block
device operations to perform read, write and fill_write. Flash block
device layer provides API to register NOR flash device.

BUG=chrome-os-partner:35861
BRANCH=None
TEST=fastboot is able to write to flash storage using block device layer.

Change-Id: I247759b3d967541445350224b99c185d171804b0
Signed-off-by: Furquan Shaikh <furquan@google.com>
Reviewed-on: https://chromium-review.googlesource.com/250946
Tested-by: Furquan Shaikh <furquan@chromium.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Commit-Queue: Furquan Shaikh <furquan@chromium.org>
Trybot-Ready: Furquan Shaikh <furquan@chromium.org>
5 files changed