440 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			440 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			C
		
	
	
	
| /*
 | |
|  * (C) Copyright 2003
 | |
|  * Martin Winistoerfer, martinwinistoerfer@gmx.ch.
 | |
|  *
 | |
|  * See file CREDITS for list of people who contributed to this
 | |
|  * project.
 | |
|  *
 | |
|  * This program is free software; you can redistribute it and/or
 | |
|  * modify it under the terms of the GNU General Public License as
 | |
|  * published by the Free Software Foundation; either version 2 of
 | |
|  * the License, or (at your option) any later version.
 | |
|  *
 | |
|  * This program is distributed in the hope that it will be useful,
 | |
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
|  * GNU General Public License for more details.
 | |
|  *
 | |
|  * You should have received a copy of the GNU General Public License
 | |
|  * along with this program; if not, write to the Free Software
 | |
|  * Foundation,
 | |
|  */
 | |
| 
 | |
| /*
 | |
|  * File:		5xx_immap.h
 | |
|  *
 | |
|  * Discription:		MPC555 Internal Memory Map
 | |
|  *
 | |
|  */
 | |
| 
 | |
| #ifndef __IMMAP_5XX__
 | |
| #define __IMMAP_5XX__
 | |
| 
 | |
| /* System Configuration Registers.
 | |
| */
 | |
| typedef	struct sys_conf {
 | |
| 	uint sc_siumcr;
 | |
| 	uint sc_sypcr;
 | |
| 	char res1[6];
 | |
| 	ushort sc_swsr;
 | |
| 	uint sc_sipend;
 | |
| 	uint sc_simask;
 | |
| 	uint sc_siel;
 | |
| 	uint sc_sivec;
 | |
| 	uint sc_tesr;
 | |
| 	uint sc_sgpiodt1;
 | |
| 	uint sc_sgpiodt2;
 | |
| 	uint sc_sgpiocr;
 | |
| 	uint sc_emcr;
 | |
| 	uint sc_res1aa;
 | |
| 	uint sc_res1ab;
 | |
| 	uint sc_pdmcr;
 | |
| 	char res3[192];
 | |
| } sysconf5xx_t;
 | |
| 
 | |
| 
 | |
| /* Memory Controller Registers.
 | |
| */
 | |
| typedef struct	mem_ctlr {
 | |
| 	uint memc_br0;
 | |
| 	uint memc_or0;
 | |
| 	uint memc_br1;
 | |
| 	uint memc_or1;
 | |
| 	uint memc_br2;
 | |
| 	uint memc_or2;
 | |
| 	uint memc_br3;
 | |
| 	uint memc_or3;
 | |
| 	char res1[32];
 | |
| 	uint memc_dmbr;
 | |
| 	uint memc_dmor;
 | |
| 	char res2[48];
 | |
| 	ushort memc_mstat;
 | |
| 	ushort memc_res4a;
 | |
| 	char res3[132];
 | |
| } memctl5xx_t;
 | |
| 
 | |
| /* System Integration Timers.
 | |
| */
 | |
| typedef struct	sys_int_timers {
 | |
| 	ushort sit_tbscr;
 | |
| 	char res1[2];
 | |
| 	uint sit_tbref0;
 | |
| 	uint sit_tbref1;
 | |
| 	char res2[20];
 | |
| 	ushort sit_rtcsc;
 | |
| 	char res3[2];
 | |
| 	uint sit_rtc;
 | |
| 	uint sit_rtsec;
 | |
| 	uint sit_rtcal;
 | |
| 	char res4[16];
 | |
| 	ushort sit_piscr;
 | |
| 	char res5[2];
 | |
| 	uint sit_pitc;
 | |
| 	uint sit_pitr;
 | |
| 	char res6[52];
 | |
| } sit5xx_t;
 | |
| 
 | |
| /* Clocks and Reset
 | |
| */
 | |
| typedef struct clk_and_reset {
 | |
| 	uint car_sccr;
 | |
| 	uint car_plprcr;
 | |
| 	ushort car_rsr;
 | |
| 	ushort car_res7a;
 | |
| 	ushort car_colir;
 | |
| 	ushort car_res7b;
 | |
| 	ushort car_vsrmcr;
 | |
| 	ushort car_res7c;
 | |
| 	char res1[108];
 | |
| 
 | |
| } car5xx_t;
 | |
