Staging: et131x: Kill off the rxdma type
[safe/jmp/linux-2.6] / drivers / staging / et131x / et1310_address_map.h
index ab111a3..9a7a4d2 100644 (file)
@@ -198,26 +198,19 @@ typedef struct _GLOBAL_t {                        /* Location: */
 /*
  * structure for txdma packet ring number of descriptor reg in txdma address
  * map.  Located at address 0x100C
+ *
+ * 31-10: unused
+ * 9-0: pr ndes
  */
-typedef union _TXDMA_PR_NUM_DES_t {
-       u32 value;
-       struct {
-#ifdef _BIT_FIELDS_HTOL
-               u32 unused:22;  /* bits 10-31 */
-               u32 pr_ndes:10; /* bits 0-9 */
-#else
-               u32 pr_ndes:10; /* bits 0-9 */
-               u32 unused:22;  /* bits 10-31 */
-#endif
-       } bits;
-} TXDMA_PR_NUM_DES_t, *PTXDMA_PR_NUM_DES_t;
-
 
-#define ET_DMA10_MASK          0x3FF   /* 10 bit mask for DMA10W types */
-#define ET_DMA10_WRAP          0x400
-#define ET_DMA4_MASK           0x00F   /* 4 bit mask for DMA4W types */
-#define ET_DMA4_WRAP           0x010
+#define ET_DMA12_MASK          0x0FFF  /* 12 bit mask for DMA12W types */
+#define ET_DMA12_WRAP          0x1000
+#define ET_DMA10_MASK          0x03FF  /* 10 bit mask for DMA10W types */
+#define ET_DMA10_WRAP          0x0400
+#define ET_DMA4_MASK           0x000F  /* 4 bit mask for DMA4W types */
+#define ET_DMA4_WRAP           0x0010
 
+#define INDEX12(x)     ((x) & ET_DMA12_MASK)
 #define INDEX10(x)     ((x) & ET_DMA10_MASK)
 #define INDEX4(x)      ((x) & ET_DMA4_MASK)
 
@@ -226,6 +219,11 @@ extern inline void add_10bit(u32 *v, int n)
        *v = INDEX10(*v + n) | (*v & ET_DMA10_WRAP);
 }
 
+extern inline void add_12bit(u32 *v, int n)
+{
+       *v = INDEX12(*v + n) | (*v & ET_DMA12_WRAP);
+}
+
 /*
  * 10bit DMA with wrap
  * txdma tx queue write address reg in txdma address map at 0x1010
@@ -261,7 +259,7 @@ typedef struct _TXDMA_t {           /* Location: */
        u32 csr;                        /*  0x1000 */
        u32 pr_base_hi;                 /*  0x1004 */
        u32 pr_base_lo;                 /*  0x1008 */
-       TXDMA_PR_NUM_DES_t pr_num_des;  /*  0x100C */
+       u32 pr_num_des;                 /*  0x100C */
        u32 txq_wr_addr;                /*  0x1010 */
        u32 txq_wr_addr_ext;            /*  0x1014 */
        u32 txq_rd_addr;                /*  0x1018 */
