⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ppc_regs.h

📁 ecos为实时嵌入式操作系统
💻 H
📖 第 1 页 / 共 2 页
字号:
#define CYGARC_REG_DC_ADR_SETID_SHIFT 4            // set id is bits 21-27#define CYGARC_REG_DC_ADR_WAY0     0x00000000      // select way0#define CYGARC_REG_DC_ADR_WAY1     0x00001000      // select way1#ifdef CYGARC_HAL_COMMON_EXPORT_CPU_MACROS#define DC_CST             CYGARC_REG_DC_CST#define DC_ADR             CYGARC_REG_DC_ADR#define DC_DAT             CYGARC_REG_DC_DAT#define DC_CMD_CE          CYGARC_REG_DC_CMD_CE#define DC_CMD_CD          CYGARC_REG_DC_CMD_CD#define DC_CMD_LL          CYGARC_REG_DC_CMD_LL#define DC_CMD_UL          CYGARC_REG_DC_CMD_UL#define DC_CMD_UA          CYGARC_REG_DC_CMD_UA#define DC_CMD_IA          CYGARC_REG_DC_CMD_IA#define DC_CMD_FL          CYGARC_REG_DC_CMD_FL#define DC_CMD_SW          CYGARC_REG_DC_CMD_SW#define DC_CMD_CW          CYGARC_REG_DC_CMD_CW#define DC_CMD_SS          CYGARC_REG_DC_CMD_SS#define DC_CMD_CS          CYGARC_REG_DC_CMD_CS#define DC_ADR_SETID_SHIFT CYGARC_REG_DC_ADR_SETID_SHIFT#define DC_ADR_WAY0        CYGARC_REG_DC_ADR_WAY0#define DC_ADR_WAY1        CYGARC_REG_DC_ADR_WAY1#endif // ifdef CYGARC_HAL_COMMON_EXPORT_CPU_MACROS//--------------------------------------------------------------------------// MMU control.#ifdef CYGARC_HAL_COMMON_EXPORT_CPU_MACROS#define M_CASID         793             // current address space id register#define MI_CTR          784             // instruction MMU control#define MI_EPN          787             // instruction MMU effective page num#define MI_TWC          789             // instruction MMU tablewalk count#define MI_RPN          790             // instruction MMU real page num#define MI_DCAM         816             // instruction MMU CAM read#define MI_DRAM0        817             // instruction MMU RAM read 0#define MI_DRAM1        818             // instruction MMU RAM read 1#define MI_EPN_EPNMASK  0xfffff000      // effective page no mask#define MI_EPN_EV       0x00000200      // entry valid#define MI_RPN_RPNMASK  0xfffff000      // real page no mask#define MI_RPN_PPRWRW   0x000008f0      // page protection (rw/rw, page valid)#define MI_RPN_LPS      0x00000008      // large page size#define MI_RPN_SH       0x00000004      // shared page (1 = no ASID cmp)#define MI_RPN_CI       0x00000002      // cache inhibited#define MI_RPN_V        0x00000001      // entry valid#define MI_TWC_PS8MB    0x0000000c      // page size = 8MB#define MI_TWC_G        0x00000010      // guarded#define MI_TWC_WT       0x00000002      // writethrough#define MI_TWC_V        0x00000001      // entry valid#define MI_CTR_INDX_SHIFT 8             // the ITLB_INDX starts at bit 23#define MD_CTR          792             // data MMU control#define MD_EPN          795             // data MMU effective page num#define MD_TWC          797             // data MMU tablewalk count#define MD_RPN          798             // data MMU real page num#define MD_DCAM         824             // data MMU CAM read#define MD_DRAM0        825             // data MMU RAM read 0#define MD_DRAM1        826             // data MMU RAM read 1#define MD_RPN_CHANGED  0x00000100      // page changed#endif // ifdef CYGARC_HAL_COMMON_EXPORT_CPU_MACROS//--------------------------------------------------------------------------// Internal Memory Map.#define CYGARC_REG_IMMR            638  // internal memory map base register#define CYGARC_REG_IMMR_BASEMASK   0xffff0000 // imm base location mask (rw)#define CYGARC_REG_IMMR_PARTNUM    0x0000ff00 // part number mask (ro)#define CYGARC_REG_IMMR_MASKNUM    0x000000ff // mask number mask (ro)#define CYGARC_REG_IMM_BASE        0xff000000 // the internal memory map base// system protection control#define CYGARC_REG_IMM_SYPCR       (CYGARC_REG_IMM_BASE + 0x004)#define CYGARC_REG_IMM_SYPCR_SWTC_MASK 0xffff0000#define CYGARC_REG_IMM_SYPCR_BMT_MASK  0x0000ff00#define CYGARC_REG_IMM_SYPCR_BME       0x00000080#define CYGARC_REG_IMM_SYPCR_SWF       0x00000008#define CYGARC_REG_IMM_SYPCR_SWE       0x00000004#define CYGARC_REG_IMM_SYPCR_SWRI      0x00000002#define CYGARC_REG_IMM_SYPCR_SWP       0x00000001// interrupt pend register#define CYGARC_REG_IMM_SIPEND      (CYGARC_REG_IMM_BASE + 0x010)#define CYGARC_REG_IMM_SIPEND_IRQ0 0x80000000 // irq0 is bit 0...// interrupt mask#define CYGARC_REG_IMM_SIMASK      (CYGARC_REG_IMM_BASE + 0x014)#define CYGARC_REG_IMM_SIMASK_IRQ0 0x80000000 // ... irq n is bit n*2// interrupt edge level mask#define CYGARC_REG_IMM_SIEL        (CYGARC_REG_IMM_BASE + 0x018)#define CYGARC_REG_IMM_SIEL_IRQ0   0x80000000// interrupt vector#define CYGARC_REG_IMM_SIVEC       (CYGARC_REG_IMM_BASE + 0x01c)// memory controller#define CYGARC_REG_IMM_BR0         (CYGARC_REG_IMM_BASE + 0x100)#define CYGARC_REG_IMM_OR0         (CYGARC_REG_IMM_BASE + 0x104)#define CYGARC_REG_IMM_BR1         (CYGARC_REG_IMM_BASE + 0x108)#define CYGARC_REG_IMM_OR1         (CYGARC_REG_IMM_BASE + 0x10c)#define CYGARC_REG_IMM_BR2         (CYGARC_REG_IMM_BASE + 0x110)#define CYGARC_REG_IMM_OR2         (CYGARC_REG_IMM_BASE + 0x114)#define CYGARC_REG_IMM_BR3         (CYGARC_REG_IMM_BASE + 0x118)#define CYGARC_REG_IMM_OR3         (CYGARC_REG_IMM_BASE + 0x11c)#define CYGARC_REG_IMM_BR4         (CYGARC_REG_IMM_BASE + 0x120)#define CYGARC_REG_IMM_OR4         (CYGARC_REG_IMM_BASE + 0x124)#define CYGARC_REG_IMM_BR5         (CYGARC_REG_IMM_BASE + 0x128)#define CYGARC_REG_IMM_OR5         (CYGARC_REG_IMM_BASE + 0x12c)#define CYGARC_REG_IMM_BR6         (CYGARC_REG_IMM_BASE + 0x130)#define CYGARC_REG_IMM_OR6         (CYGARC_REG_IMM_BASE + 0x134)#define CYGARC_REG_IMM_BR7         (CYGARC_REG_IMM_BASE + 0x138)#define CYGARC_REG_IMM_OR7         (CYGARC_REG_IMM_BASE + 0x13c)#define CYGARC_REG_IMM_BR_BA_MASK  0xffff8000 // base address#define CYGARC_REG_IMM_BR_AT_MASK  0x00007000 // address type#define CYGARC_REG_IMM_BR_PS_8     0x00000400 // port size 8 bits#define CYGARC_REG_IMM_BR_PS_16    0x00000800 // port size 16 bits#define CYGARC_REG_IMM_BR_PS_32    0x00000000 // port size 32 bits#define CYGARC_REG_IMM_BR_PARE     0x00000200 // parity enable #define CYGARC_REG_IMM_BR_WP       0x00000100 // write protect  #define CYGARC_REG_IMM_BR_MS_GPCM  0x00000000 // machine select G.P.C.M#define CYGARC_REG_IMM_BR_MS_UPMA  0x00000080 // machine select U.P.M.A#define CYGARC_REG_IMM_BR_MS_UPMB  0x000000c0 // machine select U.P.M.B#define CYGARC_REG_IMM_BR_V        0x00000001 // valid bit#define CYGARC_REG_IMM_OR_AM     0xffff8000 // address mask#define CYGARC_REG_IMM_OR_ATM    0x00007000 // address type mask#define CYGARC_REG_IMM_OR_CSNT   0x00000800 // GPCM:chip select negation time#define CYGARC_REG_IMM_OR_SAM    0x00000800 // UPMx:start address multiplex#define CYGARC_REG_IMM_OR_ACS_0  0x00000000 // GPCM:CS output immediately#define CYGARC_REG_IMM_OR_ACS_4  0x00000400 // GPCM:CS output 1/4 clock later#define CYGARC_REG_IMM_OR_ACS_2  0x00000600 // GPCM:CS output 1/2 clock later#define CYGARC_REG_IMM_OR_G5LA   0x00000400 // UPMx:general-purpose line 5 A#define CYGARC_REG_IMM_OR_G5LS   0x00000200 // UPMx:general-purpose line 5 S#define CYGARC_REG_IMM_OR_BI     0x00000100 // burst inhibit#define CYGARC_REG_IMM_OR_SCY_MASK 0x000000f0 // cycle length in clocks#define CYGARC_REG_IMM_OR_SCY_SHIFT 4#define CYGARC_REG_IMM_OR_SETA     0x00000008 // external transfer ack#define CYGARC_REG_IMM_OR_TRLX     0x00000004 // timing relaxed#define CYGARC_REG_IMM_OR_EHTR     0x00000002 // extended hold time on read// timebase status and control#define CYGARC_REG_IMM_TBSCR       (CYGARC_REG_IMM_BASE + 0x200) #define CYGARC_REG_IMM_TBSCR_REFA  0x0080 // reference interrupt status A#define CYGARC_REG_IMM_TBSCR_REFB  0x0040 // reference interrupt status B#define CYGARC_REG_IMM_TBSCR_REFAE 0x0008 // reference interrupt enable A#define CYGARC_REG_IMM_TBSCR_REFBE 0x0004 // reference interrupt enable B#define CYGARC_REG_IMM_TBSCR_TBF   0x0002 // timebase freeze#define CYGARC_REG_IMM_TBSCR_TBE   0x0001 // timebase enable#define CYGARC_REG_IMM_TBSCR_IRQ0  0x8000 // highest interrupt level#define CYGARC_REG_IMM_TBSCR_IRQMASK 0xff00 // irq priority mask// timebase reference register 0#define CYGARC_REG_IMM_TBREF0      (CYGARC_REG_IMM_BASE + 0x204)// timebase reference register 1#define CYGARC_REG_IMM_TBREF1      (CYGARC_REG_IMM_BASE + 0x208)// real time clock#define CYGARC_REG_IMM_RTCSC       (CYGARC_REG_IMM_BASE + 0x220)#define CYGARC_REG_IMM_RTCSC_SEC   0x0080 // once per second interrupt#define CYGARC_REG_IMM_RTCSC_ALR   0x0040 // alarm interrupt#define CYGARC_REG_IMM_RTCSC_38K   0x0010 // source select#define CYGARC_REG_IMM_RTCSC_SIE   0x0008 // second interrupt enable#define CYGARC_REG_IMM_RTCSC_ALE   0x0004 // alarm interrupt enable#define CYGARC_REG_IMM_RTCSC_RTF   0x0002 // real time clock freeze#define CYGARC_REG_IMM_RTCSC_RTE   0x0001 // real time clock enable#define CYGARC_REG_IMM_RTCSC_IRQ0  0x8000 // highest interrupt level#define CYGARC_REG_IMM_RTCSC_IRQMASK 0xff00 // irq priority mask// periodic interrupt status & ctrl#define CYGARC_REG_IMM_PISCR       (CYGARC_REG_IMM_BASE + 0x240)#define CYGARC_REG_IMM_PISCR_PS    0x0080 // periodic interrupt status#define CYGARC_REG_IMM_PISCR_PIE   0x0004 // periodic interrupt enable#define CYGARC_REG_IMM_PISCR_PITF  0x0002 // periodic interrupt timer freeze#define CYGARC_REG_IMM_PISCR_PTE   0x0001 // periodic timer enable#define CYGARC_REG_IMM_PISCR_IRQ0  0x8000 // highest interrupt level#define CYGARC_REG_IMM_PISCR_IRQMASK 0xff00 // irq priority mask// periodic interrupt timer count#define CYGARC_REG_IMM_PITC        (CYGARC_REG_IMM_BASE + 0x244)#define CYGARC_REG_IMM_PITC_COUNT_SHIFT 16 // count is stored in bits 0-15// system clock control#define CYGARC_REG_IMM_SCCR        (CYGARC_REG_IMM_BASE + 0x280)#define CYGARC_REG_IMM_SCCR_TBS    0x02000000 // timebase source#define CYGARC_REG_IMM_SCCR_RTDIV  0x01000000 // rtc clock divide#define CYGARC_REG_IMM_SCCR_RTSEL  0x00800000 // rtc clock select// CPM interrupt vector register#define CYGARC_REG_IMM_CIVR        (CYGARC_REG_IMM_BASE + 0x930)#define CYGARC_REG_IMM_CIVR_IACK   0x0001 // set this to update register#define CYGARC_REG_IMM_CIVR_VECTOR_SHIFT 11 // vector is at bits 0-4// CPM interrupt configuration reg#define CYGARC_REG_IMM_CICR        (CYGARC_REG_IMM_BASE + 0x940)#define CYGARC_REG_IMM_CICR_IEN    0x00000080      // interrupt enable#define CYGARC_REG_IMM_CICR_IRQMASK 0x0000e000     // irq priority mask#define CYGARC_REG_IMM_CICR_IRQ_SHIFT 13// CPM interrupt mask register#define CYGARC_REG_IMM_CIMR        (CYGARC_REG_IMM_BASE + 0x948)// CPM interrupt in-service register#define CYGARC_REG_IMM_CISR        (CYGARC_REG_IMM_BASE + 0x94C)#define CYGARC_SIU_PRIORITY_LOW    7 // the lowest irq priority#define CYGARC_SIU_PRIORITY_HIGH   0 // the highest irq priority#ifdef CYGARC_HAL_COMMON_EXPORT_CPU_MACROS#endif // ifdef CYGARC_HAL_COMMON_EXPORT_CPU_MACROS//-----------------------------------------------------------------------------// Development Support.#define CYGARC_REG_DER             149#define CYGARC_REG_ICTRL           158  // instruction support control reg#define CYGARC_REG_ICTRL_SERSHOW   0x00000000 // serialized, show cycles#define CYGARC_REG_ICTRL_NOSERSHOW 0x00000007 //non-serialized&no show cycles#ifdef CYGARC_HAL_COMMON_EXPORT_CPU_MACROS#define DER             CYGARC_REG_DER#define ICTRL           CYGARC_REG_ICTRL#define ICTRL_SERSHOW   CYGARC_REG_ICTRL_SERSHOW#define ICTRL_NOSERSHOW CYGARC_REG_ICTRL_NOSERSHOW#endif // ifdef CYGARC_HAL_COMMON_EXPORT_CPU_MACROS#endif // ifdef CYG_HAL_POWERPC_MPC8xx#endif // ifdef CYGONCE_HAL_PPC_REGS_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -