diff -ur trunk/src/flash/avrf.c avr/src/flash/avrf.c
--- trunk/src/flash/avrf.c	2009-04-28 02:02:32.000000000 +0800
+++ avr/src/flash/avrf.c	2009-04-28 02:33:16.000000000 +0800
@@ -313,7 +313,7 @@
 	target_t *target = bank->target;
 	avrf_flash_bank_t *avrf_info = bank->driver_priv;
 	avr_common_t *avr = target->arch_info;
-	avrf_type_t *avr_info;
+	avrf_type_t *avr_info = NULL;
 	int i;
 	u32 device_id;
 	
@@ -347,7 +347,7 @@
 		}
 	}
 	
-	if (i < (int)(sizeof(avft_chips_info) / sizeof(avft_chips_info[0])))
+	if (avr_info != NULL)
 	{
 		// chip found
 		bank->base = 0x00000000;
@@ -394,7 +394,7 @@
 {
 	target_t *target = bank->target;
 	avr_common_t *avr = target->arch_info;
-	avrf_type_t *avr_info;
+	avrf_type_t *avr_info = NULL;
 	int i;
 	u32 device_id;
 	
@@ -427,7 +427,7 @@
 		}
 	}
 	
-	if (i < (int)(sizeof(avft_chips_info) / sizeof(avft_chips_info[0])))
+	if (avr_info != NULL)
 	{
 		// chip found
 		snprintf(buf, buf_size, "%s - Rev: 0x%X", avr_info->name, EXTRACT_VER(device_id));
