2005-06-27  Stefan Sommerfeld <sommerfeld@mikrom.com>
 
	* src/if_lan91cxx.c: Changed some debug messages to output right
	hex syntax (0x....)
	* src/if_lan91cxx.c: 32bit mode can now be selected is correctly
	working. The old implementation truncated some data.
	* cdl/smsc_lan91cxx_eth_drivers.cdl: Added CDL to control if
	16 or 32 bit access is used.
 
2005-06-12  Yoshinori Sato <ysato@users.sourceforge.jp>

	* src/if_lan91cxx.c: Reset the physical layer before configuring
	it, otherwise it might not work.

2005-01-24  Nick Garnett  <nickg@ecoscentric.com>

	* src/if_lan91cxx.c (lan91cxx_send): Rewrote parts of transmit
	machinery to deal with odd sized message buffers. The TCP/IP stack
	generates these in rare circumstances.

2005-01-21  Nick Garnett  <nickg@ecoscentric.com>

	* src/smsc_lan91cxx.h: 	
	* src/if_lan91cxx.c:
	Rewrote parts of receive machinery to properly deal with 32 bit
	wide access to the device. The original code didn't quite work.
	Switched all calls the HAL_DELAY_US() to CYGACC_CALL_IF_DELAY_US().
	Various small changes to debugging code.

2004-12-01  Nick Garnett  <nickg@ecoscentric.com>

	* src/if_lan91cxx.c (lan91cxx_start): Added option to force speed
	negotiation to 10MHz. Some embedded boards cannot handle 100MHz.
	Generally added some small improvements to debugging messages.

2004-05-22  Andrew Dyer  <adyer@righthandtech.com>

	* src/if_lan91cxx.c: Fail initialization if no device found.

2004-01-07  Uwe Kindler <ukindler@htwm.de>

	* src/if_lan91cxx.c: Fail initialization if no link found.

2004-01-06  Andrew Lunn  <andrew.lunn@ascom.ch>

        * cdl/smsc_lan91cxx_eth_drivers.cdl: 
	* src/if_lan91cxx.c (smsc_lan91cxx_init): Allow the interrupt
	priority to be overrode by the HW specific part of the driver.

2003-12-19  Gary Parnes  <garyp@logicpd.com>

	* src/smsc_lan91cxx.h (get_banksel): Allow this function to be 
	overridden. 

2003-12-10  Uwe Kindler <uwe_kindler@web.de>

	* src/if_lan91cxx.c: Add some missing endian swapping calls.

2003-12-05  Nick Garnett  <nickg@calivar.com>

	* src/if_lan91cxx.c: Added support for revA of the LAN91C111 which
	has a bug. Fixed up debugging messages so that it uses serial
	output in RedBoot.

2003-03-03  Patrick Doyle  <wpd@delcomsys.com>

	* src/smsc_lan91cxx.h
	* src/if_lan91cxx.c (smsc_lan91cxx_init): Reworked to support
	flash, CDL, and eeprom ESA assignment, in that priority.

	* cdl/smsc_lan91cxx_eth_drivers.cdl: Added comment indicating that
	use of the CYGINT_DEVS_ETH_SMSC_LAN91CXX_STATIC_ESA interface is
	deprecated.

2003-02-26  Yoshinori Sato <ysato@users.sourceforge.jp>

	* src/smsc_lan91cxx.h: Support big endian arch.	
	* src/if_lan91cxx.c: Support big endian arch.

2002-08-28  Mark Salter  <msalter@redhat.com>

	* src/smsc_lan91cxx.h: Support 32-bit data reads.
	* src/if_lan91cxx.c: Fix standalone (RedBoot) interrupt handling.
	Support 32-bit data reads.

2002-08-16  Mark Salter  <msalter@redhat.com>

	* src/if_lan91cxx.c: Add support for 91C111. Platform-specific
	include file is now included from within smsc_lan91cxx.h so
	that register access functions may be overridden if necessary.
	* src/smsc_lan91cxx.h: Ditto.

2002-06-14  Gary Thomas  <gary@chez-thomas.org>

	* src/if_lan91cxx.c: 
	Need to include <pkgconf/io_eth_drivers.h> for proper configuration
	of stand-alone (polled) vs. system (interrupt driven) mode.

2001-12-12  Hugo Tyson  <hmt@redhat.com>

	* src/if_lan91cxx.c (lan91cxx_recv): If discarding data due to
	caller out of buffers, we must read-out and discard the packet to
	correctly complete the transaction.  Bogus assert for buffer
	pointer removed; other asserts from not discarding data assuaged
	by first change above.

