All of lore.kernel.org
 help / color / mirror / Atom feed
From: "M8 (Servaes Joordens)" <Servaes.Joordens@m8.nl>
To: David Woodhouse <dwmw2@infradead.org>,
	mtd-forum <linux-mtd@lists.infradead.org>
Subject: Re: bank switching
Date: Fri, 02 Nov 2007 10:30:16 +0100	[thread overview]
Message-ID: <472AEE28.9030103@m8.nl> (raw)
In-Reply-To: <1193749064.2915.169.camel@shinybook.infradead.org>

David Woodhouse wrote:
> On Mon, 2007-10-29 at 17:14 +0100, M8 (Servaes Joordens) wrote:
>   
>> I use the blackfin embedded uClinux environment. I want to change a 
>> flash chip-driver to support all four memory banks which are available. 
>> Right now, I have a driver which supports 1 memory bank of 2MB. I want 
>> to be able to use the other three memory banks also 2-4Mb, 4-6MB and 6-8MB.
>>
>> Memory bank selection is done by using general io pf4 and pf5. For 
>> instance: when  pf4 is enabled and pf5 is disabled I am writing in the 
>> region 2-4MB.
>>
>> What would be the correct way to change the chip driver? Do you have a 
>> template or tutorial on bank switching?
>>
>> The driver I want to change is: cfi_cmdset_0001.c
>>     
>
> No, that's the "chip driver". What you need to provide is a "map driver"
> which enables physical access (read/write cycles) to the flash device in
> question.
>
> See the MTD_COMPLEX_MAPPINGS config option, which turns simple things
> like 'read word' and 'write word' into out-of-line function calls in
> your map driver. And see the map drivers which do this already, like
> maps/sbc_gxx.c
>
>   
Now I enabled the MTD_COMPLEX_MAPPINGS. I changed the code in
map_funcs.c for the bank switching, but I get a problem with my ext2
partition in RAM. The RAM memory has another memory mapping (of course).
In what file should I make the changes?
I use the following files:
- mtd/cmdlinepart.c
- mtd/chips/cfi_probe.c
- mtd/chips/cfi_cmdset_0001.c
- mtd/maps/uclinux.c (for the root fs in RAM)
- mtd/maps/physmap.c (for the flash_memory)
- mtd/maps/map_funcs.c

My idea is:
- I change the call to simple_map_init(xxx) in physmap.c to
my_simple_map_init(xxx)
- I add the bank-switching routines in physmap.c and link them via
my_simple_map_init(xxx)

Is this the correct way to do it?




-- 

Servaes Joordens

-------------------------------------------
M8
Tappersweg 29
2031ET	Haarlem
The Netherlands
Tel:	+31 23 5311122
Mob:	+31 6 51183379
Fax:	+31 23 5322388

VAT-ID: nl-813029090B01
kvk:	34131430 Haarlem

      reply	other threads:[~2007-11-02  9:30 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-10-29 16:14 bank switching M8 (Servaes Joordens)
2007-10-30 12:57 ` David Woodhouse
2007-11-02  9:30   ` M8 (Servaes Joordens) [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=472AEE28.9030103@m8.nl \
    --to=servaes.joordens@m8.nl \
    --cc=dwmw2@infradead.org \
    --cc=linux-mtd@lists.infradead.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.