83xx GPIO/EXT int in arch/powerpc/
Marc Leeman
marc.leeman at gmail.com
Wed Jun 13 02:06:28 EST 2007
> I'm confused what you are comparing here, 3 seconds on arch=ppc vs
> over a minute on arch=powerpc?
Loading of a TI DSP over HPI. HPI is implemented in UPMB (programmed by
U-Boot); all that the kernel has to do is write to the in U-Boot
programmed location (0xe2400000) to trigger the UPMB HPI protocol.
> I'd expect the driver to be exactly the same (or close to it) for
> arch=ppc vs arch=powerpc.
Same here: there are a number of performance issues wrt to an older 8245
based implementation (network seems slower too) and this was not one I
expected while switching to powerpc.
> There shouldn't be, but if you are seeing this we really should
> figure out what's going on.
>
> What kernel is this on? What processor are you using?
$ cat /proc/cpuinfo
processor : 0
cpu : e300c1
clock : 396.000000MHz
revision : 1.1 (pvr 8083 0011)
bogomips : 131.28
timebase : 66000000
platform : BARCO834x SVC2
$ uname -a
Linux barco 2.6.21.1-barco1 #1 PREEMPT Tue Jun 12 09:48:12 CEST 2007 ppc unknown
The board is based on the FreeScale SYS/EMDS reference design.
Most of the HPI operations are stuff like this:
static inline int8_t _hpi_set_hhwil(uint8_t b)
{
volatile immap_t* im;
if(!(im = ioremap((immrbar),sizeof(struct immap)))){
return -EINVAL;
}
(b)?(im->gpio[0].dat |= HHWIL):(im->gpio[0].dat &= ~HHWIL);
iounmap(im);
return 0;
}
static inline uint32_t __hpi_read_hpid(void)
{
uint32_t returnval;
/* Program HPID */
_hpi_set_hcntl1(1);
_hpi_set_hcntl0(1);
/* first halfword */
_hpi_set_hhwil(0);
/* dummy read */
returnval = (((uint32_t)(*hpi_dsp))<<16);
/* delay */
udelay(1);
/* second halfword */
_hpi_set_hhwil(1);
/* dummy read */
returnval |= *hpi_dsp;
/* delay */
udelay(1);
return returnval;
}
The ioremap was certainly a bottleneck; and moving it to initialisation
with a global pointer got us from 60 secs back to around 1 sec, but the
a similar effect was obtained on the ppc arch with this change (this was
just making a bad situation to be hidden).
Even after this change; the load of a streaming application was
something of 40% on ppc and 60% on powerpc.
--
greetz, marc
I'm having sex with 3 hynerian donkeys. What does it look like i'm
doing?
Chiana - Crackers Don't Matter
chiana 2.6.18-4-ixp4xx #1 Tue Mar 27 18:01:56 BST 2007 GNU/Linux
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20070612/fe40494f/attachment.pgp>
More information about the Linuxppc-dev
mailing list