Module Name:    src
Committed By:   jmcneill
Date:           Tue Jan  6 00:43:59 UTC 2015

Modified Files:
        src/sys/arch/evbarm/rockchip: rockchip_machdep.c

Log Message:
allow passing rkemac0.mac-address=xx:xx:xx:xx:xx:xx on kernel cmdline to 
override random mac address


To generate a diff of this commit:
cvs rdiff -u -r1.17 -r1.18 src/sys/arch/evbarm/rockchip/rockchip_machdep.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/evbarm/rockchip/rockchip_machdep.c
diff -u src/sys/arch/evbarm/rockchip/rockchip_machdep.c:1.17 src/sys/arch/evbarm/rockchip/rockchip_machdep.c:1.18
--- src/sys/arch/evbarm/rockchip/rockchip_machdep.c:1.17	Sun Jan  4 03:55:11 2015
+++ src/sys/arch/evbarm/rockchip/rockchip_machdep.c	Tue Jan  6 00:43:59 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: rockchip_machdep.c,v 1.17 2015/01/04 03:55:11 jmcneill Exp $ */
+/*	$NetBSD: rockchip_machdep.c,v 1.18 2015/01/06 00:43:59 jmcneill Exp $ */
 
 /*
  * Machine dependent functions for kernel setup for TI OSK5912 board.
@@ -125,7 +125,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rockchip_machdep.c,v 1.17 2015/01/04 03:55:11 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rockchip_machdep.c,v 1.18 2015/01/06 00:43:59 jmcneill Exp $");
 
 #include "opt_machdep.h"
 #include "opt_ddb.h"
@@ -144,6 +144,7 @@ __KERNEL_RCSID(0, "$NetBSD: rockchip_mac
 #endif
 #include "arml2cc.h"
 #include "act8846pm.h"
+#include "ether.h"
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -208,6 +209,7 @@ __KERNEL_RCSID(0, "$NetBSD: rockchip_mac
 #include <dev/i2c/ddcreg.h>
 
 #include <dev/usb/ukbdvar.h>
+#include <net/if_ether.h>
 
 /*
  * ATAG cmdline length can be up to UINT32_MAX - 4, but Rockchip RK3188
@@ -765,7 +767,7 @@ rockchip_device_register(device_t self, 
 		return;
 	}
 
-	if (device_is_a(self, "rkemac")) {
+	if (device_is_a(self, "rkemac") && device_unit(self) == 0) {
 #if NACT8846PM > 0
 		device_t pmic = device_find_by_driver_unit("act8846pm", 0);
 		if (pmic == NULL)
@@ -776,6 +778,16 @@ rockchip_device_register(device_t self, 
 		act8846_set_voltage(ctrl, 3300, 3300);
 		act8846_enable(ctrl);
 #endif
+#if NETHER > 0
+		uint8_t enaddr[ETHER_ADDR_LEN];
+		if (get_bootconf_option(boot_args, "rkemac0.mac-address",
+		    BOOTOPT_TYPE_MACADDR, &enaddr)) {
+			prop_data_t pd = prop_data_create_data(enaddr,
+			    sizeof(enaddr));
+			prop_dictionary_set(dict, "mac-address", pd);
+			prop_object_release(pd);
+		}
+#endif
 		return;
 	}
 

Reply via email to