Ticket #812: gsmver.patch

File gsmver.patch, 1.8 KB (added by frances.albanese, 11 years ago)

Patch for gsmver (u-boot 1.3.2)

  • board/neo1973/common/gsmver.c

    old new  
    3232int neo1973_gsmver() 
    3333{ 
    3434        int i; 
     35        char c; 
     36         
     37        ulong delay = 1 * CFG_HZ; 
     38        ulong start; 
    3539        device_t *dev = NULL; 
    3640        int string_end_count = 0; 
    3741 
    int neo1973_gsmver() 
    4953#if defined(CONFIG_ARCH_GTA01_v3) || defined(CONFIG_ARCH_GTA01_v4) || \ 
    5054        defined(CONFIG_ARCH_GTA01B_v2) || defined(CONFIG_ARCH_GTA01B_v3) || \ 
    5155        defined(CONFIG_ARCH_GTA01B_v4) 
    52         neo1973_gta01_serial0_gsm(1); 
    53 #endif 
    5456 
     57        start = get_timer(0); 
     58 
     59        neo1973_gsm(1); 
     60 
     61        while (get_timer(start) < delay)         
     62                udelay(100);                      
     63                                                         
     64        start = get_timer(0);                     
     65                                                  
     66        neo1973_gta01_serial0_gsm(1);             
     67                                                  
     68        while (get_timer(start) < delay)          
     69                udelay(100);                     
     70 
     71#endif 
     72        int flag = 0; 
    5573        /* Query GSM firmware information by AT command */ 
     74        printf("Entering terminal mode for port %s\n", dev->name); 
    5675        dev->puts("AT+CGMR\r\n"); 
    5776        puts("GSM firmware version: "); 
     77        start = get_timer(0); 
    5878 
    59         /* read from serial and display version information */ 
    60         while (1) { 
     79         
     80        while (get_timer(start) < delay) { // safety timeout (a bit of overkill, why not ?) 
    6181                if (dev->tstc()) { 
    62                         i = dev->getc(); 
    63                         putc(i); 
    64                         /* FIXME: should we just dump straightforward 
    65                          * version string such as "moko1" or "moko4"? 
    66                          */ 
    67                         if (i == '\n' || i == '\r') 
    68                                 continue; 
     82                        c = dev->getc(); 
     83                         
     84 
     85                        if (c == ':' && !flag) 
     86                                flag++; 
     87 
     88                        if ((c == '\r' || c == '\n') && flag) 
     89                                break; 
     90         
     91                        if (flag) 
     92                                putc(c); 
     93 
     94                                         
     95                         
    6996                } 
    7097        } 
    7198        putc('\n'); 
    int neo1973_gsmver() 
    73100#if defined(CONFIG_ARCH_GTA01_v3) || defined(CONFIG_ARCH_GTA01_v4) || \ 
    74101    defined(CONFIG_ARCH_GTA01B_v2) || defined(CONFIG_ARCH_GTA01B_v3) || \ 
    75102    defined(CONFIG_ARCH_GTA01B_v4) 
     103         
    76104        neo1973_gta01_serial0_gsm(0); 
     105        neo1973_gsm(0); 
    77106#endif 
    78107 
    79108        return 0;