Patchwork [for,1.3] pflash_cfi01: Suppress warning when Linux probes for AMD flash

login
register
mail settings
Submitter Stefan Weil
Date Nov. 24, 2012, 10:03 p.m.
Message ID <1353794593-6147-1-git-send-email-sw@weilnetz.de>
Download mbox | patch
Permalink /patch/201478/
State Under Review
Headers show

Comments

Stefan Weil - Nov. 24, 2012, 10:03 p.m.
There are several ARM and MIPS boards which are manufactured with
either Intel (pflash_cfi01.c) or AMD (pflash_cfi02.c) flash memory.

The Linux kernel supports both and first probes for AMD flash which
resulted in one or two warnings from the Intel flash emulation:

pflash_write: Unimplemented flash cmd sequence (offset 0000000000000000, wcycle 0x0 cmd 0x0 value 0xf000f0)
pflash_write: Unimplemented flash cmd sequence (offset 0000000000000000, wcycle 0x0 cmd 0x0 value 0xf0)

These warnings confuse users, so suppress them.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
---

This is strictly speaking not a bug fix, but it fixes a warning
which confuses QEMU users since a long time (see previous mails
on qemu-devel and bug report).

It is also safe. Therefore I think it can be applied to 1.3.

Regards
Stefan

 hw/pflash_cfi01.c |    3 +++
 1 file changed, 3 insertions(+)
walimis - Nov. 26, 2012, 5:31 a.m.
On Sat, Nov 24, 2012 at 11:03:13PM +0100, Stefan Weil wrote:
>There are several ARM and MIPS boards which are manufactured with
>either Intel (pflash_cfi01.c) or AMD (pflash_cfi02.c) flash memory.
>
>The Linux kernel supports both and first probes for AMD flash which
>resulted in one or two warnings from the Intel flash emulation:
>
>pflash_write: Unimplemented flash cmd sequence (offset 0000000000000000, wcycle 0x0 cmd 0x0 value 0xf000f0)
>pflash_write: Unimplemented flash cmd sequence (offset 0000000000000000, wcycle 0x0 cmd 0x0 value 0xf0)

Hi Stefan,

I ever submited a similar patch to mailing list:
http://patchwork.ozlabs.org/patch/147886/

Do you have a look at that patch to see whether it's sane for the
different parts between mine and yours?

Thanks,
Liming Wang

>
>These warnings confuse users, so suppress them.
>
>Signed-off-by: Stefan Weil <sw@weilnetz.de>
>---
>
>This is strictly speaking not a bug fix, but it fixes a warning
>which confuses QEMU users since a long time (see previous mails
>on qemu-devel and bug report).
>
>It is also safe. Therefore I think it can be applied to 1.3.
>
>Regards
>Stefan
>
> hw/pflash_cfi01.c |    3 +++
> 1 file changed, 3 insertions(+)
>
>diff --git a/hw/pflash_cfi01.c b/hw/pflash_cfi01.c
>index 7d040b5..a4dbe19 100644
>--- a/hw/pflash_cfi01.c
>+++ b/hw/pflash_cfi01.c
>@@ -319,6 +319,9 @@ static void pflash_write(pflash_t *pfl, hwaddr offset,
>             DPRINTF("%s: Write to buffer\n", __func__);
>             pfl->status |= 0x80; /* Ready! */
>             break;
>+        case 0xf0: /* Probe for AMD flash */
>+            DPRINTF("%s: Probe for AMD flash\n", __func__);
>+            goto reset_flash;
>         case 0xff: /* Read array mode */
>             DPRINTF("%s: Read array mode\n", __func__);
>             goto reset_flash;
>-- 
>1.7.10.4
>
>
Stefan Weil - Nov. 26, 2012, 6:38 a.m.
Am 26.11.2012 06:31, schrieb walimis:
> On Sat, Nov 24, 2012 at 11:03:13PM +0100, Stefan Weil wrote:
>> There are several ARM and MIPS boards which are manufactured with
>> either Intel (pflash_cfi01.c) or AMD (pflash_cfi02.c) flash memory.
>>
>> The Linux kernel supports both and first probes for AMD flash which
>> resulted in one or two warnings from the Intel flash emulation:
>>
>> pflash_write: Unimplemented flash cmd sequence (offset 0000000000000000, wcycle 0x0 cmd 0x0 value 0xf000f0)
>> pflash_write: Unimplemented flash cmd sequence (offset 0000000000000000, wcycle 0x0 cmd 0x0 value 0xf0)
> Hi Stefan,
>
> I ever submited a similar patch to mailing list:
> http://patchwork.ozlabs.org/patch/147886/
>
> Do you have a look at that patch to see whether it's sane for the
> different parts between mine and yours?
>
> Thanks,
> Liming Wang

Hi,

your patch is technically identical, but I think that your commit message
ismisleading: it implies that 0xff and 0xf0 are both specified in the
CFI specification for Intel flash memory (CFI 01). As far as I could see,
0xf0 is only a specified flash command sequence for AMD flash memory 
(CFI 02).
That's why Linux uses it to detect that kind of flash memory.

If you resend your patch with a commit message and a comment in
the code which explains why 0xf0 needs handling in pflash_cfi01.c,
it can be committed IMHO.

Regards

Stefan
Aurelien Jarno - Jan. 1, 2013, 12:06 p.m.
On Sat, Nov 24, 2012 at 11:03:13PM +0100, Stefan Weil wrote:
> There are several ARM and MIPS boards which are manufactured with
> either Intel (pflash_cfi01.c) or AMD (pflash_cfi02.c) flash memory.
> 
> The Linux kernel supports both and first probes for AMD flash which
> resulted in one or two warnings from the Intel flash emulation:
> 
> pflash_write: Unimplemented flash cmd sequence (offset 0000000000000000, wcycle 0x0 cmd 0x0 value 0xf000f0)
> pflash_write: Unimplemented flash cmd sequence (offset 0000000000000000, wcycle 0x0 cmd 0x0 value 0xf0)
> 
> These warnings confuse users, so suppress them.
> 
> Signed-off-by: Stefan Weil <sw@weilnetz.de>
> ---
> 
> This is strictly speaking not a bug fix, but it fixes a warning
> which confuses QEMU users since a long time (see previous mails
> on qemu-devel and bug report).
> 
> It is also safe. Therefore I think it can be applied to 1.3.
> 
> Regards
> Stefan
> 
>  hw/pflash_cfi01.c |    3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/hw/pflash_cfi01.c b/hw/pflash_cfi01.c
> index 7d040b5..a4dbe19 100644
> --- a/hw/pflash_cfi01.c
> +++ b/hw/pflash_cfi01.c
> @@ -319,6 +319,9 @@ static void pflash_write(pflash_t *pfl, hwaddr offset,
>              DPRINTF("%s: Write to buffer\n", __func__);
>              pfl->status |= 0x80; /* Ready! */
>              break;
> +        case 0xf0: /* Probe for AMD flash */
> +            DPRINTF("%s: Probe for AMD flash\n", __func__);
> +            goto reset_flash;
>          case 0xff: /* Read array mode */
>              DPRINTF("%s: Read array mode\n", __func__);
>              goto reset_flash;

Thanks, applied.

Patch

diff --git a/hw/pflash_cfi01.c b/hw/pflash_cfi01.c
index 7d040b5..a4dbe19 100644
--- a/hw/pflash_cfi01.c
+++ b/hw/pflash_cfi01.c
@@ -319,6 +319,9 @@  static void pflash_write(pflash_t *pfl, hwaddr offset,
             DPRINTF("%s: Write to buffer\n", __func__);
             pfl->status |= 0x80; /* Ready! */
             break;
+        case 0xf0: /* Probe for AMD flash */
+            DPRINTF("%s: Probe for AMD flash\n", __func__);
+            goto reset_flash;
         case 0xff: /* Read array mode */
             DPRINTF("%s: Read array mode\n", __func__);
             goto reset_flash;