ARM: tegra: Implement cboot_save_boot_params() in C
authorThierry Reding <treding@nvidia.com>
Mon, 15 Apr 2019 09:32:29 +0000 (11:32 +0200)
committerTom Warren <twarren@nvidia.com>
Wed, 5 Jun 2019 16:16:34 +0000 (09:16 -0700)
This is easier to deal with and works just as well for this simple
function.

Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Tom Warren <twarren@nvidia.com>
arch/arm/mach-tegra/Makefile
arch/arm/mach-tegra/cboot.c
arch/arm/mach-tegra/cboot_ll.S [deleted file]

index 41ba674edff42ce82397e2ec6d477b1fc03f6e1e..7165d70a60da926be271ac2df8ec564f319c77f4 100644 (file)
@@ -20,7 +20,7 @@ obj-$(CONFIG_TEGRA_PINCTRL) += pinmux-common.o
 obj-$(CONFIG_TEGRA_PMC) += powergate.o
 obj-y += xusb-padctl-dummy.o
 
-obj-$(CONFIG_ARM64) += arm64-mmu.o cboot_ll.o cboot.o
+obj-$(CONFIG_ARM64) += arm64-mmu.o cboot.o
 obj-y += dt-setup.o
 obj-$(CONFIG_TEGRA_CLOCK_SCALING) += emc.o
 obj-$(CONFIG_TEGRA_GPU) += gpu.o
index 3ebf7b0555538f7688b82b394452e8866c5efa4c..a302ca45f39b0499559a78742c6374e6a1279984 100644 (file)
@@ -52,6 +52,18 @@ static u64 ram_top __attribute__((section(".data")));
 /* The base address of the region of RAM that ends at ram_top */
 static u64 region_base __attribute__((section(".data")));
 
+/*
+ * Explicitly put this in the .data section because it is written before the
+ * .bss section is zeroed out but it needs to persist.
+ */
+unsigned long cboot_boot_x0 __attribute__((section(".data")));
+
+void cboot_save_boot_params(unsigned long x0, unsigned long x1,
+                           unsigned long x2, unsigned long x3)
+{
+       cboot_boot_x0 = x0;
+}
+
 int cboot_dram_init(void)
 {
        unsigned int na, ns;
diff --git a/arch/arm/mach-tegra/cboot_ll.S b/arch/arm/mach-tegra/cboot_ll.S
deleted file mode 100644 (file)
index 4c9ddac..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
-/*
- * Save cboot-related boot-time CPU state
- *
- * (C) Copyright 2015-2016 NVIDIA Corporation <www.nvidia.com>
- */
-
-#include <config.h>
-#include <linux/linkage.h>
-
-.align 8
-.globl cboot_boot_x0
-cboot_boot_x0:
-       .dword 0
-
-ENTRY(cboot_save_boot_params)
-       adr     x8, cboot_boot_x0
-       str     x0, [x8]
-       b       save_boot_params_ret
-ENDPROC(cboot_save_boot_params)