public inbox for ecos-devel@sourceware.org
 help / color / mirror / Atom feed
From: Sergei Gavrikov <sergei.gavrikov@gmail.com>
To: John Dallaway <john@dallaway.org.uk>
Cc: eCos development list <ecos-devel@ecos.sourceware.org>
Subject: Re: LPC2xxx internal flash driver
Date: Tue, 22 Feb 2011 19:19:00 -0000	[thread overview]
Message-ID: <alpine.DEB.2.00.1102222007140.17562@sg-laptop> (raw)
In-Reply-To: <alpine.DEB.2.00.1102221457390.26506@sg-desktop.belvok.com>

> John Dallaway wrote:
>
> > I note that Hans Rosenfeld's LPC2xxx flash driver package
> > (CYGPKG_DEVS_FLASH_ARM_LPC2XXX) is not referenced by any target at
> > present. There are 7 LPC2xxx targets which could potentially make use of
> > this hardware package. Can you see any reason why we should not add the
> > package to the various LPC2xxx target definitions in ecos.db (including
> > your own contributed ports)?

Sergei Gavrikov wrote:

> As far as I can recall the driver was not CDLized much (it was designed
> only for lpc22xx parts in a mind (i.e. for its internal flash geometry:
> 8x8K + 2x64K + 8x8K and it manages only those last eight 8K sectors).
> It seems to me it was implemented before a merge with flashv2 code. I
> recall that I played with the driver in RedBoot on Olimex LPC-H2294
> header board, but, I have to re-test it with nowadays CVS stuff. I will
> try to do it this evening and let you know. However, I think that driver
> can be used on olpch2294, olpcl2294, olpce2294 and phycore229x targets
> when eCos legacy flash API is used.

Now, after testing, I can say, There is a pitfall, - "Flash legacy API
vs. flash v2 API". The Hans Rosenfeld's driver uses flash v1 API, so, it
is not possible to add CYGPKG_DEVS_FLASH_ARM_LPC2XXX package for Uwe's
target (phycore229x):

C CYGHWR_IO_FLASH_DEVICE_LEGACY, "requires" constraint not satisfied:
CYGHWR_IO_FLASH_DEVICE_LEGACY <= 1

user should remove then existing flash v1 packages:

    package -hardware CYGPKG_DEVS_FLASH_AMD_AM29XXXXX current ;
    package -hardware CYGPKG_DEVS_FLASH_PHYCORE229X current ;

The olpc*2294 targets by default use flash v2 API, and we would add the
CYGPKG_DEVS_FLASH_ARM_LPC2XXX package for those target templates, but,
unfortunately, strata flash drivers are used there do implement CDL
interface CYGHWR_IO_FLASH_BLOCK_LOCKING and the Hans driver does not,
so, I got a compile error about undefined flash_{un,}lock_block().
Workaround is either to remove the strata parts

    package -hardware CYGPKG_DEVS_FLASH_STRATA_V2 current ;
    package -hardware CYGPKG_DEVS_FLASH_ARM_OLPCX2294_V2 current ;

or add "fake" implementations to the Hans driver:

    int flash_lock_block() { return FLASH_ERR_OK; }
    int flash_unlock_block() { return FLASH_ERR_OK; }

NOTE: in fact, a few writes to internal lpc2xxx flash will "lock" that
block (sector) and NXP IAP "prepare sector" command "unlocks" the block
(sector), but, IMO, that is extra logic in that simple driver.

Well, what can I say. I would avoid addition 'flash_arm_lpc2xxx' package
by default for mentioned targets in ecos.db, but, this is my view only.
Perhaps, I missed something and if Andrew is on the list, he can correct
me on the "v1/v2 mix" issue.

Regards,
Sergei

  reply	other threads:[~2011-02-22 19:19 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-22 12:13 John Dallaway
2011-02-22 13:03 ` Sergei Gavrikov
2011-02-22 19:19   ` Sergei Gavrikov [this message]
2011-02-23  8:50     ` John Dallaway

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=alpine.DEB.2.00.1102222007140.17562@sg-laptop \
    --to=sergei.gavrikov@gmail.com \
    --cc=ecos-devel@ecos.sourceware.org \
    --cc=john@dallaway.org.uk \
    /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 read-only IMAP folder(s) and NNTP newsgroup(s).