summaryrefslogtreecommitdiff
path: root/kernels/linux-libre-grsec-xen/0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch
diff options
context:
space:
mode:
authorAndré Fabian Silva Delgado <emulatorman@parabola.nu>2016-08-09 07:27:50 -0300
committerAndré Fabian Silva Delgado <emulatorman@parabola.nu>2016-08-09 07:29:43 -0300
commit5ff7c3c3eeeb7b0c24ba32489d8d544f2d279068 (patch)
treefa1a67b4db7431b1ddc2f2e5732a77cfc614beed /kernels/linux-libre-grsec-xen/0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch
parent8b474273735ceb9c0b5e248132ce6532d222ffad (diff)
linux-libre-grsec-xen: add new package to [kernels] - Packaging request #1060 -> https://labs.parabola.nu/issues/1060
Diffstat (limited to 'kernels/linux-libre-grsec-xen/0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch')
-rw-r--r--kernels/linux-libre-grsec-xen/0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch47
1 files changed, 47 insertions, 0 deletions
diff --git a/kernels/linux-libre-grsec-xen/0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch b/kernels/linux-libre-grsec-xen/0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch
new file mode 100644
index 000000000..9c0f4d1a7
--- /dev/null
+++ b/kernels/linux-libre-grsec-xen/0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch
@@ -0,0 +1,47 @@
+From 2fe6588b6ca5cb817c78ee0b44ca9b2a6f6bdeb1 Mon Sep 17 00:00:00 2001
+From: Willy Tarreau <w@xxxxxx>
+Date: Sun, 2 Dec 2012 19:56:58 +0100
+Subject: [PATCH 2/8] ARM: atags/fdt: retrieve MAC addresses from Marvell boot
+ loader
+
+The atags are parsed and if a Marvell atag is found, up to 4 MAC
+addresses are extracted there and assigned to node aliases eth0..3
+with the name "mac-address".
+
+This was tested on my Mirabox and the two NICs had their correct
+address set.
+
+Signed-off-by: Willy Tarreau <w@xxxxxx>
+---
+ arch/arm/boot/compressed/atags_to_fdt.c | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/arch/arm/boot/compressed/atags_to_fdt.c b/arch/arm/boot/compressed/atags_to_fdt.c
+index 9448aa0..ac7b6ae 100644
+--- a/arch/arm/boot/compressed/atags_to_fdt.c
++++ b/arch/arm/boot/compressed/atags_to_fdt.c
+@@ -18,7 +18,7 @@ static int node_offset(void *fdt, const char *node_path)
+ }
+
+ static int setprop(void *fdt, const char *node_path, const char *property,
+- uint32_t *val_array, int size)
++ void *val_array, int size)
+ {
+ int offset = node_offset(fdt, node_path);
+ if (offset < 0)
+@@ -179,6 +179,12 @@ int atags_to_fdt(void *atag_list, void *fdt, int total_space)
+ initrd_start);
+ setprop_cell(fdt, "/chosen", "linux,initrd-end",
+ initrd_start + initrd_size);
++ } else if (atag->hdr.tag == ATAG_MV_UBOOT) {
++ /* This ATAG provides up to 4 MAC addresses */
++ setprop(fdt, "eth0", "mac-address", atag->u.mv_uboot.macAddr[0], 6);
++ setprop(fdt, "eth1", "mac-address", atag->u.mv_uboot.macAddr[1], 6);
++ setprop(fdt, "eth2", "mac-address", atag->u.mv_uboot.macAddr[2], 6);
++ setprop(fdt, "eth3", "mac-address", atag->u.mv_uboot.macAddr[3], 6);
+ }
+ }
+
+--
+2.8.2
+