[ECOS] PCI arbiter settings

Jonathan Larmour jifl@eCosCentric.com
Fri Aug 1 00:32:00 GMT 2003


Nick Garnett wrote:
>>Also I see BAR[0] contains 0 but sebsequent base address registers do not. I
>>do see a code snippet in function cyg_pci_get_device_info as follows:
>>// No reason to scan beyond first inactive BAR.
>>     if (bar == 0) {
>>  dev_info->num_bars = i;
>>  break;
>>     }
>>This code does not care about sebsequent BARs if BAR[0] is zero and that is
>>the case here. That leaves dev_info.base_map[] uninitialised which creates
>>problem later. I don't know what exactly is problem. Kindly look at the
>>dumped message and let me know where to find the problem.
> 
> 
> I thought you had moved past this by temporarily commenting that test
> out. I thought we were looking for a different problem.
> 
> However, that's not a permanent solution since the PCI spec says that
> during configuration the end of the active BARs is marked by a zero
> BAR. I'm not sure what the consequences of reading BARs beyond that
> would be. 

Hmm... according to <http://bugs.ecos.sourceware.org/show_bug.cgi?id=55891>:

"in the function cyg_pci_get_device_info the probe function stops when an
inactive bar is found. This is not right. It free to choose any of the
BAR's to use in the hardware so all 6 BARS have to be scanned. (see PCI-
spec Revision 2.2 page 204)"

This may not be the problem right in this case... I just notice what you 
say doesn't agree with what's quoted above with page ref.

Jifl
-- 
eCosCentric    http://www.eCosCentric.com/    The eCos and RedBoot experts
--[ "You can complain because roses have thorns, or you ]--
--[  can rejoice because thorns have roses." -Lincoln   ]-- Opinions==mine


-- 
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss



More information about the Ecos-discuss mailing list