linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: David Hawkins <dwh@ovro.caltech.edu>
To: Stefan Roese <sr@denx.de>
Cc: linuxppc-embedded@ozlabs.org
Subject: Re: Yosemite/440EP why are readl()/ioread32() setup to read little-endian?
Date: Fri, 27 Jan 2006 15:29:14 -0800	[thread overview]
Message-ID: <43DAACCA.10603@ovro.caltech.edu> (raw)
In-Reply-To: <200601261120.48251.sr@denx.de>


Hey Stefan,

 >>readl() and ioread32() read the registers in little-endian format!
 >
 > Correct. That's how it is implemented on all platforms. Think for
 > example of an pci device driver. Using these IO functions, the
 > driver will become platform independent, running without
 > modifications on little- and big-endian machines.

I just stumbled across the section in Rubini 3rd Ed that mislead
me into believing that the readl()/writel() were machine endianness
dependent, i.e., LE on x86, BE on PPC.

p453 of his book has a PCI DMA example, where he uses the
cpu_to_le32() macros inside calls writel().

However, since these functions are internally implemented to
perform LE operations, this example appears to be incorrect.

Would you agree?

I just checked the Oreilly web site for errata's and this is not
listed. If you agree that the example is incorrect, then I'll
submit an errata.

Dave

      parent reply	other threads:[~2006-01-27 23:31 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-01-17  0:45 [Patch 3/3] Add Yellowstone Platform defconfig John Otken
2006-01-24 18:08 ` Yosemite/440EP why are readl()/ioread32() setup to read little-endian? David Hawkins
2006-01-24 19:07   ` Yosemite/440EP is there a global interrupt enable mask? David Hawkins
2006-01-25 10:28     ` Stefan Roese
2006-01-25 18:30       ` David Hawkins
2006-01-25 18:55         ` Eugene Surovegin
2006-01-25 19:46           ` David Hawkins
2006-01-25 20:13             ` Eugene Surovegin
2006-01-25 20:34               ` David Hawkins
2006-01-25  9:57   ` Yosemite/440EP why are readl()/ioread32() setup to read little-endian? Stefan Roese
2006-01-25 18:26     ` David Hawkins
2006-01-25 18:51       ` Eugene Surovegin
2006-01-25 19:36         ` David Hawkins
2006-01-25 19:48           ` Eugene Surovegin
2006-01-26 10:20           ` Stefan Roese
2006-01-27  0:10             ` David Hawkins
2006-01-27 23:29             ` David Hawkins [this message]

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=43DAACCA.10603@ovro.caltech.edu \
    --to=dwh@ovro.caltech.edu \
    --cc=linuxppc-embedded@ozlabs.org \
    --cc=sr@denx.de \
    /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;
as well as URLs for NNTP newsgroup(s).