Linux-2.6.12-rc2
[linux-2.6.git] / arch / i386 / kernel / cpu / mtrr / changelog
1     ChangeLog
2
3     Prehistory Martin Tischhäuser <martin@ikcbarka.fzk.de>
4                Initial register-setting code (from proform-1.0).
5     19971216   Richard Gooch <rgooch@atnf.csiro.au>
6                Original version for /proc/mtrr interface, SMP-safe.
7   v1.0
8     19971217   Richard Gooch <rgooch@atnf.csiro.au>
9                Bug fix for ioctls()'s.
10                Added sample code in Documentation/mtrr.txt
11   v1.1
12     19971218   Richard Gooch <rgooch@atnf.csiro.au>
13                Disallow overlapping regions.
14     19971219   Jens Maurer <jmaurer@menuett.rhein-main.de>
15                Register-setting fixups.
16   v1.2
17     19971222   Richard Gooch <rgooch@atnf.csiro.au>
18                Fixups for kernel 2.1.75.
19   v1.3
20     19971229   David Wragg <dpw@doc.ic.ac.uk>
21                Register-setting fixups and conformity with Intel conventions.
22     19971229   Richard Gooch <rgooch@atnf.csiro.au>
23                Cosmetic changes and wrote this ChangeLog ;-)
24     19980106   Richard Gooch <rgooch@atnf.csiro.au>
25                Fixups for kernel 2.1.78.
26   v1.4
27     19980119   David Wragg <dpw@doc.ic.ac.uk>
28                Included passive-release enable code (elsewhere in PCI setup).
29   v1.5
30     19980131   Richard Gooch <rgooch@atnf.csiro.au>
31                Replaced global kernel lock with private spinlock.
32   v1.6
33     19980201   Richard Gooch <rgooch@atnf.csiro.au>
34                Added wait for other CPUs to complete changes.
35   v1.7
36     19980202   Richard Gooch <rgooch@atnf.csiro.au>
37                Bug fix in definition of <set_mtrr> for UP.
38   v1.8
39     19980319   Richard Gooch <rgooch@atnf.csiro.au>
40                Fixups for kernel 2.1.90.
41     19980323   Richard Gooch <rgooch@atnf.csiro.au>
42                Move SMP BIOS fixup before secondary CPUs call <calibrate_delay>
43   v1.9
44     19980325   Richard Gooch <rgooch@atnf.csiro.au>
45                Fixed test for overlapping regions: confused by adjacent regions
46     19980326   Richard Gooch <rgooch@atnf.csiro.au>
47                Added wbinvd in <set_mtrr_prepare>.
48     19980401   Richard Gooch <rgooch@atnf.csiro.au>
49                Bug fix for non-SMP compilation.
50     19980418   David Wragg <dpw@doc.ic.ac.uk>
51                Fixed-MTRR synchronisation for SMP and use atomic operations
52                instead of spinlocks.
53     19980418   Richard Gooch <rgooch@atnf.csiro.au>
54                Differentiate different MTRR register classes for BIOS fixup.
55   v1.10
56     19980419   David Wragg <dpw@doc.ic.ac.uk>
57                Bug fix in variable MTRR synchronisation.
58   v1.11
59     19980419   Richard Gooch <rgooch@atnf.csiro.au>
60                Fixups for kernel 2.1.97.
61   v1.12
62     19980421   Richard Gooch <rgooch@atnf.csiro.au>
63                Safer synchronisation across CPUs when changing MTRRs.
64   v1.13
65     19980423   Richard Gooch <rgooch@atnf.csiro.au>
66                Bugfix for SMP systems without MTRR support.
67   v1.14
68     19980427   Richard Gooch <rgooch@atnf.csiro.au>
69                Trap calls to <mtrr_add> and <mtrr_del> on non-MTRR machines.
70   v1.15
71     19980427   Richard Gooch <rgooch@atnf.csiro.au>
72                Use atomic bitops for setting SMP change mask.
73   v1.16
74     19980428   Richard Gooch <rgooch@atnf.csiro.au>
75                Removed spurious diagnostic message.
76   v1.17
77     19980429   Richard Gooch <rgooch@atnf.csiro.au>
78                Moved register-setting macros into this file.
79                Moved setup code from init/main.c to i386-specific areas.
80   v1.18
81     19980502   Richard Gooch <rgooch@atnf.csiro.au>
82                Moved MTRR detection outside conditionals in <mtrr_init>.
83   v1.19
84     19980502   Richard Gooch <rgooch@atnf.csiro.au>
85                Documentation improvement: mention Pentium II and AGP.
86   v1.20
87     19980521   Richard Gooch <rgooch@atnf.csiro.au>
88                Only manipulate interrupt enable flag on local CPU.
89                Allow enclosed uncachable regions.
90   v1.21
91     19980611   Richard Gooch <rgooch@atnf.csiro.au>
92                Always define <main_lock>.
93   v1.22
94     19980901   Richard Gooch <rgooch@atnf.csiro.au>
95                Removed module support in order to tidy up code.
96                Added sanity check for <mtrr_add>/<mtrr_del> before <mtrr_init>.
97                Created addition queue for prior to SMP commence.
98   v1.23
99     19980902   Richard Gooch <rgooch@atnf.csiro.au>
100                Ported patch to kernel 2.1.120-pre3.
101   v1.24
102     19980910   Richard Gooch <rgooch@atnf.csiro.au>
103                Removed sanity checks and addition queue: Linus prefers an OOPS.
104   v1.25
105     19981001   Richard Gooch <rgooch@atnf.csiro.au>
106                Fixed harmless compiler warning in include/asm-i386/mtrr.h
107                Fixed version numbering and history for v1.23 -> v1.24.
108   v1.26
109     19990118   Richard Gooch <rgooch@atnf.csiro.au>
110                Added devfs support.
111   v1.27
112     19990123   Richard Gooch <rgooch@atnf.csiro.au>
113                Changed locking to spin with reschedule.
114                Made use of new <smp_call_function>.
115   v1.28
116     19990201   Zoltán Böszörményi <zboszor@mail.externet.hu>
117                Extended the driver to be able to use Cyrix style ARRs.
118     19990204   Richard Gooch <rgooch@atnf.csiro.au>
119                Restructured Cyrix support.
120   v1.29
121     19990204   Zoltán Böszörményi <zboszor@mail.externet.hu>
122                Refined ARR support: enable MAPEN in set_mtrr_prepare()
123                and disable MAPEN in set_mtrr_done().
124     19990205   Richard Gooch <rgooch@atnf.csiro.au>
125                Minor cleanups.
126   v1.30
127     19990208   Zoltán Böszörményi <zboszor@mail.externet.hu>
128                Protect plain 6x86s (and other processors without the
129                Page Global Enable feature) against accessing CR4 in
130                set_mtrr_prepare() and set_mtrr_done().
131     19990210   Richard Gooch <rgooch@atnf.csiro.au>
132                Turned <set_mtrr_up> and <get_mtrr> into function pointers.
133   v1.31
134     19990212   Zoltán Böszörményi <zboszor@mail.externet.hu>
135                Major rewrite of cyrix_arr_init(): do not touch ARRs,
136                leave them as the BIOS have set them up.
137                Enable usage of all 8 ARRs.
138                Avoid multiplications by 3 everywhere and other
139                code clean ups/speed ups.
140     19990213   Zoltán Böszörményi <zboszor@mail.externet.hu>
141                Set up other Cyrix processors identical to the boot cpu.
142                Since Cyrix don't support Intel APIC, this is l'art pour l'art.
143                Weigh ARRs by size:
144                If size <= 32M is given, set up ARR# we were given.
145                If size >  32M is given, set up ARR7 only if it is free,
146                fail otherwise.
147     19990214   Zoltán Böszörményi <zboszor@mail.externet.hu>
148                Also check for size >= 256K if we are to set up ARR7,
149                mtrr_add() returns the value it gets from set_mtrr()
150     19990218   Zoltán Böszörményi <zboszor@mail.externet.hu>
151                Remove Cyrix "coma bug" workaround from here.
152                Moved to linux/arch/i386/kernel/setup.c and
153                linux/include/asm-i386/bugs.h
154     19990228   Richard Gooch <rgooch@atnf.csiro.au>
155                Added MTRRIOC_KILL_ENTRY ioctl(2)
156                Trap for counter underflow in <mtrr_file_del>.
157                Trap for 4 MiB aligned regions for PPro, stepping <= 7.
158     19990301   Richard Gooch <rgooch@atnf.csiro.au>
159                Created <get_free_region> hook.
160     19990305   Richard Gooch <rgooch@atnf.csiro.au>
161                Temporarily disable AMD support now MTRR capability flag is set.
162   v1.32
163     19990308   Zoltán Böszörményi <zboszor@mail.externet.hu>
164                Adjust my changes (19990212-19990218) to Richard Gooch's
165                latest changes. (19990228-19990305)
166   v1.33
167     19990309   Richard Gooch <rgooch@atnf.csiro.au>
168                Fixed typo in <printk> message.
169     19990310   Richard Gooch <rgooch@atnf.csiro.au>
170                Support K6-II/III based on Alan Cox's <alan@redhat.com> patches.
171   v1.34
172     19990511   Bart Hartgers <bart@etpmod.phys.tue.nl>
173                Support Centaur C6 MCR's.
174     19990512   Richard Gooch <rgooch@atnf.csiro.au>
175                Minor cleanups.
176   v1.35
177     19990707   Zoltán Böszörményi <zboszor@mail.externet.hu>
178                Check whether ARR3 is protected in cyrix_get_free_region()
179                and mtrr_del(). The code won't attempt to delete or change it
180                from now on if the BIOS protected ARR3. It silently skips ARR3
181                in cyrix_get_free_region() or returns with an error code from
182                mtrr_del().
183     19990711   Zoltán Böszörményi <zboszor@mail.externet.hu>
184                Reset some bits in the CCRs in cyrix_arr_init() to disable SMM
185                if ARR3 isn't protected. This is needed because if SMM is active
186                and ARR3 isn't protected then deleting and setting ARR3 again
187                may lock up the processor. With SMM entirely disabled, it does
188                not happen.
189     19990812   Zoltán Böszörményi <zboszor@mail.externet.hu>
190                Rearrange switch() statements so the driver accomodates to
191                the fact that the AMD Athlon handles its MTRRs the same way
192                as Intel does.
193     19990814   Zoltán Böszörményi <zboszor@mail.externet.hu>
194                Double check for Intel in mtrr_add()'s big switch() because
195                that revision check is only valid for Intel CPUs.
196     19990819   Alan Cox <alan@redhat.com>
197                Tested Zoltan's changes on a pre production Athlon - 100%
198                success.
199     19991008   Manfred Spraul <manfreds@colorfullife.com>
200                replaced spin_lock_reschedule() with a normal semaphore.
201   v1.36
202     20000221   Richard Gooch <rgooch@atnf.csiro.au>
203                Compile fix if procfs and devfs not enabled.
204                Formatting changes.
205   v1.37
206     20001109   H. Peter Anvin <hpa@zytor.com>
207                Use the new centralized CPU feature detects.
208
209   v1.38
210     20010309   Dave Jones <davej@suse.de>
211                Add support for Cyrix III.
212
213   v1.39
214     20010312   Dave Jones <davej@suse.de>
215                Ugh, I broke AMD support.
216                Reworked fix by Troels Walsted Hansen <troels@thule.no>
217
218   v1.40
219     20010327   Dave Jones <davej@suse.de>
220                Adapted Cyrix III support to include VIA C3.
221
222   v2.0
223     20020306   Patrick Mochel <mochel@osdl.org>
224                Split mtrr.c -> mtrr/*.c
225                Converted to Linux Kernel Coding Style
226                Fixed several minor nits in form
227                Moved some SMP-only functions out, so they can be used
228                 for power management in the future.
229                TODO: Fix user interface cruft.