OpenWrt Forum Archive

Topic: qca8334 eth switch

The content of this topic has been archived on 26 Apr 2018. There are no obvious gaps in this topic, but there may still be some posts missing at the end.

I have a board with a qca8334 eth switch chip. The chip is found by the ar8216 phy as an ar8337, but doesn't respond to pings unless I remove the AR8337_PAD_MAC06_EXCHANGE_EN configuation with the patch:

--- a/drivers/net/phy/ar8216.c
+++ b/drivers/net/phy/ar8216.c
@@ -1454,8 +1454,6 @@
    data->port6_status = ar8327_get_port_init_status(&pdata->port6_cfg);

    t = ar8327_get_pad_cfg(pdata->pad0_cfg);
-    if (chip_is_ar8337(priv))
-        t |= AR8337_PAD_MAC06_EXCHANGE_EN;

    priv->write(priv, AR8327_REG_PAD0_MODE, t);
    t = ar8327_get_pad_cfg(pdata->pad5_cfg);

Does anyone know if the qca8334 is different from the ar8337 in this respect?


Do you have any more details? I'm working on QCA8334  also.

"Does anyone know if the qca8334 is different from the ar8337 in this respect?"
I also want to know the answer.

In my case ,I have the same issue with Chaos Calmer (OpenWRT trunk version ) .
My board(QCA8334 switch) can ping after I remove the AR8337_PAD_MAC06_EXCHANGE_EN
The patch file is:

--- a/drivers/net/phy/ar8327.c
+++ b/drivers/net/phy/ar8327.c
@@ -508,8 +508,8 @@ ar8327_hw_config_pdata(struct ar8xxx_pri
         data->port6_status = ar8327_get_port_init_status(&pdata->port6_cfg);

         t = ar8327_get_pad_cfg(pdata->pad0_cfg);
-       if (chip_is_ar8337(priv))
-               t |= AR8337_PAD_MAC06_EXCHANGE_EN;
+       //if (chip_is_ar8337(priv))
+       //      t |= AR8337_PAD_MAC06_EXCHANGE_EN;

         ar8xxx_write(priv, AR8327_REG_PAD0_MODE, t);
         t = ar8327_get_pad_cfg(pdata->pad5_cfg);

The discussion might have continued from here.