2001-08-17  Hugo Tyson  <hmt@redhat.com>

	* src/if_lan91cxx.c (lan91cxx_poll): The interrupt acknowledge
	call only occurs in the ISR for this driver because the interrupt
	via GPIO is edge triggered.  We now also acknowledge the interrupt
	within the poll() routine - otherwise RedBoot net use never acks!
	Which doesn't matter if the app uses the net, but in a net-free
	app, it near enough wedges in the resulting interrupt loop.

2001-08-13  Hugo Tyson  <hmt@redhat.com>

	* src/smsc_lan91cxx.h (get_att,put_att): Condition out the inline
	functions if not CYGINT_DEVS_ETH_SMSC_LAN91CXX_PCMCIA_MODE -
	because they don't compile.  Inlines are not like macros.

2001-07-27  Jordi Colomer  <jco@ict.es>

	* cdl/smsc_lan91cxx_eth_drivers.cdl:
	Add interface for whether the hardware is in PCMCIA mode.
	* src/if_lan91cxx.c (smsc_lan91cxx_init):
	Allow for hardware shift addresses
	Initialize appropriately if PCMCIA mode.
	* src/smsc_lan91cxx.h:
	Support address shifts in get_reg,put_Reg, get_data, put_data
	Add new functions get_banksel , put_att and get_att.

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

	* src/if_lan91cxx.c (lan91cxx_stop): Clean up any pending tx both
	to prevent mbuf leak due to noncompletion, and to clear tx_busy so
	that the newly upbrung device can be used.
	(lan91cxx_can_send): Similarly detect a stopped tx engine and
	restart it, and clean up any pending tx, in here.  Otherwise the
	system cannot progress.

2001-03-27  Hugo Tyson  <hmt@redhat.com>
2001-03-27  Robin Farine  <acnrf@dial.eunet.ch>
	
	* src/if_lan91cxx.c (lan91cxx_start): Strip the CRC from
	incoming frames.

2001-01-26  Hugo Tyson  <hmt@redhat.com>

	* src/smsc_lan91cxx.h (smsc_lan91cxx_stats): Add stats structure.

	* src/if_lan91cxx.c (lan91cxx_control): Implement ioctl() call for
	SNMP statistics gathering.  Implement stats counting generally.

2001-01-25  Hugo Tyson  <hmt@redhat.com>

	* cdl/smsc_lan91cxx_eth_drivers.cdl
	(CYGSEM_DEVS_ETH_SMSC_LAN91CXX_WRITE_EEPROM): New option to
	control whether the IOCTL to set the ESA actually writes the
	EEPROM.  Default disabled for safety.
	(CYGINT_DEVS_ETH_SMSC_LAN91CXX_STATIC_ESA): New interface controls
	whether a statically configured ESA is picked up from private data.

	* src/smsc_lan91cxx.h (LAN91CXX_CONFIG): Add this, plus
	(LAN91CXX_CONTROL_EEPROM_SELECT): et al for EEPROM writing.

	* src/if_lan91cxx.c (lan91cxx_control): Implement updating the
	EEPROM with the new ESA, if so configured.  Otherwise just set the
	ESA in the device and continue, using the new value.
	(smsc_lan91cxx_init): Obey the STATIC_ESA interface setting to use the
	EEPROM or device data for the ESA.

	Removed some never-compiled, never-used stuff for getting an ESA
	out of RedBoot's flash storage.

2001-01-25  Hugo Tyson  <hmt@redhat.com>

	* cdl/smsc_lan91cxx_eth_drivers.cdl: This generic driver does not
	implement CYGHWR_NET_DRIVER_ETH0 et al; the instantiating package
	does.

2001-01-24  Hugo Tyson  <hmt@redhat.com>

	* src/if_lan91cxx.c (lan91cxx_start): Implement promiscuous mode.
	This just involves setting a bit in ..._start() if certain
	interface flags are set.  Also import a couple of other details
	under #ifdef CYGPKG_NET from the i82559 driver for safety.

2001-01-24  Hugo Tyson  <hmt@redhat.com>

	* src/if_lan91cxx.c (DEBUG): Refined debug output, for trying it
	in RedBoot experiments.

2001-01-22  Hugo Tyson  <hmt@redhat.com>

	* src/smsc_lan91cxx.h: New file.
	* src/if_lan91cxx.c: New file.
	* cdl/smsc_lan91cxx_eth_drivers.cdl: New file.
	New component.  Based on previous work [mis]named, in the same
	idiom, lan900.  Hence this new component with a better name.  A
	major rewrite too, to make the new one work with LAN91C96,
	specifically.

//===========================================================================
//####ECOSGPLCOPYRIGHTBEGIN####
// -------------------------------------------
// This file is part of eCos, the Embedded Configurable Operating System.
// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
// Copyright (C) 2005 eCosCentric Ltd.
//
// 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####
//===========================================================================