| 
 | |
| #define TBSCR_TBE		((ushort)0x0001)
 | |
| 
 | |
| /* System Integration Timer Keys
 | |
| */
 | |
| typedef struct sitk {
 | |
| 	uint sitk_tbscrk;
 | |
| 	uint sitk_tbref0k;
 | |
| 	uint sitk_tbref1k;
 | |
| 	uint sitk_tbk;
 | |
| 	char res1[16];
 | |
| 	uint sitk_rtcsck;
 | |
| 	uint sitk_rtck;
 | |
| 	uint sitk_rtseck;
 | |
| 	uint sitk_rtcalk;
 | |
| 	char res2[16];
 | |
| 	uint sitk_piscrk;
 | |
| 	uint sitk_pitck;
 | |
| 	char res3[56];
 | |
| } sitk5xx_t;
 | |
| 
 | |
| /* Clocks and Reset Keys.
 | |
| */
 | |
| typedef struct cark {
 | |
| 	uint	cark_sccrk;
 | |
| 	uint	cark_plprcrk;
 | |
| 	uint	cark_rsrk;
 | |
| 	char	res1[1140];
 | |
| } cark8xx_t;
 | |
| 
 | |
| /* The key to unlock registers maintained by keep-alive power.
 | |
| */
 | |
| #define KAPWR_KEY	((unsigned int)0x55ccaa33)
 | |
| 
 | |
| /* Flash Configuration
 | |
| */
 | |
| typedef struct fl {
 | |
| 	uint fl_cmfmcr;
 | |
| 	uint fl_cmftst;
 | |
| 	uint fl_cmfctl;
 | |
| 	char res1[52];
 | |
| } fl5xx_t;
 | |
| 
 | |
| /* Dpram Control
 | |
| */
 | |
| typedef struct dprc {
 | |
| 	ushort dprc_dptmcr;
 | |
| 	ushort dprc_ramtst;
 | |
| 	ushort dprc_rambar;
 | |
| 	ushort dprc_misrh;
 | |
| 	ushort dprc_misrl;
 | |
| 	ushort dprc_miscnt;
 | |
| } dprc5xx_t;
 | |
| 
 | |
| /* Time Processor Unit
 | |
| */
 | |
| typedef struct tpu {
 | |
| 	ushort tpu_tpumcr;
 | |
| 	ushort tpu_tcr;
 | |
| 	ushort tpu_dscr;
 | |
| 	ushort tpu_dssr;
 | |
| 	ushort tpu_ticr;
 | |
| 	ushort tpu_cier;
 | |
| 	ushort tpu_cfsr0;
 | |
| 	ushort tpu_cfsr1;
 | |
| 	ushort tpu_cfsr2;
 | |
| 	ushort tpu_cfsr3;
 | |
| 	ushort tpu_hsqr0;
 | |
| 	ushort tpu_hsqr1;
 | |
| 	ushort tpu_hsrr0;
 | |
| 	ushort tpu_hsrr1;
 | |
| 	ushort tpu_cpr0;
 | |
| 	ushort tpu_cpr1;
 | |
| 	ushort tpu_cisr;
 | |
| 	ushort tpu_lr;
 | |
| 	ushort tpu_sglr;
 | |
| 	ushort tpu_dcnr;
 | |
| 	ushort tpu_tpumcr2;
 | |
| 	ushort tpu_tpumcr3;
 | |
| 	ushort tpu_isdr;
 | |
| 	ushort tpu_iscr;
 | |
| 	char   res1[208];
 | |
| 	char   tpu[16][16];
 | |
| 	char   res2[512];
 | |
| } tpu5xx_t;
 | |
| 
 | |
| /* QADC
 | |
| */
 | |
| typedef struct qadc {
 | |
| 	ushort qadc_64mcr;
 | |
| 	ushort qadc_64test;
 | |
| 	ushort qadc_64int;
 | |
| 	u_char  qadc_portqa;
 | |
| 	u_char  qadc_portqb;
 | |
| 	ushort qadc_ddrqa;
 | |
| 	ushort qadc_qacr0;
 | |
| 	ushort qadc_qacr1;
 | |
| 	ushort qadc_qacr2;
 | |
| 	ushort qadc_qasr0;
 | |
| 	ushort qadc_qasr1;
 | |
| 	char   res1[492];
 | |
|        /* command convertion word table */
 | |
| 	ushort qadc_ccw[64];
 | |
|        /* result word table, unsigned right justified */
 | |
| 	ushort qadc_rjurr[64];
 | |
|        /* result word table, signed left justified */
 | |
| 	ushort qadc_ljsrr[64];
 | |
|        /* result word table, unsigned left justified */
 | |
| 	ushort qadc_ljurr[64];
 | |
| } qadc5xx_t;
 | |
