[U-Boot-Users] resend [PATCH 2/8] ColdFire: Add MCF547x_8x related header files
Ben Warren
biggerbadderben at gmail.com
Tue Jan 15 22:23:38 CET 2008
Tsi-Chung Liew wrote:
> Signed-off-by: TsiChungLiew <Tsi-Chung.Liew at freescale.com>
> ---
> include/asm-m68k/fec.h | 7 +-
> include/asm-m68k/fsl_mcdmafec.h | 167 +++++++++++++
> include/asm-m68k/immap.h | 93 +++++++
> include/asm-m68k/immap_547x_8x.h | 297 ++++++++++++++++++++++
> include/asm-m68k/m547x_8x.h | 503 ++++++++++++++++++++++++++++++++++++++
> 5 files changed, 1063 insertions(+), 4 deletions(-)
> create mode 100644 include/asm-m68k/fsl_mcdmafec.h
> create mode 100644 include/asm-m68k/immap_547x_8x.h
> create mode 100644 include/asm-m68k/m547x_8x.h
>
> diff --git a/include/asm-m68k/fec.h b/include/asm-m68k/fec.h
> index 344c5e1..e2bf0db 100644
> --- a/include/asm-m68k/fec.h
> +++ b/include/asm-m68k/fec.h
> @@ -95,11 +95,8 @@ typedef struct cpm_buf_desc {
> #define BD_ENET_TX_CSL ((ushort)0x0001)
> #define BD_ENET_TX_STATS ((ushort)0x03ff) /* All status bits */
>
> -#ifdef CONFIG_MCFFEC
> /*********************************************************************
> -*
> * Fast Ethernet Controller (FEC)
> -*
> *********************************************************************/
> /* FEC private information */
> struct fec_info_s {
> @@ -117,8 +114,10 @@ struct fec_info_s {
> uint txIdx;
> char *txbuf;
> int initialized;
> + struct fec_info_s *next;
> };
>
> +#ifdef CONFIG_MCFFEC
> /* Register read/write struct */
> typedef struct fec {
> #ifdef CONFIG_M5272
> @@ -254,6 +253,7 @@ typedef struct fec {
> u32 ieee_r_fdxfc;
> u32 ieee_r_octets_ok;
> } fec_t;
> +#endif /* CONFIG_MCFFEC */
>
> /*********************************************************************
> * Fast Ethernet Controller (FEC)
> @@ -351,5 +351,4 @@ typedef struct fec {
> #define FEC_RESET_DELAY 100
> #define FEC_RX_TOUT 100
>
> -#endif /* CONFIG_MCFFEC */
> #endif /* fec_h */
> diff --git a/include/asm-m68k/fsl_mcdmafec.h b/include/asm-m68k/fsl_mcdmafec.h
> new file mode 100644
> index 0000000..3c647c2
> --- /dev/null
> +++ b/include/asm-m68k/fsl_mcdmafec.h
>
If your driver is in /drivers/net, its header shouldn't be in
architecture-specific land. I'm not crazy about putting it in
/drivers/net either, but that seems to be the norm so let's do that for
now and maybe move it somewhere else later.
> @@ -0,0 +1,167 @@
> +/*
> + * fec.h -- Fast Ethernet Controller definitions
> + *
>
Wrong file name in header
> + * Copyright (C) 2004-2007 Freescale Semiconductor, Inc.
> + * TsiChung Liew (Tsi-Chung.Liew at freescale.com)
> + *
> + * 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, Inc., 59 Temple Place, Suite 330, Boston,
> + * MA 02111-1307 USA
> + */
> +
> +#ifndef fsl_mcdmafec_h
> +#define fsl_mcdmafec_h
> +
> +/* Re-use of the definitions */
> +#include <asm/fec.h>
> +
> +typedef struct fecdma {
> + u32 rsvd0; /* 0x000 */
> + u32 eir; /* 0x004 */
> + u32 eimr; /* 0x008 */
> + u32 rsvd1[6]; /*0x00C - 0x023 */
>
Space after *
> + u32 ecr; /* 0x024 */
> + u32 rsvd2[6]; /* 0x028 - 0x03F */
> + u32 mmfr; /* 0x040 */
> + u32 mscr; /* 0x044 */
> + u32 rsvd3[7]; /* 0x048 - 0x063 */
> + u32 mibc; /* 0x064 */
> + u32 rsvd4[7]; /* 0x068 - 0x083 */
> + u32 rcr; /* 0x084 */
> + u32 rhr; /* 0x088 */
> + u32 rsvd5[14]; /* 0x08C - 0x0C3 */
> + u32 tcr; /* 0x0C4 */
> + u32 rsvd6[7]; /* 0x0C8 - 0x0E3 */
> + u32 palr; /* 0x0E4 */
> + u32 paur; /* 0x0E8 */
> + u32 opd; /* 0x0EC */
> + u32 rsvd7[10]; /* 0x0F0 - 0x117 */
> + u32 iaur; /* 0x118 */
> + u32 ialr; /* 0x11C */
> + u32 gaur; /* 0x120 */
> + u32 galr; /* 0x124 */
> + u32 rsvd8[7]; /* 0x128 - 0x143 */
> + u32 tfwr; /* 0x144 */
> + u32 rsvd9[14]; /* 0x148 - 0x17F */
> + u32 fmc; /* 0x180 */
> + u32 rfdr; /* 0x184 */
> + u32 rfsr; /* 0x188 */
> + u32 rfcr; /* 0x18C */
> + u32 rlrfp; /* 0x190 */
> + u32 rlwfp; /* 0x194 */
> + u32 rfar; /* 0x198 */
> + u32 rfrp; /* 0x19C */
> + u32 rfwp; /* 0x1A0 */
> + u32 tfdr; /* 0x1A4 */
> + u32 tfsr; /* 0x1A8 */
> + u32 tfcr; /* 0x1AC */
> + u32 tlrfp; /* 0x1B0 */
> + u32 tlwfp; /* 0x1B4 */
> + u32 tfar; /* 0x1B8 */
> + u32 tfrp; /* 0x1BC */
> + u32 tfwp; /* 0x1C0 */
> + u32 frst; /* 0x1C4 */
> + u32 ctcwr; /* 0x1C8 */
> +} fecdma_t;
> +
> +struct fec_info_dma {
> + int index;
> + u32 iobase;
> + u32 pinmux;
> + u32 miibase;
> + int phy_addr;
> + int dup_spd;
> + char *phy_name;
> + int phyname_init;
> + cbd_t *rxbd; /* Rx BD */
> + cbd_t *txbd; /* Tx BD */
> + uint rxIdx;
> + uint txIdx;
> + char *txbuf;
> + int initialized;
> + struct fec_info_dma *next;
> +
> + u16 rxTask; /* DMA receive Task Number */
> + u16 txTask; /* DMA Transmit Task Number */
> + u16 rxPri; /* DMA Receive Priority */
> + u16 txPri; /* DMA Transmit Priority */
> + u16 rxInit; /* DMA Receive Initiator */
> + u16 txInit; /* DMA Transmit Initiator */
> + u16 usedTbdIdx; /* next transmit BD to clean */
> + u16 cleanTbdNum; /* the number of available transmit BDs */
> +};
> +
> +/* Bit definitions and macros for IEVENT */
> +#define FEC_EIR_TXERR (0x00040000)
> +#define FEC_EIR_RXERR (0x00020000)
> +#undef FEC_EIR_CLEAR_ALL
> +#define FEC_EIR_CLEAR_ALL (0xFFFE0000)
> +
> +/* Bit definitions and macros for R_HASH */
> +#define FEC_RHASH_FCE_DC (0x80000000)
> +#define FEC_RHASH_MULTCAST (0x40000000)
> +#define FEC_RHASH_HASH(x) (((x)&0x0000003F)<<24)
> +
> +/* Bit definitions and macros for FEC_TFWR */
> +#undef FEC_TFWR_X_WMRK
> +#undef FEC_TFWR_X_WMRK_64
> +#undef FEC_TFWR_X_WMRK_128
> +#undef FEC_TFWR_X_WMRK_192
> +
> +#define FEC_TFWR_X_WMRK(x) ((x)&0x0F)
> +#define FEC_TFWR_X_WMRK_64 (0x00)
> +#define FEC_TFWR_X_WMRK_128 (0x01)
> +#define FEC_TFWR_X_WMRK_192 (0x02)
> +#define FEC_TFWR_X_WMRK_256 (0x03)
> +#define FEC_TFWR_X_WMRK_320 (0x04)
> +#define FEC_TFWR_X_WMRK_384 (0x05)
> +#define FEC_TFWR_X_WMRK_448 (0x06)
> +#define FEC_TFWR_X_WMRK_512 (0x07)
> +#define FEC_TFWR_X_WMRK_576 (0x08)
> +#define FEC_TFWR_X_WMRK_640 (0x09)
> +#define FEC_TFWR_X_WMRK_704 (0x0A)
> +#define FEC_TFWR_X_WMRK_768 (0x0B)
> +#define FEC_TFWR_X_WMRK_832 (0x0C)
> +#define FEC_TFWR_X_WMRK_896 (0x0D)
> +#define FEC_TFWR_X_WMRK_960 (0x0E)
> +#define FEC_TFWR_X_WMRK_1024 (0x0F)
> +
> +/* FIFO definitions */
> +/* Bit definitions and macros for FSTAT */
> +#define FIFO_STAT_IP (0x80000000)
> +#define FIFO_STAT_FRAME(x) (((x)&0x0000000F)<<24)
> +#define FIFO_STAT_FAE (0x00800000)
> +#define FIFO_STAT_RXW (0x00400000)
> +#define FIFO_STAT_UF (0x00200000)
> +#define FIFO_STAT_OF (0x00100000)
> +#define FIFO_STAT_FR (0x00080000)
> +#define FIFO_STAT_FULL (0x00040000)
> +#define FIFO_STAT_ALARM (0x00020000)
> +#define FIFO_STAT_EMPTY (0x00010000)
>
Minor point, but please make these all line up nicely :) Everywhere in
this patch, please.
< rest snipped>
> +
regards,
Ben
More information about the U-Boot
mailing list