我有来自不同厂商的两块板,其中第一块很好地使用Macronix闪存的其他板无法检测到ethaddrr。
编辑:我的硬件信息:
Working Hw: Micoron 512MB Nor flash, AR; 32-bit
Not working Hw: Macronix 512 MB(MX29GL256F) NOR Flash, ARM 32 bit.我检查了env变量中没有ethaddr。我检查了我的工作板,我有ethaddr变量ethaddr=00:01:02:03:04:54。
我尝试使用setenv和saveenv将ethaddr/mac-id设置为00:01:02:03:04:55,但这是行不通的。
我也检查了我的u引导配置。
#define CONFIG_NET_MULTI 1我的问题是,ethaddr/mac-id是Hw特有的,为什么它不在某些板中检测ethddr呢?
这是我的错误信息:
U-Boot 2010.09 (Apr 16 2018 - 10:59:13)
DRAM: 32 MiB
Flash: 32 MiB
In: serial
Out: serial
Err: serial
Net: macb0
Hit any key to stop autoboot: 0
Checking firmware at 0x100e0000-0x107fffff
invalid magic 0xffff, ignoring
Checking firmware at 0x10820000-0x10f3ffff
invalid magic 0xffff, ignoring
highest = 0
No valid firmware in flash, trying to load kernel and ramdisk from server
macb0: PHY present at 0
macb0: Starting autonegotiation...
macb0: Autonegotiation complete
macb0: link up, 100Mbps full-duplex (lpa: 0xcde1)
*** ERROR: `ethaddr' not set
macb0: PHY present at 0
macb0: link up, 100Mbps full-duplex (lpa: 0xcde1)
Wrong Image Format for bootm command
ERROR: can't get kernel image!发布于 2018-04-23 18:08:34
不要突然设置MAC地址。内核没有选择它,因为您的MAC地址已经设置了多播位。
请参阅http://www.denx.de/wiki/bin/view/DULG/EthernetDoesNotWork
如果要设置本地MAC地址,则需要确保其有效。您可以通过使用
$ make tools/gen_eth_addr
cc tools/gen_eth_addr.c -o tools/gen_eth_addr
$ tools/gen_eth_addr
ba:d0:4a:9c:4e:ce详情请参见http://www.denx.de/wiki/bin/view/DULG/WhereCanIGetAValidMACAddress。
而且,这不是一个内核编程问题,所以它真的不属于这里。
https://stackoverflow.com/questions/49981264
复制相似问题