]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
ARM: bcm2835: Set Serial number and Revision
authorNoralf Trønnes <noralf@tronnes.org>
Wed, 3 Jun 2015 10:26:13 +0000 (12:26 +0200)
committerKleber Sacilotto de Souza <kleber.souza@canonical.com>
Wed, 15 Aug 2018 17:22:52 +0000 (19:22 +0200)
The VideoCore bootloader passes in Serial number and
Revision number through Device Tree. Make these available to
userspace through /proc/cpuinfo.

Mainline status:

There is a commit in linux-next that standardize passing the serial
number through Device Tree (string: /serial-number):
ARM: 8355/1: arch: Show the serial number from devicetree in cpuinfo

There was an attempt to do the same with the revision number, but it
didn't get in:
[PATCH v2 1/2] arm: devtree: Set system_rev from DT revision

Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
arch/arm/mach-bcm/board_bcm2835.c

index 8cff865ace04bf1c900676ebdacce9342d0f5036..cbd42ad4ba9fe4a3c17b421349a5b78efc0a40e1 100644 (file)
 #include <linux/init.h>
 #include <linux/irqchip.h>
 #include <linux/of_address.h>
+#include <asm/system_info.h>
 
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
 
 #include "platsmp.h"
 
+static void __init bcm2835_init(void)
+{
+       struct device_node *np = of_find_node_by_path("/system");
+       u32 val;
+       u64 val64;
+
+       if (!of_property_read_u32(np, "linux,revision", &val))
+               system_rev = val;
+       if (!of_property_read_u64(np, "linux,serial", &val64))
+               system_serial_low = val64;
+}
+
 static const char * const bcm2835_compat[] = {
 #ifdef CONFIG_ARCH_MULTI_V6
        "brcm,bcm2835",
@@ -33,6 +46,7 @@ static const char * const bcm2835_compat[] = {
 };
 
 DT_MACHINE_START(BCM2835, "BCM2835")
+       .init_machine = bcm2835_init,
        .dt_compat = bcm2835_compat,
        .smp = smp_ops(bcm2836_smp_ops),
 MACHINE_END