]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
Xilinx: ARM: net: Only init xgmac data structures, not phy on boot
authorJoe Hershberger <joe.hershberger@ni.com>
Tue, 28 Feb 2012 01:31:09 +0000 (19:31 -0600)
committerJagan <jaganna@xilinx.com>
Thu, 31 May 2012 07:40:09 +0000 (13:10 +0530)
This makes the boot faster in the case we don't want to actually use
Ethernet in u-boot

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
board/xilinx/dfe/xgmac.c

index 152ee9a0be0e9ffefd747f639f0a7a64213d4600..db9c86cd98bcb0c77daeaf700616752a1aa8cc1c 100644 (file)
@@ -132,15 +132,11 @@ static void Out32(u32 OutAddress, u32 Value)
 int Xgmac_one_time_init(void)
 {
        int tmp;
-       int link_speed;
        int Status;
        XEmacPss_Config *Config;
        XEmacPss *EmacPssInstancePtr = &EmacPssInstance;
        XEmacPss_Bd BdTemplate;
 
-       if (ethstate.initialized)
-               return 1;
-
        Config = XEmacPss_LookupConfig(EMACPSS_DEVICE_ID);
 
        Status =
@@ -187,20 +183,32 @@ int Xgmac_one_time_init(void)
                                  XEMACPSS_BD_ALIGNMENT, TXBD_CNT);
        if (Status != 0) {
                puts("Error setting up TxBD space, BdRingCreate");
-               return 0;
+               return -1;
        }
 
        Status = XEmacPss_BdRingClone(&(XEmacPss_GetTxRing(EmacPssInstancePtr)),
                                      &BdTemplate, XEMACPSS_SEND);
        if (Status != 0) {
                puts("Error setting up TxBD space, BdRingClone");
-               return 0;
+               return -1;
        }
 
        XEmacPss_WriteReg(EmacPssInstancePtr->Config.BaseAddress,
                          XEMACPSS_TXQBASE_OFFSET,
                          EmacPssInstancePtr->TxBdRing.BaseBdAddr);
 
+       return 0;
+}
+
+int Xgmac_init(struct eth_device *dev, bd_t * bis)
+{
+       int tmp;
+       int link_speed;
+       XEmacPss *EmacPssInstancePtr = &EmacPssInstance;
+
+       if (ethstate.initialized)
+               return 1;
+
        /*
         * Setup the ethernet.
         */
@@ -278,7 +286,7 @@ int Xgmac_one_time_init(void)
        Xgmac_set_eth_advertise(EmacPssInstancePtr, 100);
 #else
        /* Could be 1000 if an unknown bug is fixed */
-       Xgmac_set_eth_advertise(EmacPssInstancePtr, 100);
+       Xgmac_set_eth_advertise(EmacPssInstancePtr, 1000);
 #endif
        phy_rst(EmacPssInstancePtr);
 
@@ -364,11 +372,6 @@ int Xgmac_one_time_init(void)
        return 0;
 }
 
-int Xgmac_init(struct eth_device *dev, bd_t * bis)
-{
-       return 0;
-}
-
 void Xgmac_halt(struct eth_device *dev)
 {
        return;