RE: [U-Boot-Users] strataflash.c

In a x16 device in x8 mode, the portwidth should be 1. However, CFI detection in strataflash.c will not work in this mode. It will look for the CFI QRY at 0x10, 0x11, 0x12 offsets when they're actually at double that offset (portwidth = 2).
I agree that the portwidth is not be used correctly in the case of a x16 device in x8 mode. For the meantime, the hack I've made will sustain me until I or someone else can add support for this chipset mode to the driver.
Tom
-----Original Message----- From: Frank Smith [mailto:smith@amirix.com] Sent: Sunday, May 11, 2003 4:51 PM To: Tom Guilliams; u-boot-users@lists.sourceforge.net Cc: Frank Smith Subject: Re: [U-Boot-Users] strataflash.c
Hi,
The more I look into strataflash.c, the more I'm starting to think that it doesn't support x16 devices in x8 mode.
The problem I see is that the 'portwidth' value is used to drive two things -- offset multiplier, and side of data reads/writes to the flash device.
On a pure x16 device, the offset multiplier is 2 and the size of the data read/writes is 2. So portwidth is 2.
On an x16 device in x8 mode, however, the offset multiplier is 2, but the size of data read/writes is 1. What should portwidth be...?
I think the offset multiplier and size of data read/writes should be driven by *different* values. Or am I overlooking something obvious?
Thanks, Frank.
----- Original Message ----- From: "Tom Guilliams" tguilliams@sbs.com To: "'Frank Smith'" smith@amirix.com; u-boot-users@lists.sourceforge.net Sent: Friday, May 09, 2003 7:14 PM Subject: RE: [U-Boot-Users] strataflash.c
Frank,
I can tell you I've had some problems with a x16 in x8 mode in strataflash.c. Basically, the flash_detect_cfi() routine detects my E28F128J3A chip as portwidth 2 (x16) and chipwidth 1 (x8). All the CFI
info
is read correctly. However, any write accesses to chip (programming or erasing) fail upon the calculated offset (it's incorrectly doubled because of portwidth being 2).
I had to manually force the portwidth to 1 (x8) after the flash_get_size() routine to make everything behave for any flash operations.
I don't think the "detect" logic is correct in terms of port and chip
width
for "some" devices. However, the author - Brad Kemp - has said he's had success on numerous other flash width devices.
Your problem sounds exactly like mine. For a hack fix, set
info->portwidth = 1;
for the last thing flash_get_size() does before returning the size.
Tom
-----Original Message----- From: Frank Smith [mailto:smith@amirix.com] Sent: Friday, May 09, 2003 1:00 PM To: u-boot-users@lists.sourceforge.net Subject: [U-Boot-Users] strataflash.c
Hello,
I have a board with a couple of Intel RC28F320J3A Strataflash devices.
One
device is wired to x16 mode, the other to x8 mode.
I'm trying to use the strataflash.c driver with these flash chips. The driver detects the flash that's in x16 mode, but not the one in x8 mode. So I'm digging through the code to try to figure out what's up. I've been successful in avoiding dealing with flash programming code up until now in my life.....
If anyone knows anything about whether strataflash.c was designed to work with x16 devices in x8 mode, I'd love to hear from you! From what I've
seen
so far, I'm tending to think that it doesn't.
Thanks, Frank.
Enterprise Linux Forum Conference & Expo, June 4-6, 2003, Santa Clara The only event dedicated to issues related to Linux enterprise solutions www.enterpriselinuxforum.com
U-Boot-Users mailing list U-Boot-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/u-boot-users
Enterprise Linux Forum Conference & Expo, June 4-6, 2003, Santa Clara The only event dedicated to issues related to Linux enterprise solutions www.enterpriselinuxforum.com
U-Boot-Users mailing list U-Boot-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/u-boot-users
participants (1)
-
Tom Guilliams