u-boot: drop backported patches
U-boot has been updated to 2017.01 in poky/oe-core which contains these patches. Signed-off-by: Mirza Krak <mirza.krak@gmail.com>
This commit is contained in:

committed by
Andrei Gherzan

parent
ae2be3aff9
commit
68634deeed
@ -1,56 +0,0 @@
|
||||
From 3e10fcde3f3c24a488866dd33fa3f5d46ff3d7a3 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?C=C3=A9dric=20Schieli?= <cschieli@gmail.com>
|
||||
Date: Fri, 11 Nov 2016 11:59:06 +0100
|
||||
Subject: [PATCH] arm: add save_boot_params for ARM1176
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Implement a hook to allow boards to save boot-time CPU state for later
|
||||
use. When U-Boot is chain-loaded by another bootloader, CPU registers may
|
||||
contain useful information such as system configuration information. This
|
||||
feature mirrors the equivalent ARMv7 feature.
|
||||
|
||||
Signed-off-by: Cédric Schieli <cschieli@gmail.com>
|
||||
Acked-by: Stephen Warren <swarren@nvidia.com>
|
||||
Signed-off-by: Paul Barker <paul@paulbarker.me.uk>
|
||||
Upstream-status: Backport
|
||||
---
|
||||
arch/arm/cpu/arm1176/start.S | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
|
||||
diff --git a/arch/arm/cpu/arm1176/start.S b/arch/arm/cpu/arm1176/start.S
|
||||
index a602d4e..7c00201 100644
|
||||
--- a/arch/arm/cpu/arm1176/start.S
|
||||
+++ b/arch/arm/cpu/arm1176/start.S
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
#include <asm-offsets.h>
|
||||
#include <config.h>
|
||||
+#include <linux/linkage.h>
|
||||
|
||||
#ifndef CONFIG_SYS_PHY_UBOOT_BASE
|
||||
#define CONFIG_SYS_PHY_UBOOT_BASE CONFIG_SYS_UBOOT_BASE
|
||||
@@ -37,6 +38,11 @@
|
||||
.globl reset
|
||||
|
||||
reset:
|
||||
+ /* Allow the board to save important registers */
|
||||
+ b save_boot_params
|
||||
+.globl save_boot_params_ret
|
||||
+save_boot_params_ret:
|
||||
+
|
||||
/*
|
||||
* set the cpu to SVC32 mode
|
||||
*/
|
||||
@@ -110,3 +116,7 @@ mmu_disable_phys:
|
||||
c_runtime_cpu_setup:
|
||||
|
||||
mov pc, lr
|
||||
+
|
||||
+WEAK(save_boot_params)
|
||||
+ b save_boot_params_ret /* back to my caller */
|
||||
+ENDPROC(save_boot_params)
|
||||
--
|
||||
2.1.4
|
||||
|
@ -1,156 +0,0 @@
|
||||
From ade243a211d62327e9ebadce27bbbff7981e37f0 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?C=C3=A9dric=20Schieli?= <cschieli@gmail.com>
|
||||
Date: Fri, 11 Nov 2016 11:59:07 +0100
|
||||
Subject: [PATCH] rpi: passthrough of the firmware provided FDT blob
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Raspberry firmware used to pass a FDT blob at a fixed address (0x100),
|
||||
but this is not true anymore. The address now depends on both the
|
||||
memory size and the blob size [1].
|
||||
|
||||
If one wants to passthrough this FDT blob to the kernel, the most
|
||||
reliable way is to save its address from the r2/x0 register in the
|
||||
U-Boot entry point and expose it in a environment variable for
|
||||
further processing.
|
||||
|
||||
This patch just does this:
|
||||
- save the provided address in the global variable fw_dtb_pointer
|
||||
- expose it in ${fdt_addr} if it points to a a valid FDT blob
|
||||
|
||||
There are many different ways to use it. One can, for example, use
|
||||
the following script which will extract from the tree the command
|
||||
line built by the firmware, then hand over the blob to a previously
|
||||
loaded kernel:
|
||||
|
||||
fdt addr ${fdt_addr}
|
||||
fdt get value bootargs /chosen bootargs
|
||||
bootz ${kernel_addr_r} - ${fdt_addr}
|
||||
|
||||
Alternatively, users relying on sysboot/pxe can simply omit any FDT
|
||||
statement in their extlinux.conf file, U-Boot will automagically pick
|
||||
${fdt_addr} and pass it to the kernel.
|
||||
|
||||
[1] https://www.raspberrypi.org/forums//viewtopic.php?f=107&t=134018
|
||||
|
||||
Upstream-Status: Backport
|
||||
|
||||
Signed-off-by: Cédric Schieli <cschieli@gmail.com>
|
||||
Acked-by: Stephen Warren <swarren@nvidia.com>
|
||||
Signed-off-by: Jonathan Liu <net147@gmail.com>
|
||||
---
|
||||
board/raspberrypi/rpi/Makefile | 1 +
|
||||
board/raspberrypi/rpi/lowlevel_init.S | 36 +++++++++++++++++++++++++++++++++++
|
||||
board/raspberrypi/rpi/rpi.c | 29 ++++++++++++++++++++++++++++
|
||||
3 files changed, 66 insertions(+)
|
||||
create mode 100644 board/raspberrypi/rpi/lowlevel_init.S
|
||||
|
||||
diff --git a/board/raspberrypi/rpi/Makefile b/board/raspberrypi/rpi/Makefile
|
||||
index 4ce2c98..dcb25ac 100644
|
||||
--- a/board/raspberrypi/rpi/Makefile
|
||||
+++ b/board/raspberrypi/rpi/Makefile
|
||||
@@ -5,3 +5,4 @@
|
||||
#
|
||||
|
||||
obj-y := rpi.o
|
||||
+obj-y += lowlevel_init.o
|
||||
diff --git a/board/raspberrypi/rpi/lowlevel_init.S b/board/raspberrypi/rpi/lowlevel_init.S
|
||||
new file mode 100644
|
||||
index 0000000..cdbd8e1
|
||||
--- /dev/null
|
||||
+++ b/board/raspberrypi/rpi/lowlevel_init.S
|
||||
@@ -0,0 +1,36 @@
|
||||
+/*
|
||||
+ * (C) Copyright 2016
|
||||
+ * Cédric Schieli <cschieli@gmail.com>
|
||||
+ *
|
||||
+ * SPDX-License-Identifier: GPL-2.0+
|
||||
+ */
|
||||
+
|
||||
+#include <config.h>
|
||||
+
|
||||
+.align 8
|
||||
+.global fw_dtb_pointer
|
||||
+fw_dtb_pointer:
|
||||
+#ifdef CONFIG_ARM64
|
||||
+ .dword 0x0
|
||||
+#else
|
||||
+ .word 0x0
|
||||
+#endif
|
||||
+
|
||||
+/*
|
||||
+ * Routine: save_boot_params (called after reset from start.S)
|
||||
+ * Description: save ATAG/FDT address provided by the firmware at boot time
|
||||
+ */
|
||||
+
|
||||
+.global save_boot_params
|
||||
+save_boot_params:
|
||||
+
|
||||
+ /* The firmware provided ATAG/FDT address can be found in r2/x0 */
|
||||
+#ifdef CONFIG_ARM64
|
||||
+ adr x8, fw_dtb_pointer
|
||||
+ str x0, [x8]
|
||||
+#else
|
||||
+ str r2, fw_dtb_pointer
|
||||
+#endif
|
||||
+
|
||||
+ /* Returns */
|
||||
+ b save_boot_params_ret
|
||||
diff --git a/board/raspberrypi/rpi/rpi.c b/board/raspberrypi/rpi/rpi.c
|
||||
index 6245b36..ffd6d31 100644
|
||||
--- a/board/raspberrypi/rpi/rpi.c
|
||||
+++ b/board/raspberrypi/rpi/rpi.c
|
||||
@@ -25,6 +25,9 @@
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
+/* From lowlevel_init.S */
|
||||
+extern unsigned long fw_dtb_pointer;
|
||||
+
|
||||
static const struct bcm2835_gpio_platdata gpio_platdata = {
|
||||
.base = BCM2835_GPIO_BASE,
|
||||
};
|
||||
@@ -285,6 +288,31 @@ static void set_fdtfile(void)
|
||||
setenv("fdtfile", fdtfile);
|
||||
}
|
||||
|
||||
+/*
|
||||
+ * If the firmware provided a valid FDT at boot time, let's expose it in
|
||||
+ * ${fdt_addr} so it may be passed unmodified to the kernel.
|
||||
+ */
|
||||
+static void set_fdt_addr(void)
|
||||
+{
|
||||
+ if (getenv("fdt_addr"))
|
||||
+ return;
|
||||
+
|
||||
+ if (fdt_magic(fw_dtb_pointer) != FDT_MAGIC)
|
||||
+ return;
|
||||
+
|
||||
+ setenv_hex("fdt_addr", fw_dtb_pointer);
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * Prevent relocation from stomping on a firmware provided FDT blob.
|
||||
+ */
|
||||
+unsigned long board_get_usable_ram_top(unsigned long total_size)
|
||||
+{
|
||||
+ if ((gd->ram_top - fw_dtb_pointer) > SZ_64M)
|
||||
+ return gd->ram_top;
|
||||
+ return fw_dtb_pointer & ~0xffff;
|
||||
+}
|
||||
+
|
||||
static void set_usbethaddr(void)
|
||||
{
|
||||
ALLOC_CACHE_ALIGN_BUFFER(struct msg_get_mac_address, msg, 1);
|
||||
@@ -356,6 +384,7 @@ static void set_serial_number(void)
|
||||
|
||||
int misc_init_r(void)
|
||||
{
|
||||
+ set_fdt_addr();
|
||||
set_fdtfile();
|
||||
set_usbethaddr();
|
||||
#ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
|
||||
--
|
||||
2.10.2
|
||||
|
@ -1,6 +1 @@
|
||||
FILESEXTRAPATHS_prepend_rpi := "${THISDIR}/files:"
|
||||
RDEPENDS_${PN}_append_rpi = " rpi-u-boot-scr"
|
||||
SRC_URI_append_rpi = " \
|
||||
file://0001-arm-add-save_boot_params-for-ARM1176.patch \
|
||||
file://0002-rpi-passthrough-of-the-firmware-provided-FDT-blob.patch \
|
||||
"
|
||||
|
Reference in New Issue
Block a user