准备在omapl138的ARM和运行linux系统,找了一个linux3_3的,每次运行的时候只运行到
## Booting kernel from Legacy Image at c0700000 …
Image Name: Linux-3.3.0
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2384864 Bytes = 2.3 MiB
Load Address: c0008000
Entry Point: c0008000
Verifying Checksum … OK
Loading Kernel Image … OK
OK
Starting kernel …
Uncompressing Linux… done, booting the kernel. // 运行到此处就不运行了,不知道是什么原因,请教下各位,如何解决,
如果有现成的linux,可以给我一份,谢谢
shuo wang10:
回复 Shine:
谢谢,我是自己的板子,现在可以向下执行了, 我对linux menuconfig配置去掉了多媒体驱动配置,去掉了LED等,就可以像下执行了(应该是我的板子上没有这些外设的缘故),现在又遇到的问题是linux内核启动,网络模块没有启动成功:【我们的OMAPL138开发板是的网卡芯片是ksz8893, 这个芯片还是用在TI官方提供的OMAPL137开发板的网卡芯片】
[ 2.096413] davinci_mdio davinci_mdio.0: detected phy mask fffffff1[ 2.107743] davinci_mdio.0: probed[ 2.111605] davinci_mdio davinci_mdio.0: phy[1]: device davinci_mdio-0:01, driver unknown //在这里有问题[ 2.119866] davinci_mdio davinci_mdio.0: phy[2]: device davinci_mdio-0:02, driver unknown[ 2.128281] davinci_mdio davinci_mdio.0: phy[3]: device davinci_mdio-0:03, driver unknown[ 2.137188] PPP generic driver version 2.4.2[ 2.143236] PPP BSD Compression module registered在linux内核中的代码应该是以下: // 注册mii_bus /* register the mii bus 2. 注册mii bus 2*/ ret = mdiobus_register(data->bus); if (ret) goto bail_out; /* scan and dump the bus 扫描和转储总线*/ for (addr = 0; addr < PHY_MAX_ADDR; addr++) { phy = data->bus->phy_map[addr]; // 应该从 phy_map下手 phy_map[0] 没有数据 if (phy) { dev_info(dev, "phy[%d]: device %s, driver %s\n", phy->addr, dev_name(&phy->dev), phy->drv ? phy->drv->name : "unknown"); } }最终在后面 网络启动有问题[ 2.387752] PHY davinci_mdio-0:00 not found[ 2.392184] net eth0: could not connect to phy davinci_mdio-0:00[ 2.398254] IP-Config: Failed to open eth0[ 2.402589] IP-Config: No network devices available.1,请问下,这是什么原因造成的?2,phy模块 和网络驱动开发的过程 是什么样的关系?
谢谢
Shine:
回复 shuo wang10:
pinmux有没有配置对?
shuo wang10:
回复 Shine:
请问下,我的linux内核可以支持MII的接口,我有一个板子是mii接口的。
然后,我另一个板子的PHY芯片是RMII接口的,我没找到在哪里修改为RMII,我就在最初配置的时候将rmii_en设置为1
void __init davinci_common_init(struct davinci_soc_info *soc_info)
{
davinci_soc_info.emac_pdata->rmii_en = 1; //在后面验证了一下是没有被清零,一直为1,说明使用的是rmii接口
}
//XXX 在这里问题[ 2.111605] davinci_mdio davinci_mdio.0: phy[1]: device davinci_mdio-0:01, driver unknown // 这里我发现是device davinci_mdio-0:01[ 2.119866] davinci_mdio davinci_mdio.0: phy[2]: device davinci_mdio-0:02, driver unknown[ 2.128281] davinci_mdio davinci_mdio.0: phy[3]: device davinci_mdio-0:03, driver unknown
在后面
[ 2.387752] PHY davinci_mdio-0:00 not found // 这里应该是没有和前面匹配好。[ 2.392184] net eth0: could not connect to phy davinci_mdio-0:00
请问下这是什么原因?
我百度了一下相关的问题:有介绍的说
由于TI的SDK包中使用的general PHY driver,所以修改很简单,更明确地说,是确认配置。
建议调试在u-boot中进行,方便确认问题。
u-boot下主要确认三点:
1)Program GMII_SEL in control module with 0x5 for RMII Interface // 请问下对于omapl138 如何操作
2)Pinmux configuration to support rmii interface //这个我应该已经满足
3)Phy ID setting in Platform data(由PHY的硬件电路决定,通过在PHY_ID的三个管脚上下拉来决定) //这里我一直没有找到配置的具体地方??
Linux下调试也是确认以上三点。
可以指点下吗?