Module Name: src
Committed By: jmcneill
Date: Wed Oct 26 11:31:11 UTC 2022
Modified Files:
src/sys/arch/arm/xilinx: zynq_cemac.c
Log Message:
Inherit MAC address from Devicetree "local-mac-address" property.
To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/sys/arch/arm/xilinx/zynq_cemac.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/arm/xilinx/zynq_cemac.c
diff -u src/sys/arch/arm/xilinx/zynq_cemac.c:1.3 src/sys/arch/arm/xilinx/zynq_cemac.c:1.4
--- src/sys/arch/arm/xilinx/zynq_cemac.c:1.3 Tue Oct 25 22:49:39 2022
+++ src/sys/arch/arm/xilinx/zynq_cemac.c Wed Oct 26 11:31:11 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: zynq_cemac.c,v 1.3 2022/10/25 22:49:39 jmcneill Exp $ */
+/* $NetBSD: zynq_cemac.c,v 1.4 2022/10/26 11:31:11 jmcneill Exp $ */
/*-
* Copyright (c) 2015 Genetec Corporation. All rights reserved.
* Written by Hashimoto Kenichi for Genetec Corporation.
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: zynq_cemac.c,v 1.3 2022/10/25 22:49:39 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: zynq_cemac.c,v 1.4 2022/10/26 11:31:11 jmcneill Exp $");
#include "opt_soc.h"
@@ -41,6 +41,8 @@ __KERNEL_RCSID(0, "$NetBSD: zynq_cemac.c
#include <dev/cadence/cemacreg.h>
#include <dev/cadence/if_cemacvar.h>
+#include <net/if_ether.h>
+
#include <dev/fdt/fdtvar.h>
static const struct device_compatible_entry compat_data[] = {
@@ -61,11 +63,13 @@ cemac_attach(device_t parent, device_t s
{
struct fdt_attach_args * const faa = aux;
const int phandle = faa->faa_phandle;
+ prop_dictionary_t prop = device_properties(self);
bus_space_handle_t ioh;
char intrstr[128];
+ const char *macaddr;
bus_addr_t addr;
bus_size_t size;
- int error;
+ int error, len;
if (fdtbus_get_reg(phandle, 0, &addr, &size) != 0) {
aprint_error(": couldn't get registers\n");
@@ -90,6 +94,11 @@ cemac_attach(device_t parent, device_t s
return;
}
+ macaddr = fdtbus_get_prop(phandle, "local-mac-address", &len);
+ if (macaddr != NULL && len == ETHER_ADDR_LEN) {
+ prop_dictionary_set_data(prop, "mac-address", macaddr, len);
+ }
+
cemac_attach_common(self, faa->faa_bst, ioh, faa->faa_dmat, CEMAC_FLAG_GEM);
aprint_normal_dev(self, "interrupting on %s\n", intrstr);
}