mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-14 08:57:58 +00:00
a47a12becf
As discussed on the list, move "arch/ppc" to "arch/powerpc" to better match the Linux directory structure. Please note that this patch also changes the "ppc" target in MAKEALL to "powerpc" to match this new infrastructure. But "ppc" is kept as an alias for now, to not break compatibility with scripts using this name. Signed-off-by: Stefan Roese <sr@denx.de> Acked-by: Wolfgang Denk <wd@denx.de> Acked-by: Detlev Zundel <dzu@denx.de> Acked-by: Kim Phillips <kim.phillips@freescale.com> Cc: Peter Tyser <ptyser@xes-inc.com> Cc: Anatolij Gustschin <agust@denx.de>
439 lines
10 KiB
C
439 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__ */
|