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

📄 mpc6xx.h

📁 motorola自己开发的针对coldfire 5272的Dbug bootloader程序
💻 H
字号:
/*
 * File:		src/include/cpu/ppc/mpc6xx/mpc6xx.h
 * Purpose:		Definitions common across all MPC6XX processors
 *
 * Notes:
 *
 */

#ifndef _CPU_MPC6XX_H
#define _CPU_MPC6XX_H

/********************************************************************/

#define MPC6XX_BATU_BEPI(a)		(((a)&0xFFFE0000))
#define MPC6XX_BATU_BL_128K		(0x00000000)
#define MPC6XX_BATU_BL_256K		(0x00000004)
#define MPC6XX_BATU_BL_512K		(0x0000000C)
#define MPC6XX_BATU_BL_1M		(0x0000001C)
#define MPC6XX_BATU_BL_2M		(0x0000003C)
#define MPC6XX_BATU_BL_4M		(0x0000007C)
#define MPC6XX_BATU_BL_8M		(0x000000FC)
#define MPC6XX_BATU_BL_16M		(0x000001FC)
#define MPC6XX_BATU_BL_32M		(0x000003FC)
#define MPC6XX_BATU_BL_64M		(0x000007FC)
#define MPC6XX_BATU_BL_128M		(0x00000FFC)
#define MPC6XX_BATU_BL_256M		(0x00001FFC)
#define MPC6XX_BATU_VS			(0x00000002)
#define MPC6XX_BATU_VP			(0x00000001)

#define MPC6XX_BATL_BRPN(a)		(((a)&0xFFFE0000))
#define MPC6XX_BATL_NE			(0x00000400)
#define MPC6XX_BATL_SE			(0x00000200)
#define MPC6XX_BATL_W			(0x00000040)
#define MPC6XX_BATL_I			(0x00000020)
#define MPC6XX_BATL_M			(0x00000010)
#define MPC6XX_BATL_G			(0x00000008)
#define MPC6XX_BATL_P1			(0x00000002)
#define MPC6XX_BATL_P0			(0x00000001)

#define MPC6XX_SR_T0_T          (0x80000000)
#define MPC6XX_SR_T0_KS         (0x40000000)
#define MPC6XX_SR_T0_KP         (0x20000000)
#define MPC6XX_SR_T0_N          (0x10000000)
#define MPC6XX_SR_T0_VSID(a)    (((a)&0x00FFFFFF))
#define MPC6XX_SR_T0_VSID_MASK  (0x00FFFFFF)
 
#define MPC6XX_SR_T1_T          (0x80000000)
#define MPC6XX_SR_T1_KS         (0x40000000)
#define MPC6XX_SR_T1_KP         (0x20000000)
#define MPC6XX_SR_T1_BUID(a)    (((a)&0x000001FF)<<20)
#define MPC6XX_SR_T1_BUID_MASK  (0x1FF00000)
#define MPC6XX_SR_T1_CSI(a)     (((a)&0x000FFFFF))
#define MPC6XX_SR_T1_CSI_MASK   (0x000FFFFF)

/********************************************************************/

