Subject: Re: access to external proms for PCI
To: Garrett D'Amore <garrett_damore@tadpole.com>
From: Allen Briggs <briggs@netbsd.org>
List: tech-kern
Date: 12/17/2005 14:51:56
On Fri, Dec 16, 2005 at 09:13:53PM -0800, Garrett D'Amore wrote:
> There is a 3rd behavior, which I think is the *correct* behavior, and
> what I would like to do is change the PCI configuration code to do this
> by default:
>
> * ROMs disabled by default, but left with address space assigned
> (i.e. the addresses are assigned, but the decoder is left disabled).
I think this is a reasonable change. We started off with #1 (the really
bad idea) and found that it was ... a really bad idea and switched to #2
since there was, at the time, no reason to eat the address space for
ROMs that were not being enabled/used.
> So, to get this "correct" behavior, I'd change the code so that
>
> PCI_CONF_MAP_ROM means to actually *map* the ROMs. (I.e. no behavior
> change.)
>
> Having this bit clear would still assign address space, but would not
> enable the decoder.
>
> If someone feels there is a case for leaving the ROM mapped and enabled,
> then I can create a new bit, say PCI_CONF_ENABLE_ROM, that actually
> enables the ROM.
Actually, I'd kind of rather see:
PCI_CONF_MAP_ROM maps but does not enable the ROM
PCI_CONF_ENABLE_ROM implies PCI_CONF_MAP_ROM and also enables
the space
clear Neither maps or enables the ROM
Right now, we kind of have PCI_CONF_MAP_ROM implying PCI_CONF_ENABLE_ROM
in that we enable anything we map. The new flag would simply tune the
enable bit in setup_memwins().
I'd be happy to make the change. I'm chiefly at fault for the pci
configuration code there.
-allen
--
Use NetBSD! http://www.NetBSD.org/