public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Jon Smirl <jonsmirl@yahoo.com>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Greg KH <greg@kroah.com>, Jesse Barnes <jbarnes@engr.sgi.com>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Martin Mares <mj@ucw.cz>,
	linux-pci@atrey.karlin.mff.cuni.cz,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Petr Vandrovec <VANDROVE@vc.cvut.cz>
Subject: Re: [PATCH] add PCI ROMs to sysfs
Date: Thu, 12 Aug 2004 13:28:08 -0700 (PDT)	[thread overview]
Message-ID: <20040812202808.19586.qmail@web14928.mail.yahoo.com> (raw)
In-Reply-To: <1092311491.21995.19.camel@localhost.localdomain>

--- Alan Cox <alan@lxorguk.ukuu.org.uk> wrote:

> On Iau, 2004-08-12 at 00:31, Jon Smirl wrote:
> > How are we supposed to implement this without a copy? Once the
> device
> > driver is loaded there is never a safe way access the ROM again
> because
> > an interrupt or another CPU might use the PCI decoders to access
> the
> > other hardware and disrupt the ROM read. You have to copy the ROM
> when
> > the driver says it is safe.
> 
> It's never safe essentially. The only way you can make it safe for
> this
> case is to put the knowledge in the device driver for that specific
> card
> rather than sysfs.

I added these two calls to the pci API just for the case of partially
decoded hardware. The device driver for the hardware needs to make
these calls.

unsigned char *pci_map_rom_copy(struct pci_dev *dev, size_t *size);

Call this one from the driver when it is safe to read the ROM. It will
copy it and then provide a virtual address so that you can read it. The
copy is stored in the kernel so that the sysfs attribute will work
right.

void pci_remove_rom(struct pci_dev *dev);

Call this one from the driver to simply remove the ROM attribute.

Before the driver is loaded we have to assume that it safe to read the
ROM normally and the sysfs attribute will directly access the ROM.


unsigned char *pci_map_rom(struct pci_dev *dev, size_t *size);

For normal hardware that implements full decoding use this call. It
will automatically sort out the need to use the real ROM or a shadow
copy.

void pci_unmap_rom(struct pci_dev *dev, unsigned char *rom);

When you are done with a mapping use this

Normal ROMs do not make copies. The only time a copy happens is when a
device driver for a partially decoded device calls pci_map_rom_copy().

=====
Jon Smirl
jonsmirl@yahoo.com


		
__________________________________
Do you Yahoo!?
New and Improved Yahoo! Mail - Send 10MB messages!
http://promotions.yahoo.com/new_mail 

  reply	other threads:[~2004-08-12 20:29 UTC|newest]

Thread overview: 110+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-07-30 21:09 [PATCH] add PCI ROMs to sysfs Jesse Barnes
2004-07-30 21:29 ` Greg KH
2004-07-30 21:34   ` Jesse Barnes
2004-07-30 21:39     ` Greg KH
2004-07-30 21:48     ` Jesse Barnes
2004-07-30 22:15     ` Jon Smirl
2004-07-31 15:59       ` Jesse Barnes
2004-08-02 17:02         ` Jesse Barnes
2004-08-02 17:29           ` Jon Smirl
2004-08-02 21:00           ` Jon Smirl
2004-08-02 21:05             ` Jesse Barnes
2004-08-02 23:32               ` Alan Cox
2004-08-02 23:30           ` Alan Cox
2004-08-03  2:03             ` Jesse Barnes
2004-08-03  2:32               ` Jon Smirl
2004-08-03 17:07                 ` Jesse Barnes
2004-08-03 21:19               ` Jon Smirl
2004-08-03 21:28                 ` Jesse Barnes
2004-08-03 21:30                   ` Jesse Barnes
2004-08-03 21:31                   ` Martin Mares
2004-08-03 21:36                     ` Jon Smirl
2004-08-03 21:39                       ` Martin Mares
2004-08-04  6:00                         ` lspci and ROM on bridge, was: " Jon Smirl
2004-08-04 16:04                           ` Martin Mares
2004-08-05  5:05                         ` Jon Smirl
2004-08-05  5:41                           ` Benjamin Herrenschmidt
2004-08-05 11:53                             ` Jon Smirl
2004-08-05 15:54                           ` Jesse Barnes
2004-08-05 16:25                             ` Jesse Barnes
2004-08-05 20:45                               ` Jon Smirl
2004-08-05 21:12                                 ` Jesse Barnes
2004-08-06 21:14                                   ` Jon Smirl
2004-08-06 22:33                                     ` Jesse Barnes
2004-08-11 17:04                                     ` Jesse Barnes
2004-08-11 17:28                                       ` Greg KH
2004-08-11 18:02                                         ` Jesse Barnes
2004-08-11 18:12                                           ` Greg KH
2004-08-12  1:28                                             ` Marcelo Tosatti
2004-08-12 14:38                                               ` Jesse Barnes
2004-08-12 17:29                                               ` Greg KH
2004-08-12  2:25                                             ` Miles Bader
2004-08-12  4:38                                               ` Greg KH
2004-08-12  9:18                                                 ` Geert Uytterhoeven
2004-08-12 22:01                                                 ` Matthew Wilcox
2004-08-11 19:24                                         ` Jon Smirl
2004-08-11 19:44                                           ` Jesse Barnes
2004-08-11 20:11                                           ` Alan Cox
2004-08-11 23:31                                             ` Jon Smirl
2004-08-12 11:51                                               ` Alan Cox
2004-08-12 20:28                                                 ` Jon Smirl [this message]
2004-08-12  0:45                                         ` Jon Smirl
2004-08-12  4:37                                           ` Greg KH
2004-08-04  6:08           ` Jon Smirl
2004-08-04 15:56             ` Jesse Barnes
2004-07-30 21:53   ` Jon Smirl
2004-07-31 10:03     ` Vojtech Pavlik
2004-07-31 13:28       ` Jon Smirl
2004-07-31 15:42         ` Greg KH
  -- strict thread matches above, loose matches on Subject: below --
2004-08-04 15:57 Petr Vandrovec
2004-08-04 17:06 ` Jesse Barnes
2004-08-05  1:38   ` Jon Smirl
2004-08-11 23:27 Pallipadi, Venkatesh
2004-08-12  0:22 ` Jon Smirl
2004-08-12  2:22 ` Jon Smirl
2004-08-13 18:17   ` Martin Mares
2004-08-14  5:34     ` Jon Smirl
2004-08-14  9:47       ` Martin Mares
2004-08-14 14:17         ` Jon Smirl
2004-08-14 22:10           ` Martin Mares
2004-08-14 23:39             ` Jon Smirl
2004-08-18 18:13             ` Jon Smirl
2004-08-18 18:37               ` Jesse Barnes
2004-08-23 22:51                 ` Greg KH
2004-08-25 17:32                   ` Jon Smirl
2004-08-25 17:42                     ` Greg KH
2004-08-25 18:06                       ` Jon Smirl
2004-08-25 18:19                         ` Greg KH
2004-08-25 18:45                           ` Jon Smirl
2004-08-25 18:55                             ` Greg KH
2004-08-25 20:06                               ` Jon Smirl
2004-08-26 13:13                                 ` Matthew Wilcox
2004-08-26 15:40                                   ` Jon Smirl
2004-08-26 15:58                                     ` Matthew Wilcox
2004-08-26 19:54                                       ` Jon Smirl
2004-08-28 16:15                                         ` Matthew Wilcox
2004-08-28 17:33                                           ` Jon Smirl
2004-08-28 17:38                                           ` Jon Smirl
2004-08-27 16:43                                       ` Matthew Wilcox
2004-08-27 22:29                                         ` Jon Smirl
2004-08-28 16:35                                           ` Matthew Wilcox
2004-08-28 21:53                                             ` Grant Grundler
2004-08-25 18:29                         ` Matthew Wilcox
2004-08-19 12:51               ` Alan Cox
2004-08-19 23:00                 ` Jon Smirl
2004-08-19 14:01               ` Martin Mares
2004-08-19 23:11                 ` Jon Smirl
2004-08-20 10:26                   ` Martin Mares
2004-08-25 15:36               ` Matthew Wilcox
2004-08-25 15:50                 ` Jon Smirl
2004-08-12  8:39 Thomas Winischhofer
2004-08-29  4:58 Jon Smirl
2004-09-03  1:40 Jon Smirl
2004-09-03 17:27 ` Jesse Barnes
2004-09-03 17:45   ` Jesse Barnes
2004-09-03 18:06     ` Jesse Barnes
2004-09-08  3:15 Jon Smirl
2004-09-08  6:07 ` Greg KH
2004-09-08 23:50 ` Greg KH
2004-10-08  2:20   ` Jon Smirl
2004-11-05 23:06     ` Greg KH

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20040812202808.19586.qmail@web14928.mail.yahoo.com \
    --to=jonsmirl@yahoo.com \
    --cc=VANDROVE@vc.cvut.cz \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=benh@kernel.crashing.org \
    --cc=greg@kroah.com \
    --cc=jbarnes@engr.sgi.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@atrey.karlin.mff.cuni.cz \
    --cc=mj@ucw.cz \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox