COMMAND_EXEC, "show zy1000 version numbers");
 
        register_command(cmd_ctx, NULL, "rm", handle_rm_command, COMMAND_ANY,
-                       "rm <filname>");
+                       "remove file");
 
        register_command(cmd_ctx, NULL, "fast_load_image", handle_fast_load_image_command, COMMAND_ANY,
                        "same args as load_image, image stored in memory");
                        "loads active fast load image to current target");
 
        register_command(cmd_ctx, NULL, "cat", handle_cat_command, COMMAND_ANY,
-                       "cat <filname>");
+                       "display file content");
 
        register_command(cmd_ctx, NULL, "trunc", handle_trunc_command, COMMAND_ANY,
-                       "trunc <filname>");
+                       "truncate a file to 0 size");
 
        register_command(cmd_ctx, NULL, "append_file", handle_append_command,
-                       COMMAND_ANY, "append <filname>");
+                       COMMAND_ANY, "append a variable number of strings to a file");
 
        register_command(cmd_ctx, NULL, "power", handle_power_command, COMMAND_ANY,
                        "power <on/off> - turn power switch to target on/off. No arguments - print status.");
 
        register_command(cmd_ctx, NULL, "meminfo", handle_meminfo_command,
-                       COMMAND_ANY, "meminfo");
+                       COMMAND_ANY, "display available ram memory");
 
        register_command(cmd_ctx, NULL, "cp", handle_cp_command,
-                                        COMMAND_ANY, "cp <from> <to>");
+                                        COMMAND_ANY, "copy a file <from> <to>");
 
 #ifdef CYGPKG_PROFILE_GPROF
        register_command(cmd_ctx, NULL, "ecosboard_profile", eCosBoard_handle_eCosBoard_profile_command,
 
         */
        if ((argc < 4) || ((argc % 2)!=0))
        {
-               Jim_WrongNumArgs(interp, 1, args, "wrong arguments");
+               Jim_WrongNumArgs(interp, 1, args, "<device> <num_bits1> <value1> <num_bits2> <value2> ...");
                return JIM_ERR;
        }
 
 
 int ft2232_register_commands(struct command_context_s *cmd_ctx)
 {
        register_command(cmd_ctx, NULL, "ft2232_device_desc", ft2232_handle_device_desc_command,
-               COMMAND_CONFIG, NULL);
+               COMMAND_CONFIG, "the USB device description of the FTDI FT2232 device");
        register_command(cmd_ctx, NULL, "ft2232_serial", ft2232_handle_serial_command,
-               COMMAND_CONFIG, NULL);
+               COMMAND_CONFIG, "the serial number of the FTDI FT2232 device");
        register_command(cmd_ctx, NULL, "ft2232_layout", ft2232_handle_layout_command,
-               COMMAND_CONFIG, NULL);
+               COMMAND_CONFIG, "the layout of the FT2232 GPIO signals used to control output-enables and reset signals");
        register_command(cmd_ctx, NULL, "ft2232_vid_pid", ft2232_handle_vid_pid_command,
-                                        COMMAND_CONFIG, NULL);
+                                        COMMAND_CONFIG, "the vendor ID and product ID of the FTDI FT2232 device");
        register_command(cmd_ctx, NULL, "ft2232_latency", ft2232_handle_latency_command,
-                                        COMMAND_CONFIG, NULL);
+                                        COMMAND_CONFIG, "set the FT2232 latency timer to a new value");
        return ERROR_OK;
 }
 
 
        register_jim( cmd_ctx, "jtag", jim_jtag_command, "perform jtag tap actions");
 
        register_command(cmd_ctx, NULL, "interface", handle_interface_command,
-               COMMAND_CONFIG, NULL);
+               COMMAND_CONFIG, "try to configure interface");
        register_command(cmd_ctx, NULL, "jtag_speed", handle_jtag_speed_command,
                COMMAND_ANY, "set jtag speed (if supported)");
        register_command(cmd_ctx, NULL, "jtag_khz", handle_jtag_khz_command,
 
 int parport_register_commands(struct command_context_s *cmd_ctx)
 {
        register_command(cmd_ctx, NULL, "parport_port", parport_handle_parport_port_command,
-               COMMAND_CONFIG, NULL);
+               COMMAND_CONFIG, "either the address of the I/O port or the number of the \91/dev/parport\92 device");
        register_command(cmd_ctx, NULL, "parport_cable", parport_handle_parport_cable_command,
-               COMMAND_CONFIG, NULL);
+               COMMAND_CONFIG, "the layout of the parallel port cable used to connect to the target");
        register_command(cmd_ctx, NULL, "parport_write_on_exit", parport_handle_write_on_exit_command,
-               COMMAND_CONFIG, NULL);
+               COMMAND_CONFIG, "configure the parallel driver to write a known value to the parallel interface");
 
        return ERROR_OK;
 }
 
                                gdb_putback_char( connection, reply );
                                return ERROR_OK;
                        } else {
-                                       
+
                                LOG_ERROR("unknown character(1) 0x%2.2x in reply, dropping connection", reply);
                                gdb_con->closed=1;
                                return ERROR_SERVER_REMOTE_CLOSED;
                        }
