[OpenBIOS] [commit] r1360 - in trunk/openbios-devel: arch/sparc64 include/arch/sparc64
repository service
svn at openbios.org
Tue Dec 29 16:50:29 CET 2015
Author: mcayland
Date: Tue Dec 29 16:50:29 2015
New Revision: 1360
URL: http://tracker.coreboot.org/trac/openbios/changeset/1360
Log:
SPARC64: introduce new Forth context stack (fcstack) for CPU contexts
The fcstack holds a stack of complete CPU states which can be used to enable
re-entrant calls into Forth (e.g. when processing interrupts).
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland at ilande.co.uk>
Modified:
trunk/openbios-devel/arch/sparc64/context.c
trunk/openbios-devel/arch/sparc64/ldscript
trunk/openbios-devel/include/arch/sparc64/io.h
Modified: trunk/openbios-devel/arch/sparc64/context.c
==============================================================================
--- trunk/openbios-devel/arch/sparc64/context.c Tue Dec 29 16:50:24 2015 (r1359)
+++ trunk/openbios-devel/arch/sparc64/context.c Tue Dec 29 16:50:29 2015 (r1360)
@@ -40,6 +40,10 @@
/* Pointer to startup context (physical address) */
unsigned long __boot_ctx;
+/* Pointer to Forth context stack */
+void *_fcstack_ptr = &_efcstack;
+
+
/*
* Main starter
* This is the C function that runs first.
Modified: trunk/openbios-devel/arch/sparc64/ldscript
==============================================================================
--- trunk/openbios-devel/arch/sparc64/ldscript Tue Dec 29 16:50:24 2015 (r1359)
+++ trunk/openbios-devel/arch/sparc64/ldscript Tue Dec 29 16:50:29 2015 (r1360)
@@ -50,6 +50,11 @@
*(.bss.*)
*(COMMON)
+ _fcstack = .;
+ . += 32768;
+ . = ALIGN(16);
+ _efcstack = .;
+
_stack = .;
. += STACK_SIZE;
. = ALIGN(16);
Modified: trunk/openbios-devel/include/arch/sparc64/io.h
==============================================================================
--- trunk/openbios-devel/include/arch/sparc64/io.h Tue Dec 29 16:50:24 2015 (r1359)
+++ trunk/openbios-devel/include/arch/sparc64/io.h Tue Dec 29 16:50:29 2015 (r1360)
@@ -9,7 +9,7 @@
extern unsigned long va_shift; // Set in entry.S
// Defined in ldscript
-extern char _start, _data, _stack, _estack, _end, _iomem;
+extern char _start, _data, _stack, _estack, _fcstack, _efcstack, _end, _iomem;
// XXX check use and merge
#define phys_to_virt(phys) ((void *) ((unsigned long) (phys)))
More information about the OpenBIOS
mailing list