# HG changeset patch # User bartv # Date 1101156054 0 # Node ID 21fc12d67292eb0112ef4e216e13a1bf1b6499c4 # Parent 6a1e54eaaac891a62d05f91e5df35ce4e8228ec2 Update following changes to the flash device driver interface diff --git a/packages/devs/flash/arm/aim711/current/ChangeLog b/packages/devs/flash/arm/aim711/current/ChangeLog --- a/packages/devs/flash/arm/aim711/current/ChangeLog +++ b/packages/devs/flash/arm/aim711/current/ChangeLog @@ -1,3 +1,8 @@ +2004-11-22 Bart Veer + + * src/arm_aim711_flash.c: use updated CYG_FLASH_DRIVER() macro for + completely static initialization. + 2004-07-16 Andrew Lunn * src/arm_aim711_flash.c: Make us of the new sst driver which uses diff --git a/packages/devs/flash/arm/aim711/current/src/arm_aim711_flash.c b/packages/devs/flash/arm/aim711/current/src/arm_aim711_flash.c --- a/packages/devs/flash/arm/aim711/current/src/arm_aim711_flash.c +++ b/packages/devs/flash/arm/aim711/current/src/arm_aim711_flash.c @@ -71,11 +71,18 @@ #include "cyg/io/flash_sst_39vfxxx.inl" +static const cyg_flash_block_info_t cyg_flash_sst_block_info[1] = { + { FLASH_BLOCK_SIZE, FLASH_NUM_REGIONS * CYGNUM_FLASH_SERIES } +}; CYG_FLASH_DRIVER(cyg_flash_sst_flashdev, &cyg_sst_funs, - NULL, - CYGNUM_FLASH_BASE, - sizeof(struct cyg_flash_sst_priv)); + 0, // Flags + CYGNUM_FLASH_BASE, // Start + CYGNUM_FLASH_BASE + (FLASH_BLOCK_SIZE * FLASH_NUM_REGIONS * CYGNUM_FLASH_SERIES) - 1, // End + 1, // Number of block infos + cyg_flash_sst_block_info, + NULL // priv + ); // ------------------------------------------------------------------------ // EOF arm_aim711_flash.c diff --git a/packages/devs/flash/arm/e7t/current/ChangeLog b/packages/devs/flash/arm/e7t/current/ChangeLog --- a/packages/devs/flash/arm/e7t/current/ChangeLog +++ b/packages/devs/flash/arm/e7t/current/ChangeLog @@ -1,3 +1,8 @@ +2004-11-22 Bart Veer + + * src/arm_e7t_flash.c: use updated CYG_FLASH_DRIVER() macro for + completely static initialization. + 2004-08-03 Andrew Lunn * cdl/flash_e7t.cdl: diff --git a/packages/devs/flash/arm/e7t/current/src/arm_e7t_flash.c b/packages/devs/flash/arm/e7t/current/src/arm_e7t_flash.c --- a/packages/devs/flash/arm/e7t/current/src/arm_e7t_flash.c +++ b/packages/devs/flash/arm/e7t/current/src/arm_e7t_flash.c @@ -71,11 +71,18 @@ #ifdef CYGINT_DEVS_FLASH_SST_39VFXXX_REQUIRED #include "cyg/io/flash_sst_39vfxxx.inl" +static const cyg_flash_block_info_t cyg_flash_sst_block_info[1] = { + { FLASH_BLOCK_SIZE, FLASH_NUM_REGIONS * CYGNUM_FLASH_SERIES } +}; CYG_FLASH_DRIVER(cyg_flash_sst_flashdev, &cyg_sst_funs, - NULL, - CYGNUM_FLASH_BASE, - sizeof(struct cyg_flash_sst_priv)); + 0, // Flags + CYGNUM_FLASH_BASE, // Start + CYGNUM_FLASH_BASE + (FLASH_BLOCK_SIZE * FLASH_NUM_REGIONS * CYGNUM_FLASH_SERIES) - 1, // End + 1, // Number of block infos + cyg_flash_sst_block_info, + NULL // priv + ); #endif #ifdef CYGINT_DEVS_FLASH_AMD_AM29XXXXX_REQUIRED diff --git a/packages/devs/flash/sst/39vfxxx/current/ChangeLog b/packages/devs/flash/sst/39vfxxx/current/ChangeLog --- a/packages/devs/flash/sst/39vfxxx/current/ChangeLog +++ b/packages/devs/flash/sst/39vfxxx/current/ChangeLog @@ -1,5 +1,7 @@ 2004-11-22 Bart Veer - + + * include/flash_sst_39vfxxx.inl: assume static initialization and + adjust const's in various parameters * include/flash_sst_39vfxxx.inl: rename cyg_block_info to cyg_flash_block_info diff --git a/packages/devs/flash/sst/39vfxxx/current/include/flash_sst_39vfxxx.inl b/packages/devs/flash/sst/39vfxxx/current/include/flash_sst_39vfxxx.inl --- a/packages/devs/flash/sst/39vfxxx/current/include/flash_sst_39vfxxx.inl +++ b/packages/devs/flash/sst/39vfxxx/current/include/flash_sst_39vfxxx.inl @@ -134,20 +134,14 @@ #include //---------------------------------------------------------------------------- -// Private structure used by the device -struct cyg_flash_sst_priv -{ - cyg_flash_block_info_t block_info[1]; -}; -//---------------------------------------------------------------------------- // Functions that put the flash device into non-read mode must reside // in RAM. -static size_t sst_query(struct cyg_flash_dev *dev, void* data, const size_t len) +static size_t sst_query(struct cyg_flash_dev *dev, void* data, size_t len) __attribute__ ((section (".2ram.flash_query"))); static int sst_erase_block(struct cyg_flash_dev *dev, cyg_flashaddr_t block_base) __attribute__ ((section (".2ram.flash_erase_block"))); static int sst_program(struct cyg_flash_dev *dev, cyg_flashaddr_t base, - const void* data, const size_t length) + const void* data, size_t length) __attribute__ ((section (".2ram.flash_program_buf"))); @@ -156,7 +150,6 @@ static int sst_program(struct cyg_flash_ static int sst_init(struct cyg_flash_dev *dev) { - struct cyg_flash_sst_priv *priv = dev->priv; flash_data_t id[2]; dev->funs->flash_query(dev,id,sizeof(id)); @@ -166,14 +159,6 @@ sst_init(struct cyg_flash_dev *dev) if (id[0] != CYGNUM_FLASH_ID_MANUFACTURER || id[1] != CYGNUM_FLASH_ID_DEVICE) return CYG_FLASH_ERR_DRV_WRONG_PART; - - // Hard wired for now - dev->end = dev->start + - (FLASH_NUM_REGIONS * FLASH_BLOCK_SIZE * CYGNUM_FLASH_SERIES) -1; - dev->num_block_infos = 1; - priv->block_info[0].blocks = FLASH_NUM_REGIONS * CYGNUM_FLASH_SERIES; - priv->block_info[0].block_size = FLASH_BLOCK_SIZE; - dev->block_info = priv->block_info; return CYG_FLASH_ERR_OK; } @@ -194,7 +179,7 @@ sst_hwr_map_error(struct cyg_flash_dev * // will be of the same type. static size_t -sst_query(struct cyg_flash_dev *dev, void* data, const size_t len) +sst_query(struct cyg_flash_dev *dev, void* data, size_t len) { volatile flash_data_t *ROM; flash_data_t* id = (flash_data_t*) data; @@ -283,7 +268,7 @@ sst_erase_block(struct cyg_flash_dev *de // Program Buffer static int sst_program(struct cyg_flash_dev *dev, cyg_flashaddr_t base, - const void* data, const size_t length) + const void* data, size_t length) { volatile flash_data_t* ROM; volatile flash_data_t* addr_ptr = (volatile flash_data_t*) base; @@ -341,14 +326,28 @@ sst_program(struct cyg_flash_dev *dev, c return res; } -static CYG_FLASH_FUNS(cyg_sst_funs, - sst_init, - sst_query, - sst_erase_block, - sst_program, - NULL, // read - sst_hwr_map_error, - NULL, // block_lock - NULL); // block_unlock +#ifdef CYGHWR_IO_FLASH_BLOCK_LOCKING +static int +sst_block_lock(struct cyg_flash_dev *dev, const cyg_flashaddr_t block_base) +{ + return CYG_DATAFLASH_ERR_INVALID; +} + +static int +sst_block_unlock(struct cyg_flash_dev *dev, const cyg_flashaddr_t block_base) +{ + return CYG_DATAFLASH_ERR_INVALID; +} +#endif + +static const CYG_FLASH_FUNS(cyg_sst_funs, + sst_init, + sst_query, + sst_erase_block, + sst_program, + NULL, // read + sst_hwr_map_error, + sst_block_lock, + sst_block_unlock); #endif // CYGONCE_DEVS_FLASH_SST_39VFXXX_INL