2002-04-30  Christoph Csebits  <christoph.csebits@frequentis.com>

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

	* cdl/flash_strata.cdl: Invoke $(CC) with $(CFLAGS) to ensure the
        correct flags are passed.

2002-04-12  Gary Thomas  <gthomas@redhat.com>

	* src/strata.c: Clean up warnings.

2002-01-22  Mark Salter  <msalter@redhat.com>

	* cdl/flash_strata.cdl: Add ".text" before "_end" markers in .s files.

2001-10-23  Hugo Tyson  <hmt@redhat.com>

	* 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  <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.

//===========================================================================
//####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####
//===========================================================================
