Messages in this thread | | | Date | Thu, 12 Dec 2002 10:54:14 -0500 (EST) | From | "Richard B. Johnson" <> | Subject | Re: Linux 2.5.51 |
| |
On 12 Dec 2002, Eric W. Biederman wrote:
> James Simmons <jsimmons@infradead.org> writes: > > > Unfortunely ATI doesn't like to release info on what needs to be done to > > initialize without frimware. I really wish this was the case. I did see > > email back about someone getting a mach64 card working without firmware. > > They used a bus analysiser to do this. I will see what kind of patches I > > can dig up. > > Thanks. > > Eric
The XFree people should know about this. Also, all the PCI/AGP interface video boards, including those on motherboards, have an internal BIOS that is sucked out of the board and written to RAM at C0000 -> C8000 anyway. This stuff is visible from Linux and can be disassembled by copying it to a file, then going to VM86 mode DOS and disassembling with many kinds of real-mode DOS tools. Since this is the real-mode BIOS that replaces the INT 0x10 default BIOS, all the function calls are known, and tracing what registers they touch (and how) becomes a simple "time-sink". Not hard, but just takes time.
Example of what's visible to Linux (this is an old Number 9 card).
000C0000 55 AA 40 E9 16 16 37 34-30 30 00 00 00 00 00 00 U.@...7400...... 000C0010 00 00 00 00 00 00 00 00-10 02 00 00 00 00 49 42 ..............IB 000C0020 4D 20 56 47 41 20 43 6F-6D 70 61 74 69 62 6C 65 M VGA Compatible 000C0030 20 42 49 4F 53 2E 20 00-BB 66 F0 01 9F 01 F0 09 BIOS. ..f...... 000C0040 09 FF 00 02 4E 75 6D 62-65 72 20 4E 69 6E 65 20 ....Number Nine 000C0050 56 69 73 75 61 6C 20 54-65 63 68 6E 6F 6C 6F 67 Visual Technolog 000C0060 79 20 20 20 20 20 20 20-20 20 20 39 46 58 20 4D y 9FX M 000C0070 6F 74 69 6F 6E 20 37 37-31 20 20 20 20 20 20 20 otion 771 000C0080 20 20 20 0E 20 4C 65 74-20 69 74 20 62 65 20 36 . Let it be 6 000C0090 38 2E 2E 2E 00 28 63 29-31 39 39 35 20 4E 75 6D 8....(c)1995 Num 000C00A0 62 65 72 20 4E 69 6E 65-20 56 69 73 75 61 6C 20 ber Nine Visual 000C00B0 54 65 63 68 6E 6F 6C 6F-67 79 20 43 6F 72 70 2E Technology Corp. 000C00C0 0D 0A 41 6C 6C 20 52 69-67 68 74 73 20 52 65 73 ..All Rights Res 000C00D0 65 72 76 65 64 0D 0A 00-23 39 2D 39 36 38 20 42 erved...#9-968 B 000C00E0 49 4F 53 20 56 65 72 73-69 6F 6E 20 32 2E 34 35 IOS Version 2.45 000C00F0 2E 31 35 0D 0A 00 28 63-29 31 39 39 35 20 53 33 .15...(c)1995 S3
The POST routine starts executing at offset 3. 0xaa55 is the signature, the 0x40 byte is the number of 512-byte blocks to checksum (32,768 bytes), and the initialization code follows. It just takes time. Everything you need to know is in that 32,768 bytes.
Cheers, Dick Johnson Penguin : Linux version 2.4.18 on an i686 machine (797.90 BogoMips). Why is the government concerned about the lunatic fringe? Think about it.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |