-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/…
…dhowells/linux-2.6-mn10300 * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-mn10300: MN10300: gcc 4.6 vs am33 inline assembly MN10300: Deprecate gdbstub MN10300: Allow KGDB to use the MN10300 serial ports MN10300: Emulate single stepping in KGDB on MN10300 MN10300: Generalise kernel debugger kernel halt, reboot or power off hook KGDB: Notify GDB of machine halt, reboot or power off MN10300: Use KGDB MN10300: Create generic kernel debugger hooks MN10300: Create general kernel debugger cache flushing MN10300: Introduce a general config option for kernel debugger hooks MN10300: The icache invalidate functions should disable the icache first MN10300: gdbstub: Restrict single-stepping to non-preemptable non-SMP configs
- Loading branch information
Showing
39 changed files
with
1,924 additions
and
502 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
/* Kernel debugger for MN10300 | ||
* | ||
* Copyright (C) 2011 Red Hat, Inc. All Rights Reserved. | ||
* Written by David Howells (dhowells@redhat.com) | ||
* | ||
* This program is free software; you can redistribute it and/or | ||
* modify it under the terms of the GNU General Public Licence | ||
* as published by the Free Software Foundation; either version | ||
* 2 of the Licence, or (at your option) any later version. | ||
*/ | ||
|
||
#ifndef _ASM_DEBUGGER_H | ||
#define _ASM_DEBUGGER_H | ||
|
||
#if defined(CONFIG_KERNEL_DEBUGGER) | ||
|
||
extern int debugger_intercept(enum exception_code, int, int, struct pt_regs *); | ||
extern int at_debugger_breakpoint(struct pt_regs *); | ||
|
||
#ifndef CONFIG_MN10300_DEBUGGER_CACHE_NO_FLUSH | ||
extern void debugger_local_cache_flushinv(void); | ||
extern void debugger_local_cache_flushinv_one(u8 *); | ||
#else | ||
static inline void debugger_local_cache_flushinv(void) {} | ||
static inline void debugger_local_cache_flushinv_one(u8 *addr) {} | ||
#endif | ||
|
||
#else /* CONFIG_KERNEL_DEBUGGER */ | ||
|
||
static inline int debugger_intercept(enum exception_code excep, | ||
int signo, int si_code, | ||
struct pt_regs *regs) | ||
{ | ||
return 0; | ||
} | ||
|
||
static inline int at_debugger_breakpoint(struct pt_regs *regs) | ||
{ | ||
return 0; | ||
} | ||
|
||
#endif /* CONFIG_KERNEL_DEBUGGER */ | ||
#endif /* _ASM_DEBUGGER_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
/* Kernel debugger for MN10300 | ||
* | ||
* Copyright (C) 2010 Red Hat, Inc. All Rights Reserved. | ||
* Written by David Howells (dhowells@redhat.com) | ||
* | ||
* This program is free software; you can redistribute it and/or | ||
* modify it under the terms of the GNU General Public Licence | ||
* as published by the Free Software Foundation; either version | ||
* 2 of the Licence, or (at your option) any later version. | ||
*/ | ||
|
||
#ifndef _ASM_KGDB_H | ||
#define _ASM_KGDB_H | ||
|
||
/* | ||
* BUFMAX defines the maximum number of characters in inbound/outbound | ||
* buffers at least NUMREGBYTES*2 are needed for register packets | ||
* Longer buffer is needed to list all threads | ||
*/ | ||
#define BUFMAX 1024 | ||
|
||
/* | ||
* Note that this register image is in a different order than the register | ||
* image that Linux produces at interrupt time. | ||
*/ | ||
enum regnames { | ||
GDB_FR_D0 = 0, | ||
GDB_FR_D1 = 1, | ||
GDB_FR_D2 = 2, | ||
GDB_FR_D3 = 3, | ||
GDB_FR_A0 = 4, | ||
GDB_FR_A1 = 5, | ||
GDB_FR_A2 = 6, | ||
GDB_FR_A3 = 7, | ||
|
||
GDB_FR_SP = 8, | ||
GDB_FR_PC = 9, | ||
GDB_FR_MDR = 10, | ||
GDB_FR_EPSW = 11, | ||
GDB_FR_LIR = 12, | ||
GDB_FR_LAR = 13, | ||
GDB_FR_MDRQ = 14, | ||
|
||
GDB_FR_E0 = 15, | ||
GDB_FR_E1 = 16, | ||
GDB_FR_E2 = 17, | ||
GDB_FR_E3 = 18, | ||
GDB_FR_E4 = 19, | ||
GDB_FR_E5 = 20, | ||
GDB_FR_E6 = 21, | ||
GDB_FR_E7 = 22, | ||
|
||
GDB_FR_SSP = 23, | ||
GDB_FR_MSP = 24, | ||
GDB_FR_USP = 25, | ||
GDB_FR_MCRH = 26, | ||
GDB_FR_MCRL = 27, | ||
GDB_FR_MCVF = 28, | ||
|
||
GDB_FR_FPCR = 29, | ||
GDB_FR_DUMMY0 = 30, | ||
GDB_FR_DUMMY1 = 31, | ||
|
||
GDB_FR_FS0 = 32, | ||
|
||
GDB_FR_SIZE = 64, | ||
}; | ||
|
||
#define GDB_ORIG_D0 41 | ||
#define NUMREGBYTES (GDB_FR_SIZE*4) | ||
|
||
static inline void arch_kgdb_breakpoint(void) | ||
{ | ||
asm(".globl __arch_kgdb_breakpoint; __arch_kgdb_breakpoint: break"); | ||
} | ||
extern u8 __arch_kgdb_breakpoint; | ||
|
||
#define BREAK_INSTR_SIZE 1 | ||
#define CACHE_FLUSH_IS_SAFE 1 | ||
|
||
#endif /* _ASM_KGDB_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.