| 
 | |
| /* QSMCM
 | |
| */
 | |
| typedef struct qsmcm {
 | |
| 	ushort qsmcm_qsmcr;
 | |
| 	ushort qsmcm_qtest;
 | |
| 	ushort qsmcm_qdsci_il;
 | |
| 	ushort qsmcm_qspi_il;
 | |
| 	ushort qsmcm_scc1r0;
 | |
| 	ushort qsmcm_scc1r1;
 | |
| 	ushort qsmcm_sc1sr;
 | |
| 	ushort qsmcm_sc1dr;
 | |
| 	char   res1[2];
 | |
| 	char   res2[2];
 | |
| 	ushort qsmcm_portqs;
 | |
| 	u_char qsmcm_pqspar;
 | |
| 	u_char qsmcm_ddrqs;
 | |
| 	ushort qsmcm_spcr0;
 | |
| 	ushort qsmcm_spcr1;
 | |
| 	ushort qsmcm_spcr2;
 | |
| 	u_char qsmcm_spcr3;
 | |
| 	u_char qsmcm_spsr;
 | |
| 	ushort qsmcm_scc2r0;
 | |
| 	ushort qsmcm_scc2r1;
 | |
| 	ushort qsmcm_sc2sr;
 | |
| 	ushort qsmcm_sc2dr;
 | |
| 	ushort qsmcm_qsci1cr;
 | |
| 	ushort qsmcm_qsci1sr;
 | |
| 	ushort qsmcm_sctq[16];
 | |
| 	ushort qsmcm_scrq[16];
 | |
| 	char   res3[212];
 | |
| 	ushort qsmcm_recram[32];
 | |
| 	ushort qsmcm_tranram[32];
 | |
| 	u_char qsmcm_comdram[32];
 | |
| 	char   res[3616];
 | |
| } qsmcm5xx_t;
 | |
| 
 | |
| 
 | |
| /* MIOS
 | |
| */
 | |
| 
 | |
