From: Wolfgang Denk <wd@denx.de>
To: Antonio Di Bacco <antonio.dibacco@aruba.it>
Cc: linuxppc-embedded@ozlabs.org
Subject: Re: 8xx spi completion sometime doesn't generate an interrupt
Date: Fri, 02 Jun 2006 22:45:40 +0200 [thread overview]
Message-ID: <20060602204540.BE50D353A57@atlas.denx.de> (raw)
In-Reply-To: Your message of "Fri, 02 Jun 2006 17:08:48 +0200." <200606021708.48814.antonio.dibacco@aruba.it>
In message <200606021708.48814.antonio.dibacco@aruba.it> you wrote:
> As far I understood the spi bus device of mpc8xx works independently from the
> attached device (in my case a dataflash m25pe80). Thus I don't understand why
> sometime when I start an SPI transfer I don't receive an interrupt for the
> completion of this operation. I wait 50 ms for this interrupt and sometime it
> doesn't happen. Anyone had a similar problem?
Yes, this is known problem, especially if you are runnign the SPI bus
with higher data transfer rates and/or high CPM load. Check the FSL
knowledge base; it contains pretty clear statements about what SPI is
*not* designed for - especially, it was not designed for any high-
bandwidth data transfers.
See for example FAQ-8992:
The physical clocking speed of the SPI can be up to 12 MHz.
However, it only has a 16-bit holding register. Thus, the 12
Mbit/sec rate can only be sustained for 16 bits. If you need
to transmit more than 2-bytes of data at that clocking rate,
you must put the data into separate BDs and set the data
length to 2 and set the L bit in each BD. If you are using a
character length of 16-bits, the maximum clocking rate is 3.1
Mbit/sec. If you are using a character length of 8 bits, the
maximum is 500 Kbits/sec. Note that 500 Kbits/sec is the
maximum throughput when no other peripherals (SCCs, SMCs) are
being used. Load on those peripherals will further reduce the
maximum data rate through the SPI. See the question in the
SCC area related to maximum data rate calculations.
Ok, this was for a 25 MHz (?) 68360 so you get somewhat better rates
with an 8xx at higher CPU/CPM clocks - but the problem is essentially
still present.
See also FAQ-10566. And especially FAQ-10335, which comes to a point:
The SPI data rate is based upon the load of the CPM. The SPI
was not designed to be a high-bandwidth channel. It can run
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
very quickly for bursts of up to 16-bits. But the peripheral
has no FIFO and low priority in the MPC860 and thus you
cannot burst lots of data quickly through the interface.
Been there before, and yes, we've been bitten, too. No way to fix.
Best regards,
Wolfgang Denk
--
Software Engineering: Embedded and Realtime Systems, Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
In a business, marketroids, salespukes, and lawyers have different
goals from those who actually do work and produce something. Usually,
is is the former who triumph over the latter, due to the simple rule
that those who print the money make the rules.
-- Tom Christiansen in <5jdcls$b04$2@csnews.cs.colorado.edu>
next prev parent reply other threads:[~2006-06-02 20:45 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-06-02 15:08 8xx spi completion sometime doesn't generate an interrupt Antonio Di Bacco
2006-06-02 20:45 ` Wolfgang Denk [this message]
2006-06-02 22:21 ` Antonio Di Bacco
2006-06-03 0:51 ` Wolfgang Denk
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20060602204540.BE50D353A57@atlas.denx.de \
--to=wd@denx.de \
--cc=antonio.dibacco@aruba.it \
--cc=linuxppc-embedded@ozlabs.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox