[U-Boot] [PATCH 11/16] Define board_quiesce_devices() in a shared location
Simon Glass
sjg at chromium.org
Sun Sep 17 22:59:22 UTC 2017
This undocumented function relies on arch-specific code to declare a nop
weak version. Add the weak function in common code instead to avoid having
to duplicate the same function in each arch.
Signed-off-by: Simon Glass <sjg at chromium.org>
---
arch/arm/include/asm/u-boot-arm.h | 1 -
arch/x86/include/asm/u-boot-x86.h | 1 -
arch/x86/lib/bootm.c | 4 ----
common/bootm.c | 4 ++++
include/bootm.h | 2 ++
lib/efi_loader/efi_boottime.c | 4 ++++
6 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/arch/arm/include/asm/u-boot-arm.h b/arch/arm/include/asm/u-boot-arm.h
index ef4fca68ee..73ccf41f8c 100644
--- a/arch/arm/include/asm/u-boot-arm.h
+++ b/arch/arm/include/asm/u-boot-arm.h
@@ -38,7 +38,6 @@ int arch_early_init_r(void);
/* board/.../... */
int board_init(void);
-void board_quiesce_devices(void);
/* cpu/.../interrupt.c */
int arch_interrupt_init (void);
diff --git a/arch/x86/include/asm/u-boot-x86.h b/arch/x86/include/asm/u-boot-x86.h
index 187fe5fd8c..d2e1426042 100644
--- a/arch/x86/include/asm/u-boot-x86.h
+++ b/arch/x86/include/asm/u-boot-x86.h
@@ -85,7 +85,6 @@ static inline __attribute__((no_instrument_function)) uint64_t rdtsc(void)
/* board/... */
void timer_set_tsc_base(uint64_t new_base);
uint64_t timer_get_tsc(void);
-void board_quiesce_devices(void);
void quick_ram_check(void);
diff --git a/arch/x86/lib/bootm.c b/arch/x86/lib/bootm.c
index ecd4f4e6c6..d9063a76d7 100644
--- a/arch/x86/lib/bootm.c
+++ b/arch/x86/lib/bootm.c
@@ -33,10 +33,6 @@ int arch_fixup_fdt(void *blob)
return 0;
}
-__weak void board_quiesce_devices(void)
-{
-}
-
void bootm_announce_and_cleanup(void)
{
printf("\nStarting kernel ...\n\n");
diff --git a/common/bootm.c b/common/bootm.c
index 32b3ea8e2d..f64742168c 100644
--- a/common/bootm.c
+++ b/common/bootm.c
@@ -47,6 +47,10 @@ static const void *boot_get_kernel(cmd_tbl_t *cmdtp, int flag, int argc,
char * const argv[], bootm_headers_t *images,
ulong *os_data, ulong *os_len);
+__weak void board_quiesce_devices(void)
+{
+}
+
#ifdef CONFIG_LMB
static void boot_start_lmb(bootm_headers_t *images)
{
diff --git a/include/bootm.h b/include/bootm.h
index 49813772ce..76b6ab42e6 100644
--- a/include/bootm.h
+++ b/include/bootm.h
@@ -73,4 +73,6 @@ int bootm_decomp_image(int comp, ulong load, ulong image_start, int type,
void *load_buf, void *image_buf, ulong image_len,
uint unc_len, ulong *load_end);
+void board_quiesce_devices(void);
+
#endif
diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c
index d832f48599..03b97d36ae 100644
--- a/lib/efi_loader/efi_boottime.c
+++ b/lib/efi_loader/efi_boottime.c
@@ -883,6 +883,10 @@ static void efi_exit_caches(void)
#endif
}
+__weak void board_quiesce_devices(void)
+{
+}
+
static efi_status_t EFIAPI efi_exit_boot_services(void *image_handle,
unsigned long map_key)
{
--
2.14.1.690.gbb1197296e-goog
More information about the U-Boot
mailing list