X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=target%2Flinux%2Fbrcm2708%2Fpatches-4.19%2F950-0676-arch-arm64-Add-Revision-Serial-Model-to-cpuinfo.patch;fp=target%2Flinux%2Fbrcm2708%2Fpatches-4.19%2F950-0676-arch-arm64-Add-Revision-Serial-Model-to-cpuinfo.patch;h=5e29b47e57a14dbecf1596efa65e65e83141b0d1;hb=84d555aa74434392b682fd9eb0fa701c89a046d6;hp=0000000000000000000000000000000000000000;hpb=953973c2991e8640549a55df7a0574a1abac8644;p=openwrt%2Fstaging%2Fchunkeey.git diff --git a/target/linux/brcm2708/patches-4.19/950-0676-arch-arm64-Add-Revision-Serial-Model-to-cpuinfo.patch b/target/linux/brcm2708/patches-4.19/950-0676-arch-arm64-Add-Revision-Serial-Model-to-cpuinfo.patch new file mode 100644 index 0000000000..5e29b47e57 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0676-arch-arm64-Add-Revision-Serial-Model-to-cpuinfo.patch @@ -0,0 +1,58 @@ +From aabfcb0abbc34ca5f3c4b4f872123166eca2e100 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Tue, 3 Sep 2019 18:17:25 +0100 +Subject: [PATCH] arch/arm64: Add Revision, Serial, Model to cpuinfo + +Signed-off-by: Phil Elwell +--- + arch/arm64/kernel/cpuinfo.c | 25 +++++++++++++++++++++++++ + 1 file changed, 25 insertions(+) + +--- a/arch/arm64/kernel/cpuinfo.c ++++ b/arch/arm64/kernel/cpuinfo.c +@@ -27,6 +27,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -126,6 +127,10 @@ static int c_show(struct seq_file *m, vo + { + int i, j; + bool compat = personality(current->personality) == PER_LINUX32; ++ struct device_node *np; ++ const char *model; ++ const char *serial; ++ u32 revision; + + for_each_online_cpu(i) { + struct cpuinfo_arm64 *cpuinfo = &per_cpu(cpu_data, i); +@@ -177,6 +182,26 @@ static int c_show(struct seq_file *m, vo + seq_printf(m, "CPU revision\t: %d\n\n", MIDR_REVISION(midr)); + } + ++ seq_printf(m, "Hardware\t: BCM2835\n"); ++ ++ np = of_find_node_by_path("/system"); ++ if (np) { ++ if (!of_property_read_u32(np, "linux,revision", &revision)) ++ seq_printf(m, "Revision\t: %04x\n", revision); ++ of_node_put(np); ++ } ++ ++ np = of_find_node_by_path("/"); ++ if (np) { ++ if (!of_property_read_string(np, "serial-number", ++ &serial)) ++ seq_printf(m, "Serial\t\t: %s\n", serial); ++ if (!of_property_read_string(np, "model", ++ &model)) ++ seq_printf(m, "Model\t\t: %s\n", model); ++ of_node_put(np); ++ } ++ + return 0; + } +