@@ -294,45 +292,25 @@ typedef struct _TXDMA_t {         /* Location: */
 /*
  * structure for control status reg in rxdma address map
  * Located at address 0x2000
+ *
+ * CSR
+ * 0: halt
+ * 1-3: tc
+ * 4: fbr_big_endian
+ * 5: psr_big_endian
+ * 6: pkt_big_endian
+ * 7: dma_big_endian
+ * 8-9: fbr0_size
+ * 10: fbr0_enable
+ * 11-12: fbr1_size
+ * 13: fbr1_enable
+ * 14: unused
+ * 15: pkt_drop_disable
+ * 16: pkt_done_flush
+ * 17: halt_status
+ * 18-31: unused
  */
-typedef union _RXDMA_CSR_t {
-       u32 value;
-       struct {
-#ifdef _BIT_FIELDS_HTOL
-               u32 unused2:14;         /* bits 18-31 */
-               u32 halt_status:1;      /* bit 17 */
-               u32 pkt_done_flush:1;   /* bit 16 */
-               u32 pkt_drop_disable:1; /* bit 15 */
-               u32 unused1:1;          /* bit 14 */
-               u32 fbr1_enable:1;      /* bit 13 */
-               u32 fbr1_size:2;        /* bits 11-12 */
-               u32 fbr0_enable:1;      /* bit 10 */
-               u32 fbr0_size:2;        /* bits 8-9 */
-               u32 dma_big_endian:1;   /* bit 7 */
-               u32 pkt_big_endian:1;   /* bit 6 */
-               u32 psr_big_endian:1;   /* bit 5 */
-               u32 fbr_big_endian:1;   /* bit 4 */
-               u32 tc:3;               /* bits 1-3 */
-               u32 halt:1;             /* bit 0 */
-#else
-               u32 halt:1;             /* bit 0 */
-               u32 tc:3;               /* bits 1-3 */
-               u32 fbr_big_endian:1;   /* bit 4 */
-               u32 psr_big_endian:1;   /* bit 5 */
-               u32 pkt_big_endian:1;   /* bit 6 */
-               u32 dma_big_endian:1;   /* bit 7 */
-               u32 fbr0_size:2;        /* bits 8-9 */
-               u32 fbr0_enable:1;      /* bit 10 */
-               u32 fbr1_size:2;        /* bits 11-12 */
-               u32 fbr1_enable:1;      /* bit 13 */
-               u32 unused1:1;          /* bit 14 */
-               u32 pkt_drop_disable:1; /* bit 15 */
-               u32 pkt_done_flush:1;   /* bit 16 */
-               u32 halt_status:1;      /* bit 17 */
-               u32 unused2:14;         /* bits 18-31 */
-#endif
-       } bits;
-} RXDMA_CSR_t, *PRXDMA_CSR_t;
+
 
 /*
  * structure for dma writeback lo reg in rxdma address map
@@ -349,36 +327,18 @@ typedef union _RXDMA_CSR_t {
 /*
  * structure for number of packets done reg in rxdma address map
  * located at address 0x200C
+ *
+ * 31-8: unused
+ * 7-0: num done
  */
-typedef union _RXDMA_NUM_PKT_DONE_t {
-       u32 value;
-       struct {
-#ifdef _BIT_FIELDS_HTOL
-               u32 unused:24;  /* bits 8-31 */
-               u32 num_done:8; /* bits 0-7 */
-#else
-               u32 num_done:8; /* bits 0-7 */
-               u32 unused:24;  /* bits 8-31 */
-#endif
-       } bits;
-} RXDMA_NUM_PKT_DONE_t, *PRXDMA_NUM_PKT_DONE_t;
 
 /*
  * structure for max packet time reg in rxdma address map
  * located at address 0x2010
+ *
+ * 31-18: unused
+ * 17-0: time done
  */
-typedef union _RXDMA_MAX_PKT_TIME_t {
-       u32 value;
-       struct {
-#ifdef _BIT_FIELDS_HTOL
-               u32 unused:14;          /* bits 18-31 */
-               u32 time_done:18;       /* bits 0-17 */
-#else
-               u32 time_done:18;       /* bits 0-17 */
-               u32 unused:14;          /* bits 18-31 */
-#endif
-       } bits;
-} RXDMA_MAX_PKT_TIME_t, *PRXDMA_MAX_PKT_TIME_t;
 
 /*
  * structure for rx queue read address reg in rxdma address map
@@ -413,91 +373,44 @@ typedef union _RXDMA_MAX_PKT_TIME_t {
 /*
  * structure for packet status ring number of descriptors reg in rxdma address
  * map.  Located at address 0x2028
+ *
+ * 31-12: unused
+ * 11-0: psr ndes
  */
-typedef union _RXDMA_PSR_NUM_DES_t {
-       u32 value;
-       struct {
-#ifdef _BIT_FIELDS_HTOL
-               u32 unused:20;          /* bits 12-31 */
-               u32 psr_ndes:12;        /* bit 0-11 */
-#else
-               u32 psr_ndes:12;        /* bit 0-11 */
-               u32 unused:20;          /* bits 12-31 */
-#endif
-       } bits;
-} RXDMA_PSR_NUM_DES_t, *PRXDMA_PSR_NUM_DES_t;
 
 /*
  * structure for packet status ring available offset reg in rxdma address map
  * located at address 0x202C
+ *
+ * 31-13: unused
+ * 12: psr avail wrap
+ * 11-0: psr avail
  */
-typedef union _RXDMA_PSR_AVAIL_OFFSET_t {
-       u32 value;
-       struct {
-#ifdef _BIT_FIELDS_HTOL
-               u32 unused:19;          /* bits 13-31 */
-               u32 psr_avail_wrap:1;   /* bit 12 */
-               u32 psr_avail:12;       /* bit 0-11 */
-#else
-               u32 psr_avail:12;       /* bit 0-11 */
-               u32 psr_avail_wrap:1;   /* bit 12 */
-               u32 unused:19;          /* bits 13-31 */
-#endif
-       } bits;
-} RXDMA_PSR_AVAIL_OFFSET_t, *PRXDMA_PSR_AVAIL_OFFSET_t;
 
 /*
  * structure for packet status ring full offset reg in rxdma address map
  * located at address 0x2030
+ *
+ * 31-13: unused
+ * 12: psr full wrap
+ * 11-0: psr full
  */
-typedef union _RXDMA_PSR_FULL_OFFSET_t {
-       u32 value;
-       struct {
-#ifdef _BIT_FIELDS_HTOL
-               u32 unused:19;          /* bits 13-31 */
-               u32 psr_full_wrap:1;    /* bit 12 */
-               u32 psr_full:12;        /* bit 0-11 */
-#else
-               u32 psr_full:12;        /* bit 0-11 */
-               u32 psr_full_wrap:1;    /* bit 12 */
-               u32 unused:19;          /* bits 13-31 */
-#endif
-       } bits;
-} RXDMA_PSR_FULL_OFFSET_t, *PRXDMA_PSR_FULL_OFFSET_t;
 
 /*
  * structure for packet status ring access index reg in rxdma address map
  * located at address 0x2034
+ *
+ * 31-5: unused
+ * 4-0: psr_ai
  */
-typedef union _RXDMA_PSR_ACCESS_INDEX_t {
-       u32 value;
-       struct {
-#ifdef _BIT_FIELDS_HTOL
-               u32 unused:27;  /* bits 5-31 */
-               u32 psr_ai:5;   /* bits 0-4 */
-#else
-               u32 psr_ai:5;   /* bits 0-4 */
-               u32 unused:27;  /* bits 5-31 */
-#endif
-       } bits;
-} RXDMA_PSR_ACCESS_INDEX_t, *PRXDMA_PSR_ACCESS_INDEX_t;
 
 /*
  * structure for packet status ring minimum descriptors reg in rxdma address
  * map.  Located at address 0x2038
+ *
+ * 31-12: unused
+ * 11-0: psr_min
  */
-typedef union _RXDMA_PSR_MIN_DES_t {
-       u32 value;
-       struct {
-#ifdef _BIT_FIELDS_HTOL
-               u32 unused:20;  /* bits 12-31 */
-               u32 psr_min:12; /* bits 0-11 */
-#else
-               u32 psr_min:12; /* bits 0-11 */
-               u32 unused:20;  /* bits 12-31 */
-#endif
-       } bits;
-} RXDMA_PSR_MIN_DES_t, *PRXDMA_PSR_MIN_DES_t;
 
 /*
  * structure for free buffer ring base lo address reg in rxdma address map
@@ -514,19 +427,10 @@ typedef union _RXDMA_PSR_MIN_DES_t {
 /*
  * structure for free buffer ring number of descriptors reg in rxdma address
  * map.  Located at address 0x2044
+ *
+ * 31-10: unused
+ * 9-0: fbr ndesc
  */
-typedef union _RXDMA_FBR_NUM_DES_t {
-       u32 value;
-       struct {
-#ifdef _BIT_FIELDS_HTOL
-               u32 unused:22;          /* bits 10-31 */
-               u32 fbr_ndesc:10;       /* bits 0-9 */
-#else
-               u32 fbr_ndesc:10;       /* bits 0-9 */
-               u32 unused:22;          /* bits 10-31 */
-#endif
-       } bits;
-} RXDMA_FBR_NUM_DES_t, *PRXDMA_FBR_NUM_DES_t;
 
 /*
  * structure for free buffer ring 0 available offset reg in rxdma address map
@@ -543,36 +447,18 @@ typedef union _RXDMA_FBR_NUM_DES_t {
 /*
  * structure for free buffer cache 0 full offset reg in rxdma address map
  * located at address 0x2050
+ *
+ * 31-5: unused
+ * 4-0: fbc rdi
  */
-typedef union _RXDMA_FBC_RD_INDEX_t {
-       u32 value;
-       struct {
-#ifdef _BIT_FIELDS_HTOL
-               u32 unused:27;  /* bits 5-31 */
-               u32 fbc_rdi:5;  /* bit 0-4 */
-#else
-               u32 fbc_rdi:5;  /* bit 0-4 */
-               u32 unused:27;  /* bits 5-31 */
-#endif
-       } bits;
-} RXDMA_FBC_RD_INDEX_t, *PRXDMA_FBC_RD_INDEX_t;
 
 /*
  * structure for free buffer ring 0 minimum descriptor reg in rxdma address map
  * located at address 0x2054
+ *
+ * 31-10: unused
+ * 9-0: fbr min
  */
-typedef union _RXDMA_FBR_MIN_DES_t {
-       u32 value;
-       struct {
-#ifdef _BIT_FIELDS_HTOL
-               u32 unused:22;  /* bits 10-31 */
-               u32 fbr_min:10; /* bits 0-9 */
-#else
-               u32 fbr_min:10; /* bits 0-9 */
-               u32 unused:22;  /* bits 10-31 */
-#endif
-       } bits;
-} RXDMA_FBR_MIN_DES_t, *PRXDMA_FBR_MIN_DES_t;
 
 /*
  * structure for free buffer ring 1 base address lo reg in rxdma address map
@@ -614,37 +500,37 @@ typedef union _RXDMA_FBR_MIN_DES_t {
  * Rx DMA Module of JAGCore Address Mapping
  * Located at address 0x2000
  */
-typedef struct _RXDMA_t {                              /* Location: */
-       RXDMA_CSR_t csr;                                /*  0x2000 */
+struct rxdma_regs {                                    /* Location: */
+       u32 csr;                                        /*  0x2000 */
        u32 dma_wb_base_lo;                             /*  0x2004 */
        u32 dma_wb_base_hi;                             /*  0x2008 */
-       RXDMA_NUM_PKT_DONE_t num_pkt_done;              /*  0x200C */
-       RXDMA_MAX_PKT_TIME_t max_pkt_time;              /*  0x2010 */
+       u32 num_pkt_done;                               /*  0x200C */
+       u32 max_pkt_time;                               /*  0x2010 */
        u32 rxq_rd_addr;                                /*  0x2014 */
-       u32 rxq_rd_addr_ext;                    /*  0x2018 */
+       u32 rxq_rd_addr_ext;                            /*  0x2018 */
        u32 rxq_wr_addr;                                /*  0x201C */
        u32 psr_base_lo;                                /*  0x2020 */
        u32 psr_base_hi;                                /*  0x2024 */
-       RXDMA_PSR_NUM_DES_t psr_num_des;                /*  0x2028 */
-       RXDMA_PSR_AVAIL_OFFSET_t psr_avail_offset;      /*  0x202C */
-       RXDMA_PSR_FULL_OFFSET_t psr_full_offset;        /*  0x2030 */
-       RXDMA_PSR_ACCESS_INDEX_t psr_access_index;      /*  0x2034 */
-       RXDMA_PSR_MIN_DES_t psr_min_des;                /*  0x2038 */
+       u32 psr_num_des;                                /*  0x2028 */
+       u32 psr_avail_offset;                           /*  0x202C */
+       u32 psr_full_offset;                            /*  0x2030 */
+       u32 psr_access_index;                           /*  0x2034 */
+       u32 psr_min_des;                                /*  0x2038 */
        u32 fbr0_base_lo;                               /*  0x203C */
        u32 fbr0_base_hi;                               /*  0x2040 */
-       RXDMA_FBR_NUM_DES_t fbr0_num_des;               /*  0x2044 */
-       u32 fbr0_avail_offset;                  /*  0x2048 */
-       u32 fbr0_full_offset;                   /*  0x204C */
-       RXDMA_FBC_RD_INDEX_t fbr0_rd_index;             /*  0x2050 */
-       RXDMA_FBR_MIN_DES_t fbr0_min_des;               /*  0x2054 */
+       u32 fbr0_num_des;                               /*  0x2044 */
+       u32 fbr0_avail_offset;                          /*  0x2048 */
+       u32 fbr0_full_offset;                           /*  0x204C */
+       u32 fbr0_rd_index;                              /*  0x2050 */
+       u32 fbr0_min_des;                               /*  0x2054 */
        u32 fbr1_base_lo;                               /*  0x2058 */
        u32 fbr1_base_hi;                               /*  0x205C */
-       RXDMA_FBR_NUM_DES_t fbr1_num_des;               /*  0x2060 */
-       u32 fbr1_avail_offset;                  /*  0x2064 */
-       u32 fbr1_full_offset;                   /*  0x2068 */
-       RXDMA_FBC_RD_INDEX_t fbr1_rd_index;             /*  0x206C */
-       RXDMA_FBR_MIN_DES_t fbr1_min_des;               /*  0x2070 */
-} RXDMA_t, *PRXDMA_t;
+       u32 fbr1_num_des;                               /*  0x2060 */
+       u32 fbr1_avail_offset;                          /*  0x2064 */
+       u32 fbr1_full_offset;                           /*  0x2068 */
+       u32 fbr1_rd_index;                              /*  0x206C */
+       u32 fbr1_min_des;                               /*  0x2070 */
+};
 
 /* END OF RXDMA REGISTER ADDRESS MAP */
 
@@ -685,23 +571,11 @@ typedef union _TXMAC_CTL_t {
 /*
  * structure for shadow pointer reg in txmac address map
  * located at address 0x3004
+ * 31-27: reserved
+ * 26-16: txq rd ptr
+ * 15-11: reserved
+ * 10-0: txq wr ptr
  */
-typedef union _TXMAC_SHADOW_PTR_t {
-       u32 value;
-       struct {
-#ifdef _BIT_FIELDS_HTOL
-               u32 reserved2:5;        /* bits 27-31 */
-               u32 txq_rd_ptr:11;      /* bits 16-26 */
-               u32 reserved:5;         /* bits 11-15 */
-               u32 txq_wr_ptr:11;      /* bits 0-10 */
-#else
-               u32 txq_wr_ptr:11;      /* bits 0-10 */
-               u32 reserved:5;         /* bits 11-15 */
-               u32 txq_rd_ptr:11;      /* bits 16-26 */
-               u32 reserved2:5;        /* bits 27-31 */
-#endif
-       } bits;
-} TXMAC_SHADOW_PTR_t, *PTXMAC_SHADOW_PTR_t;
 
 /*
  * structure for error count reg in txmac address map
@@ -727,59 +601,26 @@ typedef union _TXMAC_ERR_CNT_t {
 /*
  * structure for max fill reg in txmac address map
  * located at address 0x300C
+ * 31-12: unused
+ * 11-0: max fill
  */
-typedef union _TXMAC_MAX_FILL_t {
-       u32 value;
-       struct {
-#ifdef _BIT_FIELDS_HTOL
-               u32 unused:20;          /* bits 12-31 */
-               u32 max_fill:12;        /* bits 0-11 */
-#else
-               u32 max_fill:12;        /* bits 0-11 */
-               u32 unused:20;          /* bits 12-31 */
-#endif
-       } bits;
-} TXMAC_MAX_FILL_t, *PTXMAC_MAX_FILL_t;
 
 /*
  * structure for cf parameter reg in txmac address map
  * located at address 0x3010
+ * 31-16: cfep
+ * 15-0: cfpt
  */
-typedef union _TXMAC_CF_PARAM_t {
-       u32 value;
-       struct {
-#ifdef _BIT_FIELDS_HTOL
-               u32 cfep:16;    /* bits 16-31 */
-               u32 cfpt:16;    /* bits 0-15 */
-#else
-               u32 cfpt:16;    /* bits 0-15 */
-               u32 cfep:16;    /* bits 16-31 */
-#endif
-       } bits;
-} TXMAC_CF_PARAM_t, *PTXMAC_CF_PARAM_t;
 
 /*
  * structure for tx test reg in txmac address map
  * located at address 0x3014
+ * 31-17: unused
+ * 16: reserved1
+ * 15: txtest_en
+ * 14-11: unused
+ * 10-0: txq test pointer
  */
-typedef union _TXMAC_TXTEST_t {
-       u32 value;
-       struct {
-#ifdef _BIT_FIELDS_HTOL
-               u32 unused2:15;         /* bits 17-31 */
-               u32 reserved1:1;        /* bit 16 */
-               u32 txtest_en:1;        /* bit 15 */
-               u32 unused1:4;          /* bits 11-14 */
-               u32 txqtest_ptr:11;     /* bits 0-11 */
-#else
-               u32 txqtest_ptr:11;     /* bits 0-10 */
-               u32 unused1:4;          /* bits 11-14 */
-               u32 txtest_en:1;        /* bit 15 */
-               u32 reserved1:1;        /* bit 16 */
-               u32 unused2:15;         /* bits 17-31 */
-#endif
-       } bits;
-} TXMAC_TXTEST_t, *PTXMAC_TXTEST_t;
 
 /*
  * structure for error reg in txmac address map
@@ -846,35 +687,25 @@ typedef union _TXMAC_ERR_INT_t {
 /*
  * structure for error interrupt reg in txmac address map
  * located at address 0x3020
+ *
+ * 31-2: unused
+ * 1: bp_req
+ * 0: bp_xonxoff
  */
-typedef union _TXMAC_CP_CTRL_t {
-       u32 value;
-       struct {
-#ifdef _BIT_FIELDS_HTOL
-               u32 unused:30;          /* bits 2-31 */
-               u32 bp_req:1;           /* bit 1 */
-               u32 bp_xonxoff:1;       /* bit 0 */
-#else
-               u32 bp_xonxoff:1;       /* bit 0 */
-               u32 bp_req:1;           /* bit 1 */
-               u32 unused:30;          /* bits 2-31 */
-#endif
-       } bits;
-} TXMAC_BP_CTRL_t, *PTXMAC_BP_CTRL_t;
 
 /*
  * Tx MAC Module of JAGCore Address Mapping
  */
 typedef struct _TXMAC_t {              /* Location: */
        TXMAC_CTL_t ctl;                /*  0x3000 */
-       TXMAC_SHADOW_PTR_t shadow_ptr;  /*  0x3004 */
+       u32 shadow_ptr;                 /*  0x3004 */
        TXMAC_ERR_CNT_t err_cnt;        /*  0x3008 */
-       TXMAC_MAX_FILL_t max_fill;      /*  0x300C */
-       TXMAC_CF_PARAM_t cf_param;      /*  0x3010 */
-       TXMAC_TXTEST_t tx_test;         /*  0x3014 */
+       u32 max_fill;                   /*  0x300C */
+       u32 cf_param;                   /*  0x3010 */
+       u32 tx_test;                    /*  0x3014 */
        TXMAC_ERR_t err;                /*  0x3018 */
        TXMAC_ERR_INT_t err_int;        /*  0x301C */
-       TXMAC_BP_CTRL_t bp_ctrl;        /*  0x3020 */
+       u32 bp_ctrl;                    /*  0x3020 */
 } TXMAC_t, *PTXMAC_t;
 
 /* END OF TXMAC REGISTER ADDRESS MAP */
@@ -1389,19 +1220,8 @@ typedef struct _RXMAC_t {                                /* Location: */
 /*
  * structure for Test reg in mac address map.
  * located at address 0x501C
+ * test: bits 0-2, rest unused
  */
-typedef union _MAC_TEST_t {
-       u32 value;
-       struct {
-#ifdef _BIT_FIELDS_HTOL
-               u32 unused:29;  /* bits 3-31 */
-               u32 mac_test:3; /* bits 0-2 */
-#else
-               u32 mac_test:3; /* bits 0-2 */
-               u32 unused:29;  /* bits 3-31 */
-#endif
-       } bits;
-} MAC_TEST_t, *PMAC_TEST_t;
 
 /*
  * structure for MII Management Configuration reg in mac address map.
@@ -1418,144 +1238,69 @@ typedef union _MAC_TEST_t {
 /*
  * structure for MII Management Command reg in mac address map.
  * located at address 0x5024
+ * bit 1: scan cycle
+ * bit 0: read cycle
  */
-typedef union _MII_MGMT_CMD_t {
-       u32 value;
-       struct {
-#ifdef _BIT_FIELDS_HTOL
-               u32 reserved:30;        /* bits 2-31 */
-               u32 scan_cycle:1;       /* bit 1 */
-               u32 read_cycle:1;       /* bit 0 */
-#else
-               u32 read_cycle:1;       /* bit 0 */
-               u32 scan_cycle:1;       /* bit 1 */
-               u32 reserved:30;        /* bits 2-31 */
-#endif
-       } bits;
-} MII_MGMT_CMD_t, *PMII_MGMT_CMD_t;
 
 /*
  * structure for MII Management Address reg in mac address map.
  * located at address 0x5028
+ * 31-13: reserved
+ * 12-8: phy addr
+ * 7-5: reserved
+ * 4-0: register
  */
-typedef union _MII_MGMT_ADDR_t {
-       u32 value;
-       struct {
-#ifdef _BIT_FIELDS_HTOL
-               u32 reserved2:19;       /* bit 13-31 */
-               u32 phy_addr:5; /* bits 8-12 */
-               u32 reserved1:3;        /* bits 5-7 */
-               u32 reg_addr:5; /* bits 0-4 */
-#else
-               u32 reg_addr:5; /* bits 0-4 */
-               u32 reserved1:3;        /* bits 5-7 */
-               u32 phy_addr:5; /* bits 8-12 */
-               u32 reserved2:19;       /* bit 13-31 */
-#endif
-       } bits;
-} MII_MGMT_ADDR_t, *PMII_MGMT_ADDR_t;
+
+#define MII_ADDR(phy,reg)      ((phy) << 8 | (reg))
 
 /*
  * structure for MII Management Control reg in mac address map.
  * located at address 0x502C
+ * 31-16: reserved
+ * 15-0: phy control
  */
-typedef union _MII_MGMT_CTRL_t {
-       u32 value;
-       struct {
-#ifdef _BIT_FIELDS_HTOL
-               u32 reserved:16;        /* bits 16-31 */
-               u32 phy_ctrl:16;        /* bits 0-15 */
-#else
-               u32 phy_ctrl:16;        /* bits 0-15 */
-               u32 reserved:16;        /* bits 16-31 */
-#endif
-       } bits;
-} MII_MGMT_CTRL_t, *PMII_MGMT_CTRL_t;
 
 /*
  * structure for MII Management Status reg in mac address map.
  * located at address 0x5030
+ * 31-16: reserved
+ * 15-0: phy control
  */
-typedef union _MII_MGMT_STAT_t {
-       u32 value;
-       struct {
-#ifdef _BIT_FIELDS_HTOL
-               u32 reserved:16;        /* bits 16-31 */
-               u32 phy_stat:16;        /* bits 0-15 */
-#else
-               u32 phy_stat:16;        /* bits 0-15 */
-               u32 reserved:16;        /* bits 16-31 */
-#endif
-       } bits;
-} MII_MGMT_STAT_t, *PMII_MGMT_STAT_t;
 
 /*
  * structure for MII Management Indicators reg in mac address map.
  * located at address 0x5034
+ * 31-3: reserved
+ * 2: not valid
+ * 1: scanning
+ * 0: busy
  */
-typedef union _MII_MGMT_INDICATOR_t {
-       u32 value;
-       struct {
-#ifdef _BIT_FIELDS_HTOL
-               u32 reserved:29;        /* bits 3-31 */
-               u32 not_valid:1;        /* bit 2 */
-               u32 scanning:1; /* bit 1 */
-               u32 busy:1;     /* bit 0 */
-#else
-               u32 busy:1;     /* bit 0 */
-               u32 scanning:1; /* bit 1 */
-               u32 not_valid:1;        /* bit 2 */
-               u32 reserved:29;        /* bits 3-31 */
-#endif
-       } bits;
-} MII_MGMT_INDICATOR_t, *PMII_MGMT_INDICATOR_t;
+
+#define MGMT_BUSY      0x00000001      /* busy */
+#define MGMT_WAIT      0x00000005      /* busy | not valid */
 
 /*
  * structure for Interface Control reg in mac address map.
  * located at address 0x5038
+ *
+ * 31: reset if module
+ * 30-28: reserved
+ * 27: tbi mode
+ * 26: ghd mode
+ * 25: lhd mode
+ * 24: phy mode
+ * 23: reset per mii
+ * 22-17: reserved
+ * 16: speed
+ * 15: reset pe100x
+ * 14-11: reserved
+ * 10: force quiet
+ * 9: no cipher
+ * 8: disable link fail
+ * 7: reset gpsi
+ * 6-1: reserved
+ * 0: enable jabber protection
  */
-typedef union _MAC_IF_CTRL_t {
-       u32 value;
-       struct {
-#ifdef _BIT_FIELDS_HTOL
-               u32 reset_if_module:1;  /* bit 31 */
-               u32 reserved4:3;                /* bit 28-30 */
-               u32 tbi_mode:1;         /* bit 27 */
-               u32 ghd_mode:1;         /* bit 26 */
-               u32 lhd_mode:1;         /* bit 25 */
-               u32 phy_mode:1;         /* bit 24 */
-               u32 reset_per_mii:1;    /* bit 23 */
-               u32 reserved3:6;                /* bits 17-22 */
-               u32 speed:1;            /* bit 16 */
-               u32 reset_pe100x:1;     /* bit 15 */
-               u32 reserved2:4;                /* bits 11-14 */
-               u32 force_quiet:1;              /* bit 10 */
-               u32 no_cipher:1;                /* bit 9 */
-               u32 disable_link_fail:1;        /* bit 8 */
-               u32 reset_gpsi:1;               /* bit 7 */
-               u32 reserved1:6;                /* bits 1-6 */
-               u32 enab_jab_protect:1; /* bit 0 */
-#else
-               u32 enab_jab_protect:1; /* bit 0 */
-               u32 reserved1:6;                /* bits 1-6 */
-               u32 reset_gpsi:1;               /* bit 7 */
-               u32 disable_link_fail:1;        /* bit 8 */
-               u32 no_cipher:1;                /* bit 9 */
-               u32 force_quiet:1;              /* bit 10 */
-               u32 reserved2:4;                /* bits 11-14 */
-               u32 reset_pe100x:1;     /* bit 15 */
-               u32 speed:1;            /* bit 16 */
-               u32 reserved3:6;                /* bits 17-22 */
-               u32 reset_per_mii:1;    /* bit 23 */
-               u32 phy_mode:1;         /* bit 24 */
-               u32 lhd_mode:1;         /* bit 25 */
-               u32 ghd_mode:1;         /* bit 26 */
-               u32 tbi_mode:1;         /* bit 27 */
-               u32 reserved4:3;                /* bit 28-30 */
-               u32 reset_if_module:1;  /* bit 31 */
-#endif
-       } bits;
-} MAC_IF_CTRL_t, *PMAC_IF_CTRL_t;
 
 /*
  * structure for Interface Status reg in mac address map.
@@ -1643,14 +1388,14 @@ typedef struct _MAC_t {                                 /* Location: */
        u32 max_fm_len;                                 /*  0x5010 */
        u32 rsv1;                                       /*  0x5014 */
        u32 rsv2;                                       /*  0x5018 */
-       MAC_TEST_t mac_test;                            /*  0x501C */
+       u32 mac_test;                                   /*  0x501C */
        u32 mii_mgmt_cfg;                               /*  0x5020 */
-       MII_MGMT_CMD_t mii_mgmt_cmd;                    /*  0x5024 */
-       MII_MGMT_ADDR_t mii_mgmt_addr;                  /*  0x5028 */
-       MII_MGMT_CTRL_t mii_mgmt_ctrl;                  /*  0x502C */
-       MII_MGMT_STAT_t mii_mgmt_stat;                  /*  0x5030 */
-       MII_MGMT_INDICATOR_t mii_mgmt_indicator;        /*  0x5034 */
-       MAC_IF_CTRL_t if_ctrl;                          /*  0x5038 */
+       u32 mii_mgmt_cmd;                               /*  0x5024 */
+       u32 mii_mgmt_addr;                              /*  0x5028 */
+       u32 mii_mgmt_ctrl;                              /*  0x502C */
+       u32 mii_mgmt_stat;                              /*  0x5030 */
+       u32 mii_mgmt_indicator;                         /*  0x5034 */
+       u32 if_ctrl;                                    /*  0x5038 */
        MAC_IF_STAT_t if_stat;                          /*  0x503C */
        MAC_STATION_ADDR1_t station_addr_1;             /*  0x5040 */
        MAC_STATION_ADDR2_t station_addr_2;             /*  0x5044 */
@@ -1663,120 +1408,60 @@ typedef struct _MAC_t {                                        /* Location: */
 /*
  * structure for Carry Register One and it's Mask Register reg located in mac
  * stat address map address 0x6130 and 0x6138.
+ *
+ * 31: tr64
+ * 30: tr127
+ * 29: tr255
+ * 28: tr511
+ * 27: tr1k
+ * 26: trmax
+ * 25: trmgv
+ * 24-17: unused
+ * 16: rbyt
+ * 15: rpkt
+ * 14: rfcs
+ * 13: rmca
+ * 12: rbca
+ * 11: rxcf
+ * 10: rxpf
+ * 9: rxuo
+ * 8: raln
+ * 7: rflr
+ * 6: rcde
+ * 5: rcse
+ * 4: rund
+ * 3: rovr
+ * 2: rfrg
+ * 1: rjbr
+ * 0: rdrp
  */
-typedef union _MAC_STAT_REG_1_t {
-       u32 value;
-       struct {
-#ifdef _BIT_FIELDS_HTOL
-               u32 tr64:1;     /* bit 31 */
-               u32 tr127:1;    /* bit 30 */
-               u32 tr255:1;    /* bit 29 */
-               u32 tr511:1;    /* bit 28 */
-               u32 tr1k:1;     /* bit 27 */
-               u32 trmax:1;    /* bit 26 */
-               u32 trmgv:1;    /* bit 25 */
-               u32 unused:8;   /* bits 17-24 */
-               u32 rbyt:1;     /* bit 16 */
-               u32 rpkt:1;     /* bit 15 */
-               u32 rfcs:1;     /* bit 14 */
-               u32 rmca:1;     /* bit 13 */
-               u32 rbca:1;     /* bit 12 */
-               u32 rxcf:1;     /* bit 11 */
-               u32 rxpf:1;     /* bit 10 */
-               u32 rxuo:1;     /* bit 9 */
-               u32 raln:1;     /* bit 8 */
-               u32 rflr:1;     /* bit 7 */
-               u32 rcde:1;     /* bit 6 */
-               u32 rcse:1;     /* bit 5 */
-               u32 rund:1;     /* bit 4 */
-               u32 rovr:1;     /* bit 3 */
-               u32 rfrg:1;     /* bit 2 */
-               u32 rjbr:1;     /* bit 1 */
-               u32 rdrp:1;     /* bit 0 */
-#else
-               u32 rdrp:1;     /* bit 0 */
-               u32 rjbr:1;     /* bit 1 */
-               u32 rfrg:1;     /* bit 2 */
-               u32 rovr:1;     /* bit 3 */
-               u32 rund:1;     /* bit 4 */
-               u32 rcse:1;     /* bit 5 */
-               u32 rcde:1;     /* bit 6 */
-               u32 rflr:1;     /* bit 7 */
-               u32 raln:1;     /* bit 8 */
-               u32 rxuo:1;     /* bit 9 */
-               u32 rxpf:1;     /* bit 10 */
-               u32 rxcf:1;     /* bit 11 */
-               u32 rbca:1;     /* bit 12 */
-               u32 rmca:1;     /* bit 13 */
-               u32 rfcs:1;     /* bit 14 */
-               u32 rpkt:1;     /* bit 15 */
-               u32 rbyt:1;     /* bit 16 */
-               u32 unused:8;   /* bits 17-24 */
-               u32 trmgv:1;    /* bit 25 */
-               u32 trmax:1;    /* bit 26 */
-               u32 tr1k:1;     /* bit 27 */
-               u32 tr511:1;    /* bit 28 */
-               u32 tr255:1;    /* bit 29 */
-               u32 tr127:1;    /* bit 30 */
-               u32 tr64:1;     /* bit 31 */
-#endif
-       } bits;
-} MAC_STAT_REG_1_t, *PMAC_STAT_REG_1_t;
 
 /*
  * structure for Carry Register Two Mask Register reg in mac stat address map.
  * located at address 0x613C
+ *
+ * 31-20: unused
+ * 19: tjbr
+ * 18: tfcs
+ * 17: txcf
+ * 16: tovr
+ * 15: tund
+ * 14: trfg
+ * 13: tbyt
+ * 12: tpkt
+ * 11: tmca
+ * 10: tbca
+ * 9: txpf
+ * 8: tdfr
+ * 7: tedf
+ * 6: tscl
+ * 5: tmcl
+ * 4: tlcl
+ * 3: txcl
+ * 2: tncl
+ * 1: tpfh
+ * 0: tdrp
  */
-typedef union _MAC_STAT_REG_2_t {
-       u32 value;
-       struct {
-#ifdef _BIT_FIELDS_HTOL
-               u32 unused:12;  /* bit 20-31 */
-               u32 tjbr:1;     /* bit 19 */
-               u32 tfcs:1;     /* bit 18 */
-               u32 txcf:1;     /* bit 17 */
-               u32 tovr:1;     /* bit 16 */
-               u32 tund:1;     /* bit 15 */
-               u32 tfrg:1;     /* bit 14 */
-               u32 tbyt:1;     /* bit 13 */
-               u32 tpkt:1;     /* bit 12 */
-               u32 tmca:1;     /* bit 11 */
-               u32 tbca:1;     /* bit 10 */
-               u32 txpf:1;     /* bit 9 */
-               u32 tdfr:1;     /* bit 8 */
-               u32 tedf:1;     /* bit 7 */
-               u32 tscl:1;     /* bit 6 */
-               u32 tmcl:1;     /* bit 5 */
-               u32 tlcl:1;     /* bit 4 */
-               u32 txcl:1;     /* bit 3 */
-               u32 tncl:1;     /* bit 2 */
-               u32 tpfh:1;     /* bit 1 */
-               u32 tdrp:1;     /* bit 0 */
-#else
-               u32 tdrp:1;     /* bit 0 */
-               u32 tpfh:1;     /* bit 1 */
-               u32 tncl:1;     /* bit 2 */
-               u32 txcl:1;     /* bit 3 */
-               u32 tlcl:1;     /* bit 4 */
-               u32 tmcl:1;     /* bit 5 */
-               u32 tscl:1;     /* bit 6 */
-               u32 tedf:1;     /* bit 7 */
-               u32 tdfr:1;     /* bit 8 */
-               u32 txpf:1;     /* bit 9 */
-               u32 tbca:1;     /* bit 10 */
-               u32 tmca:1;     /* bit 11 */
-               u32 tpkt:1;     /* bit 12 */
-               u32 tbyt:1;     /* bit 13 */
-               u32 tfrg:1;     /* bit 14 */
-               u32 tund:1;     /* bit 15 */
-               u32 tovr:1;     /* bit 16 */
-               u32 txcf:1;     /* bit 17 */
-               u32 tfcs:1;     /* bit 18 */
-               u32 tjbr:1;     /* bit 19 */
-               u32 unused:12;  /* bit 20-31 */
-#endif
-       } bits;
-} MAC_STAT_REG_2_t, *PMAC_STAT_REG_2_t;
 
 /*
  * MAC STATS Module of JAGCore Address Mapping
@@ -1917,16 +1602,16 @@ typedef struct _MAC_STAT_t {            /* Location: */
        u32 TFrg;                       /*  0x612C */
 
        /* Carry Register One Register */
-       MAC_STAT_REG_1_t Carry1;        /*  0x6130 */
+       u32 Carry1;                     /*  0x6130 */
 
        /* Carry Register Two Register */
-       MAC_STAT_REG_2_t Carry2;        /*  0x6134 */
+       u32 Carry2;                     /*  0x6134 */
 
        /* Carry Register One Mask Register */
-       MAC_STAT_REG_1_t Carry1M;       /*  0x6138 */
+       u32 Carry1M;                    /*  0x6138 */
 
        /* Carry Register Two Mask Register */
-       MAC_STAT_REG_2_t Carry2M;       /*  0x613C */
+       u32 Carry2M;                    /*  0x613C */
 } MAC_STAT_t, *PMAC_STAT_t;
 
 /* END OF MAC STAT REGISTER ADDRESS MAP */
@@ -2003,9 +1688,9 @@ typedef struct _ADDRESS_MAP_t {
        TXDMA_t txdma;
        /* unused section of txdma address map */
        u8 unused_txdma[4096 - sizeof(TXDMA_t)];
-       RXDMA_t rxdma;
+       struct rxdma_regs rxdma;
        /* unused section of rxdma address map */
-       u8 unused_rxdma[4096 - sizeof(RXDMA_t)];
+       u8 unused_rxdma[4096 - sizeof(struct rxdma_regs)];
        TXMAC_t txmac;
        /* unused section of txmac address map */
        u8 unused_txmac[4096 - sizeof(TXMAC_t)];