#define MPC60X_FPSCR_FX			(0x80000000)
#define MPC60X_FPSCR_FEX		(0x40000000)
#define MPC60X_FPSCR_VX			(0x20000000)
#define MPC60X_FPSCR_OX			(0x10000000)
#define MPC60X_FPSCR_UX			(0x08000000)
#define MPC60X_FPSCR_ZX			(0x04000000)
#define MPC60X_FPSCR_XX			(0x02000000)
#define MPC60X_FPSCR_VXSNAN		(0x01000000)
#define MPC60X_FPSCR_VXISI		(0x00800000)
#define MPC60X_FPSCR_VXIDI		(0x00400000)
#define MPC60X_FPSCR_VXZDZ		(0x00200000)
#define MPC60X_FPSCR_VXIMZ		(0x00100000)
#define MPC60X_FPSCR_VXVC		(0x00080000)
#define MPC60X_FPSCR_FR			(0x00040000)
#define MPC60X_FPSCR_FI			(0x00020000)
#define MPC60X_FPSCR_FPRF		(0x0001F000)
#define MPC60X_FPSCR_VXSOFT		(0x00000400)
#define MPC60X_FPSCR_VXSQRT		(0x00000200)
#define MPC60X_FPSCR_VXCVI		(0x00000100)
#define MPC60X_FPSCR_VE			(0x00000080)
#define MPC60X_FPSCR_OE			(0x00000040)
#define MPC60X_FPSCR_UE			(0x00000020)
#define MPC60X_FPSCR_ZE			(0x00000010)
#define MPC60X_FPSCR_XE			(0x00000008)
#define MPC60X_FPSCR_RN_NEAR	(0x00000000)
#define MPC60X_FPSCR_RN_ZERO	(0x00000001)
#define MPC60X_FPSCR_RN_PLUS	(0x00000002)
#define MPC60X_FPSCR_RN_MINUS	(0x00000003)

/********************************************************************/

uint32	mpc6xx_rd_pvr (void);

void	mpc6xx_wr_msr (uint32);
uint32	mpc6xx_rd_msr (void);

void	mpc6xx_wr_tbl (uint32);
uint32	mpc6xx_rd_tbl (void);
void	mpc6xx_wr_tbu (uint32);
uint32	mpc6xx_rd_tbu (void);

void	mpc6xx_wr_ibat0u (uint32);
uint32	mpc6xx_rd_ibat0u (void);
void	mpc6xx_wr_ibat0l (uint32);
uint32	mpc6xx_rd_ibat0l (void);
void	mpc6xx_wr_ibat1u (uint32);
uint32	mpc6xx_rd_ibat1u (void);
void	mpc6xx_wr_ibat1l (uint32);
uint32	mpc6xx_rd_ibat1l (void);
void	mpc6xx_wr_ibat2u (uint32);
uint32	mpc6xx_rd_ibat2u (void);
void	mpc6xx_wr_ibat2l (uint32);
uint32	mpc6xx_rd_ibat2l (void);
void	mpc6xx_wr_ibat3u (uint32);
uint32	mpc6xx_rd_ibat3u (void);
void	mpc6xx_wr_ibat3l (uint32);
uint32	mpc6xx_rd_ibat3l (void);

void	mpc6xx_wr_dbat0u (uint32);
uint32	mpc6xx_rd_dbat0u (void);
void	mpc6xx_wr_dbat0l (uint32);
uint32	mpc6xx_rd_dbat0l (void);
void	mpc6xx_wr_dbat1u (uint32);
uint32	mpc6xx_rd_dbat1u (void);
void	mpc6xx_wr_dbat1l (uint32);
uint32	mpc6xx_rd_dbat1l (void);
void	mpc6xx_wr_dbat2u (uint32);
uint32	mpc6xx_rd_dbat2u (void);
void	mpc6xx_wr_dbat2l (uint32);
uint32	mpc6xx_rd_dbat2l (void);
void	mpc6xx_wr_dbat3u (uint32);
uint32	mpc6xx_rd_dbat3u (void);
void	mpc6xx_wr_dbat3l (uint32);
uint32	mpc6xx_rd_dbat3l (void);

