2 * MPC85xx Internal Memory Map
4 * Copyright 2010 Freescale Semiconductor, Inc.
6 * See file CREDITS for list of people who contributed to this
9 * This program is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of
12 * the License, or (at your option) any later version.
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
25 #ifndef __FSL_FMAN_H__
26 #define __FSL_FMAN_H__
28 #include <asm/types.h>
30 typedef struct fm_bmi_common {
31 u32 fmbm_init; /* BMI initialization */
32 u32 fmbm_cfg1; /* BMI configuration1 */
33 u32 fmbm_cfg2; /* BMI configuration2 */
35 u32 fmbm_ievr; /* interrupt event register */
36 u32 fmbm_ier; /* interrupt enable register */
37 u32 fmbm_ifr; /* interrupt force register */
39 u32 fmbm_arb[0x8]; /* BMI arbitration */
41 u32 fmbm_gde; /* global debug enable */
42 u32 fmbm_pp[0x3f]; /* BMI port parameters */
44 u32 fmbm_pfs[0x3f]; /* BMI port FIFO size */
46 u32 fmbm_ppid[0x3f];/* port partition ID */
49 typedef struct fm_qmi_common {
50 u32 fmqm_gc; /* general configuration register */
52 u32 fmqm_eie; /* error interrupt event register */
53 u32 fmqm_eien; /* error interrupt enable register */
54 u32 fmqm_eif; /* error interrupt force register */
55 u32 fmqm_ie; /* interrupt event register */
56 u32 fmqm_ien; /* interrupt enable register */
57 u32 fmqm_if; /* interrupt force register */
58 u32 fmqm_gs; /* global status register */
59 u32 fmqm_ts; /* task status register */
60 u32 fmqm_etfc; /* enqueue total frame counter */
61 u32 fmqm_dtfc; /* dequeue total frame counter */
62 u32 fmqm_dc0; /* dequeue counter 0 */
63 u32 fmqm_dc1; /* dequeue counter 1 */
64 u32 fmqm_dc2; /* dequeue counter 2 */
65 u32 fmqm_dc3; /* dequeue counter 3 */
66 u32 fmqm_dfnoc; /* dequeue FQID not override counter */
67 u32 fmqm_dfcc; /* dequeue FQID from context counter */
68 u32 fmqm_dffc; /* dequeue FQID from FD counter */
69 u32 fmqm_dcc; /* dequeue confirm counter */
71 u32 fmqm_dtrc; /* debug trap configuration register */
72 u32 fmqm_efddd; /* enqueue frame descriptor dynamic debug */
74 u32 res4[0xdc]; /* missing debug regs */
77 typedef struct fm_bmi {
81 typedef struct fm_qmi {
85 typedef struct fm_parser {
89 typedef struct fm_policer {
93 typedef struct fm_keygen {
97 typedef struct fm_dma {
98 u32 fmdmsr; /* status register */
99 u32 fmdmmr; /* mode register */
100 u32 fmdmtr; /* bus threshold register */
101 u32 fmdmhy; /* bus hysteresis register */
102 u32 fmdmsetr; /* SOS emergency threshold register */
103 u32 fmdmtah; /* transfer bus address high register */
104 u32 fmdmtal; /* transfer bus address low register */
105 u32 fmdmtcid; /* transfer bus communication ID register */
106 u32 fmdmra; /* DMA bus internal ram address register */
107 u32 fmdmrd; /* DMA bus internal ram data register */
109 u32 fmdmdcr; /* debug counter */
110 u32 fmdmemsr; /* emrgency smoother register */
112 u32 fmdmplr[32]; /* FM DMA PID-LIODN # register */
116 typedef struct fm_fpm {
117 u32 fpmtnc; /* TNUM control */
118 u32 fpmprc; /* Port_ID control */
120 u32 fpmflc; /* flush control */
121 u32 fpmdis1; /* dispatch thresholds1 */
122 u32 fpmdis2; /* dispatch thresholds2 */
123 u32 fmepi; /* error pending interrupts */
124 u32 fmrie; /* rams interrupt enable */
125 u32 fpmfcevent[0x4];/* FMan controller event 0-3 */
127 u32 fpmfcmask[0x4]; /* FMan controller mask 0-3 */
129 u32 fpmtsc1; /* timestamp control1 */
130 u32 fpmtsc2; /* timestamp control2 */
131 u32 fpmtsp; /* time stamp */
132 u32 fpmtsf; /* time stamp fraction */
133 u32 fpmrcr; /* rams control and event */
135 u32 fpmdrd[0x4]; /* data_ram data 0-3 */
137 u32 fpmdra; /* data ram access */
138 u32 fm_ip_rev_1; /* IP block revision 1 */
139 u32 fm_ip_rev_2; /* IP block revision 2 */
140 u32 fmrstc; /* reset command */
141 u32 fmcld; /* classifier debug control */
142 u32 fmnpi; /* normal pending interrupts */
144 u32 fmnee; /* event and enable */
145 u32 fpmcev[0x4]; /* CPU event 0-3 */
147 u32 fmfp_ps[0x40]; /* port status */
149 u32 fpmts[0x80]; /* task status */
153 typedef struct fm_imem {
157 typedef struct fm_soft_parser {
161 typedef struct fm_dtesc {
165 typedef struct fm_mdio {
169 typedef struct fm_10gec {
173 typedef struct fm_10gec_mdio {
177 typedef struct fm_1588 {
181 typedef struct ccsr_fman {
183 fm_bmi_common_t fm_bmi_common;
184 fm_qmi_common_t fm_qmi_common;
189 fm_parser_t fm_parser;
192 fm_policer_t fm_policer;
193 fm_keygen_t fm_keygen;
198 fm_soft_parser_t fm_soft_parser;
206 fm_10gec_mdio_t fm_10gec_mdio;
212 #endif /*__FSL_FMAN_H__*/