]> git.kernelconcepts.de Git - karo-tx-uboot.git/blob - include/cmd_bedbug.h
Add support for CompactFlash on ATC board
[karo-tx-uboot.git] / include / cmd_bedbug.h
1 /*
2  * BedBug Functions
3  */
4 #ifndef _CMD_BEDBUG_H
5 #define _CMD_BEDBUG_H
6
7 #if (CONFIG_COMMANDS & CFG_CMD_BEDBUG)
8
9 #define CMD_TBL_DIS     MK_CMD_TBL_ENTRY(                               \
10         "ds",           2,      3,      1,      do_bedbug_dis,          \
11         "ds      - disassemble memory\n",                               \
12         "ds <address> [# instructions]\n"                               \
13         ),
14
15 #define CMD_TBL_ASM     MK_CMD_TBL_ENTRY(                               \
16         "as",           2,      2,      0,      do_bedbug_asm,          \
17         "as      - assemble memory\n",                                  \
18         "as <address>\n"                                                \
19         ),
20
21 #define CMD_TBL_BREAK   MK_CMD_TBL_ENTRY(                               \
22         "break",        2,      3,      0,      do_bedbug_break,        \
23         "break   - set or clear a breakpoint\n",                        \
24         " - Set or clear a breakpoint\n"                                \
25         "break <address> - Break at an address\n"                       \
26         "break off <bp#> - Disable breakpoint.\n"                       \
27         "break show      - List breakpoints.\n"                         \
28         ),
29
30 #define CMD_TBL_CONTINUE        MK_CMD_TBL_ENTRY(                       \
31         "continue",     4,      1,      0,      do_bedbug_continue,     \
32         "continue- continue from a breakpoint\n",                       \
33         " - continue from a breakpoint.\n"                              \
34         ),
35
36 #define CMD_TBL_STEP        MK_CMD_TBL_ENTRY(                           \
37         "step", 4,      1,      1,      do_bedbug_step,                 \
38         "step    - single step execution.\n",                           \
39         " - single step execution.\n"                                   \
40         ),
41
42 #define CMD_TBL_NEXT        MK_CMD_TBL_ENTRY(                           \
43         "next", 4,      1,      1,      do_bedbug_next,                 \
44         "next    - single step execution, stepping over subroutines.\n",\
45         " - single step execution, stepping over subroutines.\n"        \
46         ),
47
48 #define CMD_TBL_STACK        MK_CMD_TBL_ENTRY(                          \
49         "where", 5,     1,      1,      do_bedbug_stack,                \
50         "where   - Print the running stack.\n",                         \
51         " - Print the running stack.\n"                                 \
52         ),
53
54 #define CMD_TBL_RDUMP        MK_CMD_TBL_ENTRY(                          \
55         "rdump", 5,     1,      1,      do_bedbug_rdump,                \
56         "rdump   - Show registers.\n",                                  \
57         " - Show registers.\n"                                          \
58         ),
59
60 extern int do_bedbug_dis      (cmd_tbl_t *, int, int, char *[]);
61 extern int do_bedbug_asm      (cmd_tbl_t *, int, int, char *[]);
62 extern int do_bedbug_break    (cmd_tbl_t *, int, int, char *[]);
63 extern int do_bedbug_continue (cmd_tbl_t *, int, int, char *[]);
64 extern int do_bedbug_step     (cmd_tbl_t *, int, int, char *[]);
65 extern int do_bedbug_next     (cmd_tbl_t *, int, int, char *[]);
66 extern int do_bedbug_stack    (cmd_tbl_t *, int, int, char *[]);
67 extern int do_bedbug_rdump    (cmd_tbl_t *, int, int, char *[]);
68
69 /* Supporting routines */
70 extern int bedbug_puts (const char *);
71 extern void bedbug_init (void);
72 extern void do_bedbug_breakpoint (struct pt_regs *);
73 extern void bedbug_main_loop (unsigned long, struct pt_regs *);
74
75
76 typedef struct {
77         int hw_debug_enabled;
78         int stopped;
79         int current_bp;
80         struct pt_regs *regs;
81
82         void (*do_break) (cmd_tbl_t *, int, int, char *[]);
83         void (*break_isr) (struct pt_regs *);
84         int (*find_empty) (void);
85         int (*set) (int, unsigned long);
86         int (*clear) (int);
87 } CPU_DEBUG_CTX;
88
89 #else /* ! CFG_CMD_BEDBUG */
90
91 #define CMD_TBL_DIS
92 #define CMD_TBL_ASM
93 #define CMD_TBL_BREAK
94 #define CMD_TBL_CONTINUE
95 #define CMD_TBL_STEP
96 #define CMD_TBL_NEXT
97 #define CMD_TBL_STACK
98 #define CMD_TBL_RDUMP
99
100 #endif /* CFG_CMD_BEDBUG */
101 #endif /* _CMD_BEDBUG_H */
102
103
104 /*
105  * Copyright (c) 2001 William L. Pitts
106  * All rights reserved.
107  *
108  * Redistribution and use in source and binary forms are freely
109  * permitted provided that the above copyright notice and this
110  * paragraph and the following disclaimer are duplicated in all
111  * such forms.
112  *
113  * This software is provided "AS IS" and without any express or
114  * implied warranties, including, without limitation, the implied
115  * warranties of merchantability and fitness for a particular
116  * purpose.
117  */