diff options
Diffstat (limited to 'arch/powerpc/xmon/xmon.c')
-rw-r--r-- | arch/powerpc/xmon/xmon.c | 24 |
1 files changed, 5 insertions, 19 deletions
diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c index a34172ddc468..52c74780f403 100644 --- a/arch/powerpc/xmon/xmon.c +++ b/arch/powerpc/xmon/xmon.c | |||
@@ -45,7 +45,6 @@ | |||
45 | #ifdef CONFIG_PPC64 | 45 | #ifdef CONFIG_PPC64 |
46 | #include <asm/hvcall.h> | 46 | #include <asm/hvcall.h> |
47 | #include <asm/paca.h> | 47 | #include <asm/paca.h> |
48 | #include <asm/iseries/it_lp_reg_save.h> | ||
49 | #endif | 48 | #endif |
50 | 49 | ||
51 | #include "nonstdio.h" | 50 | #include "nonstdio.h" |
@@ -1244,15 +1243,12 @@ static void get_function_bounds(unsigned long pc, unsigned long *startp, | |||
1244 | 1243 | ||
1245 | static int xmon_depth_to_print = 64; | 1244 | static int xmon_depth_to_print = 64; |
1246 | 1245 | ||
1247 | #ifdef CONFIG_PPC64 | 1246 | #define LRSAVE_OFFSET (STACK_FRAME_LR_SAVE * sizeof(unsigned long)) |
1248 | #define LRSAVE_OFFSET 0x10 | 1247 | #define MARKER_OFFSET (STACK_FRAME_MARKER * sizeof(unsigned long)) |
1249 | #define REG_FRAME_MARKER 0x7265677368657265ul /* "regshere" */ | 1248 | |
1250 | #define MARKER_OFFSET 0x60 | 1249 | #ifdef __powerpc64__ |
1251 | #define REGS_OFFSET 0x70 | 1250 | #define REGS_OFFSET 0x70 |
1252 | #else | 1251 | #else |
1253 | #define LRSAVE_OFFSET 4 | ||
1254 | #define REG_FRAME_MARKER 0x72656773 | ||
1255 | #define MARKER_OFFSET 8 | ||
1256 | #define REGS_OFFSET 16 | 1252 | #define REGS_OFFSET 16 |
1257 | #endif | 1253 | #endif |
1258 | 1254 | ||
@@ -1318,7 +1314,7 @@ static void xmon_show_stack(unsigned long sp, unsigned long lr, | |||
1318 | /* Look for "regshere" marker to see if this is | 1314 | /* Look for "regshere" marker to see if this is |
1319 | an exception frame. */ | 1315 | an exception frame. */ |
1320 | if (mread(sp + MARKER_OFFSET, &marker, sizeof(unsigned long)) | 1316 | if (mread(sp + MARKER_OFFSET, &marker, sizeof(unsigned long)) |
1321 | && marker == REG_FRAME_MARKER) { | 1317 | && marker == STACK_FRAME_REGS_MARKER) { |
1322 | if (mread(sp + REGS_OFFSET, ®s, sizeof(regs)) | 1318 | if (mread(sp + REGS_OFFSET, ®s, sizeof(regs)) |
1323 | != sizeof(regs)) { | 1319 | != sizeof(regs)) { |
1324 | printf("Couldn't read registers at %lx\n", | 1320 | printf("Couldn't read registers at %lx\n", |
@@ -1598,7 +1594,6 @@ void super_regs(void) | |||
1598 | if (firmware_has_feature(FW_FEATURE_ISERIES)) { | 1594 | if (firmware_has_feature(FW_FEATURE_ISERIES)) { |
1599 | struct paca_struct *ptrPaca; | 1595 | struct paca_struct *ptrPaca; |
1600 | struct lppaca *ptrLpPaca; | 1596 | struct lppaca *ptrLpPaca; |
1601 | struct ItLpRegSave *ptrLpRegSave; | ||
1602 | 1597 | ||
1603 | /* Dump out relevant Paca data areas. */ | 1598 | /* Dump out relevant Paca data areas. */ |
1604 | printf("Paca: \n"); | 1599 | printf("Paca: \n"); |
@@ -1611,15 +1606,6 @@ void super_regs(void) | |||
1611 | printf(" Saved Gpr3=%.16lx Saved Gpr4=%.16lx \n", | 1606 | printf(" Saved Gpr3=%.16lx Saved Gpr4=%.16lx \n", |
1612 | ptrLpPaca->saved_gpr3, ptrLpPaca->saved_gpr4); | 1607 | ptrLpPaca->saved_gpr3, ptrLpPaca->saved_gpr4); |
1613 | printf(" Saved Gpr5=%.16lx \n", ptrLpPaca->saved_gpr5); | 1608 | printf(" Saved Gpr5=%.16lx \n", ptrLpPaca->saved_gpr5); |
1614 | |||
1615 | printf(" Local Processor Register Save Area (LpRegSave): \n"); | ||
1616 | ptrLpRegSave = ptrPaca->reg_save_ptr; | ||
1617 | printf(" Saved Sprg0=%.16lx Saved Sprg1=%.16lx \n", | ||
1618 | ptrLpRegSave->xSPRG0, ptrLpRegSave->xSPRG0); | ||
1619 | printf(" Saved Sprg2=%.16lx Saved Sprg3=%.16lx \n", | ||
1620 | ptrLpRegSave->xSPRG2, ptrLpRegSave->xSPRG3); | ||
1621 | printf(" Saved Msr =%.16lx Saved Nia =%.16lx \n", | ||
1622 | ptrLpRegSave->xMSR, ptrLpRegSave->xNIA); | ||
1623 | } | 1609 | } |
1624 | #endif | 1610 | #endif |
1625 | 1611 | ||