1. support usb recovery

This commit is contained in:
Jerry Wang
2013-02-28 11:00:58 +08:00
parent 2352caa73e
commit 466a2692a6

View File

@ -45,7 +45,7 @@ void fastboot_flash_partition_init(void)
char partition_sets[256]; char partition_sets[256];
char part_name[16]; char part_name[16];
char *pa_index; char *pa_index;
int part_name_count; int part_name_count;
printf("--------fastboot partitions--------\n"); printf("--------fastboot partitions--------\n");
part_total = sunxi_partition_get_total_num(); part_total = sunxi_partition_get_total_num();
@ -81,7 +81,7 @@ void fastboot_flash_partition_init(void)
strcpy(pa_index, part_name); strcpy(pa_index, part_name);
pa_index += strlen(part_name); pa_index += strlen(part_name);
*pa_index = ':'; *pa_index = ':';
pa_index ++; pa_index ++;
if(!storage_type) if(!storage_type)
{ {
@ -101,7 +101,7 @@ void fastboot_flash_partition_init(void)
if(part_name_count < 5) if(part_name_count < 5)
{ {
part_name_count = 5; part_name_count = 5;
part_name[8] = '5'; part_name[8] = '5';
} }
else if(part_name_count < 10) else if(part_name_count < 10)
{ {
@ -130,7 +130,7 @@ void fastboot_flash_partition_init(void)
printf("-----------------------------------\n"); printf("-----------------------------------\n");
setenv("partitions", partition_sets); setenv("partitions", partition_sets);
} }
void fastboot_partition_init(void) { void fastboot_partition_init(void) {
@ -151,7 +151,7 @@ int android_misc_flash_check(void) {
{ {
puts("no misc partition is found\n"); puts("no misc partition is found\n");
return 0; return 0;
} }
memset(buffer, 0, 2048); memset(buffer, 0, 2048);
#ifdef DEBUG #ifdef DEBUG
printf("misc_offset : %d\n", (int )misc_offset); printf("misc_offset : %d\n", (int )misc_offset);
@ -172,6 +172,13 @@ int android_misc_flash_check(void) {
puts("Recovery detected, will boot recovery\n"); puts("Recovery detected, will boot recovery\n");
/* android recovery will clean the misc */ /* android recovery will clean the misc */
} }
else if(!strcmp(misc_message.command, "usb-recovery")) {
/* there is a recovery command */
puts("find usb recovery\n");
setenv("bootcmd", "run setargs_mmc boot_recovery");
puts("Recovery detected, will boot recovery\n");
/* android recovery will clean the misc */
}
else{ else{
printf("bootcmd set setargs_mmc\n"); printf("bootcmd set setargs_mmc\n");
setenv("bootcmd", "run setargs_mmc boot_normal"); setenv("bootcmd", "run setargs_mmc boot_normal");
@ -194,6 +201,13 @@ int android_misc_flash_check(void) {
puts("Recovery detected, will boot recovery\n"); puts("Recovery detected, will boot recovery\n");
/* android recovery will clean the misc */ /* android recovery will clean the misc */
} }
else if(!strcmp(misc_message.command, "usb-recovery")) {
/* there is a recovery command */
puts("find usb recovery\n");
setenv("bootcmd", "run setargs_nand boot_recovery");
puts("Recovery detected, will boot recovery\n");
/* android recovery will clean the misc */
}
else{ else{
printf("bootcmd set setargs_nand\n"); printf("bootcmd set setargs_nand\n");
setenv("bootcmd", "run setargs_nand boot_normal"); setenv("bootcmd", "run setargs_nand boot_normal");
@ -221,7 +235,7 @@ int check_android_misc(void){
} }
void set_boot_type_arg(void){ void set_boot_type_arg(void){
if(storage_type){ if(storage_type){
setenv("bootcmd", "run setargs_mmc boot_normal"); setenv("bootcmd", "run setargs_mmc boot_normal");
} }
@ -268,7 +282,7 @@ int dram_init(void)
int board_mmc_init(bd_t *bis) int board_mmc_init(bd_t *bis)
{ {
sunxi_mmc_init(mmc_card_no); sunxi_mmc_init(mmc_card_no);
return 0; return 0;
} }