Annotation of qemu/roms/openbios/utils/devbios/README.bios, revision 1.1

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: /dev/bios documentation                                                  2002/02/19
        !            22: 
        !            23: Table of contents
        !            24: ------------------
        !            25: 
        !            26:   1. What is /dev/bios?
        !            27:   2. What hardware/software do I need to run /dev/bios?
        !            28:   3. Where to get the latest release of /dev/bios
        !            29:   4. How to get /dev/bios work
        !            30:   5. Writing to the devices
        !            31:   6. About PCI chipsets (ix86 only)
        !            32:   7. About APM Powermanagement (ix86 only)
        !            33:   8. About different flashchips.
        !            34:   9. Hints for BIOS flashing
        !            35: 
        !            36: If you want better information on this driver, read the ChangeLog,
        !            37: mail me or read the source, Luke :-)
        !            38: 
        !            39: 1. What is /dev/bios?
        !            40: ----------------------
        !            41: 
        !            42: This is a kernel driver for different kinds of (Flash)BIOSs that are
        !            43: available in today's hardware.
        !            44: 
        !            45: There are well known BIOSs for
        !            46:  - System BIOS (resides at 0xe0000 on Intel PCs)
        !            47:  - graphics hardware
        !            48:  - SCSI host adapters
        !            49:  - networking interfaces with 'BOOT ROM'
        !            50:  - ...
        !            51: 
        !            52: While in former times these BIOSs were implemented by using ROM or
        !            53: EPROM (both can't be updated without opening your computer) today's
        !            54: PC hardware is often delivered with so called FLASH ROMs. These
        !            55: can simply be updated by software. This driver has the approach to
        !            56: make Linux read and write flash roms.
        !            57: 
        !            58: One word before you read ahead: This is still alpha software and
        !            59: writing to your flash roms may destroy them. So if you notice anything
        !            60: strange, don't even think about going on, but write some mail to:
        !            61: 
        !            62:                Stefan Reinauer <[email protected]>
        !            63: 
        !            64: Please note that I am not responsible in any way for what you
        !            65: do with this code or for what this code does with your computer.
        !            66: 
        !            67: 2. What hardware/software do I need to run /dev/bios?
        !            68: ------------------------------------------------------
        !            69: 
        !            70: Currently this driver supports ix86 (mainly Pentium,
        !            71: PPro, PII/III, Athlon, but some 486s), Itanium and Alpha 
        !            72: architecture.
        !            73: It supports all flash chips from 32k to 2M (theoretically). 
        !            74: Minimum kernel version is v2.2.x, but it's wise to use a
        !            75: 2.4.x kernel.
        !            76: 
        !            77: 3. Where to get the latest release of /dev/bios?
        !            78: -------------------------------------------------
        !            79: 
        !            80: /dev/bios was recently integrated into the OpenBIOS CVS
        !            81: tree for easier maintainance. General information can be
        !            82: found on the /dev/bios status page:
        !            83: http://www.freiburg.linux.de/OpenBIOS/status/devbios.html
        !            84: Latest releases of /dev/bios can be found at the download page:
        !            85: http://www.freiburg.linux.de/OpenBIOS/dev/download.html
        !            86: Latest development trees of /dev/bios can be found in the
        !            87: OpenBIOS CVS. For information how to access it, go to
        !            88: http://www.freiburg.linux.de/OpenBIOS/dev/cvs.html
        !            89: 
        !            90: 4. How do I get /dev/bios work
        !            91: -------------------------------
        !            92: 
        !            93: Create the system bios device with
        !            94: 
        !            95:        mknod /dev/bios c 104 0
        !            96: 
        !            97: Now you can add devices for the other BIOSs (often known as option
        !            98: roms) in your Computer, i.e. like this:
        !            99: 
        !           100:        mknod /dev/gfxbios c 104 1
        !           101:        mknod /dev/hddbios c 104 2
        !           102:        mknod /dev/netbios c 104 3
        !           103: 
        !           104: The order of the devices may vary on your computer, maybe you even don't
        !           105: have a flash bios on your network card or on your scsi host adapter. You will
        !           106: have to decide this after playing  around a bit.
        !           107: 
        !           108: Now you have to compile and insert the kernel driver module:
        !           109: 
        !           110:        cd devbios
        !           111:        make clean && make
        !           112:        insmod bios.o
        !           113: 
        !           114: Now you have a new device, /dev/bios and, if you have
        !           115: your kernel configured to have the /proc/ interface,
        !           116: you have a status file /proc/bios.
        !           117: 
        !           118: Since this driver is in an early state, you should have
        !           119: a look at dmesg very often.
        !           120: 
        !           121: 5. Writing to the devices
        !           122: --------------------------
        !           123: 
        !           124: If you insert bios.o without any options, you are not able
        !           125: to write any of the devices. To enable writing, you should
        !           126: use
        !           127:        insmod bios.o write=1
        !           128: 
        !           129: Writing is now possible with i.e.
        !           130:    dd if=yourbios.bin of=/dev/bios bs=128k count=1
        !           131: or 
        !           132:    dd if=yourbios.bin of=/dev/bios bs=256k count=1
        !           133: 
        !           134: depending on the size of your flash chip.
        !           135: 
        !           136: You can use 'cat' for flashing as well. Note: Many flashchips are
        !           137: sectored and the whole sector has to be rewritten, the 4k clusters
        !           138: of cat may be very slow (and an 112 kb sector has to be written 28
        !           139: times completely instead of 1 time with dd)
        !           140: 
        !           141: Make sure that your file "yourbios.bin" is a valid bios image for
        !           142: your motherboard and that it is not pkzipped or exe-pkzipped.
        !           143: (Usually, a 128kb bios images consist of 112kb lha-compressed data,
        !           144: 2*4kb ESCD and DMI (PnP) Data and an 8 kb emergency boot block.)
        !           145: 
        !           146: Writing to /dev/bios does not work for many chips right now. Write
        !           147: accesses are ignored in this case. If you want an unsupported flash 
        !           148: rom supported, please mail me. 
        !           149: WARNING: Setting an unsupported chip to "supported" without changing
        !           150: the rest of the code will *very likely* destroy the contents of your 
        !           151: chip.
        !           152: 
        !           153: On machines with an AWARD bios you can test whether writing works
        !           154: safely by only deleting the ESCD/DMI memory on the flash chip.
        !           155: This data is rewritten by the bios when empty, corrupted or when
        !           156: you put in a new expansion device. In that case you should see a
        !           157: message stating "Updating ESCD" during the next boot.
        !           158: 
        !           159: Please have a close look at the size of your flash chip. For 128k 
        !           160: flash chips, try
        !           161: 
        !           162:        dd if=/dev/zero of=/dev/bios bs=4096 seek=28 count=2
        !           163: 
        !           164: For 256k flash chips, you _MUST_ use the following line instead, 
        !           165: or your system bios is going byebye:
        !           166: 
        !           167:        dd if=/dev/zero of=/dev/bios bs=4096 seek=56 count=2
        !           168: 
        !           169: Attention: I found other machines with their ESCD memory in the
        !           170: first sectors of the flash chip. These are afaics 512k+ chips
        !           171: often connected via a firmware hub.
        !           172: Behaviour of other BIOSs may be similar, but I can't give you
        !           173: any warranty it works.
        !           174: 
        !           175: NOTE: If you listen to music from your soundcard while flashing,
        !           176: you may get errors like this:
        !           177:        Sound: DMA (output) timed out - IRQ/DRQ config error?
        !           178:        
        !           179: Second, sound switches off while flashing. This is because all
        !           180: IRQs are blocked while the write procedure to ensure it doesn't
        !           181: get disturbed by any other hardware.
        !           182: 
        !           183: 6. About PCI chipsets
        !           184: ----------------------
        !           185: 
        !           186: Because this driver uses direct PCI accesses to switch shadowing
        !           187: and write protection of the bios off on PC architecture, each PCI
        !           188: chipset (or at least chipset group) has to be implemented and 
        !           189: tested seperately. Successfully tested PCI chipsets are
        !           190: 
        !           191:        * Intel 430HX/TX, 440BX/ZX, 460, 8x0
        !           192:        * UMC 486 (8881F/8886A)
        !           193:        * VIA (M)VP3
        !           194:        * AMD Irongate and others
        !           195:        * ServerWorks chipsets
        !           196:        * NSC CS5530 (geode companion)
        !           197: 
        !           198: Any success/error reports are highly welcome. If you need a certain
        !           199: system type supported, contact me.
        !           200: 
        !           201: 
        !           202: 7. About APM Power Management (ix86 only)
        !           203: ------------------------------------------
        !           204: 
        !           205: This driver is known to cause kernel oopses with some of the chipset 
        !           206: drivers when APM is enabled. Reason is that the flash chip is mapped
        !           207: to the low bios address space which makes the unpacked bios image vanish
        !           208: so all pointers to APM functions are invalid. 
        !           209: Nowadays most of the chipset drivers only map the high bios area, so
        !           210: this problem should not occur on any but old UMC/SiS chipsets. If you
        !           211: encounter oopses while reading/probing flash devices, disable power 
        !           212: management before any write attempts. To achieve so, please pass "apm=off" 
        !           213: as a kernel option, if your kernel is compiled with APM support.
        !           214: 
        !           215: 
        !           216: 
        !           217: 8. About different flashchips
        !           218: ------------------------------
        !           219: 
        !           220: Flash chips, /dev/bios has been successfully tested (writing) on:
        !           221: 
        !           222:        * Winbond 29EE011
        !           223:         * Intel 28F008(SA)
        !           224:        * Atmel AT29C512
        !           225:        * SST 29EE010, 39SF020
        !           226: 
        !           227: It *should* work, if you see a "Supported: yes"  in /proc/bios, but 
        !           228: I am not responsible in any way for what you do.. Please be careful.
        !           229: Please report any working flash chips so that this list can be completed.
        !           230: Currently many more flash chips than mentioned here will work.
        !           231: If you need a certain flash device supported, contact me.
        !           232: 
        !           233: 9. Hints for BIOS-Flashing
        !           234: ---------------------------
        !           235: 
        !           236: * Always try to write to the ESCD/DMI Memory before you overwrite the rest
        !           237:   of a bios (ix86) If you get ANY errors in dmesg output, DO NOT CONTINUE!
        !           238: * Always "diff" the new bios with the written image before rebooting
        !           239: * You may use comp, a little utility in the devbios source tree instead
        !           240:   of diff. It has a nicer output for binary files.
        !           241: * on Intel, only write the first 120k of an image to the System ROM, this keeps
        !           242:   the emergency bootblock working.
        !           243: 
        !           244: ************** FINAL NOTE *****************************
        !           245: 
        !           246: If you want to help this project, send me 
        !           247: 
        !           248:  * /proc/bios-output
        !           249:  * dmesg-output (after insmodding the driver)
        !           250:  * your system-configuration 
        !           251:    (e.g. output of lspci or /proc/bus/pci/devices)
        !           252:  * any comments
        !           253:  * any ideas
        !           254: 
        !           255:                        Stefan Reinauer <[email protected]>
        !           256: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.