|
@@ -1788,6 +1788,32 @@ static int usb_eth_init(struct eth_device *netdev, bd_t *bd)
|
|
|
error("received NULL ptr");
|
|
|
goto fail;
|
|
|
}
|
|
|
+
|
|
|
+ /* Configure default mac-addresses for the USB ethernet device */
|
|
|
+#ifdef CONFIG_USBNET_DEV_ADDR
|
|
|
+ strlcpy(dev_addr, CONFIG_USBNET_DEV_ADDR, sizeof(dev_addr));
|
|
|
+#endif
|
|
|
+#ifdef CONFIG_USBNET_HOST_ADDR
|
|
|
+ strlcpy(host_addr, CONFIG_USBNET_HOST_ADDR, sizeof(host_addr));
|
|
|
+#endif
|
|
|
+ /* Check if the user overruled the MAC addresses */
|
|
|
+ if (getenv("usbnet_devaddr"))
|
|
|
+ strlcpy(dev_addr, getenv("usbnet_devaddr"),
|
|
|
+ sizeof(dev_addr));
|
|
|
+
|
|
|
+ if (getenv("usbnet_hostaddr"))
|
|
|
+ strlcpy(host_addr, getenv("usbnet_hostaddr"),
|
|
|
+ sizeof(host_addr));
|
|
|
+
|
|
|
+ if (!is_eth_addr_valid(dev_addr)) {
|
|
|
+ error("Need valid 'usbnet_devaddr' to be set");
|
|
|
+ goto fail;
|
|
|
+ }
|
|
|
+ if (!is_eth_addr_valid(host_addr)) {
|
|
|
+ error("Need valid 'usbnet_hostaddr' to be set");
|
|
|
+ goto fail;
|
|
|
+ }
|
|
|
+
|
|
|
if (usb_gadget_register_driver(ð_driver) < 0)
|
|
|
goto fail;
|
|
|
|
|
@@ -1920,7 +1946,6 @@ static struct usb_gadget_driver eth_driver = {
|
|
|
|
|
|
int usb_eth_initialize(bd_t *bi)
|
|
|
{
|
|
|
- int status = 0;
|
|
|
struct eth_device *netdev = &l_netdev;
|
|
|
|
|
|
strlcpy(netdev->name, USB_NET_NAME, sizeof(netdev->name));
|
|
@@ -1933,41 +1958,6 @@ int usb_eth_initialize(bd_t *bi)
|
|
|
#ifdef CONFIG_MCAST_TFTP
|
|
|
#error not supported
|
|
|
#endif
|
|
|
- /* Configure default mac-addresses for the USB ethernet device */
|
|
|
-#ifdef CONFIG_USBNET_DEV_ADDR
|
|
|
- strncpy(dev_addr, CONFIG_USBNET_DEV_ADDR, sizeof(dev_addr));
|
|
|
-#endif
|
|
|
-#ifdef CONFIG_USBNET_HOST_ADDR
|
|
|
- strncpy(host_addr, CONFIG_USBNET_HOST_ADDR, sizeof(host_addr));
|
|
|
-#endif
|
|
|
- /* Check if the user overruled the MAC addresses */
|
|
|
- if (getenv("usbnet_devaddr"))
|
|
|
- strncpy(dev_addr, getenv("usbnet_devaddr"),
|
|
|
- sizeof(dev_addr));
|
|
|
-
|
|
|
- if (getenv("usbnet_hostaddr"))
|
|
|
- strncpy(host_addr, getenv("usbnet_hostaddr"),
|
|
|
- sizeof(host_addr));
|
|
|
-
|
|
|
- /* Make sure both strings are terminated */
|
|
|
- dev_addr[sizeof(dev_addr)-1] = '\0';
|
|
|
- host_addr[sizeof(host_addr)-1] = '\0';
|
|
|
-
|
|
|
- if (!is_eth_addr_valid(dev_addr)) {
|
|
|
- error("Need valid 'usbnet_devaddr' to be set");
|
|
|
- status = -1;
|
|
|
- }
|
|
|
- if (!is_eth_addr_valid(host_addr)) {
|
|
|
- error("Need valid 'usbnet_hostaddr' to be set");
|
|
|
- status = -1;
|
|
|
- }
|
|
|
- if (status)
|
|
|
- goto fail;
|
|
|
-
|
|
|
eth_register(netdev);
|
|
|
return 0;
|
|
|
-
|
|
|
-fail:
|
|
|
- error("%s failed. error = %d", __func__, status);
|
|
|
- return status;
|
|
|
}
|