JEDEC / CFI questions & remarks

Koen Martens gmc at
Mon Jun 27 04:42:34 EDT 2005

Koen Martens wrote:
> 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),

Actually, wouldn't it be better to put this address in the struct that
defines the chip, just as the unlock addresses are..??


K.F.J. Martens, Sonologic,
Networking, hosting, embedded systems, unix, artificial intelligence.
Public PGP key:
Wondering about the funny attachment your mail program
can't read? Visit

More information about the linux-mtd mailing list