[coreboot-gerrit] Patch set updated for coreboot: arch: remove stage_exit()

Aaron Durbin (adurbin@chromium.org) gerrit at coreboot.org
Thu Feb 11 21:26:07 CET 2016


Aaron Durbin (adurbin at chromium.org) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/13678

-gerrit

commit 497b6c057a3f6843cfb03eb07be5fadb849b4e77
Author: Aaron Durbin <adurbin at chromium.org>
Date:   Wed Feb 10 22:54:07 2016 -0600

    arch: remove stage_exit()
    
    It's no longer used. Remove it.
    
    Change-Id: Id6f4084ab9d671e94f0eee76bf36fad9a174ef14
    Signed-off-by: Aaron Durbin <adurbin at chromium.org>
---
 src/arch/arm/include/arch/stages.h   |  1 -
 src/arch/arm/stages.c                | 16 ----------------
 src/arch/arm64/include/arch/stages.h |  1 -
 src/arch/mips/include/arch/stages.h  |  1 -
 src/arch/mips/stages.c               |  6 ------
 src/arch/riscv/include/arch/stages.h |  1 -
 src/arch/riscv/stages.c              | 16 ----------------
 src/arch/x86/include/arch/stages.h   | 11 -----------
 8 files changed, 53 deletions(-)

diff --git a/src/arch/arm/include/arch/stages.h b/src/arch/arm/include/arch/stages.h
index ef4658e..2d20604 100644
--- a/src/arch/arm/include/arch/stages.h
+++ b/src/arch/arm/include/arch/stages.h
@@ -19,6 +19,5 @@
 extern void main(void);
 
 void stage_entry(void);
-void stage_exit(void *);
 
 #endif
diff --git a/src/arch/arm/stages.c b/src/arch/arm/stages.c
index 6e5b8cd..2beaacd 100644
--- a/src/arch/arm/stages.c
+++ b/src/arch/arm/stages.c
@@ -34,19 +34,3 @@ __attribute__((weak)) void stage_entry(void)
 {
 	main();
 }
-
-/* we had marked 'doit' as 'noreturn'.
- * There is no apparent harm in leaving it as something we can return from, and in the one
- * case where we call a payload, the payload is allowed to return.
- * Hence, leave it as something we can return from.
- */
-void stage_exit(void *addr)
-{
-	void (*doit)(void) = addr;
-	/*
-	 * Most stages load code so we need to sync caches here. Should maybe
-	 * go into cbfs_load_stage() instead...
-	 */
-	cache_sync_instructions();
-	doit();
-}
diff --git a/src/arch/arm64/include/arch/stages.h b/src/arch/arm64/include/arch/stages.h
index 6dbf389..3a3f56e 100644
--- a/src/arch/arm64/include/arch/stages.h
+++ b/src/arch/arm64/include/arch/stages.h
@@ -21,7 +21,6 @@
 extern void main(void);
 
 void stage_entry(void);
-void stage_exit(void *);
 void jmp_to_elf_entry(void *entry, unsigned long buffer, unsigned long size);
 
 #endif
diff --git a/src/arch/mips/include/arch/stages.h b/src/arch/mips/include/arch/stages.h
index 71132e3..664c136 100644
--- a/src/arch/mips/include/arch/stages.h
+++ b/src/arch/mips/include/arch/stages.h
@@ -19,6 +19,5 @@
 extern void main(void);
 
 void stage_entry(void);
-void stage_exit(void *);
 
 #endif /* __MIPS_ARCH_STAGES_H */
diff --git a/src/arch/mips/stages.c b/src/arch/mips/stages.c
index 54df792..e940faa 100644
--- a/src/arch/mips/stages.c
+++ b/src/arch/mips/stages.c
@@ -20,9 +20,3 @@ void stage_entry(void)
 {
 	main();
 }
-
-void stage_exit(void *addr)
-{
-	void (*doit)(void) = addr;
-	doit();
-}
diff --git a/src/arch/riscv/include/arch/stages.h b/src/arch/riscv/include/arch/stages.h
index d07983e..9e2a378 100644
--- a/src/arch/riscv/include/arch/stages.h
+++ b/src/arch/riscv/include/arch/stages.h
@@ -19,7 +19,6 @@
 extern void main(void);
 
 void stage_entry(void) __attribute__((section(".text.stage_entry")));
-void stage_exit(void *);
 void jmp_to_elf_entry(void *entry, unsigned long buffer, unsigned long size);
 
 #endif
diff --git a/src/arch/riscv/stages.c b/src/arch/riscv/stages.c
index a3a5e02..053fd76 100644
--- a/src/arch/riscv/stages.c
+++ b/src/arch/riscv/stages.c
@@ -30,19 +30,3 @@ void stage_entry(void)
 {
 	main();
 }
-
-/* we had marked 'doit' as 'noreturn'.
- * There is no apparent harm in leaving it as something we can return from, and in the one
- * case where we call a payload, the payload is allowed to return.
- * Hence, leave it as something we can return from.
- */
-void stage_exit(void *addr)
-{
-	void (*doit)(void) = addr;
-	/*
-	 * Most stages load code so we need to sync caches here. Should maybe
-	 * go into cbfs_load_stage() instead...
-	 */
-	//cache_sync_instructions();
-	doit();
-}
diff --git a/src/arch/x86/include/arch/stages.h b/src/arch/x86/include/arch/stages.h
index 6f68326..49921ae 100644
--- a/src/arch/x86/include/arch/stages.h
+++ b/src/arch/x86/include/arch/stages.h
@@ -20,15 +20,4 @@
 
 void asmlinkage copy_and_run(void);
 
-static inline void stage_exit(void *entry)
-{
-	__asm__ volatile (
-#ifdef __x86_64__
-		"jmp  *%%rdi\n"
-#else
-		"jmp  *%%edi\n"
-#endif
-		:: "D"(entry)
-	);
-}
 #endif



More information about the coreboot-gerrit mailing list