X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=meta-agl-bsp%2Fmeta-raspberrypi%2Frecipes-bsp%2Fu-boot%2Ffiles%2F0001-board-raspberrypi-add-serial-and-revision-to-the-dev-2019.07.patch;fp=meta-agl-bsp%2Fmeta-raspberrypi%2Frecipes-bsp%2Fu-boot%2Ffiles%2F0001-board-raspberrypi-add-serial-and-revision-to-the-dev-2019.07.patch;h=964cdb7a2a8833c7b63293f58e258218bcc89d10;hb=71aaf3886c5dd98b04cb9c6abe40850090a09fde;hp=0000000000000000000000000000000000000000;hpb=6e89e0296dd28b0c0e9f0f0693f096c281b9d908;p=AGL%2Fmeta-agl.git diff --git a/meta-agl-bsp/meta-raspberrypi/recipes-bsp/u-boot/files/0001-board-raspberrypi-add-serial-and-revision-to-the-dev-2019.07.patch b/meta-agl-bsp/meta-raspberrypi/recipes-bsp/u-boot/files/0001-board-raspberrypi-add-serial-and-revision-to-the-dev-2019.07.patch new file mode 100644 index 000000000..964cdb7a2 --- /dev/null +++ b/meta-agl-bsp/meta-raspberrypi/recipes-bsp/u-boot/files/0001-board-raspberrypi-add-serial-and-revision-to-the-dev-2019.07.patch @@ -0,0 +1,82 @@ +From 86cc911aaa958fedf2ea9cb04b4af17f5357815d Mon Sep 17 00:00:00 2001 +From: Anton Gerasimov +Date: Fri, 1 Feb 2019 14:39:48 +0100 +Subject: [PATCH] board: raspberrypi: add serial and revision to the device + tree + +Raspberry Pi bootloader adds this node to fdt, but if u-boot script +doesn't reuse the tree provided by it, this information is lost. + +Revision and serial are displayed in /proc/cpuinfo after boot. + +Signed-off-by: Anton Gerasimov +--- + board/raspberrypi/rpi/rpi.c | 31 +++++++++++++++++++++++++++++-- + 1 file changed, 29 insertions(+), 2 deletions(-) + +diff --git a/board/raspberrypi/rpi/rpi.c b/board/raspberrypi/rpi/rpi.c +index 35f5939552..114178397e 100644 +--- a/board/raspberrypi/rpi/rpi.c ++++ b/board/raspberrypi/rpi/rpi.c +@@ -241,6 +241,8 @@ static uint32_t rev_scheme; + static uint32_t rev_type; + static const struct rpi_model *model; + ++uint64_t serial; ++ + #ifdef CONFIG_ARM64 + static struct mm_region bcm2837_mem_map[] = { + { +@@ -384,8 +386,8 @@ static void set_serial_number(void) + return; + } + +- snprintf(serial_string, sizeof(serial_string), "%016llx", +- msg->get_board_serial.body.resp.serial); ++ serial = msg->get_board_serial.body.resp.serial; ++ snprintf(serial_string, sizeof(serial_string), "%016llx", serial); + env_set("serial#", serial_string); + } + +@@ -478,6 +480,29 @@ void *board_fdt_blob_setup(void) + return (void *)fw_dtb_pointer; + } + ++static int ft_add_revision_info(void *blob) { ++ int off; ++ int ret; ++ ++ off = fdt_subnode_offset(blob, 0, "system"); ++ ++ if (off < 0) { ++ off = fdt_add_subnode(blob, 0, "system"); ++ if (off < 0) ++ return -1; ++ } ++ ++ ret = fdt_setprop_u64(blob, off, "linux,serial", serial); ++ if (ret < 0) ++ return -1; ++ ++ ret = fdt_setprop_u32(blob, off, "linux,revision", revision); ++ if (ret < 0) ++ return -1; ++ ++ return 0; ++} ++ + int ft_board_setup(void *blob, bd_t *bd) + { + /* +@@ -487,6 +512,8 @@ int ft_board_setup(void *blob, bd_t *bd) + */ + lcd_dt_simplefb_add_node(blob); + ++ ft_add_revision_info(blob); ++ + #ifdef CONFIG_EFI_LOADER + /* Reserve the spin table */ + efi_add_memory_map(0, 1, EFI_RESERVED_MEMORY_TYPE, 0); +-- +2.17.1 +