URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Subversion Repositories openrisc_me
[/] [openrisc/] [trunk/] [gnu-src/] [newlib-1.17.0/] [libgloss/] [hp74x/] [diagnose.h] - Rev 158
Compare with Previous | Blame | View Log
/**************************************************************************** THIS SOFTWARE IS NOT COPYRIGHTED HP offers the following for use in the public domain. HP makes no warranty with regard to the software or it's performance and the user accepts the software "AS IS" with all faults. HP DISCLAIMS ANY WARRANTIES, EXPRESS OR IMPLIED, WITH REGARD TO THIS SOFTWARE INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ****************************************************************************/ /* Diagnose register definitions */ #ifdef PCXL #define CPU_DIAG_0_L2IHPMC_BIT 6 /* Level 2 I-cache error flag */ #define CPU_DIAG_0_L2DHPMC_BIT 8 /* Level 2 D-cache error flag */ #define CPU_DIAG_0_L1IHPMC_BIT 10 /* Level 1 I-cache error flag */ #define CPU_DIAG_0_L2PARERR_BIT 15 /* rightmost bit */ #define CPU_DIAG_0_PREV_HPMC_PREP_BIT 16 /* Previous HPMC finished */ #define CPU_DIAG_0_PWR_FAIL_BIT 17 #define CPU_DIAG_0_EXPECT_HPMC_BIT 18 /* Expecting HPMC */ /* Mask for Read/clear bits in CPU diagnose register 0 */ #define CPU0_MASK 0x02AF0000 #else /* PCXT */ #define CPU_DIAG_0_PREV_HPMC_PREP_BIT 3 /* Previous HPMC finished */ #define CPU_DIAG_0_BOOTING_BIT 4 #define CPU_DIAG_0_EXPECT_HPMC_BIT 5 /* Expecting HPMC */ #define CPU_DIAG_0_DHPMC_BIT 10 #define CPU_DIAG_0_ILPMC_BIT 14 #define CPU_DIAG_0_HTOC_BIT 23 /* Mask for Read/clear bits in CPU diagnose register 0 */ #define CPU0_MASK 0x00220100 #endif /* Diagnose instruction macros */ #ifdef PCXL /*** Different PCXL diagnose commands ***/ /* Original mfcpu replaced with the two commands mfcpu_t & mfcpu_c */ mfcpu_t .macro diag_reg,gen_reg { 0 .. 5} = 0x5 {26 .. 31} { 6 .. 10} = diag_reg {27 .. 31} {11 .. 15} = 0x0 {27 .. 31} {16 .. 18} = 0x0 {29 .. 31} {19 .. 26} = 0xa0 {24 .. 31} {27 .. 31} = gen_reg {27 .. 31} .endm mfcpu_c .macro diag_reg,gen_reg { 0 .. 5} = 0x5 {26 .. 31} { 6 .. 10} = diag_reg {27 .. 31} {11 .. 15} = gen_reg {27 .. 31} {16 .. 18} = 0x0 {29 .. 31} {19 .. 26} = 0x30 {24 .. 31} {27 .. 31} = 0x0 {27 .. 31} .endm mtcpu .macro gen_reg,diag_reg { 0 .. 5} = 0x5 {26 .. 31} { 6 .. 10} = diag_reg {27 .. 31} {11 .. 15} = gen_reg {27 .. 31} {16 .. 18} = 0x0 {29 .. 31} {19 .. 26} = 0x12 {24 .. 31} {27 .. 31} = 0x0 {27 .. 31} .endm shdw_gr .macro { 0 .. 5} = 0x5 {26 .. 31} { 6 .. 10} = 0x0 {27 .. 31} {11 .. 15} = 0x0 {27 .. 31} {16 .. 18} = 0x0 {29 .. 31} {19 .. 26} = 0xd0 {24 .. 31} {27 .. 31} = 0x0 {27 .. 31} .endm gr_shdw .macro { 0 .. 5} = 0x5 {26 .. 31} { 6 .. 10} = 0x0 {27 .. 31} {11 .. 15} = 0x0 {27 .. 31} {16 .. 18} = 0x0 {29 .. 31} {19 .. 26} = 0xd2 {24 .. 31} {27 .. 31} = 0x0 {27 .. 31} .endm #else /*** original PCXT version ***/ /* Originally was mfcpu without the _c */ mfcpu_c .macro diag_reg,gen_reg { 0 .. 5} = 0x5 {26 .. 31} { 6 .. 10} = diag_reg {27 .. 31} {11 .. 15} = gen_reg {27 .. 31} {16 .. 18} = 0x0 {29 .. 31} {19 .. 26} = 0xd0 {24 .. 31} {27 .. 31} = 0x0 {27 .. 31} .endm mtcpu .macro gen_reg,diag_reg { 0 .. 5} = 0x5 {26 .. 31} { 6 .. 10} = diag_reg {27 .. 31} {11 .. 15} = gen_reg {27 .. 31} {16 .. 18} = 0x0 {29 .. 31} {19 .. 26} = 0xb0 {24 .. 31} {27 .. 31} = 0x0 {27 .. 31} .endm shdw_gr .macro { 0 .. 5} = 0x5 {26 .. 31} { 6 .. 10} = 0x2 {27 .. 31} {11 .. 15} = 0x0 {27 .. 31} {16 .. 18} = 0x1 {29 .. 31} {19 .. 26} = 0x30 {24 .. 31} {27 .. 31} = 0x0 {27 .. 31} .endm gr_shdw .macro { 0 .. 5} = 0x5 {26 .. 31} { 6 .. 10} = 0x2 {27 .. 31} {11 .. 15} = 0x0 {27 .. 31} {16 .. 18} = 0x0 {29 .. 31} {19 .. 26} = 0x31 {24 .. 31} {27 .. 31} = 0x0 {27 .. 31} .endm #endif /* Actual commands used doubled instructions for cpu timing */ #define SHDW_GR shdw_gr ! \ shdw_gr /* Break instruction definitions */ #define i13BREAK 0xa5a /* im13 field for specified functions */ #define i5REG 0x06 /* Init registers */ #define i5BP 0x09 /* GDB breakpoint */ #define i5PSW 0x0b /* Get PSW */ #define i5INLINE 0x0e /* Get INLINE */ BR_INIT_REGS .macro break i5REG,i13BREAK .endm BR_GET_PSW .macro break i5PSW,i13BREAK .endm BR_INLINE .macro break i5INLINE,i13BREAK .endm