[jme] Add checklog
[jme.git] / CHANGELOG
1 Version 1.0.6 -- 03/19/2010
2         * Fix memory leak while receiving packets from unregistered VLAN.
3         * Protect vlgrp structure by pause RX actions. Instead of adding
4           lock in the hot zone.
5         * Merge new updates from mainline kernel.
6
7 Version 1.0.5 -- 06/20/2009
8         * Fixed unmatched tasklet_disable and tasklet_enable pair.
9         * Allocate ring buffer information data while module initialize,
10           instead of using global space.
11         * Drop shadow register support, due to buggy hardware.
12
13 Version 1.0.4 -- ??/??/2008
14         * remove unused #include <version.h>
15                 By: Huang Weiyi <weiyi.huang@gmail.com>
16         * fix build error at csum_ipv6_magic()
17                 By: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>
18
19 Version 1.0.3 -- 10/09/2008
20         * Fixing shared IRQ problem, fixed by akeem.
21         * Add RSS_PATCH, HALF_MODE_PATCH bit setting for JMC250_rev 0x11.
22         * Added ifdef CONFIG_PM for prevent warnings with CONFIG_PM disabled.
23
24 Version 1.0.2 -- 09/15/2008
25         * Modify version check for rev 11 buggy hardware.
26
27 Version 1.0.1 -- 09/05/2008
28         * Removed SPI access to flash device through ioctl.
29           Will be implement with MTD block device and SPI Master in the future.
30
31 Version 1.0 -- 08/29/2008
32         * Passed checkpatch.pl
33         * Passed sparse cleanly.
34         * Tested on various check that mentioned in SubmitChecklist.
35         * Supporting message level controlled by ethtool.
36         * Remove backward compatible codes.
37           (But still kept in non-mainline driver)
38         * Add pseudo hot-plug support.
39         * Fixed fragmented IP packet's TCP/UDP checksum error.
40         * Fine tune some locks, and use atomic bit operations.
41         * Add SPI interface through ioctl for flash re-programing.
42         * Fix high-loading link-down hardware reset unclean problem.
43         * Link-Change tasklet is modified to process all link-change interrupt.
44         * Fix potential racy atomic locks.
45         * Add work-arround for rev 11
46         * Add register debug human readable facilities.
47
48 Version 0.9e -- 08/13/2008
49         * Fix PCC ISR handling bug.
50         * Allow PCCMTUCLR
51         * Wait phylink if PHY WoL is enabled, preventing
52           immediate resume.
53         * Default to turn on Magic Frame WoL only.
54         * Add pci_enable_wake on S1.
55         * Don't release/request IRQ on suspend/resume.
56
57
58 Version 0.9d-msix -- 08/14/2008
59         * Add MSIX support.
60         * Since I still have no idea how to explicitly balance
61           the load to CPUs, the 1.0 version won't include this
62           feature.
63
64
65 Version 0.9d -- 08/13/2008
66         * Fix watchdog bug.
67         * Add jmc260 support.
68
69
70 Version 0.9c -- 08/11/2008
71         * Fix change mac address bug.
72         * Fix PHY Addr polling bug.
73         * Add eeprom read/write support for ethtool
74         * Add PHY Register dump for ethtool
75
76
77 Version 0.9b -- 08/08/2008
78         * Add FPGA Support.
79         * Fix NAPI <-> Adaptive PCC mode switching bug.
80         * Default use Adaptive PCC mode.
81         * Modified watchdog.
82         * Support NAPI for 2.6.22 kernel
83
84
85 Version 0.9a -- 08/07/2008
86         * Implement NAPI, use ethtool -C ethX adaptive-rx [on|off] to switch
87           between NAPI or Dynamic PCC mode at runtime.
88         * Fix Dynamic PCC switch bug.
89         * Pass packets with error checksum to host instead of drop.
90
91
92 Version 0.9 -- 08/04/2008
93         * Implement Scatter-Gather offloading.
94         * Implement TCP Segment offloading.
95         * Pause TX queue until TX queue have sufficient space.
96         *       (Saved a lot CPU)
97         * Turn on WOL by default.
98         * Setup Wakeup Frame to not possible matched pattern.
99         * Tested TCP/UDP csum over IPv4/IPv6 over VLAN all working fine! ^^
100         * Tested TSO over IPv4/IPv6 over VLAN all working fine! ^^
101
102
103 Version 0.8 -- 08/02/2008
104         * Remember last link status for interface up/down.
105         * When driver loaded/unloaded and interface down, change
106         *       link to 10/half force for power saving.
107         * Check MTU setting when setting tx csum.
108         * Implement VLAN offloading.
109
110
111 Version 0.7 -- 08/01/2008
112         * Added Suspend/Resume support.
113         * Added Wake on LAN support.
114
115
116 Version 0.6 -- 07/30/2008
117         * Use NIC Timer for dynamic PCC.
118         * Add another PCC rule for heavy error packet load.
119         * Report and set GHC when change duplex at 10/100 force mode.
120         * Implement Jumboframe.
121         * Implement MSI.
122         * Backdoor for changing "FIFO Threshold for processing next packet"
123         *       Using:
124         *               ethtool -C eth1 adaptive-rx on adaptive-tx on \
125         *               rx-usecs 250 rx-frames-low N
126         *               N := 16 | 32 | 64 | 128
127
128
129 Version 0.5 -- 07/25/2008
130         * Add tx timeout watchdog.
131         * Handle PHY Force mode correctly.
132                 If AN is off, mmaped PHY Status will not update, need to
133                 get information using SMI.
134                 Our NIC does not support 1000M Force Mode, return invalid
135                 if user try to set that.
136         * Should work fine when hot-[un]pluged with pcie-hotplug driver.
137         * Record TX Collision error count on half-duplex mode.
138         * Implement tx ipv6/ip/tcp/udp checksum offloading
139         * Implement rx ipv6/ip/tcp/udp checksum offloading
140         * Add restart-AN support for ethtool.
141         * Add pause control for ethtool.
142         * Add register dump support for ethtool.
143         * Add PCC information for ethtool.
144         * Set Transmit Timer/Retry at Half Duplex Mode.
145         * Change "FIFO Threshold for processing next packet" of RXCS
146                 default to 32QW (Originally 128QW)
147
148
149 Version 0.4 -- 07/24/2008
150         * Support runtime change link speed.
151
152
153 Version 0.3 -- 07/22/2008
154         * Clean up some code, try making it more fit to CodingStyle
155         * Add prepad cache-line optimize support.
156         * Basic RX PCC structure added.
157         * Basic TX PCC structure added.
158         * Reset PHY Processor and turn on ALL advertise by default.
159         * Rewrite TX related functions.
160         * Added 64bit address for PCI DMA support.
161         * Dynamic PCC Adjustment.
162
163
164 Version 0.2 -- 07/17/2008
165         * Handle multiple RX descriptor per packet (Received a LONG packet.)
166         * Drop error RX packets, and update the counter.
167         * Using interrupt shadow register.
168         * Using sk_buff as receive buffer, NIC directly DMA to sk_buff->data.
169         * Use sk_buff kernel provided for NIC directly DMA to send packet.
170         * Use tasklet for tx desc cleanup. (Reduce ISR latency)
171         * Rearange ring data structure for CPU caching efficiency.
172         * Setup RXCS with correct values.
173         * Older(tested to 2.6.18) linux kernel support.
174         * Added a tasklet for link status change.
175         * Added a tasklet for processing incoming packets.
176         * Check DMA MRRS from pci config space, and fill TXCS.
177         * Save TXCS value in local memory, reduce register read time.
178
179
180 Version 0.1 -- 07/11/2008
181         * Basic function completed.
182         * Interrupt handler and xmit function are implemented with
183           care of multiple CPU enviroment.
184         * All offload engine are not used.
185         * PCC/MSI are not used.
186         * Redudent memory copy are used. (Will be removed in the future)
187         * Acceptible performance.
188
189                 Testing platform: Intel(R) Pentium(R) 4 CPU 3.00GHz
190                                   JMicron JMC250
191
192                 Peer platforman:  AMD Athlon(tm) 64 Processor 3000+
193                                   D-Link DGE-530T (Marvell 88E8001)
194
195                         Speed           CPU Usage
196                 TCP tx: 7xMB            40%
197                 TCP rx: 3xMB            30%
198
199                 Note: These speed could be limited by peer, since CPU
200                       load is not much, and queue is not full.
201
202