TE28F320B3B madness :(

Kremer, Alex alex.kremer at intel.com
Sun Oct 28 11:11:59 EST 2001


| From: Larry Doolittle [mailto:ldoolitt at recycle.lbl.gov]
| 
| > You will need to replace  "cfi_probe" with "jedec_probe" in 
| do_map_probe()
| > from the maps driver (drivers/mtd/maps) you are using.
| 
| That's quite true.  Correct me if I'm wrong, but I think it
| should _always_ be safe to probe for JEDEC first, and CFI
| second.  So _all_ the mtd/maps drivers should do this,
| and there should in fact be a systematic method that they
| all use.  Like having a "map_flash" virtual probe that calls
| first "jedec" and then "cfi_probe", if and only if each in
| turn is compiled into the kernel.

I'm still trying to contact the right people on false QRY from a B3 so
"cfi_probe",
then "jedec_probe" would work always. I didn't get any reply yet...

Maybe there is a smart way in use somewhere else in kernel to
set priorities (ordering), so there can be a mtd_register_probe()
which would be called from the module init.

If not, a single map_flash() would be really appreciated.

I think that replacing every do_map_probe("cfi_probe", ?) with 
a call to the following would get the most from the current chip support:

struct mtd_info *map_probe_flash(struct map_info *map) {

	char *probes[] = {
#ifdef CONFIG_MTD_CFI
		"cfi_probe",
#endif
#ifdef CONFIG_MTD_JEDECPROBE
		"jedec_probe",
#endif
#ifdef CONFIG_MTD_ROM
		"map_rom",
#endif
		NULL
	};

      mtd_info *mymtd = NULL;
	
      while (*probes && !(mymtd = do_map_probe(*(probes++), map)))
		;

      return mymtd;
}

Kreso




More information about the linux-mtd mailing list