| typedef struct mios {
 | |
| 	ushort mios_mpwmsm0perr;                 /* mpwmsm0 */
 | |
| 	ushort mios_mpwmsm0pulr;
 | |
| 	ushort mios_mpwmsm0cntr;
 | |
| 	ushort mios_mpwmsm0scr;
 | |
| 	ushort mios_mpwmsm1perr;                 /* mpwmsm1 */
 | |
| 	ushort mios_mpwmsm1pulr;
 | |
| 	ushort mios_mpwmsm1cntr;
 | |
| 	ushort mios_mpwmsm1scr;
 | |
| 	ushort mios_mpwmsm2perr;                 /* mpwmsm2 */
 | |
| 	ushort mios_mpwmsm2pulr;
 | |
| 	ushort mios_mpwmsm2cntr;
 | |
| 	ushort mios_mpwmsm2scr;
 | |
| 	ushort mios_mpwmsm3perr;                 /* mpwmsm3 */
 | |
| 	ushort mios_mpwmsm3pulr;
 | |
| 	ushort mios_mpwmsm3cntr;
 | |
| 	ushort mios_mpwmsm3scr;
 | |
| 	char res1[16];
 | |
| 	ushort mios_mmcsm6cnt;                   /* mmcsm6 */
 | |
| 	ushort mios_mmcsm6mlr;
 | |
| 	ushort mios_mmcsm6scrd, mmcsm6scr;
 | |
| 	char res2[32];
 | |
| 	ushort mios_mdasm11ar;                   /* mdasm11 */
 | |
| 	ushort mios_mdasm11br;
 | |
| 	ushort mios_mdasm11scrd, mdasm11scr;
 | |
| 	ushort mios_mdasm12ar;                   /* mdasm12 */
 | |
| 	ushort mios_mdasm12br;
 | |
| 	ushort mios_mdasm12scrd, mdasm12scr;
 | |
| 	ushort mios_mdasm13ar;                   /* mdasm13 */
 | |
| 	ushort mios_mdasm13br;
 | |
| 	ushort mios_mdasm13scrd, mdasm13scr;
 | |
| 	ushort mios_mdasm14ar;                   /* mdasm14 */
 | |
| 	ushort mios_mdasm14br;
 | |
| 	ushort mios_mdasm14scrd, mdasm14scr;
 | |
| 	ushort mios_mdasm15ar;                   /* mdasm15 */
 | |
| 	ushort mios_mdasm15br;
 | |
| 	ushort mios_mdasm15scrd, mdasm15scr;
 | |
| 	ushort mios_mpwmsm16perr;                /* mpwmsm16 */
 | |
| 	ushort mios_mpwmsm16pulr;
 | |
| 	ushort mios_mpwmsm16cntr;
 | |
| 	ushort mios_mpwmsm16scr;
 | |
| 	ushort mios_mpwmsm17perr;                /* mpwmsm17 */
 | |
| 	ushort mios_mpwmsm17pulr;
 | |
| 	ushort mios_mpwmsm17cntr;
 | |
| 	ushort mios_mpwmsm17scr;
 | |
| 	ushort mios_mpwmsm18perr;                /* mpwmsm18 */
 | |
| 	ushort mios_mpwmsm18pulr;
 | |
| 	ushort mios_mpwmsm18cntr;
 | |
| 	ushort mios_mpwmsm18scr;
 | |
| 	ushort mios_mpwmsm19perr;                /* mpwmsm19 */
 | |
| 	ushort mios_mpwmsm19pulr;
 | |
| 	ushort mios_mpwmsm19cntr;
 | |
| 	ushort mios_mpwmsm19scr;
 | |
| 	char res3[16];
 | |
| 	ushort mios_mmcsm22cnt;                  /* mmcsm22 */
 | |
| 	ushort mios_mmcsm22mlr;
 | |
| 	ushort mios_mmcsm22scrd, mmcsm22scr;
 | |
| 	char res4[32];
 | |
| 	ushort mios_mdasm27ar;                   /* mdasm27 */
 | |
| 	ushort mios_mdasm27br;
 | |
| 	ushort mios_mdasm27scrd, mdasm27scr;
 | |
| 	ushort mios_mdasm28ar;                   /*mdasm28 */
 | |
| 	ushort mios_mdasm28br;
 | |
| 	ushort mios_mdasm28scrd, mdasm28scr;
 | |
| 	ushort mios_mdasm29ar;                   /* mdasm29 */
 | |
| 	ushort mios_mdasm29br;
 | |
| 	ushort mios_mdasm29scrd, mdasm29scr;
 | |
| 	ushort mios_mdasm30ar;                   /* mdasm30 */
 | |
| 	ushort mios_mdasm30br;
 | |
| 	ushort mios_mdasm30scrd, mdasm30scr;
 | |
| 	ushort mios_mdasm31ar;                   /* mdasm31 */
 | |
| 	ushort mios_mdasm31br;
 | |
| 	ushort mios_mdasm31scrd, mdasm31scr;
 | |
| 	ushort mios_mpiosm32dr;
 | |
| 	ushort mios_mpiosm32ddr;
 | |
| 	char res5[1788];
 | |
| 	ushort mios_mios1tpcr;
 | |
| 	char mios_res13[2];
 | |
| 	ushort mios_mios1vnr;
 | |
| 	ushort mios_mios1mcr;
 | |
| 	char res6[12];
 | |
| 	ushort mios_res42z;
 | |
| 	ushort mios_mcpsmscr;
 | |
| 	char res7[1000];
 | |
| 	ushort mios_mios1sr0;
 | |
| 	char res12[2];
 | |
| 	ushort mios_mios1er0;
 | |
| 	ushort mios_mios1rpr0;
 | |
| 	char res8[40];
 | |
| 	ushort mios_mios1lvl0;
 | |
| 	char res9[14];
 | |
| 	ushort mios_mios1sr1;
 | |
| 	char res10[2];
 | |
| 	ushort mios_mios1er1;
 | |
| 	ushort mios_mios1rpr1;
 | |
| 	char res11[40];
 | |
| 	ushort mios_mios1lvl1;
 | |
| 	char res13[1038];
 | |
| } mios5xx_t;
 | |
