From: Koen Martens <kmartens@sonologic.nl>
To: linux-mtd@lists.infradead.org
Subject: JEDEC / CFI questions & remarks
Date: Fri, 24 Jun 2005 16:59:23 +0200 [thread overview]
Message-ID: <42BC1FCB.8050003@sonologic.nl> (raw)
Hi All,
We had some troubles with the MTD driver lately, when our taiwanese
hardware factory decided to use another flash chip in our devices. We
had a EN29LV400BB, now it has become the EN29LV400A. It should be
functionally compatible, but with the new chip we suddenly detect an
extra CFI device.
Now, I want to do some more debugging on this, but the new hardware is
in Taiwan and being shipped to us atm, perhaps this sounds familiar to some.
Second point: the EON clones of the original AMD chipsets have small
incompatibility in the method for reading out the manufacturer id. First
of all, a small fragment of jedec_probe.c:
static inline u32 jedec_read_mfr(struct map_info *map, __u32 base,
struct cfi_private *cfi)
{
map_word result;
unsigned long mask;
u32 ofs = cfi_build_cmd_addr(0, cfi_interleave(cfi),
cfi->device_type);
mask = (1 << (cfi->device_type * 8)) -1;
result = map_read(map, base + ofs);
return result.x[0] & mask;
}
Basically, it reads some info from offset 0 relative to the start of the
flash memory. This is fine for AMD chips, which specify x00 as the (hex)
address to read out the manufacturer ID. The EON chips we use, however,
specify 100 (hex) as the offset of the manufacturer id. So what we did
here is change that first argument to cfi_build_cmd_addr from 0 to 0x100
, which should thus work on both AMD and EON chips. But who knows what
this breaks on other chip types.... So, I wonder if this should be
submitted as a patch (along with the EON chip definitions),
More general questions that come up when spending more than casual time
in the mtd driver source, is how well mantained is the jedec bit of the
mtd driver? Is anyone using this?? I do get the impression we are alone
in using this bit of the MTD driver, but i can't really believe that..
We now have several quick hacks to make it all work for our specific
case (eg. return 0; as body for cfi_probe, forcing the chip type in
jedec_probe effectivelly skipping detection), but i am one of those
idealist types that wants to fix it the right way and submit back to the
community, but a bit unsure about what course to follow.
Koen
next reply other threads:[~2005-06-24 14:59 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-06-24 14:59 Koen Martens [this message]
2005-06-27 8:42 ` JEDEC / CFI questions & remarks Koen Martens
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=42BC1FCB.8050003@sonologic.nl \
--to=kmartens@sonologic.nl \
--cc=linux-mtd@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox