Patchwork Support chips MBM29F040 and W29EE512

login
register
about
Submitter Andreas Seltenreich
Date 2012-07-19 10:40:01
Message ID <87fw8o11by.fsf@gate450.dyndns.org>
Download mbox | patch
Permalink /patch/3683/
State Changes Requested
Headers show

Comments

Andreas Seltenreich - 2012-07-19 10:40:01
Hi,

I had to modify my copy a bit to use the PLCC chips I had salvaged
somewhere as boot ROMs in Intel NICs.  Patch attached.

I'm not sure if the 512kB one qualifies as tested because the programmer
only supports 128kB, and I had to --force it.

regards,
andreas
Stefan Tauner - 2012-07-19 12:13:11
On Thu, 19 Jul 2012 12:40:01 +0200
Andreas Seltenreich <seltenreich@gmx.de> wrote:

> I had to modify my copy a bit to use the PLCC chips I had salvaged
> somewhere as boot ROMs in Intel NICs.  Patch attached.

Thank you very much for your work!
We need you to sign it off to commit it though, see
http://www.coreboot.org/Development_Guidelines#Sign-off_Procedure

> 
> I'm not sure if the 512kB one qualifies as tested because the programmer
> only supports 128kB, and I had to --force it.

I would say no, just probing.

> diff --git a/flashchips.c b/flashchips.c
> index 0c9f6c4..41b43ea 100644
> --- a/flashchips.c
> +++ b/flashchips.c
> @@ -3791,6 +3791,30 @@ const struct flashchip flashchips[] = {
>  	},
>  
>  	{
> +		.vendor		= "Fujitsu",
> +		.name		= "MBM29F040",
> +		.bustype	= BUS_PARALLEL,
> +		.manufacture_id	= FUJITSU_ID,
> +		.model_id	= FUJITSU_MBM29F040C,
> +		.total_size	= 512,
> +		.page_size	= 64 * 1024,
> +		.feature_bits	= FEATURE_ADDR_2AA | FEATURE_EITHER_RESET,
> +		.tested		= TEST_OK_EPRW,

really? :)

> +		.probe		= probe_jedec,
> +		.probe_timing	= TIMING_ZERO,	/* Datasheet has no timing info specified */
> +		.block_erasers	=
> +		{
> +			{
> +			  .eraseblocks = { {64 * 1024, 8} },
> +			  .block_erase = erase_sector_jedec,
> +			},
> +		},
> +		.write		= write_jedec_1,
> +		.read		= read_memmapped,
> +		.voltage	= {4750, 5250}, /* 70ns one, 10% on slower models */

please use the common format like "/* 4.75-5.25V for type -55, others
4.5-5.5V */"
this makes it easier to reformat them automatically if need be.

> +	},
> +
> +	{
>  		/* FIXME: this has WORD/BYTE sequences; 2AA for word, 555 for byte */
>  		.vendor		= "Fujitsu",
>  		.name		= "MBM29F400BC",
> @@ -8987,6 +9011,29 @@ const struct flashchip flashchips[] = {
>  
>  	{
>  		.vendor		= "Winbond",
> +		.name		= "W29C512A/W29EE512",
> +		.bustype	= BUS_PARALLEL,
> +		.manufacture_id	= WINBOND_ID,
> +		.model_id	= WINBOND_W29C512A,
> +		.total_size	= 64,
> +		.page_size	= 128,
> +		.feature_bits	= FEATURE_LONG_RESET,
> +		.tested		= TEST_OK_PREW,
> +		.probe		= probe_jedec,
> +		.probe_timing	= 10,		/* used datasheet for the W29C011A */

There is no datasheet available for the actual chips?

> […]
Stefan Tauner - 2012-08-09 00:14:19
On Thu, 19 Jul 2012 14:13:11 +0200
Stefan Tauner <stefan.tauner@student.tuwien.ac.at> wrote:

> On Thu, 19 Jul 2012 12:40:01 +0200
> Andreas Seltenreich <seltenreich@gmx.de> wrote:
> 
> > I had to modify my copy a bit to use the PLCC chips I had salvaged
> > somewhere as boot ROMs in Intel NICs.  Patch attached.  
> 
> Thank you very much for your work!
> We need you to sign it off to commit it though, see
> http://www.coreboot.org/Development_Guidelines#Sign-off_Procedure

ping

Patch

diff --git a/flashchips.c b/flashchips.c
index 0c9f6c4..41b43ea 100644
--- a/flashchips.c
+++ b/flashchips.c
@@ -3791,6 +3791,30 @@  const struct flashchip flashchips[] = {
 	},
 
 	{
+		.vendor		= "Fujitsu",
+		.name		= "MBM29F040",
+		.bustype	= BUS_PARALLEL,
+		.manufacture_id	= FUJITSU_ID,
+		.model_id	= FUJITSU_MBM29F040C,
+		.total_size	= 512,
+		.page_size	= 64 * 1024,
+		.feature_bits	= FEATURE_ADDR_2AA | FEATURE_EITHER_RESET,
+		.tested		= TEST_OK_EPRW,
+		.probe		= probe_jedec,
+		.probe_timing	= TIMING_ZERO,	/* Datasheet has no timing info specified */
+		.block_erasers	=
+		{
+			{
+			  .eraseblocks = { {64 * 1024, 8} },
+			  .block_erase = erase_sector_jedec,
+			},
+		},
+		.write		= write_jedec_1,
+		.read		= read_memmapped,
+		.voltage	= {4750, 5250}, /* 70ns one, 10% on slower models */
+	},
+
+	{
 		/* FIXME: this has WORD/BYTE sequences; 2AA for word, 555 for byte */
 		.vendor		= "Fujitsu",
 		.name		= "MBM29F400BC",
@@ -8987,6 +9011,29 @@  const struct flashchip flashchips[] = {
 
 	{
 		.vendor		= "Winbond",
+		.name		= "W29C512A/W29EE512",
+		.bustype	= BUS_PARALLEL,
+		.manufacture_id	= WINBOND_ID,
+		.model_id	= WINBOND_W29C512A,
+		.total_size	= 64,
+		.page_size	= 128,
+		.feature_bits	= FEATURE_LONG_RESET,
+		.tested		= TEST_OK_PREW,
+		.probe		= probe_jedec,
+		.probe_timing	= 10,		/* used datasheet for the W29C011A */
+		.block_erasers	=
+		{
+			{
+				.eraseblocks = { {128 * 512, 1} },
+				.block_erase = erase_chip_block_jedec,
+			}
+		},
+		.write		= write_jedec,
+		.read		= read_memmapped,
+	},
+
+	{
+		.vendor		= "Winbond",
 		.name		= "W39L040",
 		.bustype	= BUS_PARALLEL,
 		.manufacture_id	= WINBOND_ID,