Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch/powerpc/include/booke Add more MPC85xx SVRs.
details: https://anonhg.NetBSD.org/src/rev/6a3c4a925df4
branches: trunk
changeset: 761805:6a3c4a925df4
user: matt <matt%NetBSD.org@localhost>
date: Tue Feb 08 06:18:04 2011 +0000
description:
Add more MPC85xx SVRs.
Fix/add debug register definitions.
diffstat:
sys/arch/powerpc/include/booke/spr.h | 129 +++++++++++++++++++++++++++-------
1 files changed, 103 insertions(+), 26 deletions(-)
diffs (192 lines):
diff -r f1e650068bdf -r 6a3c4a925df4 sys/arch/powerpc/include/booke/spr.h
--- a/sys/arch/powerpc/include/booke/spr.h Tue Feb 08 06:16:59 2011 +0000
+++ b/sys/arch/powerpc/include/booke/spr.h Tue Feb 08 06:18:04 2011 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: spr.h,v 1.3 2011/01/18 01:02:54 matt Exp $ */
+/* $NetBSD: spr.h,v 1.4 2011/02/08 06:18:04 matt Exp $ */
/*-
* Copyright (c) 2010, 2011 The NetBSD Foundation, Inc.
* All rights reserved.
@@ -39,13 +39,14 @@
#define PVR_MPCe500 0x8020
#define PVR_MPCe500v2 0x8021
+
#define SVR_MPC8548v1 0x80310010
-#define SVR_MPC8543v1 0x80320010
#define SVR_MPC8548v1plus 0x80310011
-#define SVR_MPC8543v1plus 0x80320011
#define SVR_MPC8548v2 0x80310020
#define SVR_MPC8547v2 0x80310120
#define SVR_MPC8545v2 0x80310220
+#define SVR_MPC8543v1 0x80320010
+#define SVR_MPC8543v1plus 0x80320011
#define SVR_MPC8543v2 0x80320020
#define SVR_MPC8544v1 0x80340110
@@ -56,7 +57,14 @@
#define SVR_MPC8555v1 0x80710110
#define SVR_MPC8541v1 0x80720111
-#define SVR_MPC8572 0x80e00011
+#define SVR_MPC8567v1 0x80750111
+#define SVR_MPC8568v1 0x80750011
+
+#define SVR_MPC8572v1 0x80e00011
+
+#define SVR_P2020v2 0x80e20020
+#define SVR_P2010v2 0x80e30020
+
#define SVR_SECURITY_P(svr) (((svr) & 0x00080000) != 0)
/*
@@ -109,8 +117,12 @@
#define DBSR_BRT 0x04000000 /* 5: Branch Taken debug event */
#define DBSR_IRPT 0x02000000 /* 6: Interrupt Taken debug event */
#define DBSR_TRAP 0x01000000 /* 7: Trap Instruction debug event */
+#define DBSR_IAC 0x00f00000 /* 8-11: IAC debug event */
#define DBSR_IAC1 0x00800000 /* 8: IAC1 debug event */
#define DBSR_IAC2 0x00400000 /* 9: IAC2 debug event */
+#define DBSR_IAC3 0x00200000 /* 10: IAC3 debug event */
+#define DBSR_IAC4 0x00100000 /* 11: IAC4 debug event */
+#define DBSR_DAC 0x000f0000 /* 12-15: DAC debug event */
#define DBSR_DAC1R 0x00080000 /* 12: DAC1 Read debug event */
#define DBSR_DAC1W 0x00040000 /* 13: DAC1 Write debug event */
#define DBSR_DAC2R 0x00020000 /* 14: DAC2 Read debug event */
@@ -124,49 +136,114 @@
#define DBCR0_RST_CORE 0x10000000 /* Core reset */
#define DBCR0_RST_CHIP 0x20000000 /* Chip reset */
#define DBCR0_RST_SYSTEM 0x30000000 /* System reset */
-#define DBCR0_IC 0x08000000 /* 4: Instruction Completion debug event */
-#define DBCR0_BT 0x04000000 /* 5: Branch Taken debug event */
-#define DBCR0_EDE 0x02000000 /* 6: Exception Debug Event */
-#define DBCR0_TDE 0x01000000 /* 7: Trap Debug Event */
+#define DBCR0_ICMP 0x08000000 /* 4: Instruction Completion debug event */
+#define DBCR0_BRT 0x04000000 /* 5: Branch Taken debug event */
+#define DBCR0_IRPT 0x02000000 /* 6: Interrupt Taken debug event */
+#define DBCR0_TRAP 0x01000000 /* 7: Trap Instruction Debug Event */
#define DBCR0_IA1 0x00800000 /* 8: IAC (Instruction Address Compare) 1 debug event */
#define DBCR0_IA2 0x00400000 /* 9: IAC 2 debug event */
-#define DBCR0_IA12 0x00200000 /* 10: Instruction Address Range Compare 1-2 */
-#define DBCR0_IA12X 0x00100000 /* 11: IA12 eXclusive */
-#define DBCR0_IA3 0x00080000 /* 12: IAC 3 debug event */
-#define DBCR0_DAC1_LOAD 0x00080000 /* 12: DAC (Data Address Compare) 1 load event (e500) */
-#define DBCR0_IA4 0x00040000 /* 13: IAC 4 debug event */
-#define DBCR0_DAC1_STORE 0x00040000 /* 13: DAC (Data Address Compare) 1 store event (e500) */
-#define DBCR0_IA34 0x00020000 /* 14: Instruction Address Range Compare 3-4 */
-#define DBCR0_DAC2_LOAD 0x00020000 /* 14: DAC 2 load event (e500) */
-#define DBCR0_IA34X 0x00010000 /* 15: IA34 eXclusive */
-#define DBCR0_DAC2_STORE 0x00010000 /* 15: DAC 2 store event (e500) */
-#define DBCR0_IA12T 0x00008000 /* 16: Instruction Address Range Compare 1-2 range Toggle */
-#define DBCR0_RET 0x00008000 /* 16: Return debug event (e500) */
-#define DBCR0_IA34T 0x00004000 /* 17: Instruction Address Range Compare 3-4 range Toggle */
+#define DBCR0_IA3 0x00200000 /* 10: IAC 3 debug event */
+#define DBCR0_IA4 0x00100000 /* 11: IAC 4 debug event */
+#define DBCR0_DAC1_LOAD 0x00080000 /* 12: DAC (Data Address Compare) 1 load event */
+#define DBCR0_DAC1_STORE 0x00040000 /* 13: DAC (Data Address Compare) 1 store event */
+#define DBCR0_DAC2_LOAD 0x00020000 /* 14: DAC 2 load event */
+#define DBCR0_DAC2_STORE 0x00010000 /* 15: DAC 2 store event */
+#define DBCR0_RET 0x00008000 /* 16: Return debug event */
#define DBCR0_FT 0x00000001 /* 31: Freeze Timers on debug event */
#define SPR_DBCR1 309 /* E... Debug Control Register 1 */
+#define DBCR1_IAC1US 0xc0000000 /* 0-1: Data Address Compare 1 user/supervisor mode */
+#define DBCR1_IAC1US_ANY 0x00000000 /* MSR[PR] = don't care */
+#define DBCR1_IAC1US_KERNEL 0x80000000 /* MSR[PR] = 0 */
+#define DBCR1_IAC1US_USER 0xc0000000 /* MSR[PR] = 1 */
+#define DBCR1_IAC1ER 0x30000000 /* 2-3: Data Address Compare 1 effective/real mode */
+#define DBCR1_IAC1ER_DSX 0x00000000 /* effective address */
+#define DBCR1_IAC1ER_REAL 0x10000000 /* real address */
+#define DBCR1_IAC1ER_DS0 0x20000000 /* effective address MSR[DS] = 0 */
+#define DBCR1_IAC1ER_DS1 0x30000000 /* effective address MSR[DS] = 1 */
+#define DBCR1_IAC2US 0x0c000000 /* 4-5: Data Address Compare 1 user/supervisor mode */
+#define DBCR1_IAC2US_ANY 0x00000000 /* MSR[PR] = don't care */
+#define DBCR1_IAC2US_KERNEL 0x08000000 /* MSR[PR] = 0 */
+#define DBCR1_IAC2US_USER 0x0c000000 /* MSR[PR] = 1 */
+#define DBCR1_IAC2ER 0x03000000 /* 6-7: Data Address Compare 1 effective/real mode */
+#define DBCR1_IAC2ER_DSX 0x00000000 /* effective address */
+#define DBCR1_IAC2ER_REAL 0x01000000 /* real address */
+#define DBCR1_IAC2ER_DS0 0x02000000 /* effective address MSR[DS] = 0 */
+#define DBCR1_IAC2ER_DS1 0x03000000 /* effective address MSR[DS] = 1 */
+#define DBCR1_IAC12M 0x00c00000 /* 8-9: Data Address Compare 1 effective/real mode */
+#define DBCR1_IAC12M_EXACT 0x00000000 /* equal IAC1 or IAC2 */
+#define DBCR1_IAC12M_MASK 0x00400000 /* (addr & IAC2) == (IAC1 & IAC2) */
+#define DBCR1_IAC12M_INCLUSIVE 0x00800000 /* IAC1 <= addr < IAC2 */
+#define DBCR1_IAC12M_EXCLUSIVE 0x00c00000 /* addr < IAC1 || IAC2 <= addr */
+#define DBCR1_IAC3US 0x0000c000 /* 16-17: Data Address Compare 3 user/supervisor mode */
+#define DBCR1_IAC3US_ANY 0x00000000 /* MSR[PR] = don't care */
+#define DBCR1_IAC3US_KERNEL 0x00008000 /* MSR[PR] = 0 */
+#define DBCR1_IAC3US_USER 0x0000c000 /* MSR[PR] = 1 */
+#define DBCR1_IAC3ER 0x00003000 /* 18-19: Data Address Compare 3 effective/real mode */
+#define DBCR1_IAC3ER_DSX 0x00000000 /* effective address */
+#define DBCR1_IAC3ER_REAL 0x00001000 /* real address */
+#define DBCR1_IAC3ER_DS0 0x00002000 /* effective address MSR[DS] = 0 */
+#define DBCR1_IAC3ER_DS1 0x00003000 /* effective address MSR[DS] = 1 */
+#define DBCR1_IAC4US 0x00000c00 /* 20-21: Data Address Compare 3 user/supervisor mode */
+#define DBCR1_IAC4US_ANY 0x00000000 /* MSR[PR] = don't care */
+#define DBCR1_IAC4US_KERNEL 0x00000800 /* MSR[PR] = 0 */
+#define DBCR1_IAC4US_USER 0x00000c00 /* MSR[PR] = 1 */
+#define DBCR1_IAC4ER 0x00000300 /* 22-23: Data Address Compare 4 effective/real mode */
+#define DBCR1_IAC4ER_DSX 0x00000000 /* effective address */
+#define DBCR1_IAC4ER_REAL 0x00000100 /* real address */
+#define DBCR1_IAC4ER_DS0 0x00000200 /* effective address MSR[DS] = 0 */
+#define DBCR1_IAC4ER_DS1 0x00000300 /* effective address MSR[DS] = 1 */
+#define DBCR1_IAC34M 0x000000c0 /* 24-25: Data Address Compare 4 effective/real mode */
+#define DBCR1_IAC34M_EXACT 0x00000000 /* equal IAC3 or IAC4 */
+#define DBCR1_IAC34M_MASK 0x00000040 /* (addr & IAC4) == (IAC3 & IAC4) */
+#define DBCR1_IAC34M_INCLUSIVE 0x00000080 /* IAC3 <= addr < IAC4 */
+#define DBCR1_IAC34M_EXCLUSIVE 0x000000c0 /* addr < IAC3 || IAC4 <= addr */
#define SPR_DBCR2 310 /* E... Debug Control Register 2 */
#define DBCR2_DAC1US 0xc0000000 /* 0-1: Data Address Compare 1 user/supervisor mode */
#define DBCR2_DAC1US_ANY 0x00000000 /* MSR[PR] = don't care */
#define DBCR2_DAC1US_KERNEL 0x80000000 /* MSR[PR] = 0 */
#define DBCR2_DAC1US_USER 0xc0000000 /* MSR[PR] = 1 */
#define DBCR2_DAC1ER 0x30000000 /* 2-3: Data Address Compare 1 effective/real mode */
-#define DBCR2_DAC1ER_REAL 0x00000000 /* real address */
+#define DBCR2_DAC1ER_DSX 0x00000000 /* effective address */
+#define DBCR2_DAC1ER_REAL 0x10000000 /* real address */
#define DBCR2_DAC1ER_DS0 0x20000000 /* effective address MSR[DS] = 0 */
#define DBCR2_DAC1ER_DS1 0x30000000 /* effective address MSR[DS] = 1 */
-#define DBCR2_DAC2US 0x0c000000 /* 0-1: Data Address Compare 1 user/supervisor mode */
+#define DBCR2_DAC2US 0x0c000000 /* 4-5: Data Address Compare 1 user/supervisor mode */
#define DBCR2_DAC2US_ANY 0x00000000 /* MSR[PR] = don't care */
#define DBCR2_DAC2US_KERNEL 0x08000000 /* MSR[PR] = 0 */
#define DBCR2_DAC2US_USER 0x0c000000 /* MSR[PR] = 1 */
-#define DBCR2_DAC2ER 0x03000000 /* 2-3: Data Address Compare 1 effective/real mode */
-#define DBCR2_DAC2ER_REAL 0x00000000 /* real address */
+#define DBCR2_DAC2ER 0x03000000 /* 6-7: Data Address Compare 1 effective/real mode */
+#define DBCR2_DAC2ER_DSX 0x00000000 /* effective address */
+#define DBCR2_DAC2ER_REAL 0x01000000 /* real address */
#define DBCR2_DAC2ER_DS0 0x02000000 /* effective address MSR[DS] = 0 */
#define DBCR2_DAC2ER_DS1 0x03000000 /* effective address MSR[DS] = 1 */
-#define DBCR2_DAC12M 0x00c00000 /* 2-3: Data Address Compare 1 effective/real mode */
+#define DBCR2_DAC12M 0x00c00000 /* 8-9: Data Address Compare 1 effective/real mode */
#define DBCR2_DAC12M_EXACT 0x00000000 /* equal DAC1 or DAC2 */
#define DBCR2_DAC12M_MASK 0x00400000 /* (addr & DAC2) == (DAC1 & DAC2) */
#define DBCR2_DAC12M_INCLUSIVE 0x00800000 /* DAC1 <= addr < DAC2 */
#define DBCR2_DAC12M_EXCLUSIVE 0x00c00000 /* addr < DAC1 || DAC2 <= addr */
+#define DBCR2_DAC3US 0x0000c000 /* 16-17: Data Address Compare 3 user/supervisor mode */
+#define DBCR2_DAC3US_ANY 0x00000000 /* MSR[PR] = don't care */
+#define DBCR2_DAC3US_KERNEL 0x00008000 /* MSR[PR] = 0 */
+#define DBCR2_DAC3US_USER 0x0000c000 /* MSR[PR] = 1 */
+#define DBCR2_DAC3ER 0x00003000 /* 18-19: Data Address Compare 3 effective/real mode */
+#define DBCR2_DAC3ER_DSX 0x00000000 /* effective address */
+#define DBCR2_DAC3ER_REAL 0x00001000 /* real address */
+#define DBCR2_DAC3ER_DS0 0x00002000 /* effective address MSR[DS] = 0 */
+#define DBCR2_DAC3ER_DS1 0x00003000 /* effective address MSR[DS] = 1 */
+#define DBCR2_DAC4US 0x00000c00 /* 20-21: Data Address Compare 3 user/supervisor mode */
+#define DBCR2_DAC4US_ANY 0x00000000 /* MSR[PR] = don't care */
+#define DBCR2_DAC4US_KERNEL 0x00000800 /* MSR[PR] = 0 */
+#define DBCR2_DAC4US_USER 0x00000c00 /* MSR[PR] = 1 */
+#define DBCR2_DAC4ER 0x00000300 /* 22-23: Data Address Compare 4 effective/real mode */
+#define DBCR2_DAC4ER_DSX 0x00000000 /* effective address */
+#define DBCR2_DAC4ER_REAL 0x00000100 /* real address */
+#define DBCR2_DAC4ER_DS0 0x00000200 /* effective address MSR[DS] = 0 */
+#define DBCR2_DAC4ER_DS1 0x00000300 /* effective address MSR[DS] = 1 */
+#define DBCR2_DAC34M 0x000000c0 /* 24-25: Data Address Compare 4 effective/real mode */
+#define DBCR2_DAC34M_EXACT 0x00000000 /* equal DAC3 or DAC4 */
+#define DBCR2_DAC34M_MASK 0x00000040 /* (addr & DAC4) == (DAC3 & DAC4) */
+#define DBCR2_DAC34M_INCLUSIVE 0x00000080 /* DAC3 <= addr < DAC4 */
+#define DBCR2_DAC34M_EXCLUSIVE 0x000000c0 /* addr < DAC3 || DAC4 <= addr */
#define SPR_IAC1 312 /* E... Instruction Address Compare 1 */
#define SPR_IAC2 313 /* E... Instruction Address Compare 2 */
#define SPR_IAC3 314 /* E... Instruction Address Compare 3 */
Home |
Main Index |
Thread Index |
Old Index