Skip to content

Commit

Permalink
tg3: Add param short_preamble to enable MDIO traffic to external PHYs
Browse files Browse the repository at this point in the history
Add parameter to enable *short preamble* for MAC, so MDIO access to some
external PHY, like BCM54616, can be validated.

Applies to the five platforms below, that have the ethernet controller
BCM5720:

as7116_54x, as7326_56x, as7716_32x-r0, as7716_32xb, and as7816_64x

Verified by mii-tool. (31 is the address of external phy).

    root@sonic:/home/admin# mii-tool -v eth0 -p 31
    using the specified MII index 31.
    eth0: negotiated, link ok
    product info: vendor 00:d8:97, model 17 rev 2
    basic mode: autonegotiation enabled
    basic status: autonegotiation complete, link ok
    capabilities: 1000baseT-HD 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
    advertising: flow-control
    link partner: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD

Note, this upstreams a patch to the SONiC Linux kernel added in 2018
[1][2][3].

[1]: sonic-net/sonic-linux-kernel#71
[2]: sonic-net/sonic-linux-kernel@ad754bd
[3]: sonic-net/sonic-buildimage#2318

Signed-off-by: Roy Lee <roy_lee@accton.com>
Signed-off-by: Paul Menzel <pmenzel@molgen.mpg.de>
Signed-off-by: NipaLocal <nipa@local>
  • Loading branch information
roylee123 authored and NipaLocal committed Aug 2, 2024
1 parent bc8b99f commit 78eb092
Showing 1 changed file with 9 additions and 0 deletions.
9 changes: 9 additions & 0 deletions drivers/net/ethernet/broadcom/tg3.c
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,10 @@ static int tg3_debug = -1; /* -1 == use TG3_DEF_MSG_ENABLE as value */
module_param(tg3_debug, int, 0);
MODULE_PARM_DESC(tg3_debug, "Tigon3 bitmapped debugging message enable value");

static int short_preamble = 0;
module_param(short_preamble, int, 0);
MODULE_PARM_DESC(short_preamble, "Enable short preamble.");

#define TG3_DRV_DATA_FLAG_10_100_ONLY 0x0001
#define TG3_DRV_DATA_FLAG_5705_10_100 0x0002

Expand Down Expand Up @@ -1493,6 +1497,11 @@ static void tg3_mdio_config_5785(struct tg3 *tp)
static void tg3_mdio_start(struct tg3 *tp)
{
tp->mi_mode &= ~MAC_MI_MODE_AUTO_POLL;

if(short_preamble) {
tp->mi_mode |= MAC_MI_MODE_SHORT_PREAMBLE;
}

tw32_f(MAC_MI_MODE, tp->mi_mode);
udelay(80);

Expand Down

0 comments on commit 78eb092

Please # to comment.