drivers/spi/spi_flash: add flash region protection to controller
Provide a spi controller specific protection callback to take advantage of special spi flash controllers that have internal protection registers built into the implementation. It's an optional callback for spi controllers. BUG=b:69614064 Change-Id: Ie50a6ce3bbda32620a25dd26fda1af944940bf28 Signed-off-by: Aaron Durbn <adurbin@chromium.org> Reviewed-on: https://review.coreboot.org/22879 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Furquan Shaikh <furquan@google.com>
This commit is contained in:
@ -459,3 +459,29 @@ void lb_spi_flash(struct lb_header *header)
|
||||
flash->erase_cmd = CMD_BLOCK_ERASE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int spi_flash_ctrlr_protect_region(const struct spi_flash *flash,
|
||||
const struct region *region)
|
||||
{
|
||||
const struct spi_ctrlr *ctrlr;
|
||||
struct region flash_region = { 0 };
|
||||
|
||||
if (!flash)
|
||||
return -1;
|
||||
|
||||
flash_region.size = flash->size;
|
||||
|
||||
if (!region_is_subregion(&flash_region, region))
|
||||
return -1;
|
||||
|
||||
ctrlr = flash->spi.ctrlr;
|
||||
|
||||
if (!ctrlr)
|
||||
return -1;
|
||||
|
||||
if (ctrlr->flash_protect)
|
||||
return ctrlr->flash_protect(flash, region);
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
Reference in New Issue
Block a user