Re: New kernel API for ROMs
From: Jon Smirl <hidden>
Date: 2004-08-07 14:59:30
Maximum size of a standard PCI ROM is 128KB. On non-x86 platforms the code will pick the length up from the size of the PCI window. That window has no limit. On the other hand, map_rom_copy is only called by the device driver for a board that has minimal PCI decoding. The PCI spec allows the address decoding for something like the ROM and framebuffer to be shared. A few vendors have implemented this and the result is that you can't read the ROM and framebuffer at the same time. This is why you need to make the copy. We only know of a couple PCI boards that have implemented this. This memory is not performance critical and can be swapped, is there a better way to allocate it?
--- Geert Uytterhoeven <geert@linux-m68k.org> wrote:
On Fri, 6 Aug 2004, Jon Smirl wrote:quoted
This patch provides a new kernel API for access ROMs from device drivers. If you're working on a driver that uses the ROM (mostvideoquoted
drivers) please give this patch a try and send some feedback/bugs. pci_map_rom() - map the rom and provide virtual address,transparentlyquoted
return shadow/copy if needed. Normal drivers call this pci_map_rom_copy() - same as pci_map_rom except the ROM willcopied,quoted
future reads of ROM will use copy. Hardware with minimal decodingcallsquoted
use this pci_unmap_rom() - release the ioremap if there is one The ROMs also appear in sysfs and you can use hexdump to see them. If the Radeon ROM is all FFFF. Load a radeon device driver and itwillquoted
appear. Radeon cards have a bug that loading the driver will fix.quoted
+unsigned char * +pci_map_rom_copy(struct pci_dev *dev, size_t *size) { + struct resource *res = &dev->resource[PCI_ROM_RESOURCE]; + unsigned char *rom; + + rom = pci_map_rom(dev, size); + if (!rom) + return NULL; + + if (res->flags & (PCI_ROM_COPY | PCI_ROM_SHADOW)) + return rom; + + res->start = (unsigned long)kmalloc(*size, GFP_KERNEL);What's the maximum size of a PCI ROM? Larger than kmalloc() can handle? Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds ------------------------------------------------------- This SF.Net email is sponsored by OSTG. Have you noticed the changes on Linux.com, ITManagersJournal and NewsForge in the past few weeks? Now, one more big change to announce. We are now OSTG- Open Source Technology Group. Come see the changes on the new OSTG site. www.ostg.com -- _______________________________________________ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
===== Jon Smirl jonsmirl@yahoo.com __________________________________ Do you Yahoo!? New and Improved Yahoo! Mail - 100MB free storage! http://promotions.yahoo.com/new_mail ------------------------------------------------------- This SF.Net email is sponsored by OSTG. Have you noticed the changes on Linux.com, ITManagersJournal and NewsForge in the past few weeks? Now, one more big change to announce. We are now OSTG- Open Source Technology Group. Come see the changes on the new OSTG site. www.ostg.com