Skip to contentSkip to conversation

Only probe for device combinations that fit in map's bankwidth.

PATCH In review David Vrabel 2 participants 2 messages Sep 16, 2004 Memory technology devices (MTD)

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Only probe for device combinations that fit in map's bankwidth.

Hi,

Recent MTD changed how chip probing is done and it now probes for chips of all bus widths. On my board (IXP425 with 16-bit AMD AM29LV128 flash) probing for 8-bit wide devices cannot work because 8-bit writes/reads to 16-bit devices aren't allowed (they cause data aborts). So...

Make genprobe_new_chip() only probe for combinations that fit in the map's bankwidth.

drivers/mtd/chips/gen_probe.c +3 -2
Index: linux-2.6-armbe/drivers/mtd/chips/gen_probe.c
===================================================================
@@ -172,8 +172,9 @@
 		for (type = 0; type < 3; type++) {
 			cfi->device_type = 1<<type;
 
-			if (cp->probe_chip(map, 0, NULL, cfi))
-				return 1;
+			if (cfi->device_type * cfi->interleave == map_bankwidth(map))
+				if (cp->probe_chip(map, 0, NULL, cfi))
+					return 1;
 		}
 	}
 	return 0;

David Vrabel

Signature · 4 lines
David Vrabel, Design Engineer

Arcom, Clifton Road           Tel: +44 (0)1223 411200 ext. 3233
Cambridge CB1 7EA, UK         Web: http://www.arcom.com/
#1 lore raw
Quoted 9 lines · David Vrabel

Hi,

Recent MTD changed how chip probing is done and it now probes for chips of all bus widths. On my board (IXP425 with 16-bit AMD AM29LV128 flash) probing for 8-bit wide devices cannot work because 8-bit writes/reads to 16-bit devices aren't allowed (they cause data aborts). So...

Make genprobe_new_chip() only probe for combinations that fit in the map's bankwidth.

MTD CVS has this fixed already. I noticed the same behavior right after dwmw2 merged with Linus. Can you try what's there and see if it fixes your problem?

josh