1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
|
NOTE! NOTE! NOTE! NOTE! NOTE! NOTE! NOTE! NOTE! NOTE! NOTE! NOTE! NOTE!
/dev/bios is obsolete and no longer under development. Please adapt all
changes to the "flashrom" utility of LinuxBIOS. This utility can be found
at LinuxBIOSv2/utils/flashrom in the LinuxBIOS v2 repository. LinuxBIOS
is available at http://www.linuxbios.org/
I'm also looking for volunteers to port all features available in /dev/bios
to flashrom so /dev/bios can be dropped from the OpenBIOS tree. These features
include
- block information about flash chips
- block wise writing of flash chips
- lots of supported flash chips and vendors.
If you have questions, contact Stefan Reinauer <stepan@coresystems.de>
NOTE! NOTE! NOTE! NOTE! NOTE! NOTE! NOTE! NOTE! NOTE! NOTE! NOTE! NOTE!
ChangeLog for /dev/bios
** 2004/03/31 ********************************************************
* Added fix from Alex Beregszaszi to remove global *bios
** 2004/03/05 ********************************************************
* fix compiling for 2.6 kernels.
** 03/06/04 **********************************************************
* add SST49LF080A
* small 2.5 fix.
** 02/06/10 **********************************************************
* some changes to detect pci cards firmware.
* pci cards firmware can be read even if flashing is not possible.
This is a new feature and might cause problems on some systems.
** 02/04/16 **********************************************************
* reorganize Makefile, include .config from kernel.
* platform fixes for clean compilation.
** 02/04/12 **********************************************************
* proprietary x86-64 support.
* change ruffian probe address
** 02/03/28 **********************************************************
* proper implementation of system firmware detection on LX164 Alphas
* partly include jedec command cleanup patch from Pierrick Hascoet
<pierrick.hascoet@hydromel.net>
** 02/03/11 **********************************************************
* only probe 512k on CS5530(A)
* add EON EN29F002 chips.
** 02/02/22 **********************************************************
* rewrite major parts of bridge probing to make driver more generic.
* add Ali chipset support
* Saner iounmap() of flash devices.
** 02/02/18 * 0.3.2 **************************************************
* change cs5530 driver to map high rom range instead of low one
and don't use positive decode.
* remove ruffian flag. Alpha (164LX/UX) almost works with pc code.
* don't rely on register defaults in intel 8xx driver.
* updated pci device list. more entries, join amd and via entry.
* fix error handling in chipset detection.
* add support for Reliance/ServerWorks chipsets
* enable 1M 512k on intel 4x0 chips where it's possible
* cleanup proc file handling
** 02/02/17 **********************************************************
* rewrote chipset initialisation skeleton.
* fix pci bios (un)mapping.
* experimental support for AlphaPC 164UX (Ruffian)
(probes at 0xfffffffffffc0000 instead of 0xfffffc87C0000000
* initial code for FWH mode chips
* Fix Toggle-Until-Ready code.
** 02/02/16 **********************************************************
* iounmapping fixed. no more address space wasted.
* /proc/bios shows physical address now. dmesg shows
physical address and virtual memory area and offset.
** 02/02/13 **********************************************************
* added i820/i830 chipset support
* added AMD 751/760MP(X) support
* added support for Itanium and 84460GX chipset
* added experimental support for some flash chips (ST, Intel,
Winbond)
* use spinlocks instead of hard cli()
** 02/02/11 **********************************************************
* added GPL licence tag
* remove low bios area access tweaking for intel drivers
* speed up SST 39SF020 write
* fix compilation for 2.5 kernels
** 02/02/05 **********************************************************
* added support for cs5530 (nsc/cyrix mediagx) chipset
* reorganized shadow/wp handling
* probe for 2mb high memory area instead of 256k only
** 01/08/01 * 0.3.1 **************************************************
* compiles and works with Linux kernel 2.4
* rewrote flash chip probing
* always use ioremap now
* flash chips above 128k should work transparent
* Support for newer VIA chipsets
** 00/10/15 * 0.3.0pre1 **********************************************
* added patch from Eric Estabrook
* support for 256k flash chips on intel 430/440 chipsets and via vp3
* split up source into several files
* Changes for Ruffian AXP machines. Does not work (yet).
** 99/07/29 * 0.2.101 ************************************************
* Oh well.. 11 months? Impossible. I am a lazy guy. Implemented
some support for VIA Apollo VP3. Don't know whether it works, since
I don't have one.
** 98/09/06 **********************************************************
patches by prumpf@jcsbs.lanobis.de:
* The pointer to bios_release in bios.c was on the flush pointer's
position. This caused Oopses.
* When bios_read was called with a file position after the actual end
of bios, it tried to read non-existant memory positions due to size
being unsigned (it isn't anymore) , causing spontaneous reboots on
my system
** 98/08/22 **********************************************************
* Well,.. The diskless spectacle (0.2.100) was caused by a little bug
in in handling Intel PCI chipsets. Works now.
* Threw out the chipset_backout stuff. the PCI chipset handling should
always leave the machine in the same state it was before. ALWAYS.
** 98/08/18 * 0.2.100 ************************************************
* Threw out the mem_type stuff. There are more important things than
this.
* Argh! After flashing fine on an Intel 28F001BT, the computer kept
hanging in an endless loop and refused writing the emergency boot
block to the end :-( There's some work until 0.3 is ready.
Implemented a timeout so that the system will not hang forever if
the flashchip behaves unexpected.
* Removed x86 probing in a loop. I think it never found anything else
but the system bios and *maybe* the graphics adapter bios. On the
other hand, it reconfigures some networking cards to silence.
Bad thing on diskless Linux boxes :)
** 98/08/15 **********************************************************
* added some changes for intel to compile without warnings..
** 98/08/02 **********************************************************
* What a boring job! Checked some dozen of flash chip entries today
and added a lot of new ones. I bet it gets hard to find anything
this driver does not know.
** 98/07/28 **********************************************************
* Yeah! Atmel Chips finally work.. These Atmel guys are really weird.
* Testing last instead of first written byte now, when polling for the
end of a write access.
** 98/07/28 **********************************************************
* Well, I am definitely spending too much time in IRC, but detecting
PCI cards' bioses works now (at least for me)
* Thrown out some obsolete stuff.
* Declared PCI and Flash reading/writing __inline__. Don't know,
whether this is a good idea. But let's try it for a while.
* Aaaargh! Some major mistakes in handling whether a flash has to
be erased before programming. FIXED!
* Even worse. An endless loop made it into writing in 0.2.99. Sorry!
I had no chance to test writing on an intel board with that release.
At least my warning, not to write, made sense.
* Intel flashchips are supported now!! It's at least tested on my
Alpha AXP LX164 Board (1MByte i28f008 chip) But all Intel flash chips
seem to work in the same way.
* Atmel 64kByte flash chips supported.
** 98/07/27 **********************************************************
* Split up flash_probe in 2 parts to be able to expand probing on
PCI bioses and others correctly.
* Turned around 1st and 2nd probing codes. This is funny, Atmel
Flashroms give some wrong numbers if they are probed with the
0x80/0x60 way. I only hope that no flashchips react on the
0x90 method with wrong values.
** 98/07/19 * V0.2.99 ************************************************
* Reading the flashchip works now on Alpha AXP (at least on my LX164
Board)
Writing ought to work, too, but Intel Flashchips are not supported
yet. This should be done until 0.3.0.
NOTE: I have no idea whether this driver still works on intel
boards or not. There have been too many changes. Please try, but
do not flash with this release of the driver.
* Minor Changes and fixes. Naming scheme changed a bit. This version
might work on James Mastros' machine again ?!?
** 98/07/11 **********************************************************
* Started porting stuff to Alpha AXP architecture to continue testing
the flashing routines. We have a lot of tests next week, so I
won't get much stuff done..
Porting to AXP seems to be much more work than I thought. It may
take some time until the next version is released.
* Moved major number again. This time we have an official major
number for /dev/bios. Thanks to Hans Peter Anvin.
(Well, we have this one since May 1st, sorry for the delay)
** 98/06/26 * V0.2.95 ************************************************
* added all Manufacturer IDs from the JEDEC standards publication.
* sorry for not having released a new version since months, but
my x86 machine died and I have no chance to do any testing right
now. I guess I must get a new Intel box, as Alpha AXP are all
delivered with the same Intel flash chips.
** 98/04/30 * V0.2.9 *************************************************
* removed ioctls. They have been really unneccesary and did not fit
into the new driver layout.
* cleaned up the code. Hey, it should be readable again.
* Moved device minors from 10+ to 0+
* Rewrote most of the documentation
* changed intel shadowing routines. Now original values are saved
and shadowing is turned off for 0xc0000 to 0xdffff, too (This
was needed to support 2MBit system bios flash chips. Thanks again
to Matthew Harrell for intensive testing.
* Removed dirty hacks from bios_read_proc()
* Added some fields to struct flashdevice to support all ROM types,
not only flash roms. Probing for other types still missing.
* Implemented probing for some strange Winbond chips (0x80/0x20).
** 98/04/27 * V0.2.8 *************************************************
*** Attention *** This version has a lot of changes since
0.2.7, so be very careful, when testing. Things may
be broken that used to work.
* Rewrote big parts of the driver to (theoretically) support
multiple flash chips and/or ROM areas.
* Tried to implement support for 2MBit System BIOS chips, but
I have no idea, whether it works. I don't have one.
* added some more OPTi, SiS and VIA PCI chipsets to chipset list.
They have no function yet, though.
* Some weird computers have an ISA bridge, but don't have it declared
as one. Now probing for known ISA bridge IDs. (Thanks to Matthew
Harrell for reporting this.)
* Added some new flashchip IDs and made some old ones work.
** 98/04/24 * V0.2.7 *************************************************
* rewrote shadowing and wp functions to use a pci_functions structure
This makes it very easy to include new PCI chipsets.
* function chipset_init() detects PCI chipset.
* modversions support. Thanks to Matthew Harrell.
* moved PCI bridge detection to chipset_init()
** 98/04/23 * V0.2.6 *************************************************
* repaired flashchip_ready_toggle and flashchip_ready_poll.
* Set WRITE_DELAY to 300 as it should be (works now)
* NOTE: These two changes make the operation of /dev/bios
theoretically correct, and by that quite secure.
**********************************************************************
There was no ChangeLog for versions prior to 0.2.6
Stefan Reinauer, <stepan@openbios.org>
|