00001 00008 #include "uffs/uffs_fs.h" 00009 #include "uffs/uffs_config.h" 00010 #include <string.h> 00011 00012 #define PFX "class:" 00013 00014 extern struct uffs_FlashClassSt Samsung_FlashClass; 00015 //extern struct uffs_FlashClassSt Toshiba_FlashClass; 00016 00017 static struct uffs_FlashClassSt *flash_class_tab[] = { 00018 &Samsung_FlashClass, 00019 // &Toshiba_FlashClass, 00020 NULL, /*< terminated by NULL */ 00021 }; 00022 00023 #define MAX_CHIP_ID_LIST 40 00024 00025 URET uffs_InitFlashClass(uffs_Device *dev) 00026 { 00027 struct uffs_FlashClassSt *work = flash_class_tab[0]; 00028 int i; 00029 00030 while(work != NULL) { 00031 if(dev->attr.maker == work->maker) { 00032 if(work->id_list == NULL){ 00033 return U_FAIL; 00034 } 00035 for(i = 0; i < MAX_CHIP_ID_LIST; i++) { 00036 if(work->id_list[i] == -1){ 00037 return U_FAIL; 00038 } 00039 if(work->id_list[i] == dev->attr.id) { 00040 dev->flash = work->flash; 00041 return U_SUCC; 00042 } 00043 } 00044 } 00045 work++; 00046 } 00047 00048 return U_FAIL; 00049 } 00050