TI中文支持网
TI专业的中文技术问题搜集分享网站

AM3359的rmii2一些问题

大家好,想使用AM3359的rmii2来作为网络接口,采用LAN8710A,参考时钟ref_clk是从AM3359上产生的,想问几个问题:

1.如果用AM3359产生的ref_clk的话  phy芯片8710a是不是完全不能工作?

2.想在uboot下调试网络,该如何配置才能让rmii2作为接口的网络正常工作?目前知道的需要配置pinmux,phy_id,GMII_SEL,还有什么需要配置的吗?

pinmux配置如下

/*myself*/

static struct module_pin_mux rmii2_pin_mux[] = {
    {OFFSET(gpmc_a11), MODE(3) | RXACTIVE},    /* RMII2_RXD0 */
    {OFFSET(gpmc_a10), MODE(3) | RXACTIVE},    /* RMII2_RXD1 */
    {OFFSET(gpmc_wpn), MODE(3) | RXACTIVE},    /* RMII2_RXERR */
    {OFFSET(gpmc_a0), MODE(3)},            /* RMII2_TXEN */    {OFFSET(gpmc_a5), MODE(3)},            /* RMII2_TXD0 */
    {OFFSET(gpmc_a4), MODE(3)},            /* RMII2_TXD1 */
    {OFFSET(gpmc_wait0), MODE(3) | RXACTIVE},        /* RMII2_CRS_DV */
    {OFFSET(mii_col), MODE(1)},        /* RMII2_REFCLK */
    {OFFSET(mdio_data), MODE(0) | RXACTIVE | PULLUP_EN},/* MDIO_DATA */
    {OFFSET(mdio_clk), MODE(0) | PULLUP_EN},    /* MDIO_CLK */
    {-1},
};

GMII_SEL设置为0X5

3.目前在uboot下执行命令,会出现                                               U-Boot# dhcp                                                                   link up on port 0, speed 1000, full duplex                                     BOOTP broadcast 1                                                              BOOTP broadcast 2                                                              BOOTP broadcast 3                                                              BOOTP broadcast 4 

想问下 怎么会出现1000M的情况呢 8710a配置的是自协商模式,  是不是因为ref_clk的原因?port0是怎么回事,我配置的pinmux是rmii2,不应该是port1吗,这是不是由phy_id

决定的?

Jian Zhou:

RMII模式下,必须要用PHY提供的50MHZ referrence clock。

如果是最新的SDK06.00.00,实际上只做了port0的auto-negotiation

kedacom:

回复 Jian Zhou:

你好 Jian Zhou

我用是最新的SDK06.00.00,我配置的是port1,为什么执行dhcp的时候还会使用port0

如何给port1增加auto-negotiation,有什么资料吗?

 

Gary Wu:

请参考AM335X的errata,上面有描述在RMII模式下,AM335X不能提供参考时钟给PHY。

两种方式解决上述问题:

(1)外部接50M有源晶振同时给PHY和EMAC供参考时钟;

(2)通过PHY输出的时钟给AM335X。

PHY驱动侧的修改,如你提及的,就是这三个方面。

kedacom:

回复 Gary Wu:

你好 Gary Wu

感谢你的回答

时钟这方面准备替换一下,现在还有个疑问

就是在phy_id和GMII_SEL以及pinmux已经配置的情况下

我在uboot下执行dhcp 会出现

link up on port 0, speed 1000, full duplex 为什么还是port0,而且是1000M的 

怎么变成port1 speed变成100M

kedacom:

回复 Gary Wu:

你好 Gary Wu

我换掉了晶振后,已经解决了部分问题

但是我想使用rmii2 在uboot下面执行dhcp后出现的还是port0,

link up on port 0, speed 100, full duplex BOOTP broadcast 3 BOOTP broadcast 4 BOOTP broadcast 5 BOOTP broadcast 6

请问这是为什么呢?phy_id配置的是0 并且做了以下修改

static struct cpsw_slave_data cpsw_slaves[] = { { .slave_reg_ofs = 0x208, .sliver_reg_ofs = 0xd80, .phy_id = 1, }, { .slave_reg_ofs = 0x308, .sliver_reg_ofs = 0xdc0, .phy_id = 0, },};

请问还有需要修改的地方吗 ?

赞(0)
未经允许不得转载:TI中文支持网 » AM3359的rmii2一些问题
分享到: 更多 (0)