]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - board/esd/cpci750/mv_eth.c
README.scrapyard: update commit IDs
[karo-tx-uboot.git] / board / esd / cpci750 / mv_eth.c
index bc84ef08e6905b12b1bc2583abc5ed9e7a60c53d..cbdcfe33c5c128514f8114bea8046a856efad949 100644 (file)
@@ -5,23 +5,7 @@
  * based on - Driver for MV64360X ethernet ports
  * Copyright (C) 2002 rabeeh@galileo.co.il
  *
- * 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
+ * SPDX-License-Identifier:    GPL-2.0
  */
 
 /*
@@ -95,8 +79,6 @@ int mv64360_eth_xmit (struct eth_device *, volatile void *packet, int length);
 #ifndef  UPDATE_STATS_BY_SOFTWARE
 static void mv64360_eth_print_stat (struct eth_device *dev);
 #endif
-/* Processes a received packet */
-extern void NetReceive (volatile uchar *, int);
 
 extern unsigned int INTERNAL_REG_BASE_ADDR;
 
@@ -192,8 +174,7 @@ int db64360_eth_poll (struct eth_device *dev)
        return mv64360_eth_receive (dev);
 }
 
-int db64360_eth_transmit (struct eth_device *dev, volatile void *packet,
-                         int length)
+int db64360_eth_transmit(struct eth_device *dev, void *packet, int length)
 {
        mv64360_eth_xmit (dev, packet, length);
        return 0;
@@ -221,7 +202,7 @@ void mv6436x_eth_initialize (bd_t * bis)
                        return;
                }
 
-               /* must be less than NAMESIZE (16) */
+               /* must be less than sizeof(dev->name) */
                sprintf (dev->name, "mv_enet%d", devnum);
 
 #ifdef DEBUG
@@ -248,7 +229,7 @@ void mv6436x_eth_initialize (bd_t * bis)
                        return;
                }
 
-               temp = getenv_(s, buf, sizeof (buf));
+               temp = getenv_f(s, buf, sizeof (buf));
                s = (temp > 0) ? buf : NULL;
 
 #ifdef DEBUG
@@ -352,7 +333,7 @@ void mv6436x_eth_initialize (bd_t * bis)
                        return;
                }
 
-               temp = getenv_(s, buf, sizeof (buf));
+               temp = getenv_f(s, buf, sizeof (buf));
                s = (temp > 0) ? buf : NULL;
 
 #ifdef DEBUG
@@ -422,7 +403,7 @@ static int mv64360_eth_real_open (struct eth_device *dev)
        ETH_PORT_INFO *ethernet_private;
        struct mv64360_eth_priv *port_private;
        unsigned int port_num;
-       u32 port_status, phy_reg_data;
+       u32 phy_reg_data;
 
        ethernet_private = (ETH_PORT_INFO *) dev->priv;
        /* ronen - when we update the MAC env params we only update dev->enetaddr
@@ -520,7 +501,7 @@ static int mv64360_eth_real_open (struct eth_device *dev)
         */
 
        MV_REG_WRITE (MV64360_ETH_MAXIMUM_TRANSMIT_UNIT (port_num), 0);
-       port_status = MV_REG_READ (MV64360_ETH_PORT_STATUS_REG (port_num));
+       MV_REG_READ (MV64360_ETH_PORT_STATUS_REG (port_num));
 
        /* Check Link status on phy */
        eth_port_read_smi_reg (port_num, 1, &phy_reg_data);
