A little more information I found while digging. It should have dawned on me when the card info is displayed in MCE.
The cards are AMD Type D P/N FAD004 http://www.psism.com/flashfad.htm More info here too: https://www.synchrotech.com/products/linear-flash-pcmcia-card_01.html The prices for these are crazy. Though the 4MB is EOL, the 16MB is listed at $445.00! Even if I could get a new 16mb at a much reduced price, it wouldn't work. There is an old discussion (among several) here: https://www.copytechnet.com/forums/ricoh-savin-gestetner-lanier/23407-ricoh-field-service-card.html Don Resor -----Original Message----- From: cctalk <cctalk-boun...@classiccmp.org> On Behalf Of Glen Slick via cctalk Sent: Thursday, July 07, 2022 3:18 PM To: General Discussion: On-Topic and Off-Topic Posts <cctalk@classiccmp.org> Subject: Re: Memory Card Explorer for the Elan P423 On Wed, Jul 6, 2022 at 7:51 PM Glen Slick <glen.sl...@gmail.com> wrote: > > I'll have to boot up again the Linux system I had set up for this and > refresh my memory on some of the details. If I remember correctly, one > of the things I had to do was to rebuild the pcmcia driver with the > CONFIG_MTD_PCMCIA_ANONYMOUS option enabled. Some of the linear flash > cards I have might not have a separate attribute memory plane and no > valid CIS, so the card wouldn't get recognized without that option > enabled. Pretty sure there was something else I had to change to get > things to work with some of the cards I have. Just don't remember now. > Maybe no one else is interested in this detail, but just for future reference reference, it looks like one of the changes I had to make to get the MTD driver to work with some of my linear flash cards was to this read_pri_intelext() routine in this source file: drivers / mtd / chips / cfi_cmdset_0001.c from: if (extp->MinorVersion >= '0') { extra_size = 0; /* Protection Register info */ extra_size += (extp->NumProtectionFields - 1) * sizeof(struct cfi_intelext_otpinfo); } if (extp->MinorVersion >= '1') { /* Burst Read info */ extra_size += 2; if (extp_size < sizeof(*extp) + extra_size) goto need_more; extra_size += extp->extra[extra_size - 1]; } to: extra_size = 0; if ((extp->MinorVersion >= '0') && (extp->FeatureSupport & 64)) { /* Protection Register info */ extra_size += (extp->NumProtectionFields - 1) * sizeof(struct cfi_intelext_otpinfo); } if ((extp->MinorVersion >= '1') && (extp->FeatureSupport & 128)) { /* Burst Read info */ extra_size += 2; if (extp_size < sizeof(*extp) + extra_size) goto need_more; extra_size += extp->extra[extra_size - 1]; } The problem with the original code is that without checking the Optional Feature and Command Support bits, it assumes that if the Intel CFI Primary Vendor-Specific Extended Query Table exists then the flash device has OTP support, and if the Minor Version is >=1 then the flash device has Page Mode Read support. According to the 290606-015 datasheet for Intel 28F320J5 and 28F640J5 StrataFlash devices the Minor Version number in the Intel CFI Primary Vendor-Specific Extended Query Table is 1, but those device do not have OTP support nor do they have Page Mode Read support, which causes the read_pri_intelext() fail or hang while trying to parse the Intel CFI Primary Vendor-Specific Extended Query Table. I must have some linear flash cards that are based on Intel 28F320J5 or 28F640J5 StrataFlash devices that encountered this issue. Without going through my stack of cards I don't remember which cards those might be.