void	mpc6xx_wr_sr0 (uint32);
uint32	mpc6xx_rd_sr0 (void);
void	mpc6xx_wr_sr1 (uint32);
uint32	mpc6xx_rd_sr1 (void);
void	mpc6xx_wr_sr2 (uint32);
uint32	mpc6xx_rd_sr2 (void);
void	mpc6xx_wr_sr3 (uint32);
uint32	mpc6xx_rd_sr3 (void);
void	mpc6xx_wr_sr4 (uint32);
uint32	mpc6xx_rd_sr4 (void);
void	mpc6xx_wr_sr5 (uint32);
uint32	mpc6xx_rd_sr5 (void);
void	mpc6xx_wr_sr6 (uint32);
uint32	mpc6xx_rd_sr6 (void);
void	mpc6xx_wr_sr7 (uint32);
uint32	mpc6xx_rd_sr7 (void);
void	mpc6xx_wr_sr8 (uint32);
uint32	mpc6xx_rd_sr8 (void);
void	mpc6xx_wr_sr9 (uint32);
uint32	mpc6xx_rd_sr9 (void);
void	mpc6xx_wr_sr10 (uint32);
uint32	mpc6xx_rd_sr10 (void);
void	mpc6xx_wr_sr11 (uint32);
uint32	mpc6xx_rd_sr11 (void);
void	mpc6xx_wr_sr12 (uint32);
uint32	mpc6xx_rd_sr12 (void);
void	mpc6xx_wr_sr13 (uint32);
uint32	mpc6xx_rd_sr13 (void);
void	mpc6xx_wr_sr14 (uint32);
uint32	mpc6xx_rd_sr14 (void);
void	mpc6xx_wr_sr15 (uint32);
uint32	mpc6xx_rd_sr15 (void);

void	mpc6xx_wr_sdr1 (uint32);
uint32	mpc6xx_rd_sdr1 (void);

void	mpc6xx_wr_dar (uint32);
uint32	mpc6xx_rd_dar (void);

void	mpc6xx_wr_dsisr (uint32);
uint32	mpc6xx_rd_dsisr (void);

void	mpc6xx_wr_dec (uint32);
uint32	mpc6xx_rd_dec (void);

/********************************************************************/
#if		(defined(CPU_MPC602))

#define MPC602_MSR_AP		(0x00800000)
#define MPC602_MSR_SA		(0x00400000)

#define MPC602_HID0_EMCP	(0x80000000)
#define MPC602_HID0_SBCLK	(0x08000000)
#define MPC602_HID0_ECLK	(0x02000000)
#define MPC602_HID0_DOZE	(0x00800000)
#define MPC602_HID0_NAP		(0x00400000)
#define MPC602_HID0_SLEEP	(0x00200000)
#define MPC602_HID0_DPM		(0x00100000)
#define MPC602_HID0_RISEG	(0x00080000)
#define MPC602_HID0_NHR		(0x00010000)
#define MPC602_HID0_ICE		(0x00008000)
#define MPC602_HID0_DCE		(0x00004000)
#define MPC602_HID0_ILOCK	(0x00002000)
#define MPC602_HID0_DLOCK	(0x00001000)
#define MPC602_HID0_ICFI	(0x00000800)
#define MPC602_HID0_DCFI	(0x00000400)
#define MPC602_HID0_PO		(0x00000080)
#define MPC602_HID0_SL		(0x00000020)
#define MPC602_HID0_W		(0x00000008)
#define MPC602_HID0_I		(0x00000004)
#define MPC602_HID0_M		(0x00000002)
#define MPC602_HID0_G		(0x00000001)

#define MPC602_HID1_PC		(0xF0000000)
#define MPC602_HID1_PC0		(0x80000000)
#define MPC602_HID1_PC1		(0x40000000)
#define MPC602_HID1_PC2		(0x20000000)
#define MPC602_HID1_PC3		(0x10000000)

#define MPC602_TCR_TI_2_23	(0x00000000)
#define MPC602_TCR_TI_2_24	(0x40000000)
#define MPC602_TCR_TI_2_25	(0x80000000)
#define MPC602_TCR_TI_2_26	(0xC0000000)
#define MPC602_TCR_CRE		(0x20000000)
#define MPC602_TCR_L2E		(0x10000000)
#define MPC602_TCR_NWE		(0x08000000)
#define MPC602_TCR_WIE		(0x04000000)
#define MPC602_TCR_SLT		(0x02000000)

#define MPC602_IBR_IBA(a)	((a)&0xFFFF0000)

