Hi Joe, On Wed, Apr 22, 2015 at 8:26 AM, Joe Hershberger <joe.hershber...@gmail.com> wrote: > Hi Bin, > > On Tue, Apr 21, 2015 at 7:20 PM, Bin Meng <bmeng...@gmail.com> wrote: >> Hi Joe, >> >> On Wed, Apr 22, 2015 at 3:41 AM, Joe Hershberger >> <joe.hershber...@gmail.com> wrote: >>> Hi Bin Meng, >>> >>> On Tue, Apr 21, 2015 at 8:54 AM, Simon Glass <s...@chromium.org> wrote: >>>> Hi Bin, >>>> >>>> On 20 April 2015 at 23:05, Bin Meng <bmeng...@gmail.com> wrote: >>>>> Not like other x86 chipset, there is no EEPROM for the ethernet >>>>> controller on the Intel Quark SoC to retreive the mac address >>>>> after power up. With pre-defined mac addresses, U-Boot boots up >>>>> and will not show "Error: dwmac.90006000 address not set" message. >>>>> >>>>> Signed-off-by: Bin Meng <bmeng...@gmail.com> >>>>> --- >>>>> >>>>> include/configs/galileo.h | 2 ++ >>>>> 1 file changed, 2 insertions(+) >>>>> >>>>> diff --git a/include/configs/galileo.h b/include/configs/galileo.h >>>>> index d4d0eb3..961d087 100644 >>>>> --- a/include/configs/galileo.h >>>>> +++ b/include/configs/galileo.h >>>>> @@ -62,6 +62,8 @@ >>>>> #define CONFIG_DESIGNWARE_ETH >>>>> #define CONFIG_DW_ALTDESCRIPTOR >>>>> #define CONFIG_PHYLIB >>>>> +#define CONFIG_ETHADDR 00:02:b3:00:00:00 >>>>> +#define CONFIG_ETH1ADDR 00:02:b3:00:00:01 >>>> >>>> I recall this coming up before with another board - we are not >>>> supposed to set a default MAC address since it may create inexplicable >>>> conflicts on the network if an org two boards on the same network one >>>> day. Can you just set an environment variable? >> >> There are lots of boards which have CONFIG_ETHADDR defined in the >> board configuration files. Do you think we need cleam them up? > > I think it would be great if the board maintainers cleaned these up. > This is a common way to get into trouble.
Yep, and I think removing the CONFIG_ETHADDR from board configuration files is safe. Someone could clean this up in a batch. >> include/configs/blackstamp.h:81:/* #define CONFIG_ETHADDR >> 02:80:ad:20:31:b8 */ >> include/configs/grsim.h:254:#define CONFIG_ETHADDR 00:00:7a:cc:00:12 >> include/configs/bct-brettl2.h:77:/* #define CONFIG_ETHADDR >> 02:80:ad:20:31:e8 */ >> include/configs/bf533-stamp.h:72:/* #define CONFIG_ETHADDR >> 02:80:ad:20:31:b8 */ >> include/configs/stxgp3.h:16: * search for >> CONFIG_ETHADDR,CONFIG_SERVERIP,etc in this file >> include/configs/stxgp3.h:348:#define CONFIG_ETHADDR >> 00:e0:0c:07:9b:8a >> include/configs/cobra5272.h:177:#define CONFIG_ETHADDR >> 00:00:00:00:00:09 /* default ethernet MAC addr. */ >> include/configs/pb1x00.h:34:#define CONFIG_ETHADDR >> DE:AD:BE:EF:01:01 /* Ethernet address */ >> include/configs/M54418TWR.h:116:#define CONFIG_ETHADDR >> 00:e0:0c:bc:e5:60 >> include/configs/dbau1x00.h:40:#define CONFIG_ETHADDR >> DE:AD:BE:EF:01:01 /* Ethernet address */ >> include/configs/bf561-acvilon.h:96:/* #define CONFIG_ETHADDR >> 02:80:ad:20:31:e8 */ >> include/configs/galileo.h:65:#define CONFIG_ETHADDR >> 00:02:b3:00:00:00 >> include/configs/cm-bf527.h:87:/* #define CONFIG_ETHADDR 02:80:ad:20:31:e8 */ >> include/configs/M5329EVB.h:91:# define CONFIG_ETHADDR 00:e0:0c:bc:e5:60 >> include/configs/sbc8641d.h:17: * search for CONFIG_ETHADDR, >> CONFIG_SERVERIP, etc in this file. >> include/configs/sbc8641d.h:533:#define CONFIG_ETHADDR 02:E0:0C:00:00:01 >> include/configs/bf527-ezkit.h:87:/* #define CONFIG_ETHADDR >> 02:80:ad:20:31:e8 */ >> include/configs/MPC8541CDS.h:421:#define CONFIG_ETHADDR 00:E0:0C:00:00:FD >> include/configs/bf537-stamp.h:69:/* #define CONFIG_ETHADDR >> 02:80:ad:20:31:e8 */ >> include/configs/zeus.h:299:#define CONFIG_ETHADDR >> 50:00:00:00:06:00 >> include/configs/br4.h:73:/* #define CONFIG_ETHADDR 5c:38:1a:80:a7:00 */ >> include/configs/M5373EVB.h:91:# define CONFIG_ETHADDR 00:e0:0c:bc:e5:60 >> include/configs/MPC8641HPCN.h:13: * search for CONFIG_ETHADDR, >> CONFIG_SERVERIP, etc in this file. >> include/configs/MPC8641HPCN.h:683:#define CONFIG_ETHADDR >> 00:E0:0C:00:00:01 >> include/configs/MPC8560ADS.h:15: * search for CONFIG_ETHADDR, >> CONFIG_SERVERIP, etc in this file. >> include/configs/MPC8560ADS.h:450:#define CONFIG_ETHADDR 00:E0:0C:00:00:FD >> include/configs/M5272C3.h:93:# define CONFIG_ETHADDR 00:e0:0c:bc:e5:60 >> include/configs/gr_xc3s_1500.h:231:#define CONFIG_ETHADDR 00:00:7a:cc:00:12 >> include/configs/MPC8568MDS.h:441:#define CONFIG_ETHADDR 00:E0:0C:00:00:FD >> include/configs/bf537-pnav.h:69:/* #define CONFIG_ETHADDR >> 02:80:ad:24:21:18 */ >> include/configs/M54455EVB.h:86:# define CONFIG_ETHADDR >> 00:e0:0c:bc:e5:60 >> include/configs/blackvme.h:90:/* # define CONFIG_ETHADDR >> ff:ee:dd:cc:bb:aa */ >> include/configs/MPC8548CDS.h:546:#define CONFIG_ETHADDR 00:E0:0C:00:00:FD >> include/configs/stxssa.h:16: * search for >> CONFIG_ETHADDR,CONFIG_SERVERIP,etc in this file >> include/configs/stxssa.h:383:#define CONFIG_ETHADDR 00:e0:0c:07:9b:8a >> include/configs/grsim_leon2.h:252:#define CONFIG_ETHADDR 00:00:7a:cc:00:12 >> include/configs/M5235EVB.h:98:# define CONFIG_ETHADDR 00:e0:0c:bc:e5:60 >> include/configs/tcm-bf518.h:70:/* #define CONFIG_ETHADDR >> 02:80:ad:20:31:e8 */ >> include/configs/sbc405.h:105:#define CONFIG_ETHADDR >> DE:AD:BE:EF:01:01 /* Ethernet address */ >> include/configs/microblaze-generic.h:353:#define CONFIG_ETHADDR >> 00:E0:0C:00:00:FD >> include/configs/uniphier.h:212:#define CONFIG_ETHADDR >> 00:21:83:24:00:00 >> include/configs/bf538f-ezkit.h:67:/* #define CONFIG_ETHADDR >> 02:80:ad:20:31:e8 */ >> include/configs/M5208EVBE.h:77:# define CONFIG_ETHADDR >> 00:e0:0c:bc:e5:60 >> include/configs/cm-bf561.h:71:/* #define CONFIG_ETHADDR 02:80:ad:20:31:cf */ >> include/configs/M54451EVB.h:80:# define CONFIG_ETHADDR >> 00:e0:0c:bc:e5:60 >> include/configs/MPC8544DS.h:452:#define CONFIG_ETHADDR 00:E0:0C:02:00:FD >> include/configs/motionpro.h:88:#define CONFIG_ETHADDR >> 00:50:C2:40:10:00 >> include/configs/inka4x0.h:113:#define CONFIG_ETHADDR >> 00:a0:a4:03:00:00 >> include/configs/cm-bf537e.h:75:/* #define CONFIG_ETHADDR >> 02:80:ad:20:31:e8 */ >> include/configs/MPC8572DS.h:665:#define CONFIG_ETHADDR 00:E0:0C:02:00:FD >> include/configs/cm-bf548.h:80:/* #define CONFIG_ETHADDR 02:80:ad:24:31:91 */ >> include/configs/MPC8610HPCD.h:303:#define CONFIG_ETHADDR 00:E0:0C:00:00:01 >> include/configs/tcm-bf537.h:75:/* #define CONFIG_ETHADDR >> 02:80:ad:20:31:e8 */ >> include/configs/sbc8548.h:588:#define CONFIG_ETHADDR 02:E0:0C:00:00:FD >> include/configs/M5475EVB.h:78:# define CONFIG_ETHADDR 00:e0:0c:bc:e5:60 >> include/configs/M5475EVB.h:138:# define CONFIG_ETHADDR >> 00:e0:0c:bc:e5:60 >> include/configs/gr_ep2s60.h:272:#define CONFIG_ETHADDR 00:00:7a:cc:00:13 >> include/configs/xaeniax.h:73:#define CONFIG_ETHADDR >> 08:00:3e:26:0a:5b >> include/configs/pr1.h:73:/* #define CONFIG_ETHADDR 02:80:ad:20:31:e8 */ >> include/configs/MPC8536DS.h:723:#define CONFIG_ETHADDR 00:E0:0C:02:00:FD >> include/configs/bf537-srv1.h:90:/* #define CONFIG_ETHADDR >> 02:80:ad:20:31:42 */ >> include/configs/M5282EVB.h:79:# define CONFIG_ETHADDR 00:e0:0c:bc:e5:60 >> include/configs/bf526-ezbrd.h:89:/* #define CONFIG_ETHADDR >> 02:80:ad:20:31:e8 */ >> include/configs/ibf-dsp561.h:68:/* #define CONFIG_ETHADDR >> 02:80:ad:20:31:e8 */ >> include/configs/bf561-ezkit.h:68:/* #define CONFIG_ETHADDR >> 02:80:ad:20:31:e8 */ >> include/configs/bf548-ezkit.h:77:/* #define CONFIG_ETHADDR >> 02:80:ad:20:31:e8 */ >> include/configs/MPC8540ADS.h:15: * search for CONFIG_ETHADDR, >> CONFIG_SERVERIP, etc in this file. >> include/configs/MPC8540ADS.h:409:#define CONFIG_ETHADDR 00:E0:0C:00:00:FD >> include/configs/M5485EVB.h:78:# define CONFIG_ETHADDR 00:e0:0c:bc:e5:60 >> include/configs/work_92105.h:187:#define CONFIG_ETHADDR >> 00:12:B4:00:AF:FE >> include/configs/bf533-ezkit.h:79:/* #define CONFIG_ETHADDR >> 02:80:ad:20:31:e8 */ >> include/configs/cm-bf537u.h:73:/* #define CONFIG_ETHADDR >> 02:80:ad:20:31:e8 */ >> include/configs/MPC8555CDS.h:419:#define CONFIG_ETHADDR 00:E0:0C:00:00:FD >> include/configs/sequoia.h:110:#define CONFIG_ETHADDR >> 4a:56:49:22:3e:43 >> include/configs/scb9328.h:53:#define CONFIG_ETHADDR >> 80:81:82:83:84:85 >> include/configs/cm-bf533.h:70:/* #define CONFIG_ETHADDR 02:80:ad:20:31:e8 */ >> include/configs/gr_cpci_ax2000.h:283:#define CONFIG_ETHADDR >> 00:00:7a:cc:00:13 >> include/configs/M53017EVB.h:97:# define CONFIG_ETHADDR >> 00:e0:0c:bc:e5:60 >> include/configs/bf518f-ezbrd.h:91:/* #define CONFIG_ETHADDR >> 02:80:ad:20:31:e8 */ >> include/configs/bf537-minotaur.h:90:/* #define CONFIG_ETHADDR >> 02:80:ad:20:31:42 */ >> include/env_default.h:52:#ifdef CONFIG_ETHADDR >> include/env_default.h:53: "ethaddr=" >> __stringify(CONFIG_ETHADDR) "\0 >> >>> Simon is correct here. You should simply set it in your environment on >>> your board. Another option that we tend to frown on, but is allowed, >>> is to call net_random_ethaddr() from your board init. >>> >> >> I see net_random_ethaddr() is not used consistently. Lots of boards >> call this API in their borad init but there are two drivers call this >> API in the driver. I think we need move them all to board init? > > Perhaps... or... > >> board/bf527-ezkit/bf527-ezkit.c:49: net_random_ethaddr(mac_addr); >> board/bf537-minotaur/bf537-minotaur.c:29: net_random_ethaddr(mac_addr); >> board/tcm-bf537/tcm-bf537.c:34: net_random_ethaddr(enetaddr); >> board/bf526-ezbrd/bf526-ezbrd.c:47: net_random_ethaddr(mac_addr); >> board/bct-brettl2/bct-brettl2.c:35: net_random_ethaddr(mac_addr); >> board/buffalo/lsxl/lsxl.c:235: net_random_ethaddr(enetaddr); >> board/bf537-stamp/bf537-stamp.c:50: net_random_ethaddr(mac_addr); >> board/dnp5370/dnp5370.c:57: net_random_ethaddr(mac_addr); >> board/cm-bf537u/cm-bf537u.c:34: net_random_ethaddr(enetaddr); >> board/bf518f-ezbrd/bf518f-ezbrd.c:50: net_random_ethaddr(mac_addr); >> board/tcm-bf518/tcm-bf518.c:49: net_random_ethaddr(mac_addr); >> board/bf537-pnav/bf537-pnav.c:29: net_random_ethaddr(mac_addr); >> board/cm-bf527/cm-bf527.c:48: net_random_ethaddr(mac_addr); >> board/cm-bf537e/cm-bf537e.c:34: net_random_ethaddr(enetaddr); >> board/bf537-srv1/bf537-srv1.c:29: net_random_ethaddr(mac_addr); >> board/ip04/ip04.c:35: net_random_ethaddr(enetaddr); >> drivers/net/ftmac110.c:428: net_random_ethaddr(dev->enetaddr); >> drivers/net/dm9000x.c:348: net_random_ethaddr(dev->enetaddr); >> include/net.h:767: * net_random_ethaddr - Generate software assigned >> random Ethernet address >> include/net.h:773:static inline void net_random_ethaddr(uchar *addr) >> >> And there is even one CONFIG_RANDOM_MACADDR used for this purpose. >> >> board/buffalo/lsxl/lsxl.c:233:#ifdef CONFIG_RANDOM_MACADDR >> drivers/net/dm9000x.c:346:#ifdef CONFIG_RANDOM_MACADDR >> include/configs/lsxl.h:40:#define CONFIG_RANDOM_MACADDR > > Maybe we should move this into eth.c, behind that (or a similar) > config token, then it's not duplicated many places. I agree. Moving into eth.c looks much cleaner. And I think we need populate all environment variables with random mac address for all ethernet interfaces U-Boot finds, and we can remove the CONFIG_ETHADDR macro completely. >> I think we should clean these all? > > That would be nice, I do think. I could take a pass at it, but I would > need lots of board maintainers or others to test it out on hardware. > I think it is a good time to start the housekeeping now, since we still have lots of time before next release :-) Regards, Bin _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot