提交 ef034c9d 编写于 作者: R Rob Herring 提交者: Joe Hershberger

pxe: Use ethact setting for pxe

Get the MAC address using eth_getenv_enetaddr_by_index so that the MAC
address of ethact is used. This enables using the a NIC other than the
first one for PXE boot.
Signed-off-by: NRob Herring <rob.herring@calxeda.com>
上级 0fae2508
......@@ -55,37 +55,21 @@ static char *from_env(char *envvar)
*/
static int format_mac_pxe(char *outbuf, size_t outbuf_len)
{
size_t ethaddr_len;
char *p, *ethaddr;
uchar ethaddr[6];
ethaddr = from_env("ethaddr");
if (!ethaddr)
return -ENOENT;
ethaddr_len = strlen(ethaddr);
/*
* ethaddr_len + 4 gives room for "01-", ethaddr, and a NUL byte at
* the end.
*/
if (outbuf_len < ethaddr_len + 4) {
printf("outbuf is too small (%d < %d)\n",
outbuf_len, ethaddr_len + 4);
if (outbuf_len < 21) {
printf("outbuf is too small (%d < 21)\n", outbuf_len);
return -EINVAL;
}
strcpy(outbuf, "01-");
for (p = outbuf + 3; *ethaddr; ethaddr++, p++) {
if (*ethaddr == ':')
*p = '-';
else
*p = tolower(*ethaddr);
}
if (!eth_getenv_enetaddr_by_index("eth", eth_get_dev_index(),
ethaddr))
return -ENOENT;
*p = '\0';
sprintf(outbuf, "01-%02x-%02x-%02x-%02x-%02x-%02x",
ethaddr[0], ethaddr[1], ethaddr[2],
ethaddr[3], ethaddr[4], ethaddr[5]);
return 1;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册