+static const struct command_registration xscale_exec_command_handlers[] = {
+ {
+ .name = "cache_info",
+ .handler = &xscale_handle_cache_info_command,
+ .mode = COMMAND_EXEC, NULL,
+ },
+
+ {
+ .name = "mmu",
+ .handler = &xscale_handle_mmu_command,
+ .mode = COMMAND_EXEC,
+ .usage = "[enable|disable]",
+ .help = "enable or disable the MMU",
+ },
+ {
+ .name = "icache",
+ .handler = &xscale_handle_idcache_command,
+ .mode = COMMAND_EXEC,
+ .usage = "[enable|disable]",
+ .help = "enable or disable the ICache",
+ },
+ {
+ .name = "dcache",
+ .handler = &xscale_handle_idcache_command,
+ .mode = COMMAND_EXEC,
+ .usage = "[enable|disable]",
+ .help = "enable or disable the DCache",
+ },
+
+ {
+ .name = "vector_catch",
+ .handler = &xscale_handle_vector_catch_command,
+ .mode = COMMAND_EXEC,
+ .help = "mask of vectors that should be caught",
+ .usage = "[<mask>]",
+ },
+ {
+ .name = "vector_table",
+ .handler = &xscale_handle_vector_table_command,
+ .mode = COMMAND_EXEC,
+ .usage = "<high|low> <index> <code>",
+ .help = "set static code for exception handler entry",
+ },
+
+ {
+ .name = "trace_buffer",
+ .handler = &xscale_handle_trace_buffer_command,
+ .mode = COMMAND_EXEC,
+ .usage = "<enable | disable> [fill [n]|wrap]",
+ },
+ {
+ .name = "dump_trace",
+ .handler = &xscale_handle_dump_trace_command,
+ .mode = COMMAND_EXEC,
+ .help = "dump content of trace buffer to <file>",
+ .usage = "<file>",
+ },
+ {
+ .name = "analyze_trace",
+ .handler = &xscale_handle_analyze_trace_buffer_command,
+ .mode = COMMAND_EXEC,
+ .help = "analyze content of trace buffer",
+ },
+ {
+ .name = "trace_image",
+ .handler = &xscale_handle_trace_image_command,
+ COMMAND_EXEC,
+ .help = "load image from <file> [base address]",
+ .usage = "<file> [address] [type]",
+ },
+
+ {
+ .name = "cp15",
+ .handler = &xscale_handle_cp15,
+ .mode = COMMAND_EXEC,
+ .help = "access coproc 15",
+ .usage = "<register> [value]",
+ },
+ COMMAND_REGISTRATION_DONE
+};
+static const struct command_registration xscale_any_command_handlers[] = {
+ {
+ .name = "debug_handler",
+ .handler = &xscale_handle_debug_handler_command,
+ .mode = COMMAND_ANY,
+ .usage = "<target#> <address>",
+ },
+ {
+ .name = "cache_clean_address",
+ .handler = &xscale_handle_cache_clean_address_command,
+ .mode = COMMAND_ANY,
+ },
+ {
+ .chain = xscale_exec_command_handlers,
+ },
+ COMMAND_REGISTRATION_DONE
+};
+static const struct command_registration xscale_command_handlers[] = {
+ {
+ .chain = arm_command_handlers,
+ },
+ {
+ .name = "xscale",
+ .mode = COMMAND_ANY,
+ .help = "xscale command group",
+ .chain = xscale_any_command_handlers,
+ },
+ COMMAND_REGISTRATION_DONE
+};
+
+struct target_type xscale_target =