2001-08-25  Gary Thomas  <gthomas@redhat.com>

	* 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  <jeroen.dobbelaere@acunia.com>

	* 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  <hmt@redhat.com>

	* 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  <hmt@redhat.com>

	* src/strata.c (flash_hwr_init): Warnings reduced.  No arithmetic
	on void *.

2001-06-21  Hugo Tyson  <hmt@redhat.com>

	* 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  <hmt@redhat.com>

	* 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  <gthomas@redhat.com>

	* src/strata.c: Remove dependency on printf() via user functions.

2001-06-07  Hugo Tyson  <hmt@redhat.com>

	* 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  <jskov@redhat.com>

	* cdl/flash_strata.cdl: Needs IO driver to copy functions to RAM.

2001-04-26  Gary Thomas  <gthomas@redhat.com>

	* 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  <hmt@redhat.com>

	* 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  <gthomas@redhat.com>

	* src/flash_program_buf.c (flash_program_buf): Buffered write code
	fixups, only on platforms with it defined.

2001-03-17  Gary Thomas  <gthomas@redhat.com>

	* 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  <hmt@redhat.com>

	* 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  <hmt@redhat.com>

	* devs/flash/intel/strata/...: New package, generic strataFlash
	driver based on several others; a portion of its history
	follows...

	flash.h -> strata.h
	flash<platform>.c -> strata.c

2001-02-06  Hugo Tyson  <hmt@redhat.com>

	* 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  <hmt@redhat.com>

	* all: copied from the assabet flash driver.

2000-12-05  Jonathan Larmour  <jlarmour@redhat.com>

	* 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  <gthomas@redhat.com>

	* 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  <gthomas@redhat.com>

	* 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  <gthomas@redhat.com>

	* src/assabet_flash.c: Improve error decoding.

2000-08-24  Gary Thomas  <gthomas@redhat.com>

	* src/flash_query.c: 
	* src/flash_erase_block.c: 
	* src/flash.h: FLASH support for Intel SA1110 Assabet.

//===========================================================================
//####COPYRIGHTBEGIN####
//                                                                          
// -------------------------------------------                              
// The contents of this file are subject to the Red Hat eCos Public License 
// Version 1.1 (the "License"); you may not use this file except in         
// compliance with the License.  You may obtain a copy of the License at    
// http://www.redhat.com/                                                   
//                                                                          
// Software distributed under the License is distributed on an "AS IS"      
// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
// License for the specific language governing rights and limitations under 
// the License.                                                             
//                                                                          
// The Original Code is eCos - Embedded Configurable Operating System,      
// released September 30, 1998.                                             
//                                                                          
// The Initial Developer of the Original Code is Red Hat.                   
// Portions created by Red Hat are                                          
// Copyright (C) 1998, 1999, 2000, 2001 Red Hat, Inc.
// All Rights Reserved.                                                     
// -------------------------------------------                              
//                                                                          
//####COPYRIGHTEND####
//===========================================================================
