问题描述:
两个ambarella peanut板子的网口之间用网线直连,会发现不能自动协商成功(网口灯不亮),但是ambarella peanut板子的网口和其他X86 Linux机器网口直连可以协商成功(网口灯亮)。
对于想使用peanut板子网口作LAN口,给其他peanut 板子DHCP分配IP地址会失败。
问题分析
1. 查看ambarella peanut平台驱动 kernel/linux-4.4/drivers/net/ethernet/ambarella/ambarella_eth.c 对网卡芯片 KSZ9031 做了哪些 MDIO 读写,关于MDIO定义看此篇博客:MDC/MDIO接口定义
static int ambhw_mdio_write(struct mii_bus *bus,int mii_id, intregnum, u16 value)
{int ret_val = 0;struct ambeth_info *lp;intval;int cnt = 0;
lp= (struct ambeth_info *)bus->priv;
printk("MII Write: reg[0x%.2x], val[0x%.4x].\n",
regnum, value); //添加的打印MDIO写了哪些寄存器,写了哪些值if(netif_msg_hw(lp))
dev_info(&lp->ndev->dev,"MII Write: id[0x%02x], add[0x%02x], val[0x%04x].\n",
mii_id, regnum, value);for (cnt = AMBETH_MII_RETRY_CNT; cnt > 0; cnt--) {
val