# HG changeset patch # User bartv # Date 1109114472 0 # Node ID bfd6d67dba43a9461b4efefaccdda90a5c5e6611 # Parent 96ec7e534d987370f89365f64b9a210ae36bb2ef V2 flash. Miscellaneous fixes to the legacy API and legacy device driver support diff --git a/packages/io/flash/current/ChangeLog b/packages/io/flash/current/ChangeLog --- a/packages/io/flash/current/ChangeLog +++ b/packages/io/flash/current/ChangeLog @@ -1,3 +1,15 @@ +2005-01-28 Nick Garnett + + * src/legacy_dev.c (legacy_flash_init): Assign flash_info.pf from + flash device field. Otherwise drivers try to call an invalid + address. + (legacy_flash_program): The last argument to flash_program_buf() + is not the block size but the programming buffer size. + +2005-01-19 Jonathan Larmour + + * src/legacy_api.c (flash_errmsg): Was missing. Add. + 2004-12-02 Bart Veer * include/flash_dev.h: now provides everything needed by flash diff --git a/packages/io/flash/current/src/legacy_api.c b/packages/io/flash/current/src/legacy_api.c --- a/packages/io/flash/current/src/legacy_api.c +++ b/packages/io/flash/current/src/legacy_api.c @@ -135,3 +135,10 @@ int flash_read(void *flash_base, void *r return cyg_flash_read((cyg_flashaddr_t)flash_base, ram_base, len, (cyg_flashaddr_t *)err_address); } + +char *flash_errmsg(int err) +{ + return (char *)cyg_flash_errmsg(err); +} + +// EOF legacy_api.c diff --git a/packages/io/flash/current/src/legacy_dev.c b/packages/io/flash/current/src/legacy_dev.c --- a/packages/io/flash/current/src/legacy_dev.c +++ b/packages/io/flash/current/src/legacy_dev.c @@ -89,6 +89,8 @@ legacy_flash_init (struct cyg_flash_dev int err; static cyg_flash_block_info_t block_info[1]; + flash_info.pf = dev->pf; + err=flash_hwr_init(); if (!err) { @@ -139,13 +141,12 @@ legacy_flash_program(struct cyg_flash_de { typedef int code_fun(cyg_flashaddr_t, const void *, int, unsigned long, int); code_fun *_flash_program_buf; - size_t block_size = dev->block_info[0].block_size; size_t block_mask = ~(block_mask -1); int stat; _flash_program_buf = (code_fun*) cyg_flash_anonymizer(&flash_program_buf); - stat = (*_flash_program_buf)(base, data, len, block_mask ,block_size); + stat = (*_flash_program_buf)(base, data, len, block_mask, flash_info.buffer_size); return flash_hwr_map_error(stat); }