[U-Boot] MPC8548_eTSEC to Marvell 88E1145 E0 version Phy Initialization

Ajeesh Kumar ajeesh at tataelxsi.co.in
Thu Feb 5 07:13:54 CET 2009


 
Hello,

We have a custom board with MPC8548E processor.
eTSECn are connected to a Marvell 88E1145 PHY(Quad PHY- 4 Ports) chip.
Connection is of type RGMII.
Also, we are able to read all the PHY addresses and registers.
But the contents are not according to our usage, this is due to the default
h/w configuration pins on PHY chip.
We also read in the Marvell data sheet that PHY chip is register
configurable too. 
But during initialization ( under drivers/tsec.c)  below,  even though I'm
giving {MIIM_ANAR, MIIM_ANAR_INIT, NULL},
It is not reflecting in the register after system boots up.

What might be the problem?? Please help me in this regard.

static struct phy_info phy_info_M88E1145 = {
        0x01410cd,
        "Marvell 88E1145",
        4,
        (struct phy_cmd[]){     /* config */
                           /* Reset the PHY */
                           {MIIM_CONTROL, MIIM_CONTROL_RESET, NULL},

                           /* Errata E0, E1 */
                           {29, 0x001b, NULL},
                           {30, 0x418f, NULL},
                           {29, 0x0016, NULL},
                           {30, 0xa2da, NULL},

                           /*Configure the PHY*/
                           {MIIM_GBIT_CONTROL, MIIM_GBIT_CONTROL_INIT,
NULL},
                           {MIIM_STATUS, miim_read, NULL},
                           {MIIM_ANAR, MIIM_ANAR_INIT, NULL},
                           {MIIM_88E1011_PHY_SCR,
MIIM_88E1011_PHY_MDI_X_AUTO,NULL},
                           {MIIM_88E1145_PHY_EXT_CR, 0, &m88e1145_setmode},
                           {MIIM_CONTROL, MIIM_CONTROL_RESET, NULL},
                           {MIIM_CONTROL, MIIM_CONTROL_INIT, NULL},
                           {miim_end,}
                           },
        (struct phy_cmd[]){     /* startup */
                           /* Status is read once to clear old link state */
                           {MIIM_STATUS, miim_read, NULL},
                           /* Auto-negotiate */
                           {MIIM_STATUS, miim_read, &mii_parse_sr},
 
{MIIM_88E1111_PHY_LED_CONTROL,MIIM_88E1111_PHY_LED_DIRECT, NULL},
                           /* Read the Status */
                           {MIIM_88E1011_PHY_STATUS,
miim_read,&mii_parse_88E1011_psr},
                           {miim_end,}
                           },
        (struct phy_cmd[]){     /* shutdown */
                           {miim_end,}
                           },
};

Thanks,
Ajeesh Kumar


The information contained in this electronic message and any attachments to this message are intended for the exclusive use of the addressee(s) and may contain proprietary, confidential or privileged information. If you are not the intended recipient, you should not disseminate, distribute or copy this e-mail. Please notify the sender immediately and destroy all copies of this message and any attachments contained in it.


More information about the U-Boot mailing list