Ok. I've been looking at the kernel source for a bit, and come up with a
couple ideas how to do this. I wanted to run it by you guys to see if this
is the "right way."
I'm guessing I'm gonna need to write the address where I WANT the bios to
show up in the PCIR_BIOS register. The problem is, how do I get that addr.
Do I:
/* Alloc 4k region */
/* XXX should I use kmem_alloc_nofault? */
addr = kmem_alloc(kernel_map, PAGE_SIZE);
/* Get physical addr */
/* XXX do I need this? */
paddr = vtophys(addr);
/* Enable BIOS */
pci_write_config(dev, PCIR_BIOS, paddr | PCIM_BIOS_ENABLE);
Will this work? I haven't tried it yet, but it sure looks like it's the
wrong way to do it. It seems like as soon as I access the addr, i.e.:
value = *addr;
it will cause a fault to occur and have a page of physical memory attached
(& zero'd ??) and my read will return from the memory, instead of the bios.
Is that what will happen here?
- Steve
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]On Behalf Of Steve Shoecraft
Sent: Tuesday, December 12, 2000 2:02 AM
To: [EMAIL PROTECTED]
Subject: Accessing the Video Bios on a PCI card??
I have a ATI rage 128 all-in-blunder agp card. I'm currently writing a
driver for video capture. I got everything to work properly so far, but I'm
using "plugged-in" values for certain things that REQUIRE I get them from
the video bios on the card (multimedia table, tv-out table, etc.). The
sample source that ATI doles out directly accesses the 0xC000-0xC800 region
to get the info (the example is a linux implementation). This will only
work if the card is the primary adapter. If it's not, another way must be
found. No matter what, I still don't want to do that, as it seems "cheesy."
I've tried using the pci_read_config(dev, PCIR_BIOS, 4) command to get the
base of the card's video bios, but it comes up empty.
Ok, so, how do I get the address of the video bios of the card? I've tried
writing to the PCIR_BIOS register with the BIOS_ENABLE bit, but I'm pretty
sure that's to SET the (physical) address of the video bios. I need to GET
it. Any ideas? Suggestions?
- Steve
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message