* IDMA: Setting Up Parameter RAM.
@ 2000-05-25 6:02 Greg Johnson
2000-05-25 15:32 ` Richard Hendricks
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Greg Johnson @ 2000-05-25 6:02 UTC (permalink / raw)
To: Linux PPC Mailing List
Hi all,
I am having a little problem with IDMA parameter RAM on the 855T/860.
The problem is that when I set up the parameter RAM's DMA Channel
Mode Register, and the IDMA BD Base Address pointer, the CPM does not
appear to recognise these new values. I am quite confident that I
am setting up the ports etc for our board correctly. I shall elaborate.
When I power on our board, boot, load our driver for the hardware,
setup the IDMA/Parameter RAM/Buffer Descriptors and attempt to start
an IDMA transfer, nothing happens. (reloading driver and retries
do not work)
When I then hit the reset button (no power cycle) and go through the
same ritual, IDMA works fine.
The reason being is that values for the IDMA Parameter RAM DMA Channel
mode register (DCMR) and IDMA BD Base Address pointer (IBASE) that
were written in the first attempt on power-on are preserved in
DPRAM over the reboot. Why would these value apparently be written
in the first attempt, but appear not to be recognised by the CPM???
In addition, if I power on, and use the boot loader to program the
IDMA Parameter RAM DCMR and IBASE elements, then boot Linux, load
the driver and attempt a DMA operation, It all works fine. The
reason I don't want to be content with setting this information up
in the boot loader is that we want to be able to eventually allocate
and release buffer descriptors.
I suspect that I am not setting up something correctly that affects
the way that the Communications Processor responds to changes in the
Parameter RAM.
Can anyoue offer any clues/hints/guesses???
Thanks in advance.
Greg.
--
+------------------------------------------------------+
| Do you want to know more? www.geocities.com/worfsom/ |
| ..ooOO Greg Johnson OOoo.. |
| HW/SW Engineer gjohnson@research.canon.com.au |
| Canon Information Systems Research Australia (CISRA) |
| 1 Thomas Holt Dr., North Ryde, NSW, 2113, Australia |
| "I FLEXed my BISON and it went YACC!" - me. |
+------------------------------------------------------+
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: IDMA: Setting Up Parameter RAM.
2000-05-25 6:02 IDMA: Setting Up Parameter RAM Greg Johnson
@ 2000-05-25 15:32 ` Richard Hendricks
2000-05-25 23:20 ` Greg Johnson
2000-05-25 18:07 ` Steve Calfee
2000-05-26 2:12 ` Greg Johnson
2 siblings, 1 reply; 5+ messages in thread
From: Richard Hendricks @ 2000-05-25 15:32 UTC (permalink / raw)
To: Linux PPC Mailing List
Have you tried looking at the IDMA section in the MPC823 User's Manual?
An electronic copy of that portion is at
http://www.mot.com/SPS/ADC/pps/download/823/823RM/16-cpm2.pdf
Also, you could try the IDMA demo under Engineer's Toolbox at
http://www.mot.com/mpc823
It sounds to me like you're not executing the INIT_IDMA command after
setting up.
Greg Johnson wrote:
>
> Hi all,
>
> I am having a little problem with IDMA parameter RAM on the 855T/860.
> The problem is that when I set up the parameter RAM's DMA Channel
> Mode Register, and the IDMA BD Base Address pointer, the CPM does not
> appear to recognise these new values. I am quite confident that I
> am setting up the ports etc for our board correctly. I shall elaborate.
>
> When I power on our board, boot, load our driver for the hardware,
> setup the IDMA/Parameter RAM/Buffer Descriptors and attempt to start
> an IDMA transfer, nothing happens. (reloading driver and retries
> do not work)
>
> When I then hit the reset button (no power cycle) and go through the
> same ritual, IDMA works fine.
>
> The reason being is that values for the IDMA Parameter RAM DMA Channel
> mode register (DCMR) and IDMA BD Base Address pointer (IBASE) that
> were written in the first attempt on power-on are preserved in
> DPRAM over the reboot. Why would these value apparently be written
> in the first attempt, but appear not to be recognised by the CPM???
>
> In addition, if I power on, and use the boot loader to program the
> IDMA Parameter RAM DCMR and IBASE elements, then boot Linux, load
> the driver and attempt a DMA operation, It all works fine. The
> reason I don't want to be content with setting this information up
> in the boot loader is that we want to be able to eventually allocate
> and release buffer descriptors.
>
> I suspect that I am not setting up something correctly that affects
> the way that the Communications Processor responds to changes in the
> Parameter RAM.
>
> Can anyoue offer any clues/hints/guesses???
>
> Thanks in advance.
>
> Greg.
>
> --
> +------------------------------------------------------+
> | Do you want to know more? www.geocities.com/worfsom/ |
> | ..ooOO Greg Johnson OOoo.. |
> | HW/SW Engineer gjohnson@research.canon.com.au |
> | Canon Information Systems Research Australia (CISRA) |
> | 1 Thomas Holt Dr., North Ryde, NSW, 2113, Australia |
> | "I FLEXed my BISON and it went YACC!" - me. |
> +------------------------------------------------------+
>
--
MPC823 Applications Engineering Development
Get help from other MPC823 customers on the
comp.sys.powerpc.tech newsgroup!
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: IDMA: Setting Up Parameter RAM.
2000-05-25 6:02 IDMA: Setting Up Parameter RAM Greg Johnson
2000-05-25 15:32 ` Richard Hendricks
@ 2000-05-25 18:07 ` Steve Calfee
2000-05-26 2:12 ` Greg Johnson
2 siblings, 0 replies; 5+ messages in thread
From: Steve Calfee @ 2000-05-25 18:07 UTC (permalink / raw)
To: Greg Johnson; +Cc: linuxppc-embedded
At 04:02 PM 5/25/00 +1000, you wrote:
>Hi all,
>
>I am having a little problem with IDMA parameter RAM on the 855T/860.
>The problem is that when I set up the parameter RAM's DMA Channel
>Mode Register, and the IDMA BD Base Address pointer, the CPM does not
>appear to recognise these new values. I am quite confident that I
>am setting up the ports etc for our board correctly. I shall elaborate.
>
>When I power on our board, boot, load our driver for the hardware,
>setup the IDMA/Parameter RAM/Buffer Descriptors and attempt to start
>an IDMA transfer, nothing happens. (reloading driver and retries
>do not work)
>
>When I then hit the reset button (no power cycle) and go through the
>same ritual, IDMA works fine.
>
>The reason being is that values for the IDMA Parameter RAM DMA Channel
>mode register (DCMR) and IDMA BD Base Address pointer (IBASE) that
>were written in the first attempt on power-on are preserved in
>DPRAM over the reboot. Why would these value apparently be written
>in the first attempt, but appear not to be recognised by the CPM???
>
>In addition, if I power on, and use the boot loader to program the
>IDMA Parameter RAM DCMR and IBASE elements, then boot Linux, load
>the driver and attempt a DMA operation, It all works fine. The
>reason I don't want to be content with setting this information up
>in the boot loader is that we want to be able to eventually allocate
>and release buffer descriptors.
>
>I suspect that I am not setting up something correctly that affects
>the way that the Communications Processor responds to changes in the
>Parameter RAM.
>
>Can anyoue offer any clues/hints/guesses???
Check to make sure the addresses you feed the cpm are physical (not memory
mapped) addresses.
Regards, Steve
__________________________________________
Steve Calfee -- embedded systems consultant
calfee@home.com
cell phone: (510) 468-5837
Kerbango phone: (408) 517-3355
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: IDMA: Setting Up Parameter RAM.
2000-05-25 15:32 ` Richard Hendricks
@ 2000-05-25 23:20 ` Greg Johnson
0 siblings, 0 replies; 5+ messages in thread
From: Greg Johnson @ 2000-05-25 23:20 UTC (permalink / raw)
To: Richard Hendricks; +Cc: Linux PPC Mailing List
I have read the MPC860 Users manual section on IDMA, as well as many
other sections. I do indeed call INIT_IDMA after setting things up.
I have even tried calling it several times.
The strange thing is that after a power-on, no matter how many times
I reload the driver and attempt the proceedure, it does not work.
I write to the IDMA parameter RAM and read back to check it and it
looks fine. Upon starting IDMA by asserting DMA Enable, the CPM attempts
to do the IDMA but IDSR asserts OB (out of buffer descriptors). The buffers
have been allocated and set up, I am sure of this.
It is as though the values I am writing into the parameter RAM are
no taking effect, even though I call IDMA_INIT after writing them.
And the bizzar part is that they seem to take affect after a reset,
as though the reset causes them to be written into the CPM??? Like
I said, bizzar.
Greg.
Quoth Richard Hendricks:
>
>
> Have you tried looking at the IDMA section in the MPC823 User's Manual?
> An electronic copy of that portion is at
>
> http://www.mot.com/SPS/ADC/pps/download/823/823RM/16-cpm2.pdf
>
> Also, you could try the IDMA demo under Engineer's Toolbox at
> http://www.mot.com/mpc823
>
> It sounds to me like you're not executing the INIT_IDMA command after
> setting up.
--
+------------------------------------------------------+
| Do you want to know more? www.geocities.com/worfsom/ |
| ..ooOO Greg Johnson OOoo.. |
| HW/SW Engineer gjohnson@research.canon.com.au |
| Canon Information Systems Research Australia (CISRA) |
| 1 Thomas Holt Dr., North Ryde, NSW, 2113, Australia |
| "I FLEXed my BISON and it went YACC!" - me. |
+------------------------------------------------------+
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: IDMA: Setting Up Parameter RAM.
2000-05-25 6:02 IDMA: Setting Up Parameter RAM Greg Johnson
2000-05-25 15:32 ` Richard Hendricks
2000-05-25 18:07 ` Steve Calfee
@ 2000-05-26 2:12 ` Greg Johnson
2 siblings, 0 replies; 5+ messages in thread
From: Greg Johnson @ 2000-05-26 2:12 UTC (permalink / raw)
To: linuxppc-embedded
Hi all,
Found the source of my IDMA troubles, programmer error. I was inadvertently
clearing the CPM command register between setting up the IDMA INIT command
and setting the FLG bit.
Sorry to have bothered all. Thanks to those who replied.
Regards
Greg.
--
+------------------------------------------------------+
| Do you want to know more? www.geocities.com/worfsom/ |
| ..ooOO Greg Johnson OOoo.. |
| HW/SW Engineer gjohnson@research.canon.com.au |
| Canon Information Systems Research Australia (CISRA) |
| 1 Thomas Holt Dr., North Ryde, NSW, 2113, Australia |
| "I FLEXed my BISON and it went YACC!" - me. |
+------------------------------------------------------+
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2000-05-26 2:12 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2000-05-25 6:02 IDMA: Setting Up Parameter RAM Greg Johnson
2000-05-25 15:32 ` Richard Hendricks
2000-05-25 23:20 ` Greg Johnson
2000-05-25 18:07 ` Steve Calfee
2000-05-26 2:12 ` Greg Johnson
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).