public inbox for linux-mtd@lists.infradead.org
 help / color / mirror / Atom feed
From: Tobias Simon <tobias.simon@sp-ss.de>
To: linux-mtd@lists.infradead.org
Subject: Re: flashcp
Date: Thu, 19 Jul 2007 23:08:21 +0200	[thread overview]
Message-ID: <200707192308.21410.tobias.simon@sp-ss.de> (raw)
In-Reply-To: <20070719195635.GA27750@lazybastard.org>

Hello Jörn,

> 1. You're off-by-one when (filestat.st_size % mtd.erasesize) yields
> zero.
Oops, you're right!

> 2. In principle the "patch" looks fine.  Except that it should be a
> patch and probably follow kernel coding style or something similar.

--- mtd-utils-1.0.0/flashcp.c   2006-04-30 22:59:15.000000000 +0200
+++ mtd-utils-1.0.0_new/flashcp.c       2007-07-19 22:57:25.000000000 +0200
@@ -258,7 +258,14 @@
 #warning "Check for smaller erase regions"

    erase.start = 0;
-   erase.length = filestat.st_size & ~(mtd.erasesize - 1);
+
+   if (filestat.st_size % mtd.erasesize) {
+      erase.length = filestat.st_size + mtd.erasesize - (filestat.st_size % 
mtd.erasesize);
+   }
+   else {
+      erase.length = filestat.st_size;
+   }
+
    if (filestat.st_size % mtd.erasesize) erase.length += mtd.erasesize;
    if (flags & FLAG_VERBOSE)
         {

> 3. I keep wondering whether the oddball erasesize of dataflash makes
> sense.  Why did they pick 1056, the exact size of two 512 Byte nand
> pages with the standard 16 Bytes of OOB each?  Could they need ECC as
> well and should the "spare" 32 bytes be used for that instead?
The standard page/erase-size of the AT45DB642x Dataflash we use 
(http://www.atmel.com/dyn/resources/prod_documents/doc3542.pdf) is 1056.
Although it is configurable to 1024 by software, the atmel_mtd.c driver 
(linux-2.6.21) uses 1056 as the erase size. The driver itself is full of odd 
erase-sizes: 
/*
 * Detect and initialize DataFlash device:
 *
 *   Device      Density         ID code          #Pages PageSize  Offset
 *   AT45DB011B  1Mbit   (128K)  xx0011xx (0x0c)    512    264      9
 *   AT45DB021B  2Mbit   (256K)  xx0101xx (0x14)   1025    264      9
 *   AT45DB041B  4Mbit   (512K)  xx0111xx (0x1c)   2048    264      9
 *   AT45DB081B  8Mbit   (1M)    xx1001xx (0x24)   4096    264      9
 *   AT45DB0161B 16Mbit  (2M)    xx1011xx (0x2c)   4096    528     10
 *   AT45DB0321B 32Mbit  (4M)    xx1101xx (0x34)   8192    528     10
 *   AT45DB0642  64Mbit  (8M)    xx111xxx (0x3c)   8192   1056     11
 *   AT45DB1282  128Mbit (16M)   xx0100xx (0x10)  16384   1056     11
 */


-- 
Mit freundlichem Gruß / Kind regards

Tobias Simon
- Entwickler -

Simon + Puschmann Software-Systeme GbR
Tobias Simon, Andre Puschmann

Bergrat-Voigt-Straße 13
98693 Ilmenau
Tel.: 0173/2752144
E-Mail: tobias.simon@sp-ss.de
Internet: http://www.sp-ss.de

------------------------------------------------------------------------
Important Note: This e-mail and any attachments are confidential, may contain 
trade secrets and may well also be legally privileged or otherwise protected 
from disclosure. If you have received it in error, you are on notice of its 
status. Please notify us immediately by reply e-mail and then delete this 
e-mail and any attachment from your system. If you are not the intended 
recipient please understand that you must not copy this e-mail or any 
attachments or disclose the contents to any other person. Thank you.

  reply	other threads:[~2007-07-19 21:08 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-07-19 18:46 flashcp Tobias Simon
2007-07-19 19:56 ` flashcp Jörn Engel
2007-07-19 21:08   ` Tobias Simon [this message]
2007-07-19 22:13     ` flashcp Jörn Engel
2007-07-19 22:55       ` flashcp Tobias Simon
2007-07-19 23:23         ` flashcp Tobias Simon
2007-07-20  0:28           ` flashcp Jörn Engel

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=200707192308.21410.tobias.simon@sp-ss.de \
    --to=tobias.simon@sp-ss.de \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox