All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michael Schwingen <rincewind@discworld.dascon.de>
To: u-boot@lists.denx.de
Subject: [U-Boot-Users] Mixing CFI and non-CFI flashs?
Date: Fri, 02 Nov 2007 21:53:26 +0100	[thread overview]
Message-ID: <472B8E46.7000808@discworld.dascon.de> (raw)

Hi,

I am currently porting u-boot to multiple IXP425-based boards that have 
accumulated here over the time. One of them has a slight problem, 
because it uses a combination of two flash roms:
 - one 8-bit SST 39VF020 boot flash on a 8-bit chip select as boot flash
 - one 16-bit Intel 64MBit flash on a 16-bit chip select.

The intel flash is CFI, while the SST flash is not.
I want to use both flash roms, and I want to use as much of the existing 
flash code as possible. It seems that when using the CFI code, there is 
no easy way to add  a non-CFI flash - right?

What would be the best way to use both flash roms? I have come up with:

(1) provide a hook in cfi_flash.c to insert hardcoded values into the 
flash_info structure for the non-CFI flash rom. Due to differences 
between CFI-AMD and non-CFI AMD flash command cycles, I need to  add a 
new commandset (eg. CFI_CMDSET_AMD_LEGACY) plus a bit of handler code.

(2) rename all external-visible functions in flash_cfi.c and add wrapper 
functions that call either the CFI code or my own code for the non-CFI 
flash. This has the disadvantage that I need to duplicate code that is 
already present in cfi_flash.c, but is not exported. I have ssen this 
done on one chip vendor's u-boot port, and it does not really look nice.

(3) extend the code in cfi_flash.c so that external functions can be 
added via function pointers for non-CFI flashs. Same disadvantage as (2).

I have implemented solution (1) now, and it seems to work quite well, 
with minimal code needed in the board-setup file, but maybe there are 
better ways to do this - comments?

cu
Michael

             reply	other threads:[~2007-11-02 20:53 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-11-02 20:53 Michael Schwingen [this message]
2007-11-03  7:13 ` [U-Boot-Users] Mixing CFI and non-CFI flashs? Stefan Roese
2007-11-03 15:00   ` Michael Schwingen
2007-11-05 11:21     ` Stefan Roese
2007-11-05 23:24       ` Michael Schwingen
2007-11-06  7:48         ` Stefan Roese
2007-11-06  8:26           ` Michael Schwingen
2007-11-06  8:59             ` Stefan Roese
2007-11-12 20:19               ` Michael Schwingen

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=472B8E46.7000808@discworld.dascon.de \
    --to=rincewind@discworld.dascon.de \
    --cc=u-boot@lists.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 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.