Re: [Linux-fbdev-devel] Re: Generic VESA framebuffer driver and Video card BOOT?
From: Pavel Machek <hidden>
Date: 2004-10-20 19:12:55
Also in:
linux-fbdev
Hi!
quoted
quoted
quoted
pushl $0 # Kill any dangerous flags popfl movl real_magic - wakeup_code, %eax cmpl $0x12345678, %eax jne bogus_real_magic testl $1, video_flags - wakeup_code jz 1f lcall $0xc000,$3The call to 0xC000:0x0003 is the entry point to POST the card. However for PCI cards you need to make sure that AX is loaded with the bus, slot and function for the card that is being POST'ed. It will pass this value to the PCI BIOS Int 0x1A functions in order to find itself, so if this is not set many BIOS'es will not work.Ok, this one is bad... ... In case of just one vga adapter, we should be able to store its parameters in some well-known place. For more than one adapter, we'll definitely need to run BIOS in emulator.Yes. If you are running this in real mode you don't have any option but to use the BIOS emulator. If you are running in protected mode and using vm86() style service, the 0xC0000 memory is just memory and can be re- written. For instance on Linux you can map 0xC0000 into your process address space as copy on write, which then allows you to re-write the BIOS image for a secondary controller and then restore it when you are done.
One more question: Does 0xc0000 POST method work even on notebooks? On regular machines, PCI card must have normal bios and stuff is easy. On notebooks there was talk about "integrated bios" where it really has no video bios at all and system bios POSTs the card. Have you seen that? Pavel -- People were complaining that M$ turns users into beta-testers... ...jr ghea gurz vagb qrirybcref, naq gurl frrz gb yvxr vg gung jnl!