Changeset 7876


Ignore:
Timestamp:
2007-07-04T18:51:00+02:00 (9 years ago)
Author:
mbm
Message:

rearrange diag's platform detection code to look for known platform strings before guessing

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • tags/kamikaze_7.07/package/broadcom-diag/src/diag.c

    r7722 r7876  
    9797        WR850GV1, 
    9898        WR850GV2V3, 
     99        WR850GP, 
    99100 
    100101        /* Belkin */ 
     
    495496                }, 
    496497        }, 
     498        [WR850GP] = { 
     499                .name           = "Motorola WR850GP", 
     500                .buttons        = { 
     501                        { .name = "reset",      .gpio = 1 << 5 }, 
     502                }, 
     503                .leds           = { 
     504                        { .name = "power",      .gpio = 1 << 1, .polarity = NORMAL }, 
     505                        { .name = "wlan",       .gpio = 1 << 0, .polarity = REVERSE }, 
     506                        { .name = "dmz",        .gpio = 1 << 6, .polarity = REVERSE }, 
     507                        { .name = "diag",       .gpio = 1 << 7, .polarity = REVERSE }, 
     508                }, 
     509        }, 
     510 
    497511        /* Belkin */ 
    498512        [BELKIN_UNKNOWN] = { 
     
    572586        char *boardnum, *boardtype, *buf; 
    573587 
     588        if (strcmp(getvar("nvram_type"), "cfe") == 0) 
     589                return &platforms[WGT634U]; 
     590 
     591        /* Look for a model identifier */ 
     592 
     593        /* Based on "model_name" */ 
     594        if (buf = nvram_get("model_name")) { 
     595                if (!strcmp(buf, "DIR-130")) 
     596                        return &platforms[DIR130]; 
     597                if (!strcmp(buf, "DIR-330")) 
     598                        return &platforms[DIR330]; 
     599        } 
     600 
     601        /* Based on "model_no" */ 
     602        if (buf = nvram_get("model_no")) { 
     603                if (!strncmp(buf,"WL700", 5)) /* WL700* */ 
     604                        return &platforms[WL700GE]; 
     605        } 
     606 
     607        /* Based on "ModelId" */ 
     608        if (buf = nvram_get("ModelId")) { 
     609                if (!strcmp(buf, "WR850GP")) 
     610                        return &platforms[WR850GP]; 
     611                if (!strcmp(buf,"WX-5565")) 
     612                        return &platforms[TM2300]; 
     613                if (!strncmp(buf,"WE800G", 6)) /* WE800G* */ 
     614                        return &platforms[WE800G]; 
     615        } 
     616 
     617        /* Buffalo */ 
     618        if ((buf = (nvram_get("melco_id") ?: nvram_get("buffalo_id")))) { 
     619                /* Buffalo hardware, check id for specific hardware matches */ 
     620                if (!strcmp(buf, "29bb0332")) 
     621                        return &platforms[WBR2_G54]; 
     622                if (!strcmp(buf, "29129")) 
     623                        return &platforms[WLA2_G54L]; 
     624                if (!strcmp(buf, "30189")) 
     625                        return &platforms[WHR_HP_G54]; 
     626                if (!strcmp(buf, "30182")) 
     627                        return &platforms[WHR_G54S]; 
     628                if (!strcmp(buf, "290441dd")) 
     629                        return &platforms[WHR2_A54G54]; 
     630                if (!strcmp(buf, "31120")) 
     631                        return &platforms[WZR_G300N]; 
     632                if (!strcmp(buf, "30083")) 
     633                        return &platforms[WZR_RS_G54]; 
     634                if (!strcmp(buf, "30103")) 
     635                        return &platforms[WZR_RS_G54HP]; 
     636        } 
     637 
     638        /* no easy model number, attempt to guess */ 
    574639        boardnum = getvar("boardnum"); 
    575640        boardtype = getvar("boardtype"); 
    576  
    577         if (strcmp(getvar("nvram_type"), "cfe") == 0) 
    578                 return &platforms[WGT634U]; 
    579          
    580         if (strncmp(getvar("model_no"), "WL700",5) == 0) 
    581                 return &platforms[WL700GE]; 
    582641 
    583642        if (strncmp(getvar("pmon_ver"), "CFE", 3) == 0) { 
     
    609668                        return &platforms[USR5461]; 
    610669 
    611                 /* D-Link */ 
    612                 if (!strcmp(getvar("model_name"), "DIR-130")) 
    613                         return &platforms[DIR130]; 
    614                 if (!strcmp(getvar("model_name"), "DIR-330")) 
    615                         return &platforms[DIR330]; 
    616  
    617670        } else { /* PMON based - old stuff */ 
    618  
    619                 /* Dell TrueMobile 2300 */ 
    620                 if (!strcmp(getvar("ModelId"),"WX-5565")) 
    621                         return &platforms[TM2300]; 
    622          
    623671                if ((simple_strtoul(getvar("GemtekPmonVer"), NULL, 0) == 9) && 
    624672                        (simple_strtoul(getvar("et0phyaddr"), NULL, 0) == 30)) { 
    625                         if (!strncmp(getvar("ModelId"),"WE800G", 6)) 
    626                                 return &platforms[WE800G]; 
    627                         else 
    628                                 return &platforms[WR850GV1]; 
     673                        return &platforms[WR850GV1]; 
    629674                } 
    630675                if (!strncmp(boardtype, "bcm94710dev", 11)) { 
     
    649694                if (!strncmp(boardnum, "asusX", 5)) 
    650695                        return &platforms[ASUS_4702]; 
    651         } 
    652  
    653         if ((buf = (nvram_get("melco_id") ?: nvram_get("buffalo_id")))) { 
    654                 /* Buffalo hardware, check id for specific hardware matches */ 
    655                 if (!strcmp(buf, "29bb0332")) 
    656                         return &platforms[WBR2_G54]; 
    657                 if (!strcmp(buf, "29129")) 
    658                         return &platforms[WLA2_G54L]; 
    659                 if (!strcmp(buf, "30189")) 
    660                         return &platforms[WHR_HP_G54]; 
    661                 if (!strcmp(buf, "30182")) 
    662                         return &platforms[WHR_G54S]; 
    663                 if (!strcmp(buf, "290441dd")) 
    664                         return &platforms[WHR2_A54G54]; 
    665                 if (!strcmp(buf, "31120")) 
    666                         return &platforms[WZR_G300N]; 
    667                 if (!strcmp(buf, "30083")) 
    668                         return &platforms[WZR_RS_G54]; 
    669                 if (!strcmp(buf, "30103")) 
    670                         return &platforms[WZR_RS_G54HP]; 
    671696        } 
    672697 
  • trunk/package/broadcom-diag/src/diag.c

    r7722 r7876  
    9797        WR850GV1, 
    9898        WR850GV2V3, 
     99        WR850GP, 
    99100 
    100101        /* Belkin */ 
     
    495496                }, 
    496497        }, 
     498        [WR850GP] = { 
     499                .name           = "Motorola WR850GP", 
     500                .buttons        = { 
     501                        { .name = "reset",      .gpio = 1 << 5 }, 
     502                }, 
     503                .leds           = { 
     504                        { .name = "power",      .gpio = 1 << 1, .polarity = NORMAL }, 
     505                        { .name = "wlan",       .gpio = 1 << 0, .polarity = REVERSE }, 
     506                        { .name = "dmz",        .gpio = 1 << 6, .polarity = REVERSE }, 
     507                        { .name = "diag",       .gpio = 1 << 7, .polarity = REVERSE }, 
     508                }, 
     509        }, 
     510 
    497511        /* Belkin */ 
    498512        [BELKIN_UNKNOWN] = { 
     
    572586        char *boardnum, *boardtype, *buf; 
    573587 
     588        if (strcmp(getvar("nvram_type"), "cfe") == 0) 
     589                return &platforms[WGT634U]; 
     590 
     591        /* Look for a model identifier */ 
     592 
     593        /* Based on "model_name" */ 
     594        if (buf = nvram_get("model_name")) { 
     595                if (!strcmp(buf, "DIR-130")) 
     596                        return &platforms[DIR130]; 
     597                if (!strcmp(buf, "DIR-330")) 
     598                        return &platforms[DIR330]; 
     599        } 
     600 
     601        /* Based on "model_no" */ 
     602        if (buf = nvram_get("model_no")) { 
     603                if (!strncmp(buf,"WL700", 5)) /* WL700* */ 
     604                        return &platforms[WL700GE]; 
     605        } 
     606 
     607        /* Based on "ModelId" */ 
     608        if (buf = nvram_get("ModelId")) { 
     609                if (!strcmp(buf, "WR850GP")) 
     610                        return &platforms[WR850GP]; 
     611                if (!strcmp(buf,"WX-5565")) 
     612                        return &platforms[TM2300]; 
     613                if (!strncmp(buf,"WE800G", 6)) /* WE800G* */ 
     614                        return &platforms[WE800G]; 
     615        } 
     616 
     617        /* Buffalo */ 
     618        if ((buf = (nvram_get("melco_id") ?: nvram_get("buffalo_id")))) { 
     619                /* Buffalo hardware, check id for specific hardware matches */ 
     620                if (!strcmp(buf, "29bb0332")) 
     621                        return &platforms[WBR2_G54]; 
     622                if (!strcmp(buf, "29129")) 
     623                        return &platforms[WLA2_G54L]; 
     624                if (!strcmp(buf, "30189")) 
     625                        return &platforms[WHR_HP_G54]; 
     626                if (!strcmp(buf, "30182")) 
     627                        return &platforms[WHR_G54S]; 
     628                if (!strcmp(buf, "290441dd")) 
     629                        return &platforms[WHR2_A54G54]; 
     630                if (!strcmp(buf, "31120")) 
     631                        return &platforms[WZR_G300N]; 
     632                if (!strcmp(buf, "30083")) 
     633                        return &platforms[WZR_RS_G54]; 
     634                if (!strcmp(buf, "30103")) 
     635                        return &platforms[WZR_RS_G54HP]; 
     636        } 
     637 
     638        /* no easy model number, attempt to guess */ 
    574639        boardnum = getvar("boardnum"); 
    575640        boardtype = getvar("boardtype"); 
    576  
    577         if (strcmp(getvar("nvram_type"), "cfe") == 0) 
    578                 return &platforms[WGT634U]; 
    579          
    580         if (strncmp(getvar("model_no"), "WL700",5) == 0) 
    581                 return &platforms[WL700GE]; 
    582641 
    583642        if (strncmp(getvar("pmon_ver"), "CFE", 3) == 0) { 
     
    609668                        return &platforms[USR5461]; 
    610669 
    611                 /* D-Link */ 
    612                 if (!strcmp(getvar("model_name"), "DIR-130")) 
    613                         return &platforms[DIR130]; 
    614                 if (!strcmp(getvar("model_name"), "DIR-330")) 
    615                         return &platforms[DIR330]; 
    616  
    617670        } else { /* PMON based - old stuff */ 
    618  
    619                 /* Dell TrueMobile 2300 */ 
    620                 if (!strcmp(getvar("ModelId"),"WX-5565")) 
    621                         return &platforms[TM2300]; 
    622          
    623671                if ((simple_strtoul(getvar("GemtekPmonVer"), NULL, 0) == 9) && 
    624672                        (simple_strtoul(getvar("et0phyaddr"), NULL, 0) == 30)) { 
    625                         if (!strncmp(getvar("ModelId"),"WE800G", 6)) 
    626                                 return &platforms[WE800G]; 
    627                         else 
    628                                 return &platforms[WR850GV1]; 
     673                        return &platforms[WR850GV1]; 
    629674                } 
    630675                if (!strncmp(boardtype, "bcm94710dev", 11)) { 
     
    649694                if (!strncmp(boardnum, "asusX", 5)) 
    650695                        return &platforms[ASUS_4702]; 
    651         } 
    652  
    653         if ((buf = (nvram_get("melco_id") ?: nvram_get("buffalo_id")))) { 
    654                 /* Buffalo hardware, check id for specific hardware matches */ 
    655                 if (!strcmp(buf, "29bb0332")) 
    656                         return &platforms[WBR2_G54]; 
    657                 if (!strcmp(buf, "29129")) 
    658                         return &platforms[WLA2_G54L]; 
    659                 if (!strcmp(buf, "30189")) 
    660                         return &platforms[WHR_HP_G54]; 
    661                 if (!strcmp(buf, "30182")) 
    662                         return &platforms[WHR_G54S]; 
    663                 if (!strcmp(buf, "290441dd")) 
    664                         return &platforms[WHR2_A54G54]; 
    665                 if (!strcmp(buf, "31120")) 
    666                         return &platforms[WZR_G300N]; 
    667                 if (!strcmp(buf, "30083")) 
    668                         return &platforms[WZR_RS_G54]; 
    669                 if (!strcmp(buf, "30103")) 
    670                         return &platforms[WZR_RS_G54HP]; 
    671696        } 
    672697 
Note: See TracChangeset for help on using the changeset viewer.