drivers: flash: spi_nor: Enable Flash Page Layout and Map
This patch enables the support for FLASH_PAGE_LAYOUT and FLASH_MAP for the generic spin nor flash driver. Signed-off-by: Rajavardhan Gundi <rajavardhan.gundi@intel.com>
This commit is contained in:
parent
f885fd15bf
commit
75f6f1b279
3 changed files with 31 additions and 8 deletions
|
@ -382,16 +382,30 @@ static int spi_nor_init(struct device *dev)
|
|||
return spi_nor_configure(dev);
|
||||
}
|
||||
|
||||
#if defined(CONFIG_FLASH_PAGE_LAYOUT)
|
||||
static const struct flash_pages_layout dev_layout = {
|
||||
.pages_count = KB(CONFIG_FLASH_SIZE) / FLASH_ERASE_BLOCK_SIZE,
|
||||
.pages_size = FLASH_ERASE_BLOCK_SIZE,
|
||||
};
|
||||
|
||||
static void spi_nor_pages_layout(struct device *dev,
|
||||
const struct flash_pages_layout **layout,
|
||||
size_t *layout_size)
|
||||
{
|
||||
*layout = &dev_layout;
|
||||
*layout_size = 1;
|
||||
}
|
||||
#endif /* CONFIG_FLASH_PAGE_LAYOUT */
|
||||
|
||||
static const struct flash_driver_api spi_nor_api = {
|
||||
.read = spi_nor_read,
|
||||
.write = spi_nor_write,
|
||||
.erase = spi_nor_erase,
|
||||
.write_protection = spi_nor_write_protection_set,
|
||||
#if defined(CONFIG_FLASH_PAGE_LAYOUT)
|
||||
.page_layout = (flash_api_pages_layout)
|
||||
flash_page_layout_not_implemented,
|
||||
.page_layout = spi_nor_pages_layout,
|
||||
#endif
|
||||
.write_block_size = 1,
|
||||
.write_block_size = FLASH_WRITE_BLOCK_SIZE,
|
||||
};
|
||||
|
||||
static const struct spi_nor_config flash_id = {
|
||||
|
|
|
@ -38,6 +38,9 @@ static const struct driver_map_entry flash_drivers_map[] = {
|
|||
#ifdef CONFIG_SPI_FLASH_W25QXXDV
|
||||
{SPI_FLASH_0_ID, CONFIG_SPI_FLASH_W25QXXDV_DRV_NAME},
|
||||
#endif
|
||||
#ifdef DT_SPI_NOR_DRV_NAME
|
||||
{SPI_FLASH_0_ID, DT_SPI_NOR_DRV_NAME},
|
||||
#endif
|
||||
};
|
||||
|
||||
extern const struct flash_area *flash_map;
|
||||
|
|
|
@ -8,11 +8,17 @@
|
|||
#include <zephyr.h>
|
||||
#include <flash_map.h>
|
||||
|
||||
#if defined(DT_FLASH_DEV_NAME)
|
||||
#define FA_DEV_ID SOC_FLASH_0_ID
|
||||
#elif defined(CONFIG_SPI_FLASH_W25QXXDV) || defined(DT_SPI_NOR_DRV_NAME)
|
||||
#define FA_DEV_ID SPI_FLASH_0_ID
|
||||
#endif
|
||||
|
||||
const struct flash_area default_flash_map[] = {
|
||||
/* FLASH_AREA_BOOTLOADER */
|
||||
{
|
||||
.fa_id = 0,
|
||||
.fa_device_id = SOC_FLASH_0_ID,
|
||||
.fa_device_id = FA_DEV_ID,
|
||||
.fa_off = FLASH_AREA_MCUBOOT_OFFSET,
|
||||
.fa_size = FLASH_AREA_MCUBOOT_SIZE,
|
||||
},
|
||||
|
@ -20,7 +26,7 @@ const struct flash_area default_flash_map[] = {
|
|||
/* FLASH_AREA_IMAGE_0 */
|
||||
{
|
||||
.fa_id = 1,
|
||||
.fa_device_id = SOC_FLASH_0_ID,
|
||||
.fa_device_id = FA_DEV_ID,
|
||||
.fa_off = FLASH_AREA_IMAGE_0_OFFSET,
|
||||
.fa_size = FLASH_AREA_IMAGE_0_SIZE,
|
||||
},
|
||||
|
@ -28,7 +34,7 @@ const struct flash_area default_flash_map[] = {
|
|||
/* FLASH_AREA_IMAGE_1 */
|
||||
{
|
||||
.fa_id = 2,
|
||||
.fa_device_id = SOC_FLASH_0_ID,
|
||||
.fa_device_id = FA_DEV_ID,
|
||||
.fa_off = FLASH_AREA_IMAGE_1_OFFSET,
|
||||
.fa_size = FLASH_AREA_IMAGE_1_SIZE,
|
||||
},
|
||||
|
@ -36,7 +42,7 @@ const struct flash_area default_flash_map[] = {
|
|||
/* FLASH_AREA_IMAGE_SCRATCH */
|
||||
{
|
||||
.fa_id = 3,
|
||||
.fa_device_id = SOC_FLASH_0_ID,
|
||||
.fa_device_id = FA_DEV_ID,
|
||||
.fa_off = FLASH_AREA_IMAGE_SCRATCH_OFFSET,
|
||||
.fa_size = FLASH_AREA_IMAGE_SCRATCH_SIZE,
|
||||
},
|
||||
|
@ -45,7 +51,7 @@ const struct flash_area default_flash_map[] = {
|
|||
/* FLASH_AREA_STORAGE */
|
||||
{
|
||||
.fa_id = 4,
|
||||
.fa_device_id = SOC_FLASH_0_ID,
|
||||
.fa_device_id = FA_DEV_ID,
|
||||
.fa_off = FLASH_AREA_STORAGE_OFFSET,
|
||||
.fa_size = FLASH_AREA_STORAGE_SIZE,
|
||||
},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue