changelog

来自「开放源码实时操作系统源码.」· 代码 · 共 460 行 · 第 1/2 页

TXT
460
字号
2002-10-06  Andrew Lunn  <andrew.lunn@ascom.ch>

	* include/devs_eth_ebsa285.inl: EBSA has the ethernet devices
	multiplexed onto one interrupt. This got losted when generalising
	the driver.

2002-05-14  Jesper Skov  <jskov@redhat.com>

	* include/devs_eth_ebsa285.inl: Fix warnings.

2001-11-19  Hugo Tyson  <hmt@redhat.com>
2001-11-19  Anssi Pulkkinen <Anssi.Pulkkinen@ascom.ch>

	* src/if_ebsa285.c (TxMachine): The test to see if there is a new
	tx to start must also say "go" if the tx queue is full.  Normally,
	if the txqueue is full, a tx will be occurring at all times - so
	one will complete soon, so the tx queue full flag will soon be
	cleared, and this condition will recover.  I suspect a subtle race
	which effectively means a new tx is queued and fills the queue in
	between two tx's, so no TxDone() follows, causes the hang which we
	get without this extra test under high load.  [CASE 106686]

2001-08-31  Hugo Tyson  <hmt@redhat.com>
2001-08-31  Sanjay Bisen <sanjay.bisen@ascom.ch>

	* src/if_ebsa285.c (TxDone): Check from prev change is moved to
	the logical driver.  Also, we zero the key in global state before
	the callback - this should make no difference, but again it's good
	practice, and ASCOM's tests indicate a benefit for CASE 106059.
	
2001-08-22  Gary Thomas  <gthomas@redhat.com>

	* src/if_ebsa285.c: 
	printf() is no longer a part of RedBoot.  Thus all programs
	must use diag_printf() and related functions instead.

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

	* src/if_ebsa285.c (TxDone): Defensive programming: only call
	tx_done with new/unique key values.

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

	* src/if_ebsa285.c: Make device config more consistent with that
	used in other 82559 platforms, and fix a typo.

2001-02-20  Hugo Tyson  <hmt@redhat.com>
2001-02-15  Martin Buck  <martin.buck@ascom.ch>

	* src/if_ebsa285.c: Configure i82559 not to drop oversized frames.
	This is required for VLAN support (because the maximum frame size
	including the VLAN tag is 1518 instead of 1514) and shouldn't
	hurt otherwise. To do this, we now always configure the chip when
	i82559_start is called, instead of relying on the default
	configuration if promiscuous mode is off. Another advantage is that
	we're now able to turn promiscuous mode off again after it was
	enabled once.

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

	* src/if_ebsa285.c (find_82559s_match_func): New func to match
	complex PCI device requirements.
	(pci_init_find_82559s): Use it, and the new PCI API to correctly
	match a disparate bunch of devices on the one board.

2000-12-21  Hugo Tyson  <hmt@redhat.com>

	* src/if_ebsa285.c (pci_init_find_82559s): Also check for the PCI
	device whose name is ... 0x1209; "82559ER".  Thanks to Martin Buck
	<martin.buck@ascom.ch> for the ID for that.

2000-11-19  Gary Thomas  <gthomas@redhat.com>

	* src/if_ebsa285.c (pci_init_find_82559s): Intel has at least
	two devices equivalent to the 82559.  Support both (0x1229, 0x01030).

2000-10-05  Hugo Tyson  <hmt@redhat.com>

	* src/if_ebsa285.c: Deal with device interrupts in a nested
	fashion - disable/restore is the semantics now, rather than
	unconditionally unmasking.  Also go directly to the 21285 PIC's
	interrupt control registers to gain atomicity for these.  Poll for
	ready received packets when acknowledging an interrupt in the
	tranmitting world; a race here could lose an Rx interrupt.  Which
	doesn't matter on a busy system, but in quieter times...  there
	will always be such a race because of the vague way the i82559's
	status bits reflect how it's yanking the interrupt line; you have
	to poll until the interrupt is gone before returning else spurious
	interrupt failures occur.  The issue is to close the window as
	tightly as possible, which this change achieves at a minor cost in
	performance - because of the time spent polling when not required.

2000-09-11  Hugo Tyson  <hmt@cygnus.co.uk>

	* src/if_ebsa285.c (i82559_poll): Only diddle the interface we
	were asked to.  This is more correct in terms of the intent of the
	API, though it shouldn't really be necessary.

2000-09-06  Hugo Tyson  <hmt@cygnus.co.uk>

	* src/if_ebsa285.c (pci_init_find_82559s): Add asserts and an
	unconditional check that the PCI window as configured matches the
	address and size of the pci_window region from the MLT.  This is
	here because at present the MLT and CT cannot intercommunicate
	enough.  The separation of the PCI window is needed because
	otherwise the malloc heap will eat all memory.  [This is related
	to CR 902624-CR, "MLT needs to be configuration aware"]

2000-09-01  Hugo Tyson  <hmt@cygnus.co.uk>

	* OVERVIEW: This is part of the change to the network stack to
	greatly reduce latencies both of (other) DSRs and of thread
	scheduling.  All the work that the network stack *and* individual
	ether drivers used to do in DSRs (including alarm callbacks and
	data copies to/from the device memory) is moved into a "fast
	network thread" instead.  It calls a device's "deliver" function
	to do the work that was previously in the DSR.  This is a separate
	thread so that it can be set higher priority than application
	threads in order to minimize packet loss (depending on the
	driver), if required (the application threads presumed to be
	higher priority in turn than the network thread).  A crucial
	consequence of this is that we are no longer locking against DSRs,
	so a plain mutex can be used rather than the global scheduler
	lock, thus simplifying all the splfoo/splx() style functions.

	* src/if_ebsa285.c: Minor: fix the big assert in i82559_send()
	which suffered a race condition when called from the fast thread
	rather than from a DSR.  Major: Add a "deliver" entry to the
	interface record for the "fast thread" implementation of the
	network internal comms system.  Provide a pass-up DSR to the
	logical ether driver's DSR and appropriate delivery routine(s).
	i82559_poll() now calls i82559_deliver() rather than the DSR.  Add
	valid data for mux'd DSR to pass on up.

2000-09-01  Hugo Tyson  <hmt@cygnus.co.uk>

	* tests/test_net_realtime.h: Tighten up the latency requirements
	by a factor of 5; it all seems happy, so committed.

2000-08-25  Hugo Tyson  <hmt@cygnus.co.uk>

	* src/if_ebsa285.c (i82559_ioctl): A little further diddling; have
	a bool to say whether the dot3 info is filled in.

2000-08-24  Hugo Tyson  <hmt@cygnus.co.uk>

	* cdl/ebsa285_eth_drivers.cdl: Do not export a symbol for the
	device info file (include/ebsa285_info.h) since nobody needs
	(portably) to include it now.

	* src/if_ebsa285.c (i82559_ioctl): Handle new ioctl calls
	ETH_DRV_GET_IF_STATS_UD and ETH_DRV_GET_IF_STATS to get loads of
	statistical information out.  _UD means update.  The nonUD one can
	be used instead mostly, if we find the performance hit too large.
	This should allow SNMP (a) to not explode, (b) to get useful info
	out of other device implementations than this one.

	* include/ebsa285_info.h: Remove all the macro cruft for feature
	detecting of lots of individual statistics; we now just have a
	catch-all struct that SNMP uses, defined in the common ether
	driver environment.

2000-08-15  Hugo Tyson  <hmt@cygnus.co.uk>

	* src/if_ebsa285.c (PacketRxReady): Put back the check for very
	small packets into the driver; the layer above checks for that
	(defensive programming) but only *after* asserting that the size
	is large enough, to help detect that scenario from other drivers.
	I believe we only have struct ether_header available if CYGPKG_NET
	but I could be wrong.
	[CASE 104353]

2000-08-08  Hugo Tyson  <hmt@cygnus.co.uk>

	* src/if_ebsa285.c (eth_set_promiscuous_mode):
	- ccs->config_bytes[18]=0x70;
	+ ccs->config_bytes[18]=0x72; // Keep the Padding Enable bit
	...otherwise short frame sends don't work in promisc mode.
	[CASE 104289]

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

	* src/if_ebsa285.c (pciwindow_mem_alloc): Take out very noisy debug.

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

	* src/if_ebsa285.c: Changes for stand-alone mode.

	* cdl/ebsa285_eth_drivers.cdl: Ethernet driver package hierarchy changed.
	Add option to control number of interfaces.

2000-07-28  Hugo Tyson  <hmt@cygnus.co.uk>

	* src/if_ebsa285.c (PacketRxReady): Do not attempt to forward
	short packets; eth_drv.c assumes there is at least a header there.
	(i82559_recv): Also be more careful and ASSERTive about -ve buffer
	sizes; be more defensive about sglists.  [CASE 104206]

2000-07-26  Gary Thomas  <gthomas@redhat.com>

	* src/if_ebsa285.c: Update for new eth_drv interfaces.

2000-07-18  Hugo Tyson  <hmt@cygnus.co.uk>

	* src/if_ebsa285.c (i82559_poll): Fill in the flesh of this, it
	just calls ISR and DSR repeatedly.
	(i82559_start): Look in the device record for promiscuous mode
	flag; it should be passed though the common layer, but it's not
	[yet] - this change from Andrew Lunn/ASCOM.  Also a fix and delay
	to the promisc mode code per se.

2000-07-17  Hugo Tyson  <hmt@cygnus.co.uk>

	* src/if_ebsa285.c (i82559_poll): New function, just to fill in
	the interface record; not used.

2000-06-27  Hugo Tyson  <hmt@cygnus.co.uk>

	* cdl/ebsa285_eth_drivers.cdl: Add sesquipedalian option
	CYGDBG_DEVS_ETH_ARM_EBSA285_KEEP_82559_STATISTICS in (now)
	component CYGDBG_DEVS_ETH_ARM_EBSA285_KEEP_STATISTICS to control
	keeping (well, harvesting really) the i82559's internal stats.
	Reputedly, it doesn't service the net whilst this is happening, so
	it could be viewed a bad thing.  Hence the option.

	* include/ebsa285_info.h: Only describe the I82559_COUNTERS
	i82559_counters[2]; structs if full stats are to be kept.

	* src/if_ebsa285.c (update_statistics): Only include this if full
	stats are to be kept.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?