| 
 | |
| /* Toucan Module
 | |
| */
 | |
| typedef struct tcan {
 | |
| 	ushort tcan_tcnmcr;
 | |
| 	ushort tcan_cantcr;
 | |
| 	ushort tcan_canicr;
 | |
| 	u_char tcan_canctrl0;
 | |
| 	u_char tcan_canctrl1;
 | |
| 	u_char tcan_presdiv;
 | |
| 	u_char tcan_canctrl2;
 | |
| 	ushort tcan_timer;
 | |
| 	char res1[4];
 | |
| 	ushort tcan_rxgmskhi;
 | |
| 	ushort tcan_rxgmsklo;
 | |
| 	ushort tcan_rx14mskhi;
 | |
| 	ushort tcan_rx14msklo;
 | |
| 	ushort tcan_rx15mskhi;
 | |
| 	ushort tcan_rx15msklo;
 | |
| 	char res2[4];
 | |
| 	ushort tcan_estat;
 | |
| 	ushort tcan_imask;
 | |
| 	ushort tcan_iflag;
 | |
| 	u_char tcan_rxectr;
 | |
| 	u_char tcan_txectr;
 | |
| 	char res3[88];
 | |
| 	struct {
 | |
| 	       ushort scr;
 | |
| 	       ushort id_high;
 | |
| 	       ushort id_low;
 | |
| 	       u_char data[8];
 | |
| 		   char res4[2];
 | |
| 	    } tcan_mbuff[16];
 | |
| 	    char res5[640];
 | |
| } tcan5xx_t;
 | |
| 
 | |
| /* UIMB
 | |
| */
 | |
| typedef struct uimb {
 | |
| 	uint uimb_umcr;
 | |
| 	char res1[12];
 | |
| 	uint uimb_utstcreg;
 | |
| 	char res2[12];
 | |
| 	uint uimb_uipend;
 | |
| } uimb5xx_t;
 | |
| 
 | |
| 
 | |
| /* Internal Memory Map MPC555
 | |
| */
 | |
| typedef struct immap {
 | |
| 	char               res1[262144];	/* CMF Flash A 256 Kbytes */
 | |
| 	char               res2[196608];	/* CMF Flash B 192 Kbytes */
 | |
| 	char               res3[2670592];	/* Reserved for Flash */
 | |
| 	sysconf5xx_t       im_siu_conf;		/* SIU Configuration */
 | |
| 	memctl5xx_t	   im_memctl;		/* Memory Controller */
 | |
| 	sit5xx_t           im_sit;		/* System Integration Timers */
 | |
| 	car5xx_t	   im_clkrst;		/* Clocks and Reset */
 | |
| 	sitk5xx_t          im_sitk;		/* System Integration Timer Keys*/
 | |
| 	cark8xx_t          im_clkrstk;		/* Clocks and Resert Keys */
 | |
| 	fl5xx_t	           im_fla;	        /* Flash Module A */
 | |
| 	fl5xx_t	           im_flb;	        /* Flash Module B */
 | |
| 	char               res4[14208];		/* Reserved for SIU */
 | |
| 	dprc5xx_t	   im_dprc;		/* Dpram Control Register */
 | |
| 	char               res5[8180];		/* Reserved */
 | |
| 	char               dptram[6144];	/* Dptram */
 | |
| 	char               res6[2048];		/* Reserved */
 | |
| 	tpu5xx_t	   im_tpua;		/* Time Proessing Unit A */
 | |
| 	tpu5xx_t	   im_tpub;		/* Time Processing Unit B */
 | |
| 	qadc5xx_t	   im_qadca;		/* QADC A */
 | |
| 	qadc5xx_t	   im_qadcb;		/* QADC B */
 | |
| 	qsmcm5xx_t	   im_qsmcm;		/* SCI and SPI */
 | |
| 	mios5xx_t	   im_mios;		/* MIOS */
 | |
| 	tcan5xx_t          im_tcana;		/* Toucan A */
 | |
| 	tcan5xx_t          im_tcanb;		/* Toucan B */
 | |
| 	char               res7[1792];		/* Reserved */
 | |
| 	uimb5xx_t          im_uimb;	        /* UIMB */
 | |
| } immap_t;
 | |
| 
 | |
| #endif /* __IMMAP_5XX__ */
 |