All of lore.kernel.org
 help / color / mirror / Atom feed
From: Richard Retanubun <RichardRetanubun@ruggedcom.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [U-boot] sf: API for spi_flash_get_sector_size
Date: Tue, 8 Feb 2011 10:11:02 -0500	[thread overview]
Message-ID: <4D515D06.7020209@RuggedCom.com> (raw)
In-Reply-To: <20110208144008.8471614B9A0D@gemini.denx.de>

On 02/08/11 09:40, Wolfgang Denk wrote:

Thanks for the speedy response Wolfgang,

> Dear Richard Retanubun,
>
> In message<4D514F6E.6040101@RuggedCom.com>  you wrote:
>>
>> When calling spi_flash_erase, which eventually calls stmicro_erase, one must do so while knowing
>> what the sector_size is of the flash. Is there a recommened API to getting this from struct stmicro_spi_flash_params?
>
> Why would you need to know the sector size?
>
> To align your erase command accordingly?
Yep.

I think you are taking the wrong approach here.  Look at how NOR flash is handled: we don't need
> to know the sector sizes there either.  Instead we support the format
> "+N" (often used as "+${fileszize}") which will _internally_ round up
> N to match the next erase block boundary.
>
> Do the same for SPI flash.

If by "how NOR flash in handled" you mean cmd_flash.c::flash_sect_roundb() then yes, I do want to do this
but I need to know what number to round it to, no?

In the context of cmd_flash, it has access to flash_info_t
which contains the sector_size information. Also cfi_flash.c also provides a function called flash_sector_size()
that is called by other components that needs to know. If I have misunderstood what you mean, sorry, please clarify.


To have SPI flash do this, for example; stmicro.c::stmicro_erase() function will auto round up to the nearest sector_size.
Which is indeed the simpler way. Right now, most drivers/mtd/spi/*.c just does this check:

<quoted_code>
sector_size = stm->params->page_size * stm->params->pages_per_sector;

if (offset % sector_size || len % sector_size) {
	debug("SF: Erase offset/length not multiple of sector size\n");
	return -1;
}
</quoted_code>

I am worried about unintentionally erasing more than what the caller requested.
Would it be better to round up manually and then calls the erase?

Thanks for your time

- Richard

  reply	other threads:[~2011-02-08 15:11 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-08 14:13 [U-Boot] [U-boot] sf: API for spi_flash_get_sector_size Richard Retanubun
2011-02-08 14:40 ` Wolfgang Denk
2011-02-08 15:11   ` Richard Retanubun [this message]
2011-02-08 15:19     ` Wolfgang Denk
2011-02-08 15:33       ` Richard Retanubun
2011-02-09 21:16       ` [U-Boot] [PATCH] [RFC] SF: Add "sf erase offset +len" command handler Richard Retanubun
2011-02-15  9:34         ` Mike Frysinger
2011-02-16 20:27           ` [U-Boot] (no subject) Richard Retanubun
2011-02-17  5:46             ` Mike Frysinger
2011-02-16 20:27           ` [U-Boot] [PATCH 1/2] SPI: Add struct spi_flash.sector_size parameter Richard Retanubun
2011-02-16 21:00             ` Wolfgang Denk
2011-02-16 20:27           ` [U-Boot] [PATCH 2/2] cmd_sf: Add handler for +len arg for erase command Richard Retanubun
2011-02-16 21:06             ` Wolfgang Denk
2011-02-16 21:37               ` [U-Boot] [PATCH 1/2] SPI: Add struct spi_flash.sector_size parameter Richard Retanubun
2011-04-12  6:34                 ` Mike Frysinger
2011-02-16 21:39               ` [U-Boot] [PATCH 2/2] cmd_sf: Add handler for +len arg for erase command Richard Retanubun
2011-02-16 21:47             ` Scott Wood

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=4D515D06.7020209@RuggedCom.com \
    --to=richardretanubun@ruggedcom.com \
    --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.