Synopsis
int libmem_register_cfi_0001_16_driver(libmem_driver_handle_t *h,
                                       uint8_t *start,
                                       size_t size,
                                       const libmem_geometry_t *geometry,
                                       const libmem_flash_info_t *flash_info);
Description

libmem_register_cfi_0001_16_driver registers a 16-bit CFI command set 1 (Intel Extended) LIBMEM driver.

h — A pointer to the LIBMEM handle structure to use for this LIBMEM driver.

start — The start address of the FLASH memory.

size — The size of the FLASH memory.

geometry — A NULL terminated description of the FLASH's geometry.

flash_info — A pointer to the FLASH information structure or NULL if not required.

libmem_register_cfi_0001_16_driver returns — The LIBMEM status result.

Example:

libmem_driver_handle_t flash1_handle;
uint8_t *flash1_start = (uint8_t *)0x10000000;
libmem_geometry_t flash1_geometry[] =
  {
    { 8,  0x00002000 }, // 8 x 8KB sectors
    { 31, 0x00010000 }, // 31 x 64KB sectors
    { 0, 0 },           // NULL terminator
  };
int res;

res = libmem_register_cfi_0001_16_driver(&flash1_handle,
                                         flash1_start,
                                         libmem_get_geometry_size(flash1_geometry),
                                         flash1_geometry,
                                         0);

if (res == LIBMEM_STATUS_SUCCESS)
  printf("libmem_register_cfi_0001_16_driver : success\n");
else
  printf("libmem_register_cfi_0001_16_driver : failed (%d)\n", res);