-               } 
+               }
                else if( reply == '$' ){
                        LOG_ERROR("GDB missing ack(2) - assumed good");
                        gdb_putback_char( connection, reply );
                        return ERROR_OK;
-               } 
+               }
                else
                {
                        LOG_ERROR("unknown character(2) 0x%2.2x in reply, dropping connection", reply);
 
                if( LOG_LEVEL_IS( LOG_LVL_DEBUG ) ){
                        if( packet[0] == 'X' ){
-                               // binary packets spew junk into the debug log stream 
+                               // binary packets spew junk into the debug log stream
                                char buf[ 50 ];
                                int x;
                                for( x = 0 ; (x < 49) && (packet[x] != ':') ; x++ ){
 int handle_gdb_port_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
 {
        if (argc == 0)
+       {
+               command_print(cmd_ctx, "gdb_port: %ld", gdb_port);
                return ERROR_OK;
+       }
 
        /* only if the port wasn't overwritten by cmdline */
        if (gdb_port == 0)
                        detach_mode = GDB_DETACH_NOTHING;
                        return ERROR_OK;
                }
+               else
+                       LOG_WARNING("invalid gdb_detach configuration directive: %s", args[0]);
        }
 
-       LOG_WARNING("invalid gdb_detach configuration directive: %s", args[0]);
+       LOG_WARNING("gdb_detach take a single argument");
        return ERROR_OK;
 }
 
                        gdb_use_memory_map = 0;
                        return ERROR_OK;
                }
+               else
+                       LOG_WARNING("invalid gdb_memory_map configuration directive %s", args[0]);
        }
 
-       LOG_WARNING("invalid gdb_memory_map configuration directive: %s", args[0]);
+       LOG_WARNING("gdb_memory_map take a single argument");
        return ERROR_OK;
 }
 
                        gdb_flash_program = 0;
                        return ERROR_OK;
                }
+               else
+                       LOG_WARNING("invalid gdb_flash_program configuration directive: %s", args[0]);
        }
 
-       LOG_WARNING("invalid gdb_memory_map configuration directive: %s", args[0]);
+       LOG_WARNING("gdb_flash_program take a single argument");
        return ERROR_OK;
 }
 
                        gdb_report_data_abort = 0;
                        return ERROR_OK;
                }
+               else
+                       LOG_WARNING("invalid gdb_report_data_abort configuration directive: %s", args[0]);
        }
 
-       LOG_WARNING("invalid gdb_report_data_abort configuration directive: %s", args[0]);
+       LOG_WARNING("gdb_report_data_abort take a single argument");
        return ERROR_OK;
 }
 
-/* daemon configuration command gdb_port */
+/* gdb_breakpoint_override */
 int handle_gdb_breakpoint_override_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
 {
        if (argc == 0)
 int gdb_register_commands(command_context_t *command_context)
 {
        register_command(command_context, NULL, "gdb_port", handle_gdb_port_command,
-                       COMMAND_CONFIG, "");
+                       COMMAND_CONFIG, "daemon configuration command gdb_port");
        register_command(command_context, NULL, "gdb_detach", handle_gdb_detach_command,
                        COMMAND_CONFIG, "");
        register_command(command_context, NULL, "gdb_memory_map", handle_gdb_memory_map_command,
-                       COMMAND_CONFIG, "");
+                       COMMAND_CONFIG, "enable or disable memory map");
        register_command(command_context, NULL, "gdb_flash_program", handle_gdb_flash_program_command,
-                       COMMAND_CONFIG, "");
+                       COMMAND_CONFIG, "enable or disable flash program");
        register_command(command_context, NULL, "gdb_report_data_abort", handle_gdb_report_data_abort_command,
-                       COMMAND_CONFIG, "");
+                       COMMAND_CONFIG, "enable or disable report data");
        register_command(command_context, NULL, "gdb_breakpoint_override", handle_gdb_breakpoint_override_command,
                        COMMAND_EXEC, "hard/soft/disabled - force breakpoint type for gdb 'break' commands."
                        "The raison d'etre for this option is to support GDB GUI's without "
 
 
 int tcl_register_commands(command_context_t *cmd_ctx)
 {
-       register_command(cmd_ctx, NULL, "tcl_port", handle_tcl_port_command, COMMAND_CONFIG, "");
+       register_command(cmd_ctx, NULL, "tcl_port", handle_tcl_port_command, COMMAND_CONFIG, "port on which to listen for incoming TCL syntax");
        return ERROR_OK;
 }
 
 
                                         COMMAND_EXEC, "exit telnet session");
 
        register_command(command_context, NULL, "telnet_port", handle_telnet_port_command,
-                                        COMMAND_CONFIG, "");
+                                        COMMAND_CONFIG, "port on which to listen for incoming telnet connections");
 
        return ERROR_OK;
 }
 
 int target_register_commands(struct command_context_s *cmd_ctx)
 {
 
-       register_command(cmd_ctx, NULL, "targets", handle_targets_command, COMMAND_EXEC, NULL);
-       register_command(cmd_ctx, NULL, "working_area", handle_working_area_command, COMMAND_ANY, "working_area <target#> <address> <size> <'backup'|'nobackup'> [virtual address]");
-       register_command(cmd_ctx, NULL, "virt2phys", handle_virt2phys_command, COMMAND_ANY, "virt2phys <virtual address>");
-       register_command(cmd_ctx, NULL, "profile", handle_profile_command, COMMAND_EXEC, "PRELIMINARY! - profile <seconds> <gmon.out>");
+       register_command(cmd_ctx, NULL, "targets", handle_targets_command, COMMAND_EXEC, "change the current command line target (one parameter) or lists targets (with no parameter)");
+       register_command(cmd_ctx, NULL, "working_area", handle_working_area_command, COMMAND_ANY, "set a new working space");
+       register_command(cmd_ctx, NULL, "virt2phys", handle_virt2phys_command, COMMAND_ANY, "translate a virtual address into a physical address");
+       register_command(cmd_ctx, NULL, "profile", handle_profile_command, COMMAND_EXEC, "profiling samples the CPU PC");
 
        register_jim(cmd_ctx, "target", jim_target, "configure target" );
 
 int target_register_user_commands(struct command_context_s *cmd_ctx)
 {
        int retval = ERROR_OK;
-       register_command(cmd_ctx,  NULL, "reg", handle_reg_command, COMMAND_EXEC, NULL);
+       register_command(cmd_ctx,  NULL, "reg", handle_reg_command, COMMAND_EXEC, "display or set a register");
        register_command(cmd_ctx,  NULL, "poll", handle_poll_command, COMMAND_EXEC, "poll target state");
        register_command(cmd_ctx,  NULL, "wait_halt", handle_wait_halt_command, COMMAND_EXEC, "wait for target halt [time (s)]");
        register_command(cmd_ctx,  NULL, "halt", handle_halt_command, COMMAND_EXEC, "halt target");
 
                register_command(cmd_ctx, NULL, "target_request", NULL, COMMAND_ANY, "target_request commands");
        
        register_command(cmd_ctx, target_request_cmd, "debugmsgs", handle_target_request_debugmsgs_command,
-               COMMAND_EXEC, "enable/disable reception of debug messgages from target");
+               COMMAND_EXEC, "enable/disable reception of debug messages from target");
 
        return ERROR_OK;
 }