A trivial patch that has served me well for this particular flash chip. It functions identically to some already supported Winbond chips so basically all that was needed was an additional device ID for recognition. I've tested read, erase, and write functionality.
As an interesting side note, this particular chip can be set to operate in a mode that divides the chip into two 4Mbit partitions rather than a single 8Mbit partition specifically for dual-BIOS applications. I don't think this really applies to LinuxBIOS since a fallback mechanism is already in place but it may be useful for future design considerations. linuxbios@linuxbios.org
Hi,
On Thu, Mar 01, 2007 at 02:01:19PM -0800, David Hendricks wrote:
A trivial patch that has served me well for this particular flash chip. It functions identically to some already supported Winbond chips so basically all that was needed was an additional device ID for recognition. I've tested read, erase, and write functionality.
Thanks, the patch looks good. Please sign-off all your patches, though, we cannot commit any patches without a proper sign-off. See http://linuxbios.org/Development_Guidelines#Sign-off_Procedure for details.
diff -Nru -x .svn a/flash.h b/flash.h
Just a hint: 'svn diff > foo.patch' in your top-level LinuxBIOSv2 directory is usually a bit simpler and faster than "manual" diffing.
Uwe.
Oops! Thanks for the advice, I've been out of the loop for the past few years but hope to get back into the swing of things here with school out of the way <grin>.
I've re-attached my patch and have posted it here for those with strict mail filters since it's small.
Signed-off-by: David Hendricks david.hendricks@gmail.com
-----BEGIN PATCH----- diff -Nru -x .svn a/flash.h b/flash.h --- a/flash.h 2007-03-01 13:00:52.000000000 -0800 +++ b/flash.h 2007-03-01 12:59:57.000000000 -0800 @@ -97,6 +97,7 @@ #define W_29C020C 0x45 /* Winbond w29c020c device code */ #define W_39V040A 0x3D /* Winbond w39v040a device code */ #define W_39V040B 0x54 /* Winbond w39v040b device code */ +#define W_39V080A 0xD0 /* Winbond w39v040b device code */ #define W_49F002U 0x0B /* Winbond w49F002u device code */ #define W_49V002A 0xB0 /* Winbond W49V002A device code */ #define W_49V002FA 0x32 /* Winbond W49V002FA device code */ diff -Nru -x .svn a/flashchips.c b/flashchips.c --- a/flashchips.c 2007-03-01 13:00:52.000000000 -0800 +++ b/flashchips.c 2007-03-01 12:59:57.000000000 -0800 @@ -107,6 +107,8 @@ probe_jedec, erase_chip_jedec, write_39sf020, NULL}, {"W39V040B", WINBOND_ID, W_39V040B, NULL, 512, 64*1024, probe_jedec, erase_chip_jedec, write_39sf020, NULL}, + {"W39V080A", WINBOND_ID, W_39V080A, NULL, 1024, 64*1024, + probe_jedec, erase_chip_jedec, write_39sf020, NULL}, {"M29F040B", ST_ID, ST_M29F040B, NULL, 512, 64 * 1024, probe_29f040b, erase_29f040b, write_29f040b, NULL}, {"M29F400BT", ST_ID, ST_M29F400BT, NULL, 512, 64 * 1024,
On Thu, Mar 01, 2007 at 03:43:35PM -0800, David Hendricks wrote:
Signed-off-by: David Hendricks david.hendricks@gmail.com
Committed in r2565, thanks.
I fixed a small copy+paste error in a comment and added the new chip to the list of supported chips in the README.
Cheers, Uwe.