[ELDK] new developer for kilauea PPC405EX, EBC device?

Price, John @ SDS john.p.price at l-3com.com
Wed Mar 19 16:54:33 CET 2008


Thank you for your response Mike.

This sounds like the way I want to implement my solution, as you say a
"user-space driver paradigm".  

The address translation, interrupt assignment, interrupt handler,
signaling the interrupt from kernel space to user space.  All topics I'm
keenly interested in.

As I've told Wolfgang, I'd really just like to sit on the select() call
waiting for this device to go active in user space,then perform the
processing steps necessary for the active device, when done return to
calling select().

Regards,

---
John Price  <john.p.price at l-3com.com> 781-970-1743
L-3 Communications
Security & Detection Systems Division, 
10E Commerce Way, Woburn, MA 01801
 

-----Original Message-----
From: eldk-bounces at lists.denx.de [mailto:eldk-bounces at lists.denx.de] On
Behalf Of Michael Walton
Sent: Wednesday, March 19, 2008 2:40 AM
To: eldk at lists.denx.de
Subject: Re: [ELDK] new developer for kilauea PPC405EX, EBC device?

Hi John

Not to contradict Wolfgang's response in any way, but I do have an
additional comment:

We use the user-space driver paradigm extensively for our custom
drivers,
and to very good effect. We find that it simplifies debugging and also
improves integration since the driver is not confined to standard system
APIs (sockets, etc) and can therefore have an application-specific upper
API.

The basic methodology is as follows:
* develop a very lightweight kernel driver stub that gives user space
applications access to the device register space via mmap()
* the same kernel driver stub also hands off interrupts to a waiting
(possibly real-time) thread in the user space application
* all register access and interrupt handling is done by the main driver
in
user space

There are of course some finer points of address translation, latency,
interrupt acknowledgement and the like to take care of, but overall this
approach is both possible and highly effective. No doubt there are many
reasons NOT to do it this way, but it works for us!

Mike

> -----Original Message-----
> From: eldk-bounces at lists.denx.de [mailto:eldk-bounces at lists.denx.de]
On
> Behalf Of Wolfgang Denk
> Sent: Wednesday, March 19, 2008 1:51 AM
> To: Price, John @ SDS
> Cc: eldk at lists.denx.de
> Subject: Re: [ELDK] new developer for kilauea PPC405EX, EBC device?
> 
> Dear John,
> 
> in message
>
<B9639434CFA424438117913649CDB78704C52A5D at MA_EXCHANGE.corp.sds.l-3com.co
m>
> you wrote:
> >
> > Hi I am a new to this list and have just started development on a
> > project that will use the PPC405EX device.  Looking at the
kilauea405EX
> > user manual I see the EBC is mapped at 0x8000 0000.

...

> > Is it possible to do this through a user program or is this
> > functionality only possible through a device driver?
> 
> You cannot access the necessary registers from user  space,  and  you
> cannot process interrupts in user space. You will have to implement a
> real device driver for this.
> 
> Best regards,
> 
> Wolfgang Denk
> 
> --
> DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
> "I can call spirits from the vasty deep."
> "Why so can I, or so can any man; but will they come when you do call
> for them?"          - Shakespeare, 1 King Henry IV, Act III, Scene I.
> _______________________________________________
> eldk mailing list
> eldk at lists.denx.de
> http://lists.denx.de/mailman/listinfo/eldk

_______________________________________________
eldk mailing list
eldk at lists.denx.de
http://lists.denx.de/mailman/listinfo/eldk


More information about the eldk mailing list