1
0
mirror of git://projects.qi-hardware.com/xburst-tools.git synced 2024-11-26 01:10:18 +02:00

change the file_buf use the code_buf not malloc

This commit is contained in:
xiangfu 2009-05-26 17:05:54 +00:00
parent 132b7afd9c
commit b47ed72723
3 changed files with 10 additions and 33 deletions

View File

@ -59,11 +59,6 @@ static int load_file(struct ingenic_dev *ingenic_dev, const char *file_path)
struct stat fstat;
int fd, status, res = -1;
if (ingenic_dev->file_buff)
free(ingenic_dev->file_buff);
ingenic_dev->file_buff = NULL;
status = stat(file_path, &fstat);
if (status < 0) {
@ -73,14 +68,7 @@ static int load_file(struct ingenic_dev *ingenic_dev, const char *file_path)
}
ingenic_dev->file_len = fstat.st_size;
ingenic_dev->file_buff = malloc(ingenic_dev->file_len);
if (!ingenic_dev->file_buff) {
fprintf(stderr, "Error - "
"can't allocate memory to read file '%s': %s\n",
file_path, strerror(errno));
return -1;
}
ingenic_dev->file_buff = code_buf;
fd = open(file_path, O_RDONLY);
@ -169,26 +157,18 @@ int boot(char *stage1_path, char *stage2_path){
if (load_file(&ingenic_dev, stage1_path) < 1)
return -1;
if (usb_ingenic_upload(&ingenic_dev, 1) < 1) {
if (ingenic_dev.file_buff)
free(ingenic_dev.file_buff);
if (usb_ingenic_upload(&ingenic_dev, 1) < 1)
return -1;
}
/* now we upload the usb boot stage2 */
sleep(1);
printf("\n Upload usb boot stage2");
if (load_file(&ingenic_dev, stage2_path) < 1) {
if (ingenic_dev.file_buff)
free(ingenic_dev.file_buff);
if (load_file(&ingenic_dev, stage2_path) < 1)
return -1;
}
if (usb_ingenic_upload(&ingenic_dev, 2) < 1) {
if (ingenic_dev.file_buff)
free(ingenic_dev.file_buff);
if (usb_ingenic_upload(&ingenic_dev, 2) < 1)
return -1;
}
printf("\n Boot success!");
}
sleep(1);

View File

@ -300,7 +300,8 @@ int usb_ingenic_upload(struct ingenic_dev *ingenic_dev, int stage)
usb_send_data_to_ingenic(ingenic_dev);
if (stage == 2) {
usb_get_ingenic_cpu(ingenic_dev);
if (usb_get_ingenic_cpu(ingenic_dev) < 1)
return -1;
usb_ingenic_flush_cache(ingenic_dev);
}
@ -320,7 +321,8 @@ int usb_ingenic_upload(struct ingenic_dev *ingenic_dev, int stage)
return status;
}
usb_get_ingenic_cpu(ingenic_dev);
if (usb_get_ingenic_cpu(ingenic_dev) < 1)
return -1;
return 1;
}

View File

@ -116,16 +116,11 @@ struct fw_args {
unsigned char pin_num;
unsigned int start;
unsigned int size;
/* for align */
/* unsigned char align1; */
/* unsigned char align2; */
} __attribute__((packed));
struct hand {
/* nand flash info */
int pt; /* cpu type */
int pt; /* cpu type */
unsigned int nand_bw; /* bus width */
unsigned int nand_rc; /* row cycle */
unsigned int nand_ps; /* page size */