mirror of
git://projects.qi-hardware.com/xburst-tools.git
synced 2024-11-22 18:12:27 +02:00
increate cmd buf size, some code style cleanup
This commit is contained in:
parent
702b54aa47
commit
f685003456
@ -37,13 +37,13 @@ static int handle_help(void)
|
|||||||
{
|
{
|
||||||
printf(
|
printf(
|
||||||
" boot boot device and make it in stage2\n"
|
" boot boot device and make it in stage2\n"
|
||||||
|
" nprog program NAND flash\n"
|
||||||
" nquery query NAND flash info\n"
|
" nquery query NAND flash info\n"
|
||||||
" nerase erase NAND flash\n"
|
" nerase erase NAND flash\n"
|
||||||
" nmark mark a bad block in NAND flash\n"
|
" nmark mark a bad block in NAND flash\n"
|
||||||
" nread read NAND flash data with checking bad block and ECC\n"
|
" nread read NAND flash data with checking bad block and ECC\n"
|
||||||
" nreadraw read NAND flash data without checking bad block and ECC\n"
|
" nreadraw read NAND flash data without checking bad block and ECC\n"
|
||||||
" nreadoob read NAND flash oob\n"
|
" nreadoob read NAND flash oob\n"
|
||||||
" nprog program NAND flash\n"
|
|
||||||
" gpios set one GPIO to high level\n"
|
" gpios set one GPIO to high level\n"
|
||||||
" gpioc set one GPIO to low level\n"
|
" gpioc set one GPIO to low level\n"
|
||||||
" load load file data to SDRAM\n"
|
" load load file data to SDRAM\n"
|
||||||
@ -81,7 +81,7 @@ int handle_nerase(void)
|
|||||||
if (nand_erase(&nand_in) < 1)
|
if (nand_erase(&nand_in) < 1)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
return 1;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int handle_nmark(void)
|
int handle_nmark(void)
|
||||||
@ -93,6 +93,7 @@ int handle_nmark(void)
|
|||||||
" 3:flash chip index number\n");
|
" 3:flash chip index number\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
init_nand_in();
|
init_nand_in();
|
||||||
|
|
||||||
nand_in.start = atoi(com_argv[1]);
|
nand_in.start = atoi(com_argv[1]);
|
||||||
@ -105,14 +106,13 @@ int handle_nmark(void)
|
|||||||
(nand_in.cs_map)[atoi(com_argv[3])] = 1;
|
(nand_in.cs_map)[atoi(com_argv[3])] = 1;
|
||||||
|
|
||||||
nand_markbad(&nand_in);
|
nand_markbad(&nand_in);
|
||||||
return 1;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int handle_memtest(void)
|
int handle_memtest(void)
|
||||||
{
|
{
|
||||||
unsigned int start, size;
|
unsigned int start, size;
|
||||||
if (com_argc != 2 && com_argc != 4)
|
if (com_argc != 2 && com_argc != 4) {
|
||||||
{
|
|
||||||
printf(" Usage: memtest (1) [2] [3]\n"
|
printf(" Usage: memtest (1) [2] [3]\n"
|
||||||
" 1:device index number\n"
|
" 1:device index number\n"
|
||||||
" 2:SDRAM start address\n"
|
" 2:SDRAM start address\n"
|
||||||
@ -127,8 +127,9 @@ int handle_memtest(void)
|
|||||||
start = 0;
|
start = 0;
|
||||||
size = 0;
|
size = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
debug_memory(atoi(com_argv[1]), start, size);
|
debug_memory(atoi(com_argv[1]), start, size);
|
||||||
return 1;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int handle_gpio(int mode)
|
int handle_gpio(int mode)
|
||||||
@ -142,12 +143,12 @@ int handle_gpio(int mode)
|
|||||||
}
|
}
|
||||||
|
|
||||||
debug_gpio(atoi(com_argv[2]), mode, atoi(com_argv[1]));
|
debug_gpio(atoi(com_argv[2]), mode, atoi(com_argv[1]));
|
||||||
return 1;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int handle_load(void)
|
int handle_load(void)
|
||||||
{
|
{
|
||||||
if (com_argc<4) {
|
if (com_argc < 4) {
|
||||||
printf(" Usage:"
|
printf(" Usage:"
|
||||||
" load (1) (2) (3) \n"
|
" load (1) (2) (3) \n"
|
||||||
" 1:SDRAM start address\n"
|
" 1:SDRAM start address\n"
|
||||||
@ -158,21 +159,20 @@ int handle_load(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
sdram_in.start=strtoul(com_argv[1], NULL, 0);
|
sdram_in.start=strtoul(com_argv[1], NULL, 0);
|
||||||
printf(" start:::::: 0x%x\n", sdram_in.start);
|
|
||||||
|
|
||||||
sdram_in.dev = atoi(com_argv[3]);
|
sdram_in.dev = atoi(com_argv[3]);
|
||||||
sdram_in.buf = code_buf;
|
sdram_in.buf = code_buf;
|
||||||
|
|
||||||
sdram_load_file(&sdram_in, com_argv[2]);
|
sdram_load_file(&sdram_in, com_argv[2]);
|
||||||
return 1;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int command_handle(char *buf)
|
int command_handle(char *buf)
|
||||||
{
|
{
|
||||||
if(buf[0] == '\n')
|
char *p = strtok(buf, "\n ");
|
||||||
|
if(p == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
com_argc = 0;
|
com_argc = 0;
|
||||||
char *p = strtok(buf, "\n ");
|
|
||||||
strcpy(com_argv[com_argc++], p);
|
strcpy(com_argv[com_argc++], p);
|
||||||
|
|
||||||
while (p = strtok(NULL, "\n "))
|
while (p = strtok(NULL, "\n "))
|
||||||
@ -180,6 +180,8 @@ int command_handle(char *buf)
|
|||||||
|
|
||||||
if (!strcmp("boot", com_argv[0]))
|
if (!strcmp("boot", com_argv[0]))
|
||||||
boot(stage1, stage2);
|
boot(stage1, stage2);
|
||||||
|
else if (!strcmp("nprog", com_argv[0]))
|
||||||
|
nand_prog();
|
||||||
else if (!strcmp("nquery", com_argv[0]))
|
else if (!strcmp("nquery", com_argv[0]))
|
||||||
nand_query();
|
nand_query();
|
||||||
else if (!strcmp("nerase", com_argv[0]))
|
else if (!strcmp("nerase", com_argv[0]))
|
||||||
@ -192,8 +194,6 @@ int command_handle(char *buf)
|
|||||||
nand_read(NAND_READ_RAW);
|
nand_read(NAND_READ_RAW);
|
||||||
else if (!strcmp("nreadoob", com_argv[0]))
|
else if (!strcmp("nreadoob", com_argv[0]))
|
||||||
nand_read(NAND_READ_OOB);
|
nand_read(NAND_READ_OOB);
|
||||||
else if (!strcmp("nprog", com_argv[0]))
|
|
||||||
nand_prog();
|
|
||||||
else if (!strcmp("gpios", com_argv[0]))
|
else if (!strcmp("gpios", com_argv[0]))
|
||||||
handle_gpio(2);
|
handle_gpio(2);
|
||||||
else if (!strcmp("gpioc", com_argv[0]))
|
else if (!strcmp("gpioc", com_argv[0]))
|
||||||
@ -209,7 +209,7 @@ int command_handle(char *buf)
|
|||||||
else if (!strcmp("exit", com_argv[0]))
|
else if (!strcmp("exit", com_argv[0]))
|
||||||
return -1;
|
return -1;
|
||||||
else
|
else
|
||||||
printf(" [%s] Not Support!", com_argv[0]);
|
printf(" type `help` show all commands\n", com_argv[0]);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -67,11 +67,12 @@ static struct option opts[] = {
|
|||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
int command = 0;
|
|
||||||
char *cptr;
|
char *cptr;
|
||||||
char com_buf[256] = {0};
|
|
||||||
char *cmdpt;
|
char *cmdpt;
|
||||||
|
int command = 0;
|
||||||
|
char cmd_buf[512] = {0};
|
||||||
char *cfgpath = CONFIG_FILE_PATH;
|
char *cfgpath = CONFIG_FILE_PATH;
|
||||||
|
|
||||||
stage1 = STAGE1_FILE_PATH;
|
stage1 = STAGE1_FILE_PATH;
|
||||||
stage2 = STAGE2_FILE_PATH;
|
stage2 = STAGE2_FILE_PATH;
|
||||||
|
|
||||||
@ -79,7 +80,6 @@ int main(int argc, char **argv)
|
|||||||
"(c) 2009 Ingenic Semiconductor Inc., Qi Hardware Inc., Xiangfu Liu, Marek Lindner\n"
|
"(c) 2009 Ingenic Semiconductor Inc., Qi Hardware Inc., Xiangfu Liu, Marek Lindner\n"
|
||||||
"This program is Free Software and comes with ABSOLUTELY NO WARRANTY.\n\n");
|
"This program is Free Software and comes with ABSOLUTELY NO WARRANTY.\n\n");
|
||||||
|
|
||||||
|
|
||||||
while(1) {
|
while(1) {
|
||||||
int c, option_index = 0;
|
int c, option_index = 0;
|
||||||
c = getopt_long(argc, argv, "hvc:f:1:2:", opts,
|
c = getopt_long(argc, argv, "hvc:f:1:2:", opts,
|
||||||
@ -119,14 +119,16 @@ int main(int argc, char **argv)
|
|||||||
if (parse_configure(&hand, cfgpath) < 1)
|
if (parse_configure(&hand, cfgpath) < 1)
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
|
|
||||||
|
#define MAX_COMMANDS 10
|
||||||
if (command) { /* direct run command */
|
if (command) { /* direct run command */
|
||||||
char *sub_cmd[10];
|
char *sub_cmd[MAX_COMMANDS];
|
||||||
int i, loop = 0;
|
int i, loop = 0;
|
||||||
|
|
||||||
sub_cmd[loop] = strtok(cmdpt, ";");
|
sub_cmd[loop++] = strtok(cmdpt, ";");
|
||||||
while (sub_cmd[loop] && loop < 10) {
|
while (sub_cmd[loop++] = strtok(NULL, ";"))
|
||||||
loop++;
|
if (loop >= MAX_COMMANDS) {
|
||||||
sub_cmd[loop] = strtok(NULL, ";");
|
printf(" -c only support 10 commands\n");
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < loop - 1; i++) {
|
for (i = 0; i < loop - 1; i++) {
|
||||||
@ -137,12 +139,10 @@ int main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
printf("usbboot :> ");
|
printf("usbboot# ");
|
||||||
cptr = fgets(com_buf, 256, stdin);
|
cptr = fgets(cmd_buf, sizeof(cmd_buf), stdin);
|
||||||
if (cptr == NULL)
|
if (cptr != NULL)
|
||||||
continue;
|
if (command_handle(cmd_buf))
|
||||||
|
|
||||||
if (command_handle(com_buf))
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user