Memory Card Explorer for the Elan P423

D. Resor organlists1 at sonic.net
Fri Jul 8 07:10:28 CDT 2022


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-bounces at 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 at classiccmp.org>
Subject: Re: Memory Card Explorer for the Elan P423

On Wed, Jul 6, 2022 at 7:51 PM Glen Slick <glen.slick at 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.



More information about the cctalk mailing list