I've got a few more questions that I could probably figure out answers to by testing, but hopefully it's easier just to ask:
* If a device is defined in the dts, but disabled during phase4_enable_disable which renders the device hidden, what will/should v3 do?
* If another device appears where the disabled device should have been (in this case, the ide controller is now where sata used to be), what should happen? Will the ide controller's config (that was intended for another location) be used? In this case, it's D10F0 and F1.
* phase4_enable_disable passes the actual device it's enabling/disabling, right?
* What's the format of devfn (as in dev->path.pci.devfn)? dev << 4 | function?
Thanks! Corey
On Thu, Oct 23, 2008 at 5:30 PM, Corey Osgood corey.osgood@gmail.com wrote:
I've got a few more questions that I could probably figure out answers to by testing, but hopefully it's easier just to ask:
- If a device is defined in the dts, but disabled during
phase4_enable_disable which renders the device hidden, what will/should v3 do?
the device should end up not even being found. marc felt that phase4_enable_disable was ill-defined and we are working on making this clearer.
- If another device appears where the disabled device should have been (in
this case, the ide controller is now where sata used to be), what should happen? Will the ide controller's config (that was intended for another location) be used? In this case, it's D10F0 and F1.
It should not because the devid and vendor id should not match.
- phase4_enable_disable passes the actual device it's enabling/disabling,
right?
yes.
- What's the format of devfn (as in dev->path.pci.devfn)? dev << 4 |
function?
dev <<3 | fn
ron
On Thu, Oct 23, 2008 at 9:04 PM, ron minnich rminnich@gmail.com wrote:
On Thu, Oct 23, 2008 at 5:30 PM, Corey Osgood corey.osgood@gmail.com wrote:
I've got a few more questions that I could probably figure out answers to
by
testing, but hopefully it's easier just to ask:
- If a device is defined in the dts, but disabled during
phase4_enable_disable which renders the device hidden, what will/should
v3
do?
the device should end up not even being found. marc felt that phase4_enable_disable was ill-defined and we are working on making this clearer.
Alright, but what happens after that? coreboot dies with loud warning messages, or moves on to the next device?
- If another device appears where the disabled device should have been
(in
this case, the ide controller is now where sata used to be), what should happen? Will the ide controller's config (that was intended for another location) be used? In this case, it's D10F0 and F1.
It should not because the devid and vendor id should not match.
Let me try to clarify that: if the sata controller at d10f0 disappears, and the ide controller moves from d10f1 to d10f0 (and maintains its original vendor/dev ids), will the dts configuration that was intended for the ide controller at d10f1 be used? If not, could the ide controller and sata controller both be configured for d10f0, with the sata controller set to disabled?
Thanks! Corey
- phase4_enable_disable passes the actual device it's enabling/disabling,
right?
yes.
- What's the format of devfn (as in dev->path.pci.devfn)? dev << 4 |
function?
dev <<3 | fn
ron
Corey Osgood wrote:
if the sata controller at d10f0 disappears, and the ide controller moves from d10f1 to d10f0 (and maintains its original vendor/dev ids)
Should we now look at PCI hotplug?
//Peter
On Thu, Oct 23, 2008 at 6:13 PM, Corey Osgood corey.osgood@gmail.com wrote:
Let me try to clarify that: if the sata controller at d10f0 disappears, and the ide controller moves from d10f1 to d10f0 (and maintains its original vendor/dev ids), will the dts configuration that was intended for the ide controller at d10f1 be used? If not, could the ide controller and sata controller both be configured for d10f0, with the sata controller set to disabled?
If you are doing things that change what device will be visible at a given devfn, they should actually probably be done in phase 2.
ron
ron minnich wrote:
On Thu, Oct 23, 2008 at 5:30 PM, Corey Osgood corey.osgood@gmail.com wrote:
I've got a few more questions that I could probably figure out answers to by testing, but hopefully it's easier just to ask:
- If a device is defined in the dts, but disabled during
phase4_enable_disable which renders the device hidden, what will/should v3 do?
the device should end up not even being found. marc felt that phase4_enable_disable was ill-defined and we are working on making this clearer.
It will not be enabled or given resources because the device was not found. The scan code scans the hardware and then matches against the device tree to get the correct enable and resource allocation functions. In the dts it will not have dev->enabled set. (at least that is how I think it goes....)
Marc
Thanks for all the answers! One more problem, I've got to "know" how much vga memory to allocate from two different device drivers. If I have the vga memory size in the dts for one device, and then from the other device, do dev_find_device() to find the first one, can I access its dts info? Or, is there any reason not to move vga memory size to Kconfig?
Corey Osgood wrote:
Or, is there any reason not to move vga memory size to Kconfig?
I agree, graphics memory size when sizable should be in Kconfig!
//Peter
On Sun, Oct 26, 2008 at 1:35 AM, Peter Stuge peter@stuge.se wrote:
Corey Osgood wrote:
Or, is there any reason not to move vga memory size to Kconfig?
I agree, graphics memory size when sizable should be in Kconfig!
Will do!
-Corey