Richard Smith schrieb:
On 12/28/05, Ronald G Minnich firstname.lastname@example.org wrote:
Christian Sühs wrote:
It seems that the content on 0x0c0000 is not the same as the vgabios Only the first (between Offset 0x00 and Offset 0x7f) words are the same. The rest differs from vgabios (Offset 0x80 - 0xFFFF). That is the reason why X detects a valid vga-Bios section on Offset 00 and 01 (55aa) and the rest fails.
Now, I will have a look why this happens. Any hint?
as ollie has mentioned, VGA bios are frequently self-modifying code. Once the system is up, you are looking at the code AFTER self-modification has happened.
Oh well, it isn't easy for me to explain, I guess I need a translator :D I will try it again in easy words.
Ok, the factory bios works well. Kernel 2.4.25 with epia-2 patch. I used viafb on booting, bootsplash works also. The whole system is loading into RAM. X works with via driver-modul.
X does not work with fbdev driver modul (system hangs without any errors). I think, that is a problem between kernel insided viafb and the fbdev driver, because the fbdev driver works on kernel insided vesafb and factory bios.
However, with LinuxBios the system runs as described before, but X does not work with via driver modul, the fbdev driver does not work, too.
via driver fails, because of the checksum errors. fbdev driver fails as described before. I have not tried it on vesafb, because vesafb does not work with Linuxbios
Runtime scenarios with Linuxbios:
1. same V_Bios --> different checksums after reboot, when starting X with via driver
2. changed V_Bios, i.e. Offset 2 or fill up with 00 vs. FF --> different checksums and more or less failures, when starting X (via)
and so on.
Problem is, that parts of Video Rom between 0xc0000 - 0xd0000 are overwritten under Linuxbios. The overwritten part offsets are always the same, but it seems, the content changed (a little)
I guess I misread. I though he indicated that large areas of the code that was supposed to be 0xff was not.
It works with the factory bios but does not with linuxbios. Yes? So if thats the case then the self-modification is probally not the problem. Also it shouldn't change checksums from run to run.
Is it possible to diff the contents of 0xc0000-0x0d0000 under both the factory and linux bios? I think you may have said that you have to use different copy of the video bios for linuxbios?
I have not done this, for now. I will make a dd as soon as possible and diff it to the original V-Bios, when using the factory bios.
However, I have done this on my host machine, and the part between c0000 - d0000 looks like the original.
Grrrr... We really need to get this stuff going under the emulator to make it easier to figure out whats up.
-- Richard A. Smith