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

请问该如何修改AM1808的UBOOT和LINUX KERNEL使得通过RMII驱动LAN8710A或LAN8720A?

因为想用RMII接口来做ETHERNET,以释放一个UART。

请问该如何修改AM1808的UBOOT和LINUX KERNEL?我用的是网上下载的03.21.00.04的linux和uboot版本。

谢谢指点。

Yaoming Qin:

这个最好能读读u-boot /kernel 的代码进行修改,如果您遇到问题,可以再来上面问

demo xie:

回复 Yaoming Qin:

Yaoming Qin,你好。谢谢你的回复。

能否提示一下需要看哪里文件?毕竟文件太多了。

谢谢。

demo xie:

回复 demo xie:

TI的在线支持太差了,几乎上面很多问题都没有实质性的回答。

不知道这个论坛的意思何在。

Yaoming Qin:

回复 demo xie:

Linux 本来就是以文档少闻名,所以读代码是必须的,代码多是没办法,多读读熟练就好了,kernel中你可以看看linux-2.6.37-psp03.21.00.04.sdk/drivers/net/davinci_mdio.c, uboot中你可以看看drivers/net/davinci_emac.c,具体怎么改,你自己多研究下代码,然后根据你选择的外围芯片进行设置

demo xie:

回复 Yaoming Qin:

Yaoming Qin,

谢谢你的回复。

demo xie:

回复 demo xie:

经过修改代码,我的板子的RMII能正常驱动了,但是出了一个问题,请Yaoming帮忙指导一下:

我做了AM1808+LAN8720A的系统。

在用nfs调试系统是时候发现:

1,u-boot启动后,有时tftp连不上,这是用ping测,结果ping不同,往往复位一下,重新启动就好了。

2,启动u-boot后,下载内核,启动内核,连接server上nfs系统,结果同样出现有时连不上nfs,这是复位系统重新启动启动就好了,有时要重新启动几次。

成功和不成功的概率为50%对50%。

我认为nfs应该没问题,否则就不可能启动 成功。有人说问题出在对8720的复位上。

可我用万用表测了8720的复位脚,也没发现成功时和不成功,该脚的信号有什么不同。

我想会不会是硬件的其他问题,例如不稳定,结果连上nfs后,我在板子上ping 192.168.xx.xx -s 65000,结果ping 500次左右都没有丢包,而且用时也差别不大。

请高手帮忙看看。

谢谢。

*************************************

下面是不能启动的报错节选:

…..

omap_rtc omap_rtc: setting system clock to 2000-01-01 00:00:53 UTC (946684853)

usb 2-1: new full speed USB device using ohci and address 2

usb 2-1: not running at top speed; connect to a high speed hub

hub 2-1:1.0: USB hub found

hub 2-1:1.0: 4 ports detected

davinci_mdio davinci_mdio.0: resetting idled controller

net eth0: attached PHY driver [SMSC LAN8710/LAN8720] (mii_bus:phy_addr=0:00, id=7c0f1)

usb 2-1.1: new full speed USB device using ohci and address 3

IP-Config: Complete:

    device=eth0, addr=192.168.20.213, mask=255.255.255.0, gw=192.168.20.254,

    host=192.168.20.213, domain=, nis-domain=(none),

    bootserver=192.168.20.222, rootserver=192.168.20.222, rootpath=

VFS: Unable to mount root fs via NFS, trying floppy.

VFS: Cannot open root device "nfs" or unknown-block(2,0)

Please append a correct "root=" boot option; here are the available partitions:

Kernel panic – not syncing: VFS: Unable to mount root fs on unknown-block(2,0)

Backtrace:

[<c00349b4>] (dump_backtrace+0x0/0x110) from [<c0395c34>] (dump_stack+0x18/0x1c)

r6:00008000 r5:00000000 r4:c04dfab8 r3:c7828010

[<c0395c1c>] (dump_stack+0x0/0x1c) from [<c0395d10>] (panic+0x74/0x198)

[<c0395c9c>] (panic+0x0/0x198) from [<c0008ea0>] (mount_block_root+0x1c4/0x204)

r3:00000030 r2:00000000 r1:c7829f58 r0:c04492d5

r7:c0027e34

[<c0008cdc>] (mount_block_root+0x0/0x204) from [<c0009084>] (mount_root+0xac/0xd0)

r8:00000000 r7:00000013 r6:c00496c4 r5:c0027e49 r4:00200000

[<c0008fd8>] (mount_root+0x0/0xd0) from [<c0009218>] (prepare_namespace+0x170/0x1c4)

r4:c04df544

[<c00090a8>] (prepare_namespace+0x0/0x1c4) from [<c0008a94>] (kernel_init+0x114/0x14c)

r5:c0008980 r4:c04df4e0

[<c0008980>] (kernel_init+0x0/0x14c) from [<c00496c4>] (do_exit+0x0/0x6c4)

r4:00000000 r3:00000000

Yaoming Qin:

回复 demo xie:

从log上看,只是nfs没有mount, 导致kernel halt, 你还是和网口的phy的工程师聊聊

demo xie:

回复 Yaoming Qin:

yaoming,你好。谢谢回复。

你的意思应该还是硬件方面的问题咯?

demo xie:

回复 demo xie:

我刚做了几个实验:能帮忙看出头绪吗?

实验1:用单独的路由器,只连我的电脑和板子,ip地址在bootargs中固定,结果如下:

uboot失败3次,连nfs成功11次,连nfs失败10次。

实验2:我用公司的局域网,bootargs设定ip=dhcp,结果每次都连接nfs成功。

实验3:用公司局域网,静态设置ip地址,结果:1次u-boot连接网络失败,14次连接nfs成功,10次失败。

实验4:u-boot下ping自己,不能成功,ping ubuntu可以,但也不是100%

实验5:用网线直连电脑和板子,tftp下载uimage正常,在连接nfs的时候,网络连接显示断了,同时提示连接nfs失败。不知道这样是不是正常的。

demo xie:

回复 demo xie:

yaoming, 你好!

请问u-boot的davinci_emac.c中的

static int gen_get_link_speed(int phy_addr)

{

u_int16_t tmp;

if (davinci_eth_phy_read(phy_addr, MII_STATUS_REG, &tmp) &&

(tmp & 0x04)) { …}

……

}

tmp的意思是什么?看了一下代码,知道它的值是MDIO的USRACCESS0的bit 0-15,在datasheet中解释:User data bits. These bits specify the data value read from or to be written to the specified PHY register.

u-boot ping ip,有时会失败,显示:

WARN: emac_send_packet: No link

此时,tmp=0x7809,与0x04与为0,所以没法往下执行。

ping成功的时候,tmp =0x780d,正好可以往下执行。

请问这个0x04是怎么来的?代表什么意思??

赞(0)
未经允许不得转载:TI中文支持网 » 请问该如何修改AM1808的UBOOT和LINUX KERNEL使得通过RMII驱动LAN8710A或LAN8720A?
分享到: 更多 (0)