#define MPC602_IABR_CEA(a)	((a)&0xFFFFFFFC)
#define MPC602_IABR_IE		(0x00000002)

/********************************************************************/
#elif	(defined(CPU_MPC603))

#define MPC603_HID0_EMCP	(0x80000000)
#define MPC603_HID0_EBA     (0x20000000)
#define MPC603_HID0_EBD     (0x10000000)
#define MPC603_HID0_SBCLK	(0x08000000)
#define MPC603_HID0_EICE    (0x04000000)
#define MPC603_HID0_ECLK	(0x02000000)
#define MPC603_HID0_PAR     (0x01000000)
#define MPC603_HID0_DOZE	(0x00800000)
#define MPC603_HID0_NAP		(0x00400000)
#define MPC603_HID0_SLEEP	(0x00200000)
#define MPC603_HID0_DPM		(0x00100000)
#define MPC603_HID0_RISEG	(0x00080000)
#define MPC603_HID0_NHR		(0x00010000)
#define MPC603_HID0_ICE		(0x00008000)
#define MPC603_HID0_DCE		(0x00004000)
#define MPC603_HID0_ILOCK	(0x00002000)
#define MPC603_HID0_DLOCK	(0x00001000)
#define MPC603_HID0_ICFI	(0x00000800)
#define MPC603_HID0_DCI		(0x00000400)
#define MPC603_HID0_FBIOB   (0x00000010)
#define MPC603_HID0_NOOPTI  (0x00000001)

#define MPC603_IABR_CEA(a)	((a)&0xFFFFFFFC)
#define MPC603_IABR_IE		(0x00000002)

void	mpc603_wr_hid0  (uint32);
uint32	mpc603_rd_hid0  (void);
void	mpc603_wr_dmiss (uint32);
uint32	mpc603_rd_dmiss (void);
void	mpc603_wr_dcmp  (uint32);
uint32	mpc603_rd_dcmp  (void);
uint32	mpc603_rd_hash1 (void);
uint32	mpc603_rd_hash2 (void);
void	mpc603_wr_imiss (uint32);
uint32	mpc603_rd_imiss (void);
void	mpc603_wr_icmp  (uint32);
uint32	mpc603_rd_icmp  (void);
void	mpc603_wr_rpa   (uint32);
uint32	mpc603_rd_rpa   (void);
void	mpc603_wr_iabr  (uint32);
uint32	mpc603_rd_iabr  (void);
void	mpc603_wr_ear   (uint32);
uint32	mpc603_rd_ear   (void);

/********************************************************************/
#elif	(defined(CPU_MPC603E))

#define MPC603E_IABR_CEA(a)	((a)&0xFFFFFFFC)
#define MPC603E_IABR_IE		(0x00000002)

void	mpc603e_wr_hid0  (uint32);
uint32	mpc603e_rd_hid0  (void);
uint32	mpc603e_rd_hid1  (void);
void	mpc603e_wr_dmiss (uint32);
uint32	mpc603e_rd_dmiss (void);
void	mpc603e_wr_dcmp  (uint32);
uint32	mpc603e_rd_dcmp  (void);
uint32	mpc603e_rd_hash1 (void);
uint32	mpc603e_rd_hash2 (void);
void	mpc603e_wr_imiss (uint32);
uint32	mpc603e_rd_imiss (void);
void	mpc603e_wr_icmp  (uint32);
uint32	mpc603e_rd_icmp  (void);
void	mpc603e_wr_rpa   (uint32);
uint32	mpc603e_rd_rpa   (void);
void	mpc603e_wr_iabr  (uint32);
uint32	mpc603e_rd_iabr  (void);
void	mpc603e_wr_ear   (uint32);
uint32	mpc603e_rd_ear   (void);


/********************************************************************/
#elif	(defined(CPU_MPC604))

#define MPC604_IABR_CEA(a)	((a)&0xFFFFFFFC)
#define MPC604_IABR_IE		(0x00000002)

