2007-02-01 Mark Salter * src/strata.h (FLASH_ErrorLocked): Define. * src/strata.c (flash_hwr_map_error): Handle lock error. 2007-01-31 Mark Salter * src/flash_erase_block.c: Support multiple block sizes (P30). * src/flash_lock_block.c: Ditto. * src/flash_unlock_block.c: Ditto. * src/strata.c: Ditto. * src/strata.h: Ditto. 2004-09-02 Mark Salter * src/flash_query.c (CYGHWR_FLASH_READ_QUERY): Add platform hook to handle access to query info. * src/flash_program_buf.c (CYGHWR_FLASH_WRITE_BUF): Add platform hook handle access to write buffer. 2004-08-21 Andrew Lunn * src/flash_unlock_block.c (flash_unlock_block): * cdl/flash_strata.cdl: CDL to control the maximum number of blocks the driver supports. Some of the newer strata device has more than the default maximum of 128. Problem pointed out by Kevin Zhang. 2005-01-26 Scott Wilkinson * src/strata.h: * src/strata.c: Flash from STMicro is compatible with the Intel strata chips, so detect them as well. Check for manuf id 0x20. 2003-10-29 Jonathan Larmour * src/flash_unlock_block.c (flash_unlock_block): test lock bit explicitly - newer flash parts use the reserved bits in the returned data. 2003-09-11 Jani Monoses * src/flash_erase_block.c (flash_erase_block): * src/flash_program_buf.c (flash_program_buf): Fix bootblock handling in erase. Fix erase and word-program for Synchronous Strata and later chips where block address and word address are required in the first cycle of the operation while for earlier parts any address was good. 2003-09-10 Jani Monoses * cdl/flash_strata.cdl: * src/flash_lock_block.c (flash_lock_block): * src/flash_unlock_block.c (flash_unlock_block): * src/flash_erase_block.c (flash_erase_block): * src/flash_query.c (flash_query): * src/flash_program_buf.c (flash_program_buf): Use .2ram sections for putting flash functions to RAM instead of the old method. 2003-05-02 Jani Monoses * src/strata.c: Switch to using generic flash_query_dev. The previous cache related changes broke flash_query for Strata because in the query case the generic flash driver was not called to handle the caches but the internal handling was removed nevertheless. 2003-04-04 Jani Monoses * src/strata.h: Use generic flash_dev.h for providing the FLASHWORD macro for different widths and device numbers.No reason to duplicate that here.This implicitely fixes the case when CYGNUM_FLASH_WIDTH is 16 and CYGNUM_FLASH_DEVICES is 4. 2003-04-03 Jani Monoses * src/flash_lock_block.c (flash_lock_block): * src/flash_unlock_block.c (flash_unlock_block): * src/flash_erase_block.c (flash_erase_block): * src/flash_query.c (flash_query): * src/flash_program_buf.c (flash_program_buf): Cache enabling and disabling are already handled by generic flash 2002-08-12 Mark Salter * src/flash_unlock_block.c: Add synchronous strataflash support. * src/strata.h: Add comments regarding synchronous strataflash. 2002-04-30 Christoph Csebits * src/flash_unlock_block.c: Getting the current block lock state for flashes in 8-Bit mode is now working correctly. 2002-04-16 Jonathan Larmour * cdl/flash_strata.cdl: Invoke $(CC) with $(CFLAGS) to ensure the correct flags are passed. 2002-04-12 Gary Thomas * src/strata.c: Clean up warnings. 2002-01-22 Mark Salter * cdl/flash_strata.cdl: Add ".text" before "_end" markers in .s files. 2001-10-23 Hugo Tyson * cdl/flash_strata.cdl: Provide an option so that RedBoot .ecm files can turn off the functionality of copying flash driver code to separate RAM for execution; it's not needed for RAM and ROMRAM startup, and for some platforms it is required to *not* copy thus. 2001-08-25 Gary Thomas * src/flash_program_buf.c (flash_program_buf): Allow configuration specific code sequence for actual writing of data. Define by the macro CYGHWR_FLASH_WRITE_ELEM. Note: this is required on some hardware, like the Intel SA185, which handles flash writes in strange/obscure fashion. 2001-07-17 Jeroen Dobbelaere * src/flash_query.c (flash_query): Query needs to be done on even addresses for byte-enabled strata flash * src/flash_program_buf.c (flash_program_buf): Fix of conversion of write buffer length (in bytes) to the length in 'flash_t' words. 2001-06-22 Hugo Tyson * src/strata.c (flash_hwr_init): Need to refer to the query code as extern char flash_query[], flash_query_end[]; (with the []) or MIPS code gen assumes these are short offsets and linking fails. The generic flash code in io/flash already uses this idiom. 2001-06-22 Hugo Tyson * src/strata.c (flash_hwr_init): Warnings reduced. No arithmetic on void *. 2001-06-21 Hugo Tyson * src/flash_program_buf.c (flash_program_buf): The buffered write code didn't jump out if there was a write error, nor verify the data by reading back. This isn't consistent with the slow case, and made it take an age if the device is unhappy, and then report a bizarre error code. Both issues fixed. 2001-06-21 Hugo Tyson * src/strata.c (flash_hwr_init): If shrinking to fit, must also adjust the flash_info.blocks field, else unlock crashes trying to get status of all those extra blocks that we cannot actually see. 2001-06-11 Gary Thomas * src/strata.c: Remove dependency on printf() via user functions. 2001-06-07 Hugo Tyson * src/strata.c (flash_hwr_init): If we find a flash device that is larger than is possible given the memory map, shrink to fit. We know about the memory map from CYGNUM_FLASH_BASE_MASK (if defined); it tells us the stride from one device to another. This is to cope with installing, say, a 28F640 in a slot designed for a 28F320 because of supply issues - it all works fine so long as A22 is grounded. 2001-05-23 Jesper Skov * cdl/flash_strata.cdl: Needs IO driver to copy functions to RAM. 2001-04-26 Gary Thomas * src/strata.c: Be more careful when enable/flush/disable caches. * src/flash_erase_block.c (flash_erase_block): Boot block devices may require additional erase commands to erase entire 'block'. 2001-03-21 Hugo Tyson * src/strata.h (FLASH_Write_Buffer): Do not define this if CYGOPT_FLASH_IS_NOT_ADVANCED is defined; Advanced (xxxJ3) flash is usual these days. Also added documentation of the options that can be used to control this module. * src/flash_program_buf.c (flash_program_buf): Reduce warnings about unused variables if no FLASH_Write_Buffer command available. 2001-03-21 Gary Thomas * src/flash_program_buf.c (flash_program_buf): Buffered write code fixups, only on platforms with it defined. 2001-03-17 Gary Thomas * src/strata.h: * src/strata.c: Support buffered writes. * src/flash_program_buf.c: Use buffered writes if possible. This mode allows the chip to do parallelized writes which is much faster. It does require additional information, now provided by upper layer. 2001-02-15 Hugo Tyson * src/flash_query.c (flash_query): Depending on whether CYGOPT_FLASH_IS_BOOTBLOCK (just a #define from the instantiator, not really a cdl_option) is set, do the full Read_Query or just acquire two codes for manufacturer and device type using Read_ID. * src/strata.c (flash_hwr_init): Again depending on whether CYGOPT_FLASH_IS_BOOTBLOCK, decode the device type into a size and so on, or use the full Read_Query data as before. * src/strata.h (FLASH_Read_ID): Undefine those commands which we do not use. Conditionally define those that we use depending on CYGOPT_FLASH_IS_BOOTBLOCK. Thus we should be able to deal with StrataFlash and BootBlock flash with the same code. * cdl/flash_strata.cdl: Do not implement (in the CDL sense) CYGHWR_IO_FLASH_BLOCK_LOCKING leave it up to the instantiating package instead. Also move the build of the two objects that do locking and unlocking into a compenent which is only active if CYGHWR_IO_FLASH_BLOCK_LOCKING is indeed (requested to be) implemented somewhere. 2001-02-14 Hugo Tyson * devs/flash/intel/strata/...: New package, generic strataFlash driver based on several others; a portion of its history follows... flash.h -> strata.h flash.c -> strata.c 2001-02-06 Hugo Tyson * src/flash.h: Much more generic again. Not yet separated into generic component and invocation header, but the structure is there. Also included support for a mapping from the physical flash address we're thinking of to the virtual address we use to access it. More documentation. Generalization to 8,16,32 and 64-bit access, made up from 8,16 or 32-bit devices. Command and status macros modified to accommodate these options. * src/flash_lock_block.c (flash_lock_block): * src/flash_erase_block.c (flash_erase_block): * src/flash_query.c (flash_query): * src/flash_program_buf.c (flash_program_buf): All now acquire when possible the ROM address from the block address, and use the physical to virtual macro as needed. * src/flash_unlock_block.c (flash_unlock_block): The same changes, but a little more complex because of the need to clear-all then re-lock some semantics. Shadow pointer to virtual address is used each time round the loop. * cdl/flash_strata.cdl: Add explicit dependencies on flash.h, for there were none - or they were ignored - for the specially built compilation units that get copied to RAM for execution. 2001-02-01 Hugo Tyson * all: copied from the assabet flash driver. 2000-12-05 Jonathan Larmour * src/assabet_flash.c (flash_code_overlaps): Define stext/etext as array types so no assumptions can be made by the compiler about location. 2000-10-24 Gary Thomas * src/flash_unlock_block.c (flash_unlock_block): * src/flash_lock_block.c (flash_lock_block): * src/flash_program_buf.c (flash_program_buf): * src/flash_erase_block.c (flash_erase_block): Support up to 32M FLASH. 2000-09-10 Gary Thomas * src/flash_unlock_block.c: * src/flash_lock_block.c: New file(s). * src/flash.h: * cdl/flash_assabet.cdl: Add region locking functions. 2000-08-29 Gary Thomas * src/assabet_flash.c: Improve error decoding. 2000-08-24 Gary Thomas * src/flash_query.c: * src/flash_erase_block.c: * src/flash.h: FLASH support for Intel SA1110 Assabet. //=========================================================================== //####ECOSGPLCOPYRIGHTBEGIN#### // ------------------------------------------- // This file is part of eCos, the Embedded Configurable Operating System. // Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. // // eCos is free software; you can redistribute it and/or modify it under // the terms of the GNU General Public License as published by the Free // Software Foundation; either version 2 or (at your option) any later version. // // eCos is distributed in the hope that it will be useful, but WITHOUT ANY // WARRANTY; without even the implied warranty of MERCHANTABILITY or // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License // for more details. // // You should have received a copy of the GNU General Public License along // with eCos; if not, write to the Free Software Foundation, Inc., // 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. // // As a special exception, if other files instantiate templates or use macros // or inline functions from this file, or you compile this file and link it // with other works to produce a work based on this file, this file does not // by itself cause the resulting work to be covered by the GNU General Public // License. However the source code for this file must still be made available // in accordance with section (3) of the GNU General Public License. // // This exception does not invalidate any other reasons why a work based on // this file might be covered by the GNU General Public License. // // Alternative licenses for eCos may be arranged by contacting Red Hat, Inc. // at http://sources.redhat.com/ecos/ecos-license/ // ------------------------------------------- //####ECOSGPLCOPYRIGHTEND#### //===========================================================================