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