Ignore:
Timestamp:
2010-03-30T15:49:42+02:00 (6 years ago)
Author:
ralph
Message:

adding httpd - failsafe patch
flash write routine is not functional yet
add configuration (board & dram)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/package/uboot-lantiq/files/board/infineon/easy50712/danube.c

    r20561 r20603  
    3333#include <asm/reboot.h> 
    3434#include <asm/io.h> 
     35#if defined(CONFIG_CMD_HTTPD) 
     36#include <httpd.h> 
     37#endif 
    3538 
    3639extern ulong ifx_get_ddr_hz(void); 
     
    337340} 
    338341 
     342#if defined(CONFIG_CMD_HTTPD) 
     343static int image_info (ulong addr) 
     344{ 
     345   void *hdr = (void *)addr; 
     346 
     347   printf ("\n## Checking Image at %08lx ...\n", addr); 
     348 
     349   switch (genimg_get_format (hdr)) { 
     350   case IMAGE_FORMAT_LEGACY: 
     351      puts ("   Legacy image found\n"); 
     352      if (!image_check_magic (hdr)) { 
     353         puts ("   Bad Magic Number\n"); 
     354         return 1; 
     355      } 
     356 
     357      if (!image_check_hcrc (hdr)) { 
     358         puts ("   Bad Header Checksum\n"); 
     359         return 1; 
     360      } 
     361 
     362      image_print_contents (hdr); 
     363 
     364      puts ("   Verifying Checksum ... "); 
     365      if (!image_check_dcrc (hdr)) { 
     366         puts ("   Bad Data CRC\n"); 
     367         return 1; 
     368      } 
     369      puts ("OK\n"); 
     370      return 0; 
     371#if defined(CONFIG_FIT) 
     372   case IMAGE_FORMAT_FIT: 
     373      puts ("   FIT image found\n"); 
     374 
     375      if (!fit_check_format (hdr)) { 
     376         puts ("Bad FIT image format!\n"); 
     377         return 1; 
     378      } 
     379 
     380      fit_print_contents (hdr); 
     381 
     382      if (!fit_all_image_check_hashes (hdr)) { 
     383         puts ("Bad hash in FIT image!\n"); 
     384         return 1; 
     385      } 
     386 
     387      return 0; 
     388#endif 
     389   default: 
     390      puts ("Unknown image format!\n"); 
     391      break; 
     392   } 
     393 
     394   return 1; 
     395} 
     396 
     397int do_http_upgrade(const unsigned char *data, const ulong size) 
     398{ 
     399        /* check the image */ 
     400        if(image_info(data)) { 
     401                return -1; 
     402        } 
     403        /* write the image to the flash */ 
     404        puts("http ugrade ...\n"); 
     405        return 0; 
     406} 
     407 
     408int do_http_progress(const int state) 
     409{ 
     410        /* toggle LED's here */ 
     411        switch(state) { 
     412                case HTTP_PROGRESS_START: 
     413                puts("http start\n"); 
     414                break; 
     415                case HTTP_PROGRESS_TIMEOUT: 
     416                break; 
     417                case HTTP_PROGRESS_UPLOAD_READY: 
     418                puts("http upload ready\n"); 
     419                break; 
     420                case HTTP_PROGRESS_UGRADE_READY: 
     421                puts("http ugrade ready\n"); 
     422                break; 
     423                case HTTP_PROGRESS_UGRADE_FAILED: 
     424                puts("http ugrade failed\n"); 
     425                break; 
     426        } 
     427        return 0; 
     428} 
     429 
     430unsigned long do_http_tmp_address(void) 
     431{ 
     432        char *s = getenv ("ram_addr"); 
     433        if (s) { 
     434                ulong tmp = simple_strtoul (s, NULL, 16); 
     435                return tmp; 
     436        } 
     437        return 0 /*0x80a00000*/; 
     438} 
     439 
     440#endif 
Note: See TracChangeset for help on using the changeset viewer.