void	mpc604_wr_hid0  (uint32);
uint32	mpc604_rd_hid0  (void);
uint32	mpc604_rd_pmc1  (void);
uint32	mpc604_rd_pmc2  (void);
void	mpc604_wr_mmcr0 (uint32);
uint32	mpc604_rd_mmcr0 (void);
uint32	mpc604_rd_sda   (void);
uint32	mpc604_rd_sia   (void);
void	mpc604_wr_iabr  (uint32);
uint32	mpc604_rd_iabr  (void);
void	mpc604_wr_dabr  (uint32);
uint32	mpc604_rd_dabr  (void);
void	mpc604_wr_ear   (uint32);
uint32	mpc604_rd_ear   (void);
uint32	mpc604_rd_pir   (void);

/********************************************************************/
#elif	(defined(CPU_MPC604e))
#include "mpc604e.h"

#define MPC604E_IABR_CEA(a)	((a)&0xFFFFFFFC)
#define MPC604E_IABR_IE		(0x00000002)

uint32	mpc604e_rd_hid0  (void);
uint32	mpc604e_rd_hid1  (void);
uint32	mpc604e_rd_pmc1  (void);
uint32	mpc604e_rd_pmc2  (void);
void	mpc604e_wr_mmcr0 (uint32);
uint32	mpc604e_rd_mmcr0 (void);
uint32	mpc604e_rd_sda   (void);
uint32	mpc604e_rd_sia   (void);
void	mpc604e_wr_iabr  (uint32);
uint32	mpc604e_rd_iabr  (void);
void	mpc604e_wr_dabr  (uint32);
uint32	mpc604e_rd_dabr  (void);
void	mpc604e_wr_ear   (uint32);
uint32	mpc604e_rd_ear   (void);
uint32	mpc604e_rd_pir   (void);

/********************************************************************/
#elif	(defined(CPU_MPC740) || defined(CPU_MPC750))

uint32	mpc750_rd_upmc1 (void);
uint32	mpc750_rd_upmc2 (void);
uint32	mpc750_rd_upmc3 (void);
uint32	mpc750_rd_upmc4 (void);
uint32	mpc750_rd_usia  (void);
uint32	mpc750_rd_ummcr0 (void);
uint32	mpc750_rd_ummcr1 (void);
void	mpc750_wr_hid0  (uint32);
uint32	mpc750_rd_hid0  (void);
uint32	mpc750_rd_hid1  (void);
uint32	mpc750_rd_pmc1  (void);
uint32	mpc750_rd_pmc2  (void);
uint32	mpc750_rd_pmc3  (void);
uint32	mpc750_rd_pmc4  (void);
void	mpc750_wr_mmcr0 (uint32);
uint32	mpc750_rd_mmcr0 (void);
void	mpc750_wr_mmcr1 (uint32);
uint32	mpc750_rd_mmcr1 (void);
uint32	mpc750_rd_sia   (void);
void	mpc750_wr_thrm1 (uint32);
uint32	mpc750_rd_thrm1 (void);
void	mpc750_wr_thrm2 (uint32);
uint32	mpc750_rd_thrm2 (void);
void	mpc750_wr_thrm3 (uint32);
uint32	mpc750_rd_thrm3 (void);
void	mpc750_wr_ictc  (uint32);
uint32	mpc750_rd_ictc  (void);
void	mpc750_wr_l2cr  (uint32);
uint32	mpc750_rd_l2cr  (void);
void	mpc750_wr_iabr  (uint32);
uint32	mpc750_rd_iabr  (void);
void	mpc750_wr_dabr  (uint32);
uint32	mpc750_rd_dabr  (void);
void	mpc750_wr_ear   (uint32);
uint32	mpc750_rd_ear   (void);

/********************************************************************/
#else
#error "Error: Unsupported PowerPC processor in mpc6xx.h"
#endif

/********************************************************************/

#endif /* _CPU_MPC6XX_H */

⌨️ 快捷键说明

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