EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: vxworks BSP sysBusToLocalAdrs not support PCI space
From: Dirk Zimoch <[email protected]>
To: 王林 <[email protected]>
Cc: [email protected]
Date: Tue, 12 Apr 2011 14:30:59 +0200
If I was you I would modify the BSP to support PCI_SPACE_* in
sysBusToLocalAdrs().

You may try to ask WindRiver for an update of the BSP but I don't think
you will get much support for vxWorks 5.

However, I quickly checked vxWorks 6.7 and they still don't have PCI
support in sysBusToLocalAdrs() for mv5100.

Good luck!
Dirk

王林 wrote:
> Hi All,
> When I learn EPICS device support, I encounter a question about 
> PCI memory mapping on vxworks.
> In my vxworks5.5.1 BSP for mvme5100, there is no 
> sysPciToCpuAdrs function in sysLib.c, and the function sysBusToLocalAdrs 
> does not support PCI space, for example, the base address of universe II 
> bridge is got like this:
>  if (pciFindDevice ((PCI_ID_UNIVERSE & 0xFFFF),
>                         (PCI_ID_UNIVERSE >> 16) & 0xFFFF, 0,
>                         &pciBusNo, &pciDevNo, &pciFuncNo) != ERROR)
>         {
>         pciConfigInLong(pciBusNo, pciDevNo, pciFuncNo,
>                         PCI_CFG_BASE_ADDRESS_0,
>                          &univBaseAdrs);
>         if (univBaseAdrs & PCI_BAR_SPACE_IO)
>             {
>             univBaseAdrs = (univBaseAdrs & PCI_IOBASE_MASK) - 
> PCI_MSTR_IO_BUS
>                             + PCI_MSTR_IO_LOCAL;
>             }
>         else
>             {
>             univBaseAdrs = (univBaseAdrs & PCI_MEMBASE_MASK) - 
> PCI_MSTR_MEM_BUS
>                             + PCI_MSTR_MEM_LOCAL;
>             }
> While the BSP for mvme5500 and mvme6100 have such support,  the base 
> address of universe II bridge in mv5500  is got like this:
>     if (pciFindDevice ((PCI_ID_UNIVERSE & 0xFFFF),
>                 (PCI_ID_UNIVERSE >> 16) & 0xFFFF, 0,
>          &pciBusNo, &pciDevNo, &pciFuncNo) != ERROR)
>         {
>         pciConfigInLong(pciBusNo, pciDevNo, pciFuncNo,
>                         PCI_CFG_BASE_ADDRESS_0, &reg1);
>  
>         (void)sysBusToLocalAdrs (PCI_SPACE_MEM_PRI, (char *)reg1,
>                    &baseAddr);
>  
> So, if I use mvme5100 to access PCI or PMC devices, what should I do for 
> the memory mapping? Add or modify functions 
> like sysPciToCpuAdrs and  sysBusToLocalAdrs as in mv5500 and mv6100, or 
> calculate the address manually? Is your BSP for mvme5100 the same as 
> mine? If so, when you use mvme5100, how do you map the PCI address to 
> local CPU?
>  
> Thanks,
> Lin Wang


References:
vxworks BSP sysBusToLocalAdrs not support PCI space 王林

Navigate by Date:
Prev: RE: Alarm Handler Configuration Allison, Stephanie
Next: How to execute CSS/BOY directly in OPIruntime mode ? patard
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: vxworks BSP sysBusToLocalAdrs not support PCI space 王林
Next: Alarm Handler Configuration Keiko Ezawa
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 18 Nov 2013 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·