From mboxrd@z Thu Jan 1 00:00:00 1970 From: thomas.petazzoni@free-electrons.com (Thomas Petazzoni) Date: Tue, 17 Jul 2012 15:28:26 +0200 Subject: [PATCH 1/8] ARM: support for Moschip MCS814x SoCs In-Reply-To: <201207171312.06987.arnd@arndb.de> References: <1342363754-30808-1-git-send-email-florian@openwrt.org> <201207161554.04812.arnd@arndb.de> <20120717121640.589780ce@skate> <201207171312.06987.arnd@arndb.de> Message-ID: <20120717152826.2bf75948@skate> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Hello, Thanks a lot for those details. Le Tue, 17 Jul 2012 13:12:06 +0000, Arnd Bergmann a ?crit : > > My understanding until now was that __raw_readl/__raw_writel should > > be used for accesses with native endianness, but apparently, it's > > more subtle than this. Would you mind expanding a bit on this? > > The __raw_* versions are basically only valid if you access a memory > buffer, such as a video framebuffer. They do the conversion of an > __iomem pointer into something that can be accessed by the compiler. > > The non-raw versions have fixed endianess, guarantee that the access > is done atomically (could be byte-wise otherwise) and that all the > necessary barriers are used to synchronize against DMA and > out-of-order execution. > > We don't actually have accessors that are CPU-endian and guarantee > that you can access an MMIO register properly. > > On powerpc, the convention is that readl/writel should only be used > to access PCI, but that is for the enhanced error handling, not for > endianess. And then, on PowerPC, which accessors do you use to access SoC-peripherals that are not on the PCI bus? For example, drivers/tty/serial/mpsc.c uses writel/readl, so a conversion to/from little-endian is done when writing/reading registers. Are those memory-mapped devices little-endian even though they are used on big-endian PowerPCs? I apologize for the silly questions, but I'm trying to make some sense out of these numerous I/O and memory accessors. Thanks, Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Petazzoni Subject: Re: [PATCH 1/8] ARM: support for Moschip MCS814x SoCs Date: Tue, 17 Jul 2012 15:28:26 +0200 Message-ID: <20120717152826.2bf75948@skate> References: <1342363754-30808-1-git-send-email-florian@openwrt.org> <201207161554.04812.arnd@arndb.de> <20120717121640.589780ce@skate> <201207171312.06987.arnd@arndb.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <201207171312.06987.arnd@arndb.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-arm-kernel-bounces@lists.infradead.org Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: Arnd Bergmann Cc: Mike Turquette , Linus Walleij , Florian Fainelli , olof@lixom.net, devicetree-discuss@lists.ozlabs.org, linux-arm-kernel@lists.infradead.org List-Id: devicetree@vger.kernel.org SGVsbG8sCgpUaGFua3MgYSBsb3QgZm9yIHRob3NlIGRldGFpbHMuCgpMZSBUdWUsIDE3IEp1bCAy MDEyIDEzOjEyOjA2ICswMDAwLApBcm5kIEJlcmdtYW5uIDxhcm5kQGFybmRiLmRlPiBhIMOpY3Jp dCA6Cgo+ID4gTXkgdW5kZXJzdGFuZGluZyB1bnRpbCBub3cgd2FzIHRoYXQgX19yYXdfcmVhZGwv X19yYXdfd3JpdGVsIHNob3VsZAo+ID4gYmUgdXNlZCBmb3IgYWNjZXNzZXMgd2l0aCBuYXRpdmUg ZW5kaWFubmVzcywgYnV0IGFwcGFyZW50bHksIGl0J3MKPiA+IG1vcmUgc3VidGxlIHRoYW4gdGhp cy4gV291bGQgeW91IG1pbmQgZXhwYW5kaW5nIGEgYml0IG9uIHRoaXM/Cj4gCj4gVGhlIF9fcmF3 XyogdmVyc2lvbnMgYXJlIGJhc2ljYWxseSBvbmx5IHZhbGlkIGlmIHlvdSBhY2Nlc3MgYSBtZW1v cnkKPiBidWZmZXIsIHN1Y2ggYXMgYSB2aWRlbyBmcmFtZWJ1ZmZlci4gVGhleSBkbyB0aGUgY29u dmVyc2lvbiBvZiBhbgo+IF9faW9tZW0gcG9pbnRlciBpbnRvIHNvbWV0aGluZyB0aGF0IGNhbiBi ZSBhY2Nlc3NlZCBieSB0aGUgY29tcGlsZXIuCj4gCj4gVGhlIG5vbi1yYXcgdmVyc2lvbnMgaGF2 ZSBmaXhlZCBlbmRpYW5lc3MsIGd1YXJhbnRlZSB0aGF0IHRoZSBhY2Nlc3MKPiBpcyBkb25lIGF0 b21pY2FsbHkgKGNvdWxkIGJlIGJ5dGUtd2lzZSBvdGhlcndpc2UpIGFuZCB0aGF0IGFsbCB0aGUK PiBuZWNlc3NhcnkgYmFycmllcnMgYXJlIHVzZWQgdG8gc3luY2hyb25pemUgYWdhaW5zdCBETUEg YW5kCj4gb3V0LW9mLW9yZGVyIGV4ZWN1dGlvbi4KPiAKPiBXZSBkb24ndCBhY3R1YWxseSBoYXZl IGFjY2Vzc29ycyB0aGF0IGFyZSBDUFUtZW5kaWFuIGFuZCBndWFyYW50ZWUKPiB0aGF0IHlvdSBj YW4gYWNjZXNzIGFuIE1NSU8gcmVnaXN0ZXIgcHJvcGVybHkuCj4gCj4gT24gcG93ZXJwYywgdGhl IGNvbnZlbnRpb24gaXMgdGhhdCByZWFkbC93cml0ZWwgc2hvdWxkIG9ubHkgYmUgdXNlZAo+IHRv IGFjY2VzcyBQQ0ksIGJ1dCB0aGF0IGlzIGZvciB0aGUgZW5oYW5jZWQgZXJyb3IgaGFuZGxpbmcs IG5vdCBmb3IKPiBlbmRpYW5lc3MuCgpBbmQgdGhlbiwgb24gUG93ZXJQQywgd2hpY2ggYWNjZXNz b3JzIGRvIHlvdSB1c2UgdG8gYWNjZXNzClNvQy1wZXJpcGhlcmFscyB0aGF0IGFyZSBub3Qgb24g dGhlIFBDSSBidXM/CgpGb3IgZXhhbXBsZSwgZHJpdmVycy90dHkvc2VyaWFsL21wc2MuYyB1c2Vz IHdyaXRlbC9yZWFkbCwgc28gYQpjb252ZXJzaW9uIHRvL2Zyb20gbGl0dGxlLWVuZGlhbiBpcyBk b25lIHdoZW4gd3JpdGluZy9yZWFkaW5nCnJlZ2lzdGVycy4gQXJlIHRob3NlIG1lbW9yeS1tYXBw ZWQgZGV2aWNlcyBsaXR0bGUtZW5kaWFuIGV2ZW4gdGhvdWdoCnRoZXkgYXJlIHVzZWQgb24gYmln LWVuZGlhbiBQb3dlclBDcz8KCkkgYXBvbG9naXplIGZvciB0aGUgc2lsbHkgcXVlc3Rpb25zLCBi dXQgSSdtIHRyeWluZyB0byBtYWtlIHNvbWUgc2Vuc2UKb3V0IG9mIHRoZXNlIG51bWVyb3VzIEkv TyBhbmQgbWVtb3J5IGFjY2Vzc29ycy4KClRoYW5rcywKClRob21hcwotLSAKVGhvbWFzIFBldGF6 em9uaSwgRnJlZSBFbGVjdHJvbnMKS2VybmVsLCBkcml2ZXJzLCByZWFsLXRpbWUgYW5kIGVtYmVk ZGVkIExpbnV4CmRldmVsb3BtZW50LCBjb25zdWx0aW5nLCB0cmFpbmluZyBhbmQgc3VwcG9ydC4K aHR0cDovL2ZyZWUtZWxlY3Ryb25zLmNvbQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJt LWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21h aWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=