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