All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Albrecht Dreß" <albrecht.dress@arcor.de>
To: linuxppc-dev@ozlabs.org
Subject: [Solved/Patch Question] Weird 5200/mtd-ram problem
Date: Wed, 27 May 2009 21:54:49 +0200	[thread overview]
Message-ID: <1243454097.3489.0@antares> (raw)
In-Reply-To: <20090525214718.GA8152@pengutronix.de> (from w.sang@pengutronix.de on Mon May 25 23:47:18 2009)

[-- Attachment #1: Type: text/plain, Size: 1612 bytes --]

Hi all:

Am 25.05.09 23:47 schrieb(en) Wolfram Sang:
>> A word or long copy of 0x0055aaff with U-Boot works fine, but a byte  
>> copy filled the whole ram with 0x0000aaaa.  The reason is apparently  
>> that the chip is attached to the local bus in 16-bit mode, which is  
>> incompatible with byte accesses.  However, the Local Bus doesn't  
>> provide "low byte" or "high byte" indicators in non-muxed mode.  How  
>> is this supposed to work then?
> 
> Hmm, as I feared... we were bitten by this, too:
> 
> http://thread.gmane.org/gmane.linux.drivers.mtd/21521
> 
> There is no generic solution yet :(

At least for my case, I could completely (afaict) solve the problem,  
i.e. I can now access the 16-bit nv ram as mtd char and block device,  
the latter with jffs2.  I would like to submit a patch, but I actually  
don't know exactly how...

The solution itself is quite simple: add a new method which works like  
memcpy_toio, but respects the fact that no single bytes may be written  
(reading through memcpy_fromio works painlessly).  I think this  
function should go into arch/powerpc/kernel/io.c, depending upon  
CONFIG_PPC_MPC52xx, and the prototype into  
arch/powerpc/include/asm/io.h, right?

The harder part is to actually call this function properly.  I now call  
it in include/linux/mtd/map.h, function inline_map_copy_to(), if  
CONFIG_PPC_MPC52xx is defined and if map->bankwidth is 2.  However, is  
it acceptable to have a processor-type dependency in a top-level  
include file?  Or what would be the proper way to implement it?

Thanks, Albrecht.

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

  reply	other threads:[~2009-05-27 19:55 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-20 14:13 Weird 5200/mtd-ram problem Albrecht Dreß
2009-05-20 14:23 ` Gary Thomas
2009-05-20 19:36   ` Albrecht Dreß
2009-05-20 19:59     ` Gary Thomas
2009-05-20 20:01 ` Wolfram Sang
2009-05-25 17:41   ` Albrecht Dreß
2009-05-25 18:11     ` Wolfgang Denk
2009-05-25 21:47     ` Wolfram Sang
2009-05-27 19:54       ` Albrecht Dreß [this message]
2009-05-28  3:10         ` [Solved/Patch Question] " Jon Smirl

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=1243454097.3489.0@antares \
    --to=albrecht.dress@arcor.de \
    --cc=linuxppc-dev@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.