public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Reinhard Meyer <u-boot@emk-elektronik.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] MTD/SPI/FLASH: add support for Ramtron FRAMs using SPI
Date: Thu, 26 Aug 2010 07:57:23 +0200	[thread overview]
Message-ID: <4C760243.6030102@emk-elektronik.de> (raw)
In-Reply-To: <201008252231.15014.vapier@gentoo.org>

Dear Mike Frysinger,
> i dont have a problem with going through the env as a hook, but it doesnt seem
> to scale.  what if you have 2 fram devices and a winbond spi flash ?  perhaps
> the name spec should be:
> 	fram_dev.<bus>.<cs>
>
> then you can signal that only certain<bus>.<cs>  locations should get special
> treatment.  and it wont inadvertently clobber other devices or detect devices
> that dont exist without explicit permission.

Makes sense.

>
>> +{
>> +	struct ramtron_spi_fram *sn = to_ramtron_spi_fram(flash);
>> +	u8 cmd[4];
>> +	u8 cmd_len = 1;
>> +	int ret;
>
> the majority of this function seems to match the write() func ... perhaps the
> body should be unified in a local static "setup" func and let gcc determine
> whether to inline its body ?

OK

> no space after "getenv".  i'd also delay the call to the point where you
> actually check "device_name" ...

Right.

>> --- a/drivers/mtd/spi/spi_flash.c
>> +++ b/drivers/mtd/spi/spi_flash.c
>> @@ -116,6 +116,19 @@
>>          goto err_claim_bus;
>>   	}
>>
>> +#ifdef CONFIG_SPI_FRAM_RAMTRON
>> +	/*
>> +	 * not all RAMTRON FRAMs do have a READ_ID command,
>> +	 * let the ramtron code figure out details
>> +	 */
>> +	flash = spi_fram_probe_ramtron(spi);
>> +	if (flash) {
>> +		spi_release_bus(spi);
>> +		return flash;
>> +	}
>> +	/* if spi_fram_probe did not find anything, continue normal probe */
>> +#endif
>> +
>>   	/* Read the ID codes */
>>   	ret = spi_flash_cmd(spi, CMD_READ_ID,&idcode, sizeof(idcode));
>>   	if (ret)
>
> you hook early to handle extended idcode reads and for devices that dont
> respect the idcode command.
>

> for the first, we can extend the idcode length yet again, but perhaps this
> time temper it:
> #if defined(CONFIG_SPI_FRAM_RAMTRON)
> # define IDCODE_LEN 10
> #else
> # define IDCODE_LEN 5
> #endif

OK, see below. Can't we have it 10 generally? The impact should be negligible?

>
> for the second, what do you get back when you issue the idcode ?  0xff ?  we
> already have a fall back case for this with stmicro, so perhaps we should
> generalize this further too.  after the vendor id switch statement, we do:

If MISO has no pull-up the result is indeterminate, the chip simply lets MISO
float when it does not honor the read-id command.

I'll add a comment to that file that a pull-up is required for non-standard
devices to be detected. Otherwise, depending on random noise, a false
detection of a standard device is not entirely impossible.

On a side note: its beyond my comprehension why ramtron's newest and densest
variant FM25H20 has no read-id command (while all devices before that except
for the really old and small ones do have it)....

Reinhard

  reply	other threads:[~2010-08-26  5:57 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-25 12:47 [U-Boot] [PATCH] MTD/SPI/FLASH: add support for Ramtron FRAMs using SPI Reinhard Meyer
2010-08-26  2:31 ` Mike Frysinger
2010-08-26  5:57   ` Reinhard Meyer [this message]
2010-08-26  6:12     ` Mike Frysinger
2010-08-26  6:24       ` Reinhard Meyer
2010-08-26  8:27       ` Reinhard Meyer
2010-08-26  9:11         ` Mike Frysinger
2010-08-26 20:00           ` Reinhard Meyer
2010-08-28 21:48             ` Mike Frysinger
2010-08-28 22:15               ` Reinhard Meyer
2010-08-28 22:26                 ` Mike Frysinger
2010-08-28 23:17               ` Mike Frysinger
2010-08-28 23:45                 ` Reinhard Meyer
2010-08-29  0:14                   ` Mike Frysinger
2010-08-29  1:59                     ` Reinhard Meyer
2010-08-29  2:26                       ` Mike Frysinger
2010-08-29  3:35                         ` Reinhard Meyer
2010-08-29  4:34                           ` Mike Frysinger
2010-08-29  4:52                             ` Reinhard Meyer
2010-09-07 20:12                             ` Peter Tyser
2010-09-07 19:38     ` Wolfgang Denk

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=4C760243.6030102@emk-elektronik.de \
    --to=u-boot@emk-elektronik.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox