* MPC8555CDS & CCSRBAR
@ 2005-08-09 14:04 Eric Kampman
2005-08-09 14:15 ` Gerhard Jaeger
0 siblings, 1 reply; 5+ messages in thread
From: Eric Kampman @ 2005-08-09 14:04 UTC (permalink / raw)
To: linuxppc-embedded
Trying to port an SEC driver to Linux/PPC8555. Reading
the default CCSRBAR @ 0xFF700000 I read 0xFFFFFFFF
which is wrong. Looking at Metrowerks init files and
uboot code (1.1.2) I see it's likely been moved to
0xE0000000, but I get a seg fault when I try to read
there.
So, what am I doing wrong, and even better, how do I
at runtime find out where CCSRBAR is? Thanks in
advance, and please forgive the likely ignorance,
Eric
____________________________________________________
Start your day with Yahoo! - make it your home page
http://www.yahoo.com/r/hs
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: MPC8555CDS & CCSRBAR
2005-08-09 14:04 MPC8555CDS & CCSRBAR Eric Kampman
@ 2005-08-09 14:15 ` Gerhard Jaeger
2005-08-09 14:33 ` Kumar Gala
2005-08-09 15:53 ` Clemens Koller
0 siblings, 2 replies; 5+ messages in thread
From: Gerhard Jaeger @ 2005-08-09 14:15 UTC (permalink / raw)
To: linuxppc-embedded; +Cc: Eric Kampman
On Tuesday 09 August 2005 16:04, Eric Kampman wrote:
> Trying to port an SEC driver to Linux/PPC8555. Reading
> the default CCSRBAR @ 0xFF700000 I read 0xFFFFFFFF
> which is wrong. Looking at Metrowerks init files and
> uboot code (1.1.2) I see it's likely been moved to
> 0xE0000000, but I get a seg fault when I try to read
> there.
>
> So, what am I doing wrong, and even better, how do I
> at runtime find out where CCSRBAR is? Thanks in
> advance, and please forgive the likely ignorance,
>
> Eric
>
use the get_ccsrbar() function to get the address, then ioremap()
will be your friend ;)
HTH
Gerhard
--
Gerhard Jaeger <gjaeger@sysgo.com>
SYSGO AG Embedded and Real-Time Software
www.sysgo.com | www.elinos.com | www.pikeos.com | www.osek.de
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: MPC8555CDS & CCSRBAR
2005-08-09 14:15 ` Gerhard Jaeger
@ 2005-08-09 14:33 ` Kumar Gala
2005-08-09 15:53 ` Clemens Koller
1 sibling, 0 replies; 5+ messages in thread
From: Kumar Gala @ 2005-08-09 14:33 UTC (permalink / raw)
To: Gerhard Jaeger; +Cc: Eric Kampman, linuxppc-embedded
On Aug 9, 2005, at 9:15 AM, Gerhard Jaeger wrote:
> On Tuesday 09 August 2005 16:04, Eric Kampman wrote:
>
>> Trying to port an SEC driver to Linux/PPC8555. Reading
>> the default CCSRBAR @ 0xFF700000 I read 0xFFFFFFFF
>> which is wrong. Looking at Metrowerks init files and
>> uboot code (1.1.2) I see it's likely been moved to
>> 0xE0000000, but I get a seg fault when I try to read
>> there.
>>
>> So, what am I doing wrong, and even better, how do I
>> at runtime find out where CCSRBAR is? Thanks in
>> advance, and please forgive the likely ignorance,
>>
>> Eric
>>
>>
>
> use the get_ccsrbar() function to get the address, then ioremap()
> will be your friend ;)
Depending on the kernel version you might want to use the driver
model instead. There is an entry for the security engine which will
give you the physical address to ioremap and the interrupt number to
use. Doing this will be more portable. However, this is only in
newer 2.6 kernels.
- kumar
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: MPC8555CDS & CCSRBAR
2005-08-09 14:15 ` Gerhard Jaeger
2005-08-09 14:33 ` Kumar Gala
@ 2005-08-09 15:53 ` Clemens Koller
2005-08-09 16:04 ` Kim Phillips
1 sibling, 1 reply; 5+ messages in thread
From: Clemens Koller @ 2005-08-09 15:53 UTC (permalink / raw)
To: Gerhard Jaeger; +Cc: Eric Kampman, linuxppc-embedded
Hi!
You might want to try that:
#include <asm/mpc85xx.h>
#include <immap_85xx.h> /* see mail archives for complete mpc8540 version */
...
void foo(void)
{
volatile ccsr_t *immap;
phys_addr_t ccsrbar;
ccsrbar=get_ccsrbar();
immap=ioremap(ccsrbar,sizeof(ccsr_t)); /* is ioremap_nochache() the same on mpc85xx? */
if (!immap) {
printk(KERN_ALERT "Failed to ioremap CCSRBAR!\n");
err = -EIO;
goto out;
}
/* examples */
printk(KERN_INFO "CCSRBAR addr %.8lx\n",ccsrbar);
printk(KERN_INFO "IMMAP addr %p\n",immap);
printk(KERN_INFO "BR0 %.8x\n",immap->im_lbc.br0);
printk(KERN_INFO "OR0 %.8x\n",immap->im_lbc.or0);
/* unmap the ccsr*/
iounmap(immap);
out:
}
I hope that's all current code.
Comments are welcome.
Greets,
Clemens Koller
_______________________________
R&D Imaging Devices
Anagramm GmbH
Rupert-Mayer-Str. 45/1
81379 Muenchen
Germany
http://www.anagramm.de
Phone: +49-89-741518-50
Fax: +49-89-741518-19
Gerhard Jaeger wrote:
> On Tuesday 09 August 2005 16:04, Eric Kampman wrote:
>
>>Trying to port an SEC driver to Linux/PPC8555. Reading
>>the default CCSRBAR @ 0xFF700000 I read 0xFFFFFFFF
>>which is wrong. Looking at Metrowerks init files and
>>uboot code (1.1.2) I see it's likely been moved to
>>0xE0000000, but I get a seg fault when I try to read
>>there.
>>
>>So, what am I doing wrong, and even better, how do I
>>at runtime find out where CCSRBAR is? Thanks in
>>advance, and please forgive the likely ignorance,
>>
>>Eric
>>
>
>
> use the get_ccsrbar() function to get the address, then ioremap()
> will be your friend ;)
>
> HTH
> Gerhard
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: MPC8555CDS & CCSRBAR
2005-08-09 15:53 ` Clemens Koller
@ 2005-08-09 16:04 ` Kim Phillips
0 siblings, 0 replies; 5+ messages in thread
From: Kim Phillips @ 2005-08-09 16:04 UTC (permalink / raw)
To: Clemens Koller; +Cc: linuxppc-embedded, erickampman
or this...
static int sec_probe(struct device *device)
{
struct platform_device *pdev = to_platform_device(device);
struct resource *r;
sec_irq = platform_get_irq(pdev, 0);
rc = request_irq(sc->sc_irq, talitos_intr, 0, "talitos", sc);
if (rc) {
printk("failed to hook irq %d\n", sec_irq);
sec_irq = -1;
goto out;
}
/* we read its hardware registers as memory */
r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
sec_base_addr = (ocf_iomem_t) ioremap(r->start, (r->end - r->start));
if (!sec_base_addr) {
printk("failed to ioremap 0x%x-0x%x\n",
(u32)r->start, (u32)r->end - (u32)r->start);
goto out;
}
...
}
Kim
On Tue, 09 Aug 2005 17:53:42 +0200
Clemens Koller <clemens.koller@anagramm.de> wrote:
> Hi!
>
> You might want to try that:
>
> #include <asm/mpc85xx.h>
> #include <immap_85xx.h> /* see mail archives for complete mpc8540 version */
> ...
>
> void foo(void)
> {
> volatile ccsr_t *immap;
> phys_addr_t ccsrbar;
>
> ccsrbar=get_ccsrbar();
> immap=ioremap(ccsrbar,sizeof(ccsr_t)); /* is ioremap_nochache() the same on mpc85xx? */
> if (!immap) {
> printk(KERN_ALERT "Failed to ioremap CCSRBAR!\n");
> err = -EIO;
> goto out;
> }
>
> /* examples */
> printk(KERN_INFO "CCSRBAR addr %.8lx\n",ccsrbar);
> printk(KERN_INFO "IMMAP addr %p\n",immap);
> printk(KERN_INFO "BR0 %.8x\n",immap->im_lbc.br0);
> printk(KERN_INFO "OR0 %.8x\n",immap->im_lbc.or0);
>
> /* unmap the ccsr*/
> iounmap(immap);
> out:
> }
>
> I hope that's all current code.
> Comments are welcome.
>
> Greets,
>
> Clemens Koller
> _______________________________
> R&D Imaging Devices
> Anagramm GmbH
> Rupert-Mayer-Str. 45/1
> 81379 Muenchen
> Germany
>
> http://www.anagramm.de
> Phone: +49-89-741518-50
> Fax: +49-89-741518-19
>
>
> Gerhard Jaeger wrote:
> > On Tuesday 09 August 2005 16:04, Eric Kampman wrote:
> >
> >>Trying to port an SEC driver to Linux/PPC8555. Reading
> >>the default CCSRBAR @ 0xFF700000 I read 0xFFFFFFFF
> >>which is wrong. Looking at Metrowerks init files and
> >>uboot code (1.1.2) I see it's likely been moved to
> >>0xE0000000, but I get a seg fault when I try to read
> >>there.
> >>
> >>So, what am I doing wrong, and even better, how do I
> >>at runtime find out where CCSRBAR is? Thanks in
> >>advance, and please forgive the likely ignorance,
> >>
> >>Eric
> >>
> >
> >
> > use the get_ccsrbar() function to get the address, then ioremap()
> > will be your friend ;)
> >
> > HTH
> > Gerhard
>
> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
--
Kim
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2005-08-09 16:05 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-08-09 14:04 MPC8555CDS & CCSRBAR Eric Kampman
2005-08-09 14:15 ` Gerhard Jaeger
2005-08-09 14:33 ` Kumar Gala
2005-08-09 15:53 ` Clemens Koller
2005-08-09 16:04 ` Kim Phillips
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).