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

Wolfgang Denk wd at denx.de
Wed Mar 19 00:51:11 CET 2008


Dear John,

in message <B9639434CFA424438117913649CDB78704C52A5D at MA_EXCHANGE.corp.sds.l-3com.com> 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. 

Be careful. The user manual is one thing, and the implementation in a
specific piece of code (like U-Boot, or Linux, or another  OS)  is  a
completely different and often unrelated thing.

> Does the kernel "Linux Kilauea 2.6.23-gc96cdd1f #1" dated "Fri Jan 11

Why would you want to use that ole kernel? The current one which  you
can   find   at  ftp://ftp.denx.de/pub/linux/images/amcc/kilauea/  is
version 2.6.25-rc5-01207-g66b3fa2 - I recommend to use this one (or
build your own from the sources).

> 17:39:36 CET 2008 ppc unknown" provide a device file descriptor for the
> EBC that I may use with mmap() ?  

EBC is a bus control interface. Many different  devices  with  pretty
muchdifferent  characteristics  can  be  attached  to  it. You cannot
simmply "mmap()" such an interface. You need device drivers for  each
of the devices that are attached to the EBC.

> Initially I'd like to be able to read the EBC address space from core.  

What exactly do you mean by "core" ? Linux kernel space?

> What has to change if that EBC space needs to be relocated to a
> different region or enlarged?

Could you pleasse explain what you are trying to do? This question
doesn't make sense to me.

> Then I want to initiate a DMA transfer from my user program such that
> the DMA controller reads some number of bytes from EBC space and writes
> them to a buffer in my user program.  Getting the right addresses into
> the DMA controller via DCR will be the next step after mapping the EBC
> space.  
> 
> 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.


More information about the eldk mailing list