| .. | .. |
|---|
| 1 | +/* SPDX-License-Identifier: GPL-2.0-only */ |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * Contains register definitions common to the Book E PowerPC |
|---|
| 3 | 4 | * specification. Notice that while the IBM-40x series of CPUs |
|---|
| 4 | 5 | * are not true Book E PowerPCs, they borrowed a number of features |
|---|
| 5 | 6 | * before Book E was finalized, and are included here as well. Unfortunately, |
|---|
| 6 | 7 | * they sometimes used different locations than true Book E CPUs did. |
|---|
| 7 | | - * |
|---|
| 8 | | - * This program is free software; you can redistribute it and/or |
|---|
| 9 | | - * modify it under the terms of the GNU General Public License version 2 |
|---|
| 10 | | - * as published by the Free Software Foundation. |
|---|
| 11 | 8 | * |
|---|
| 12 | 9 | * Copyright 2009-2010 Freescale Semiconductor, Inc. |
|---|
| 13 | 10 | */ |
|---|
| .. | .. |
|---|
| 177 | 174 | #define SPRN_L1CSR1 0x3F3 /* L1 Cache Control and Status Register 1 */ |
|---|
| 178 | 175 | #define SPRN_MMUCSR0 0x3F4 /* MMU Control and Status Register 0 */ |
|---|
| 179 | 176 | #define SPRN_MMUCFG 0x3F7 /* MMU Configuration Register */ |
|---|
| 180 | | -#define SPRN_PIT 0x3DB /* Programmable Interval Timer */ |
|---|
| 181 | 177 | #define SPRN_BUCSR 0x3F5 /* Branch Unit Control and Status */ |
|---|
| 182 | 178 | #define SPRN_L2CSR0 0x3F9 /* L2 Data Cache Control and Status Register 0 */ |
|---|
| 183 | 179 | #define SPRN_L2CSR1 0x3FA /* L2 Data Cache Control and Status Register 1 */ |
|---|
| .. | .. |
|---|
| 665 | 661 | #define EPC_ELPID_SHIFT 16 |
|---|
| 666 | 662 | #define EPC_EPID 0x00003fff |
|---|
| 667 | 663 | #define EPC_EPID_SHIFT 0 |
|---|
| 668 | | - |
|---|
| 669 | | -/* |
|---|
| 670 | | - * The IBM-403 is an even more odd special case, as it is much |
|---|
| 671 | | - * older than the IBM-405 series. We put these down here incase someone |
|---|
| 672 | | - * wishes to support these machines again. |
|---|
| 673 | | - */ |
|---|
| 674 | | -#ifdef CONFIG_403GCX |
|---|
| 675 | | -/* Special Purpose Registers (SPRNs)*/ |
|---|
| 676 | | -#define SPRN_TBHU 0x3CC /* Time Base High User-mode */ |
|---|
| 677 | | -#define SPRN_TBLU 0x3CD /* Time Base Low User-mode */ |
|---|
| 678 | | -#define SPRN_CDBCR 0x3D7 /* Cache Debug Control Register */ |
|---|
| 679 | | -#define SPRN_TBHI 0x3DC /* Time Base High */ |
|---|
| 680 | | -#define SPRN_TBLO 0x3DD /* Time Base Low */ |
|---|
| 681 | | -#define SPRN_DBCR 0x3F2 /* Debug Control Register */ |
|---|
| 682 | | -#define SPRN_PBL1 0x3FC /* Protection Bound Lower 1 */ |
|---|
| 683 | | -#define SPRN_PBL2 0x3FE /* Protection Bound Lower 2 */ |
|---|
| 684 | | -#define SPRN_PBU1 0x3FD /* Protection Bound Upper 1 */ |
|---|
| 685 | | -#define SPRN_PBU2 0x3FF /* Protection Bound Upper 2 */ |
|---|
| 686 | | - |
|---|
| 687 | | - |
|---|
| 688 | | -/* Bit definitions for the DBCR. */ |
|---|
| 689 | | -#define DBCR_EDM DBCR0_EDM |
|---|
| 690 | | -#define DBCR_IDM DBCR0_IDM |
|---|
| 691 | | -#define DBCR_RST(x) (((x) & 0x3) << 28) |
|---|
| 692 | | -#define DBCR_RST_NONE 0 |
|---|
| 693 | | -#define DBCR_RST_CORE 1 |
|---|
| 694 | | -#define DBCR_RST_CHIP 2 |
|---|
| 695 | | -#define DBCR_RST_SYSTEM 3 |
|---|
| 696 | | -#define DBCR_IC DBCR0_IC /* Instruction Completion Debug Evnt */ |
|---|
| 697 | | -#define DBCR_BT DBCR0_BT /* Branch Taken Debug Event */ |
|---|
| 698 | | -#define DBCR_EDE DBCR0_EDE /* Exception Debug Event */ |
|---|
| 699 | | -#define DBCR_TDE DBCR0_TDE /* TRAP Debug Event */ |
|---|
| 700 | | -#define DBCR_FER 0x00F80000 /* First Events Remaining Mask */ |
|---|
| 701 | | -#define DBCR_FT 0x00040000 /* Freeze Timers on Debug Event */ |
|---|
| 702 | | -#define DBCR_IA1 0x00020000 /* Instr. Addr. Compare 1 Enable */ |
|---|
| 703 | | -#define DBCR_IA2 0x00010000 /* Instr. Addr. Compare 2 Enable */ |
|---|
| 704 | | -#define DBCR_D1R 0x00008000 /* Data Addr. Compare 1 Read Enable */ |
|---|
| 705 | | -#define DBCR_D1W 0x00004000 /* Data Addr. Compare 1 Write Enable */ |
|---|
| 706 | | -#define DBCR_D1S(x) (((x) & 0x3) << 12) /* Data Adrr. Compare 1 Size */ |
|---|
| 707 | | -#define DAC_BYTE 0 |
|---|
| 708 | | -#define DAC_HALF 1 |
|---|
| 709 | | -#define DAC_WORD 2 |
|---|
| 710 | | -#define DAC_QUAD 3 |
|---|
| 711 | | -#define DBCR_D2R 0x00000800 /* Data Addr. Compare 2 Read Enable */ |
|---|
| 712 | | -#define DBCR_D2W 0x00000400 /* Data Addr. Compare 2 Write Enable */ |
|---|
| 713 | | -#define DBCR_D2S(x) (((x) & 0x3) << 8) /* Data Addr. Compare 2 Size */ |
|---|
| 714 | | -#define DBCR_SBT 0x00000040 /* Second Branch Taken Debug Event */ |
|---|
| 715 | | -#define DBCR_SED 0x00000020 /* Second Exception Debug Event */ |
|---|
| 716 | | -#define DBCR_STD 0x00000010 /* Second Trap Debug Event */ |
|---|
| 717 | | -#define DBCR_SIA 0x00000008 /* Second IAC Enable */ |
|---|
| 718 | | -#define DBCR_SDA 0x00000004 /* Second DAC Enable */ |
|---|
| 719 | | -#define DBCR_JOI 0x00000002 /* JTAG Serial Outbound Int. Enable */ |
|---|
| 720 | | -#define DBCR_JII 0x00000001 /* JTAG Serial Inbound Int. Enable */ |
|---|
| 721 | | -#endif /* 403GCX */ |
|---|
| 722 | 664 | |
|---|
| 723 | 665 | /* Some 476 specific registers */ |
|---|
| 724 | 666 | #define SPRN_SSPCR 830 |
|---|