Dear Kumar Gala, In message <[EMAIL PROTECTED]> you wrote: > This version: > * cleans ups issues pointed out by Jerry > * adds a state machine to the command processing > * adds bd_t and cmdline process on linux for ppc
Thanks a lot. I'm still missing the possibility to use longer sub-command names, and code to parse these in a sane way. > +int do_bootm_subcommand (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) > +{ > + int ret = 0; > + int state; > + > + /* start */ > + if (argv[1][0] == 's') { > + argc--; > + argv++; > + return bootm_start(cmdtp, flag, argc, argv); > + } > + /* loados */ > + else if (argv[1][0] == 'l') { > + state = BOOTM_STATE_LOADOS; > + } > + /* ramdisk relocate */ > +#if defined(CONFIG_PPC) || defined(CONFIG_M68K) || defined(CONFIG_SPARC) > + else if (argv[1][0] == 'r') { > + state = BOOTM_STATE_RAMDISK; > + } > +#endif > +#ifdef CONFIG_OF_LIBFDT > + /* fdt relocate */ > + else if (argv[1][0] == 'f') { > + state = BOOTM_STATE_FDT; > + } > +#endif > + /* bd_t setup */ > + else if (argv[1][0] == 'b') { > + state = BOOTM_STATE_OS_BD_T; > + } > + /* cmdline setup */ > + else if (argv[1][0] == 'c') { > + state = BOOTM_STATE_OS_CMDLINE; > + } > + /* prep os */ > + else if (argv[1][0] == 'p') { > + state = BOOTM_STATE_OS_PREP; > + } > + /* go */ > + else if (argv[1][0] == 'g') { > + state = BOOTM_STATE_OS_GO; > + } > + /* Unrecognized command */ > + else { > + printf ("Usage:\n%s\n", cmdtp->usage); > + return 1; > + } I really wonder why you didn't use a switch statement here? Anyway, as mentioned before, I do not like to be restrricted to one letter subcommand names - we would rather sooner than later come up with names that nobody can remember. Maybe we can extend find_cmd() (in "common/command.c") to take an alternative command table (for the sub-commands) and reuse the existing code? [And then probably do this also for some other commands that take subcommands..] Best regards, Wolfgang Denk -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: [EMAIL PROTECTED] "In matters of principle, stand like a rock; in matters of taste, swim with the current." - Thomas Jefferson _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot