JEDEC / CFI questions & remarks

Koen Martens gmc at sonologic.nl
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..??

koen

-- 
K.F.J. Martens, Sonologic, http://www.sonologic.nl/
Networking, hosting, embedded systems, unix, artificial intelligence.
Public PGP key: http://www.metro.cx/pubkey-gmc.asc
Wondering about the funny attachment your mail program
can't read? Visit http://www.openpgp.org/




More information about the linux-mtd mailing list