All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jon Smirl <jonsmirl@yahoo.com>
To: Martin Mares <mj@ucw.cz>
Cc: "Pallipadi, Venkatesh" <venkatesh.pallipadi@intel.com>,
	Greg KH <greg@kroah.com>, Jesse Barnes <jbarnes@engr.sgi.com>,
	linux-pci@atrey.karlin.mff.cuni.cz,
	Alan Cox <alan@lxorguk.ukuu.org.uk>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Petr Vandrovec <VANDROVE@vc.cvut.cz>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>
Subject: Re: [PATCH] add PCI ROMs to sysfs
Date: Sat, 14 Aug 2004 07:17:05 -0700 (PDT)	[thread overview]
Message-ID: <20040814141705.43723.qmail@web14930.mail.yahoo.com> (raw)
In-Reply-To: <20040814094700.GA662@ucw.cz>

--- Martin Mares <mj@ucw.cz> wrote:
> Hello!
> 
> > I removed the call to pci_assign_resource(). The sysfs attribute
> code
> > builds the attributes before the pci subsystem is fully
> initialized.
> > specifically before arch pcibios_init() has been called. If
> > pci_assign_resource() is called for the ROM before pcibios_init()
> the
> > kernel's resource maps have not been built yet. This will result in
> the
> > ROM being assigned a location on top of the framebuffer; as soon as
> it
> > is enabled the system will lock. Right now the code relies on the
> BIOS
> > getting the ROM address set up right. If we can figure out how to
> > initialize the sysfs attributes after pcibios_init() then I can put
> the
> > assign call back.
> 
> If I understand correctly, you don't need that. Just don't map the
> ROM before somebody explicitly requests it -- be it either some 
> driver or sysfs. In both cases, the PCI subsystem is already 
> initialized.

That's why it works right now without the assign_resource. The BIOS has
already set everything up.

> > I think the decoder sharing problem is being blown out of
> proportion
> > there are very few boards with this problem.
> 
> Yes, but it's no excuse for writing code which triggers these
> problems if there is an easy way how to do that more safely.

The code that accesses the ROM runs very early, before anything else is
loaded. The only conflict I can think of is from the on-board BIOS of a
disk cotroller with partial decoding. But I'm not sure if a care like
that exists.

If a card like this exists, I need to make the code use the BIOS SHADOW
copy of the ROM.

> 
> > Also, one card I have has a 256MB PCI window over a 48KB ROM. If I
> use
> > the window size instead of true size for a copy I would waste a lot
> of
> > memory.
> 
> BTW, if the card doesn't share decoders, is there any need to create
> a copy of the ROM? If not, no memory gets wasted.

The copy is triggered manually by the device driver with partial
decoding. When the driver loads loads and it is safe to access the ROM,
call pci_map_rom_copy() this will trigger the copy. Alternatively it
can call pci_rom_remove() which will remove the rom sysfs attribute.

Normal hardware needs to do nothing. If a normal device driver wants to
access the ROM call pci_map_rom(). This will automatically return the
actual ROM or the BIOS shadow copy as needed.

There are two times the ROM can get copied:
1) manually when a driver knows it has partial PCI decoding and calls
pci_map_rom_copy()
2) By the system BIOS. PC system BIOS' automatically shadow all of the
roms located from C0000 to 1000000 into RAM. If this copy exists I use
it.

The system shadow copy is one of the main motivators for this code. On
some laptop the system and video ROMs are compressed. On these systems
the boot ROM decompresses these ROM into the shadow memory at
C0000-100000.


> 
> 				Have a nice fortnight
> -- 
> Martin `MJ' Mares   <mj@ucw.cz>  
> http://atrey.karlin.mff.cuni.cz/~mj/
> Faculty of Math and Physics, Charles University, Prague, Czech Rep.,
> Earth
> How an engineer writes a program: Start by debugging an empty file...
> 


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


		
__________________________________
Do you Yahoo!?
Yahoo! Mail - 50x more storage than other providers!
http://promotions.yahoo.com/new_mail

  reply	other threads:[~2004-08-14 14:17 UTC|newest]

Thread overview: 108+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-08-11 23:27 [PATCH] add PCI ROMs to sysfs 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 [this message]
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
  -- strict thread matches above, loose matches on Subject: below --
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
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-08-29  4:58 Jon Smirl
2004-08-12  8:39 Thomas Winischhofer
2004-08-04 15:57 Petr Vandrovec
2004-08-04 17:06 ` Jesse Barnes
2004-08-05  1:38   ` Jon Smirl
2004-07-30 21:09 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-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
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

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=20040814141705.43723.qmail@web14930.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 \
    --cc=venkatesh.pallipadi@intel.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.