diff mbox series

[v2,2/2] mtd: cfi: Add early fixup for S70GL02GS

Message ID 1111011589.117630.1525106107675.JavaMail.zimbra@xes-inc.com
State Accepted
Delegated to: Boris Brezillon
Headers show
Series [v2,1/2] mtd: cfi: Support early CFI fixups | expand

Commit Message

Aaron Sierra April 30, 2018, 4:35 p.m. UTC
S70GL02GS flash reports a single 256 MiB chip, but is really made up
of two 128 MiB chips with 1024 sectors each.

Without early fixups (top half of device cannot be written or erased):
  ff0000000.nor-boot: Found 1 x16 devices at 0x0 in 16-bit bank. <snip>
  Amd/Fujitsu Extended Query Table at 0x0040
    Amd/Fujitsu Extended Query version 1.5.
  number of CFI chips: 1

With early fixups (entire device can be written and erased):
  Bad S70GL02GS CFI data; adjust to detect 2 chips
  ff0000000.nor-boot: Found 1 x16 devices at 0x0 in 16-bit bank. <snip>
  ff0000000.nor-boot: Found 1 x16 devices at 0x8000000 in 16-bit bank
  Amd/Fujitsu Extended Query Table at 0x0040
    Amd/Fujitsu Extended Query version 1.5.
  number of CFI chips: 2

Signed-off-by: Aaron Sierra <asierra@xes-inc.com>
---
 drivers/mtd/chips/cfi_probe.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

Comments

Boris Brezillon May 3, 2018, 9:35 a.m. UTC | #1
On Mon, 30 Apr 2018 11:35:07 -0500 (CDT)
Aaron Sierra <asierra@xes-inc.com> wrote:

> S70GL02GS flash reports a single 256 MiB chip, but is really made up
> of two 128 MiB chips with 1024 sectors each.
> 
> Without early fixups (top half of device cannot be written or erased):
>   ff0000000.nor-boot: Found 1 x16 devices at 0x0 in 16-bit bank. <snip>
>   Amd/Fujitsu Extended Query Table at 0x0040
>     Amd/Fujitsu Extended Query version 1.5.
>   number of CFI chips: 1
> 
> With early fixups (entire device can be written and erased):
>   Bad S70GL02GS CFI data; adjust to detect 2 chips
>   ff0000000.nor-boot: Found 1 x16 devices at 0x0 in 16-bit bank. <snip>
>   ff0000000.nor-boot: Found 1 x16 devices at 0x8000000 in 16-bit bank
>   Amd/Fujitsu Extended Query Table at 0x0040
>     Amd/Fujitsu Extended Query version 1.5.
>   number of CFI chips: 2
> 
> Signed-off-by: Aaron Sierra <asierra@xes-inc.com>

Just one comment for your future contributions: can you make sure you
send patch series as a thread (patch X should be 'In-Reply-To' the
cover letter or the first patch in the series if you don't have a cover
letter).

Usually, developers use git send-email which takes care of that for you.
Aaron Sierra May 3, 2018, 2:33 p.m. UTC | #2
----- Original Message -----
> From: "Boris Brezillon" <boris.brezillon@bootlin.com>
> To: "Aaron Sierra" <asierra@xes-inc.com>
> Sent: Thursday, May 3, 2018 4:35:57 AM
> Subject: Re: [PATCH v2 2/2] mtd: cfi: Add early fixup for S70GL02GS

> On Mon, 30 Apr 2018 11:35:07 -0500 (CDT)
> Aaron Sierra <asierra@xes-inc.com> wrote:
> 

[ snip ]

> 
> Just one comment for your future contributions: can you make sure you
> send patch series as a thread (patch X should be 'In-Reply-To' the
> cover letter or the first patch in the series if you don't have a cover
> letter).
> 
> Usually, developers use git send-email which takes care of that for you.

Yes, I will. Thanks for pointing this out to me.

-Aaron
diff mbox series

Patch

diff --git a/drivers/mtd/chips/cfi_probe.c b/drivers/mtd/chips/cfi_probe.c
index c05deac..65f3ab0 100644
--- a/drivers/mtd/chips/cfi_probe.c
+++ b/drivers/mtd/chips/cfi_probe.c
@@ -174,7 +174,19 @@  static int __xipram cfi_probe_chip(struct map_info *map, __u32 base,
 	return 1;
 }
 
+static void fixup_s70gl02gs_chips(struct cfi_private *cfi)
+{
+	/*
+	 * S70GL02GS flash reports a single 256 MiB chip, but is really made up
+	 * of two 128 MiB chips with 1024 sectors each.
+	 */
+	cfi->cfiq->DevSize = 27;
+	cfi->cfiq->EraseRegionInfo[0] = 0x20003ff;
+	pr_warn("Bad S70GL02GS CFI data; adjust to detect 2 chips\n");
+}
+
 static struct cfi_early_fixup cfi_early_fixup_table[] = {
+	{ CFI_MFR_AMD, 0x4801, fixup_s70gl02gs_chips },
 	{ 0, 0, NULL },
 };