首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Xilinx上Linux引导过程中禁用PHY自动协商

在Xilinx上Linux引导过程中禁用PHY自动协商
EN

Unix & Linux用户
提问于 2014-01-06 06:37:19
回答 3查看 3.7K关注 0票数 9

我正试图在FPGA板上安装Linux。Linux风味是Xilinx芯片的瓣鱼

目前的Xilinx SoC有一个A9处理器和一个可编程硬件逻辑,即FPGA。我在终端上捕获了引导消息:

代码语言:javascript
复制
.....................U-boot time.......................partition.......................................................

[Fri Dec 27 15:18:53.108 2013] Copying Linux from SD to RAM...
[Fri Dec 27 15:18:53.129 2013] Device: SDHCI
[Fri Dec 27 15:18:53.129 2013] Manufacturer ID: 2
[Fri Dec 27 15:18:53.129 2013] OEM: 544d
[Fri Dec 27 15:18:53.129 2013] Name: SA04G 
[Fri Dec 27 15:18:53.129 2013] Tran Speed: 25000000
[Fri Dec 27 15:18:53.129 2013] Rd Block Len: 512
[Fri Dec 27 15:18:53.129 2013] SD version 1.10
[Fri Dec 27 15:18:53.129 2013] High Capacity: Yes
[Fri Dec 27 15:18:53.129 2013] Capacity: 3951034368
[Fri Dec 27 15:18:53.129 2013] Bus Width: 1-bit
[Fri Dec 27 15:18:53.129 2013] reading zImage
[Fri Dec 27 15:18:59.367 2013] 
[Fri Dec 27 15:18:59.367 2013] 2304852 bytes read
[Fri Dec 27 15:18:59.381 2013] reading devicetree.dtb
[Fri Dec 27 15:18:59.475 2013] 
[Fri Dec 27 15:18:59.475 2013] 2709 bytes read
[Fri Dec 27 15:18:59.491 2013] reading ramdisk8M.image.gz
[Fri Dec 27 15:19:06.121 2013] 
[Fri Dec 27 15:19:06.121 2013] 2501584 bytes read
[Fri Dec 27 15:19:06.144 2013] Trying to set up GEM link...
[Fri Dec 27 15:19:06.144 2013] Resetting PHY...
[Fri Dec 27 15:19:06.144 2013] 
[Fri Dec 27 15:19:06.144 2013] PHY reset complete.
[Fri Dec 27 15:19:06.144 2013] Waiting for PHY to complete auto-negotiation...
[Fri Dec 27 15:19:18.176 2013] ***Error: Auto-negotiation stalled...
[Fri Dec 27 15:19:18.176 2013] ping failed; host 10.10.70.101 is not alive

我对这些台词特别感兴趣:

代码语言:javascript
复制
[Fri Dec 27 15:19:06.144 2013] PHY reset complete.
[Fri Dec 27 15:19:06.144 2013] Waiting for PHY to complete auto-negotiation...
[Fri Dec 27 15:19:18.176 2013] ***Error: Auto-negotiation stalled...
[Fri Dec 27 15:19:18.176 2013] ping failed; host 10.10.70.101 is not alive

问题1:我想这些行是用于TCP/IP的吧?

可以看到,在这里浪费了大约12秒。问题是,我需要一个快速启动系统,并且在最终应用程序中根本不需要TCP/IP。

到目前为止,我安装的Linux使用的是Xilinx提供的预先构建的映像。现在,为了摆脱TCP/IP部分(因为我不需要它,如果我在操作系统中没有它,那么这12秒就可以被保存--这是我的理解),我计划构建我自己的Linux内核。

所以我下载了for PetaLinux的源代码,假设我必须从我的主机系统交叉编译它。

问题2:但是我想知道如何将TCP/IP部分排除在操作系统源代码之外,这样当操作系统启动时,它就不会执行那些耗时的TCP/IP例程了?

问题3:我也不确定在预先构建的映像中,我们是否可以选择禁用TCP/IP部件?

我的目标是在引导过程中去掉这些行:

代码语言:javascript
复制
[Fri Dec 27 15:19:06.144 2013] PHY reset complete.
[Fri Dec 27 15:19:06.144 2013] Waiting for PHY to complete auto-negotiation...
[Fri Dec 27 15:19:18.176 2013] ***Error: Auto-negotiation stalled...
[Fri Dec 27 15:19:18.176 2013] ping failed; host 10.10.70.101 is not alive
EN

回答 3

Unix & Linux用户

发布于 2017-03-31 20:29:09

问题2:我相信这些指纹来自uboot。如果是这样的话,我相信您已经定义了"CONFIG_PHY_RESET“--请您检查一下您的uboot配置好吗?要禁用此功能,您可能需要检查您的配置,通常类似于:./include/ this /YourBoardConfigFile.h,这是uboot所使用的。

另一个答案是使用Kconfig -我检查了我的uboot的menuconfig,这个选项没有出现。

如果您查看uboot源文件:/司机/净/4xx_enet.c,搜索"CONFIG_PHY_RESET",就会发现代码正在执行:

代码语言:javascript
复制
#if defined(CONFIG_PHY_RESET)
/*
 * Reset the phy, only if its the first time through
 * otherwise, just check the speeds & feeds
 */
if (hw_p->first_init == 0) {

不久之后,您可以看到打印的“等待PHY自动协商完成”文本,因此这应该是您问题所在的地方(或者接近它--其他一些文件的初始化也取决于体系结构)。

出于某种原因,顶级uboot源代码中的自述文件文件调用CONFIG_PHY_RESET_DELAY,而不是CONFIG_PHY_RESET,因此您可能错过了它。

问题3:如果CONFIG_PHY_RESET是问题所在,那么这需要在编译时设置。您应该能够为您的董事会下载Xilinx氏uBoot源代码。

我不知道为什么需要重置,所以我没有真正回答你的问题1,但似乎有些PHY在初始化时对重置有不同的要求,甚至有些还需要一定的延迟。

票数 2
EN

Unix & Linux用户

发布于 2016-06-30 10:04:39

该系统显然想要平IP地址10.10.70.101,可能是因为它正在检查自己的IP地址或网关。这部分意味着系统配置了一个具有该IP地址或类似IP地址的网络接口。

之所以会出现暂停,是因为在配置IP的过程中,它加载了以太网网络驱动程序,该驱动程序进行了PHY自动协商,实际上它试图查看与其连接的内容。因为没有任何联系,所以就超时了。

您可能应该查找这个Linux发行版保存网络接口设置的位置。粗略的google搜索表明这个U-Boot有变量ipaddr / http://www.denx.de/wiki/view/DULG/UBootEnvVariables

票数 0
EN

Unix & Linux用户

发布于 2014-01-06 07:06:34

在编译内核时,使用Kconfig或其图形类比来禁用网络。例如:看看这个

票数 -2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/108034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档