@@ -638,15 +619,6 @@ static int mv64360_eth_free_rx_rings (struct eth_device *dev)
 
 int mv64360_eth_stop (struct eth_device *dev)
 {
-       ETH_PORT_INFO *ethernet_private;
-       struct mv64360_eth_priv *port_private;
-       unsigned int port_num;
-
-       ethernet_private = (ETH_PORT_INFO *) dev->priv;
-       port_private =
-               (struct mv64360_eth_priv *) ethernet_private->port_private;
-       port_num = port_private->port_num;
-
        /* Disable all gigE address decoder */
        MV_REG_WRITE (MV64360_ETH_BASE_ADDR_ENABLE_REG, 0x3f);
        DP (printf ("%s Ethernet stop called ... \n", __FUNCTION__));
@@ -716,7 +688,6 @@ int mv64360_eth_xmit (struct eth_device *dev, volatile void *dataPtr,
 {
        ETH_PORT_INFO *ethernet_private;
        struct mv64360_eth_priv *port_private;
-       unsigned int port_num;
        PKT_INFO pkt_info;
        ETH_FUNC_RET_STATUS status;
        struct net_device_stats *stats;
@@ -725,7 +696,6 @@ int mv64360_eth_xmit (struct eth_device *dev, volatile void *dataPtr,
        ethernet_private = (ETH_PORT_INFO *) dev->priv;
        port_private =
                (struct mv64360_eth_priv *) ethernet_private->port_private;
-       port_num = port_private->port_num;
 
        stats = port_private->stats;
 
@@ -801,7 +771,6 @@ int mv64360_eth_receive (struct eth_device *dev)
 {
        ETH_PORT_INFO *ethernet_private;
        struct mv64360_eth_priv *port_private;
-       unsigned int port_num;
        PKT_INFO pkt_info;
        struct net_device_stats *stats;
 
@@ -809,7 +778,6 @@ int mv64360_eth_receive (struct eth_device *dev)
        ethernet_private = (ETH_PORT_INFO *) dev->priv;
        port_private =
                (struct mv64360_eth_priv *) ethernet_private->port_private;
-       port_num = port_private->port_num;
        stats = port_private->stats;
 
        while ((eth_port_receive (ethernet_private, ETH_Q0, &pkt_info) ==
@@ -900,12 +868,10 @@ static struct net_device_stats *mv64360_eth_get_stats (struct eth_device *dev)
 {
        ETH_PORT_INFO *ethernet_private;
        struct mv64360_eth_priv *port_private;
-       unsigned int port_num;
 
        ethernet_private = (ETH_PORT_INFO *) dev->priv;
        port_private =
                (struct mv64360_eth_priv *) ethernet_private->port_private;
-       port_num = port_private->port_num;
 
        mv64360_eth_update_stat (dev);
 
@@ -927,13 +893,10 @@ static void mv64360_eth_update_stat (struct eth_device *dev)
        ETH_PORT_INFO *ethernet_private;
        struct mv64360_eth_priv *port_private;
        struct net_device_stats *stats;
-       unsigned int port_num;
-       volatile unsigned int dummy;
 
        ethernet_private = (ETH_PORT_INFO *) dev->priv;
        port_private =
                (struct mv64360_eth_priv *) ethernet_private->port_private;
-       port_num = port_private->port_num;
        stats = port_private->stats;
 
        /* These are false updates */
@@ -956,12 +919,12 @@ static void mv64360_eth_update_stat (struct eth_device *dev)
         * But the unsigned long in PowerPC and MIPS are 32bit. So the next read
         * is just a dummy read for proper work of the GigE port
         */
-       dummy = eth_read_mib_counter (ethernet_private->port_num,
+       (void)eth_read_mib_counter (ethernet_private->port_num,
                                      ETH_MIB_GOOD_OCTETS_RECEIVED_HIGH);
        stats->tx_bytes += (unsigned long)
                eth_read_mib_counter (ethernet_private->port_num,
                                      ETH_MIB_GOOD_OCTETS_SENT_LOW);
-       dummy = eth_read_mib_counter (ethernet_private->port_num,
+       (void)eth_read_mib_counter (ethernet_private->port_num,
                                      ETH_MIB_GOOD_OCTETS_SENT_HIGH);
        stats->rx_errors += (unsigned long)
                eth_read_mib_counter (ethernet_private->port_num,
@@ -1009,12 +972,10 @@ static void mv64360_eth_print_stat (struct eth_device *dev)
        ETH_PORT_INFO *ethernet_private;
        struct mv64360_eth_priv *port_private;
        struct net_device_stats *stats;
-       unsigned int port_num;
 
        ethernet_private = (ETH_PORT_INFO *) dev->priv;
        port_private =
                (struct mv64360_eth_priv *) ethernet_private->port_private;
-       port_num = port_private->port_num;
        stats = port_private->stats;
 
        /* These are false updates */
@@ -1062,23 +1023,8 @@ bool db64360_eth_start (struct eth_device *dev)
 *************************************************************************/
 /*
  * based on Linux code
- * arch/ppc/galileo/EVB64360/mv64360_eth.c - Driver for MV64360X ethernet ports
+ * arch/powerpc/galileo/EVB64360/mv64360_eth.c - Driver for MV64360X ethernet ports
  * Copyright (C) 2002 rabeeh@galileo.co.il
-
- * 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.
- *
  */
 
 /********************************************************************************
@@ -1392,7 +1338,7 @@ u32 mv_get_internal_sram_base (void)
 *       port_phy_addr).
 *
 * INPUT:
-*       ETH_PORT_INFO  *p_eth_port_ctrl       Ethernet port control struct
+*       ETH_PORT_INFO  *p_eth_port_ctrl       Ethernet port control struct
 *
 * OUTPUT:
 *       See description.
@@ -1552,7 +1498,7 @@ static void eth_port_init (ETH_PORT_INFO * p_eth_port_ctrl)
 *       ether_init_rx_desc_ring for Rx queues).
 *
 * INPUT:
-*       ETH_PORT_INFO  *p_eth_port_ctrl       Ethernet port control struct
+*       ETH_PORT_INFO  *p_eth_port_ctrl       Ethernet port control struct
 *
 * OUTPUT:
 *       Ethernet port is ready to receive and transmit.
@@ -1642,7 +1588,7 @@ static bool eth_port_start (ETH_PORT_INFO * p_eth_port_ctrl)
 * INPUT:
 *      ETH_PORT eth_port_num     Port number.
 *      char *        p_addr            Address to be set
-*      ETH_QUEUE         queue         Rx queue number for this MAC address.
+*      ETH_QUEUE         queue         Rx queue number for this MAC address.
 *
 * OUTPUT:
 *      Set MAC address low and high registers. also calls eth_port_uc_addr()
@@ -1680,10 +1626,10 @@ static void eth_port_uc_addr_set (ETH_PORT eth_port_num,
 *      parameters.
 *
 * INPUT:
-*      ETH_PORT        eth_port_num      Port number.
+*      ETH_PORT        eth_port_num      Port number.
 *      unsigned char uc_nibble         Unicast MAC Address last nibble.
-*      ETH_QUEUE                queue          Rx queue number for this MAC address.
-*      int                     option      0 = Add, 1 = remove address.
+*      ETH_QUEUE                queue          Rx queue number for this MAC address.
+*      int                     option      0 = Add, 1 = remove address.
 *
 * OUTPUT:
 *      This function add/removes MAC addresses from the port unicast address
@@ -1762,10 +1708,10 @@ static bool eth_port_uc_addr (ETH_PORT eth_port_num,
 *         In this case, the function calculates the CRC-8bit value and calls
 *         eth_port_omc_addr() routine to set the Other Multicast Table.
 * INPUT:
-*      ETH_PORT        eth_port_num      Port number.
-*      unsigned char   *p_addr         Unicast MAC Address.
-*      ETH_QUEUE                queue          Rx queue number for this MAC address.
-*      int                     option      0 = Add, 1 = remove address.
+*      ETH_PORT        eth_port_num      Port number.
+*      unsigned char   *p_addr         Unicast MAC Address.
+*      ETH_QUEUE                queue          Rx queue number for this MAC address.
+*      int                     option      0 = Add, 1 = remove address.
 *
 * OUTPUT:
 *      See description.
@@ -1896,10 +1842,10 @@ static void eth_port_mc_addr (ETH_PORT eth_port_num,
 *      according to the argument given.
 *
 * INPUT:
-*      ETH_PORT        eth_port_num      Port number.
-*      unsigned char   mc_byte         Multicast addr last byte (MAC DA[7:0] bits).
-*      ETH_QUEUE                queue          Rx queue number for this MAC address.
-*      int                     option      0 = Add, 1 = remove address.
+*      ETH_PORT        eth_port_num      Port number.
+*      unsigned char   mc_byte         Multicast addr last byte (MAC DA[7:0] bits).
+*      ETH_QUEUE                queue          Rx queue number for this MAC address.
+*      int                     option      0 = Add, 1 = remove address.
 *
 * OUTPUT:
 *      See description.
@@ -1960,10 +1906,10 @@ static bool eth_port_smc_addr (ETH_PORT eth_port_num,
 *      CRC-8 argument given.
 *
 * INPUT:
-*      ETH_PORT        eth_port_num      Port number.
-*      unsigned char     crc8          A CRC-8bit (Polynomial: x^8+x^2+x^1+1).
-*      ETH_QUEUE                queue          Rx queue number for this MAC address.
-*      int                     option      0 = Add, 1 = remove address.
+*      ETH_PORT        eth_port_num      Port number.
+*      unsigned char     crc8          A CRC-8bit (Polynomial: x^8+x^2+x^1+1).
+*      ETH_QUEUE                queue          Rx queue number for this MAC address.
+*      int                     option      0 = Add, 1 = remove address.
 *
 * OUTPUT:
 *      See description.
@@ -2066,13 +2012,13 @@ static void eth_port_init_mac_tables (ETH_PORT eth_port_num)
 static void eth_clear_mib_counters (ETH_PORT eth_port_num)
 {
        int i;
-       unsigned int dummy;
 
        /* Perform dummy reads from MIB counters */
        for (i = ETH_MIB_GOOD_OCTETS_RECEIVED_LOW; i < ETH_MIB_LATE_COLLISION;
-            i += 4)
-               dummy = MV_REG_READ ((MV64360_ETH_MIB_COUNTERS_BASE
+            i += 4) {
+               (void)MV_REG_READ ((MV64360_ETH_MIB_COUNTERS_BASE
                                      (eth_port_num) + i));
+       }
 
        return;
 }
@@ -2204,7 +2150,7 @@ static bool ethernet_phy_reset (ETH_PORT eth_port_num)
  * eth_port_reset - Reset Ethernet port
  *
  * DESCRIPTION:
- *     This routine resets the chip by aborting any SDMA engine activity and
+ *     This routine resets the chip by aborting any SDMA engine activity and
  *      clearing the MIB counters. The Receiver and the Transmit unit are in
  *      idle state after this command is performed and the port is disabled.
  *
@@ -2557,9 +2503,9 @@ static void eth_set_access_control (ETH_PORT eth_port_num,
  *
  * INPUT:
  *     ETH_PORT_INFO   *p_eth_port_ctrl   Ethernet Port Control srtuct.
- *     ETH_QUEUE       rx_queue         Number of Rx queue.
- *      int                    rx_desc_num       Number of Rx descriptors
- *      int                    rx_buff_size      Size of Rx buffer
+ *     ETH_QUEUE       rx_queue         Number of Rx queue.
+ *      int                    rx_desc_num       Number of Rx descriptors
+ *      int                    rx_buff_size      Size of Rx buffer
  *      unsigned int    rx_desc_base_addr  Rx descriptors memory area base addr.
  *      unsigned int    rx_buff_base_addr  Rx buffer memory area base addr.
  *
@@ -2651,9 +2597,9 @@ static bool ether_init_rx_desc_ring (ETH_PORT_INFO * p_eth_port_ctrl,
  *
  * INPUT:
  *     ETH_PORT_INFO   *p_eth_port_ctrl   Ethernet Port Control srtuct.
- *     ETH_QUEUE       tx_queue         Number of Tx queue.
- *      int                    tx_desc_num       Number of Tx descriptors
- *      int                    tx_buff_size      Size of Tx buffer
+ *     ETH_QUEUE       tx_queue         Number of Tx queue.
+ *      int                    tx_desc_num       Number of Tx descriptors
+ *      int                    tx_buff_size      Size of Tx buffer
  *      unsigned int    tx_desc_base_addr  Tx descriptors memory area base addr.
  *      unsigned int    tx_buff_base_addr  Tx buffer memory area base addr.
  *
@@ -2746,7 +2692,7 @@ static bool ether_init_tx_desc_ring (ETH_PORT_INFO * p_eth_port_ctrl,
  *
  * INPUT:
  *     ETH_PORT_INFO   *p_eth_port_ctrl   Ethernet Port Control srtuct.
- *     ETH_QUEUE       tx_queue         Number of Tx queue.
+ *     ETH_QUEUE       tx_queue         Number of Tx queue.
  *     PKT_INFO        *p_pkt_info       User packet buffer.
  *
  * OUTPUT:
@@ -2862,7 +2808,7 @@ static ETH_FUNC_RET_STATUS eth_port_send (ETH_PORT_INFO * p_eth_port_ctrl,
  *
  * INPUT:
  *     ETH_PORT_INFO   *p_eth_port_ctrl   Ethernet Port Control srtuct.
- *     ETH_QUEUE       tx_queue         Number of Tx queue.
+ *     ETH_QUEUE       tx_queue         Number of Tx queue.
  *     PKT_INFO        *p_pkt_info       User packet buffer.
  *
  * OUTPUT:
@@ -2931,7 +2877,7 @@ static ETH_FUNC_RET_STATUS eth_tx_return_desc (ETH_PORT_INFO *
  * eth_port_receive - Get received information from Rx ring.
  *
  * DESCRIPTION:
- *     This routine returns the received data to the caller. There is no
+ *     This routine returns the received data to the caller. There is no
  *     data copying during routine operation. All information is returned
  *     using pointer to packet information struct passed from the caller.
  *      If the routine exhausts        Rx ring resources then the resource error flag
@@ -2939,7 +2885,7 @@ static ETH_FUNC_RET_STATUS eth_tx_return_desc (ETH_PORT_INFO *
  *
  * INPUT:
  *     ETH_PORT_INFO   *p_eth_port_ctrl   Ethernet Port Control srtuct.
- *     ETH_QUEUE       rx_queue         Number of Rx queue.
+ *     ETH_QUEUE       rx_queue         Number of Rx queue.
  *     PKT_INFO        *p_pkt_info       User packet buffer.
  *
  * OUTPUT:
@@ -2981,7 +2927,7 @@ static ETH_FUNC_RET_STATUS eth_port_receive (ETH_PORT_INFO * p_eth_port_ctrl,
 
        /* Nothing to receive... */
        if (command_status & (ETH_BUFFER_OWNED_BY_DMA)) {
-/*     DP(printf("Rx: command_status: %08x\n", command_status)); */
+/*     DP(printf("Rx: command_status: %08x\n", command_status)); */
                D_CACHE_FLUSH_LINE ((unsigned int) p_rx_curr_desc, 0);
 /*     DP(printf("\nETH_END_OF_JOB ...\n"));*/
                return ETH_END_OF_JOB;
@@ -3020,7 +2966,7 @@ static ETH_FUNC_RET_STATUS eth_port_receive (ETH_PORT_INFO * p_eth_port_ctrl,
  *
  * INPUT:
  *     ETH_PORT_INFO   *p_eth_port_ctrl   Ethernet Port Control srtuct.
- *     ETH_QUEUE       rx_queue         Number of Rx queue.
+ *     ETH_QUEUE       rx_queue         Number of Rx queue.
  *      PKT_INFO        *p_pkt_info       Information on the returned buffer.
  *
  * OUTPUT: